SlideShare a Scribd company logo
How FPGAs Work When They Don’t
- and how Feynman can help us understand
Summary
Clock domain crossing, timing violations, single event effects and accelerated aging in hostile environments, power supply fluctuations, etc. As if
the learning curve for HDL programming isn't steep already, as soon as we have mastered the archaic trade it is to write synthesizable code for
FPGAs, we find the physical reality intruding, breaking our assumptions, and removing any remaining illusions we might have about the soothing
comforts of deterministic programming. The physical reality is a nuisance; one we should deal with, but often do not. And understandably so. The
non-ideal behavior of CMOS is difficult to simulate, difficult to grasp, and a hassle to mitigate.
Fortunately, as we shall see in this presentation, the learning effort can be greatly reduced, as long as we apply the right perspective. One such is
Richard Feynman's File Clerk model (FCM), which is both intuitive and instructive when the goal is to understand "how FPGAs work when they
don't". With an outset in the FCM we go through the following topics:
● Basic computer organization in FPGAs
● Error mechanisms relevant in FPGA design
● Applying the FCM to explain
○ Clock domain crossing logic
○ SEE due to radiation
○ Timing violations
○ Voltage and frequency scaling
Resumé
Alex Birklykke, alex@space-inventor.com
● 2010: Msc.EE in Applied Signal Processing and Implementation
● 2015: PhD - Modeling and Predicting the behavior of computers operating without
guardbands (case study of FPGAs)
● 2013-2016: FPGA development at Rohde & Schwarz (WLAN layer-1)
● 2016-2017: FPGA development at GomSpace A/S
● 2017- : Newspace entrepreneur with Space Inventor
Research
● Empirical study of FPGA behavior when subject to
voltage and frequency scaling
● Based on 65 nm Spartan 3E
● Objective was to determine the cause of errors, as well as
model and predict errors.
● Research confirmed that
○ FPGAs are very noise immune devices
○ Timing violations are the cause of errors in
voltage/frequency scaled device
○ Precise error behavior is hard to predict
Presentation objective
Provide an intuition about how FPGAs work when they don’t
What could go wrong? Timing Closure
● Timing constraints not meet
● Multi-seed P&R or refactoring
don’t always solve problem.
Especially for systems with high
FPGA utilization
● Sometimes it is necessary to
ship systems with timing
violations
● How to assess the criticality of
timing violations?
What could go wrong? Clock domain crossings
● Clock domain crossings are commonly
encountered in FPGA applications
● Metastable behavior must be mitigated
● Error mechanism must be thoroughly understood
in order to mitigate problem
What could go wrong? Temperature effects and ageing
● Ring oscillator frequency in Virtex-5 FPGA vs:
○ Left) Location and temperature.
○ Right) Localized wearout
● Might lead to unforeseen timing violations
S. Zhang, Delay Characterization in
FPGA-based Reconfigurable
Systems. Master Thesis. 2013
What could go wrong? Radiation induced Ageing
● Microsemi SmartFusion2 SoC FPGA (65nm)
● Irradiated with Cobolt-60 gamma source
● Accelerated ageing observed
● For comparison, 20 krad ~ 5yrs in low Earth orbit
● 10% timing overhead must be introduced, to
ensure timing closure after 5 yrs
● Bad news: Other studies have found that the Flash
configuration memory cannot be reprogrammed
after a few krad’s
N. Rezzak, J. J. Wang, C. K. Huang, V. Nguyen and G. Bakker, "Total Ionizing Dose Characterization of 65 nm
Flash-Based FPGA," 2014 IEEE Radiation Effects Data Workshop (REDW), Paris, 2014, pp. 1-5.
What could go wrong? Chasing better performance
Voltage and/or frequency scaling results in timing errors
A. Birklykke, P. Koch, R. Prasad, L. Alminde and Y. Le Moullec, "Empirical verification
of fault models for FPGAs operating in the subcritical voltage region," 2013 23rd
International Workshop on Power and Timing Modeling, Optimization and Simulation
(PATMOS), Karlsruhe, 2013, pp. 16-23.
It’s all about timing
How FPGAs work when they don’t?
Feynman's Lectures on Computation
● Write-up of Feynman's lectures on computation
given at CalTech from 1983-1987
● Includes an introductory chapter on computation,
as well as five chapters addressing the limitation
of computers.
● Introduces the so-called “File Clerk Model” to
explain the system-level behavior of sequential
computers.
● Known as the as one of the great communicators
of science
The File Clerk Model
● Computers are data transfer machines first, and
only secondly an arithmetic device
● The file clerk is primarily a data transfer function.
Data processing is only secondary
● Feynman: Let’s use the file clerk as a metaphor
for understanding basic computer structure
The File Clerk Model
File clerk “total sales for California” procedure
Take out next “sales” card
If “Location” says California, then
Take out “total” card
Add sales number to number on card
Put “total” card back
Put “sales” card back
Repeat
Sales cards
Salesman: “Smith”
Location: “Tahoe”
Salary: 100
Sales: 1000
xxx.xx
Total card
File cabinet
The File Clerk Model
File clerk “total sales for California” procedure
Take out next “sales” card
If “Location” says California, then
Add sales number to S
Put “sales” card back
Repeat until end
Take out “total” card
Replace total with S
Put “total” card back
Sales cards
Salesman: “Smith”
Location: “Tahoe”
Salary: 100
Sales: 1000
xxx.xx
Total card
File cabinet
S : 0
Local scratch pad
Local scratch pad limits data
transfer, thus increasing file clerk
performance
The File Clerk Model - Stored Program Clerking
1. R2 <- 1
2. R3 <- ADD (R1) (R2)
3. R1 <- (R2)
4. R2 <- (R3)
5. R4 <- SUB 1000 (R3)
6. PC <- 8 IF (CARRY)
7. PC <- 2
8. HALT
Fetch instruction from address PC
PC <- (PC) + 1
Do instruction
R1 : 0
R2 : 0
R3 : 0
R4 : 0
User registers Program/Data
Memory
Fibonacci.exe
PC : 0
CARRY : 0
Control register
Generic file clerk with instruction set
The File Clerk Model with deadlines
● Same model, but where results must be available
at a certain deadline.
● Imagine an angry office manager dictating the
pace
● Claim: The time-dependence allow us to
intuitively explain how computers work when
they don’t
● Trick: Use sympathetic insight/empathy for
our file clerk
Intuitive Explanation of Errors using the File Clerk Model
Cause FCM eqv. FCM effect Reallife effect
Under-voltage Starving clerk Less effective clerk, more
time to do same task.
Unmet deadlines
Timing degradation
Overclocking Tight deadlines Less room for missteps Slack reduction
Electrical noise Office noise Processing errors more
likely, variable execution
time
Lower signal integrity,
probabilistic propagation
delay
Device Ageing Old file clerk Loss of vit and dexterity.
More time to do same job
Timing degradation
High temperature Uncomfortable clerk Harder to focus. More time
to do same job
Timing degradation
Adapting the File Clerk Model for FPGAs
● Timed FCM
● Think of a really simple-minded file clerk
● Vocabulary restricted to “yes”, “no”, and “maybe”
○ Maybe ~ Metastability
● Instructions limited to boolean expressions: file
clerk becomes LUTs
● Important differences:
○ Program is unrolled into one long pipeline
○ Registers and file clerks are distributed
Yes, no, maybe?
Adapting the File Clerk Model for FPGAs
● “File clerk production line”
● Information transfer is still dominating activity
● System-level intuition about FCM still hold
R
eg
R
eg
File clerks
Scratch pad
Input data
Output data
Mechanics of Timing Errors
Q: Assuming that we have timing violations, what
happens?
Q: What conditions must be met before a timing violation
result in a logic error?
Q: When do we have to worry?
Sensitization Criteria
Timing violations are a necessary condition for timing
errors, but not sufficient. The circuit must also be
exercised
FCM analogy: An idle “file clerk production line” does not
make errors
R
eg
R
eg
...,X2, X1
…,Y2, Y1
Patience solves all problems
R
eg
R
eg
...X ,X, X, X, X
…,Y, Y, #, @, ±
By repeating the input, the output will eventually settle
to the correct error-free value
Two Primary Error Modes
R
eg
R
eg
Transition from
X1 to X2
● Dynamic hazard when F(X1) != F(X2) → possible “stuck-at” error
● Static hazard when F(X1) == F(X2) → possible “bit-flip” error
F
F(X2), F(X1)
Generation of “Maybe’s”
● Register inputs must be stable during the setup
and hold period (aperture).
● Unstable signals during latching → probability of
meta-stabilities
● Given sufficient patiences, “maybe’s” will settle to
a fixed yes or no. However, there is no guarantee
that the value is correct (coin flip)
● With some probability, logic hazard can result in
“maybe’s”
Clock Domain Crossing
● Ubiquitous in FPGA designs
● Metastable behavior in receiving clock domain
● Critical for control signals
● Data signals are usually less critical (but it
depends)
● Constant signals usually not critical (e.g.
configuration signals for subsystem)
Clock Domain Crossing
Classical mitigation using synchronizer
● Decreases the probability of “maybe’s”
○ More levels, less probability
● No guarantee for correct signal transfer!!!
● To ensure signal integrity, the patience principle
must be applied
○ Sig1 must be repeated
When to worry about timing violations?
Evaluate and accept
● Some data signals
● Debug
● Configuration
● Low frequency signals re. fclk
Evaluate and avoid
● Mitigate
○ Switch to level signaling
○ Add synchronizers
● Refactor
That’s all folks

More Related Content

What's hot

Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Sameh El-Ashry
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal ValidationDVClub
 
Reactive systems
Reactive systemsReactive systems
Reactive systems
Naresh Chintalcheru
 
Scan insertion
Scan insertionScan insertion
Scan insertion
kumar gavanurmath
 
Code Management Workshop
Code Management WorkshopCode Management Workshop
Code Management Workshop
Sameh El-Ashry
 
TMPA-2017: 5W+1H Static Analysis Report Quality Measure
TMPA-2017: 5W+1H Static Analysis Report Quality MeasureTMPA-2017: 5W+1H Static Analysis Report Quality Measure
TMPA-2017: 5W+1H Static Analysis Report Quality Measure
Iosif Itkin
 
Coverage Solutions on Emulators
Coverage Solutions on EmulatorsCoverage Solutions on Emulators
Coverage Solutions on EmulatorsDVClub
 
SDN Controller - Programming Challenges
SDN Controller - Programming ChallengesSDN Controller - Programming Challenges
SDN Controller - Programming Challengessnrism
 
verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020
Sameh El-Ashry
 
Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4Chun Xia
 
Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam McConnell
 
Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016
Bhupesh Chawda
 
Qualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional SafetyQualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional Safety
Pankaj Singh
 
An Approach to Overcome Modeling Inaccuracies for Performance Simulation Sig...
An Approach to Overcome Modeling  Inaccuracies for Performance Simulation Sig...An Approach to Overcome Modeling  Inaccuracies for Performance Simulation Sig...
An Approach to Overcome Modeling Inaccuracies for Performance Simulation Sig...
Pankaj Singh
 
2008-10-09 - Bits and Chips Conference - Embedded Systemen Architecture patterns
2008-10-09 - Bits and Chips Conference - Embedded Systemen Architecture patterns2008-10-09 - Bits and Chips Conference - Embedded Systemen Architecture patterns
2008-10-09 - Bits and Chips Conference - Embedded Systemen Architecture patterns
Jaap van Ekris
 
Chipions session 2021 - VLSI career
Chipions session 2021 - VLSI careerChipions session 2021 - VLSI career
Chipions session 2021 - VLSI career
Sameh El-Ashry
 
Multi-Unit Severe Accident Simulation
Multi-Unit Severe Accident SimulationMulti-Unit Severe Accident Simulation
Multi-Unit Severe Accident Simulation
GSE Systems, Inc.
 
Ananthprofilepln
AnanthprofileplnAnanthprofilepln
Ananthprofileplnananthch
 

What's hot (20)

Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
Efficient Methodology of Sampling UVM RAL During Simulation for SoC Functiona...
 
Trends in Mixed Signal Validation
Trends in Mixed Signal ValidationTrends in Mixed Signal Validation
Trends in Mixed Signal Validation
 
Reactive systems
Reactive systemsReactive systems
Reactive systems
 
Scan insertion
Scan insertionScan insertion
Scan insertion
 
Chris brown ti
Chris brown tiChris brown ti
Chris brown ti
 
Lec13
Lec13Lec13
Lec13
 
Code Management Workshop
Code Management WorkshopCode Management Workshop
Code Management Workshop
 
TMPA-2017: 5W+1H Static Analysis Report Quality Measure
TMPA-2017: 5W+1H Static Analysis Report Quality MeasureTMPA-2017: 5W+1H Static Analysis Report Quality Measure
TMPA-2017: 5W+1H Static Analysis Report Quality Measure
 
Coverage Solutions on Emulators
Coverage Solutions on EmulatorsCoverage Solutions on Emulators
Coverage Solutions on Emulators
 
SDN Controller - Programming Challenges
SDN Controller - Programming ChallengesSDN Controller - Programming Challenges
SDN Controller - Programming Challenges
 
verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020verification_planning_systemverilog_uvm_2020
verification_planning_systemverilog_uvm_2020
 
Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4Jeda Hls Hlv Success Story V4
Jeda Hls Hlv Success Story V4
 
Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3Adam_Mcconnell_SPR11_v3
Adam_Mcconnell_SPR11_v3
 
Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016Introduction to Apache Apex - CoDS 2016
Introduction to Apache Apex - CoDS 2016
 
Qualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional SafetyQualifying a high performance memory subsysten for Functional Safety
Qualifying a high performance memory subsysten for Functional Safety
 
An Approach to Overcome Modeling Inaccuracies for Performance Simulation Sig...
An Approach to Overcome Modeling  Inaccuracies for Performance Simulation Sig...An Approach to Overcome Modeling  Inaccuracies for Performance Simulation Sig...
An Approach to Overcome Modeling Inaccuracies for Performance Simulation Sig...
 
2008-10-09 - Bits and Chips Conference - Embedded Systemen Architecture patterns
2008-10-09 - Bits and Chips Conference - Embedded Systemen Architecture patterns2008-10-09 - Bits and Chips Conference - Embedded Systemen Architecture patterns
2008-10-09 - Bits and Chips Conference - Embedded Systemen Architecture patterns
 
Chipions session 2021 - VLSI career
Chipions session 2021 - VLSI careerChipions session 2021 - VLSI career
Chipions session 2021 - VLSI career
 
Multi-Unit Severe Accident Simulation
Multi-Unit Severe Accident SimulationMulti-Unit Severe Accident Simulation
Multi-Unit Severe Accident Simulation
 
Ananthprofilepln
AnanthprofileplnAnanthprofilepln
Ananthprofilepln
 

Similar to How fpgas work when they don't

Assembly p1
Assembly p1Assembly p1
Assembly p1
raja khizar
 
EDCC14 Keynote, Newcastle 15may14
EDCC14 Keynote, Newcastle 15may14EDCC14 Keynote, Newcastle 15may14
EDCC14 Keynote, Newcastle 15may14
Ian Phillips
 
Matopt
MatoptMatopt
Hardware Assisted Latency Investigations
Hardware Assisted Latency InvestigationsHardware Assisted Latency Investigations
Hardware Assisted Latency Investigations
ScyllaDB
 
Module 3-cpu-scheduling
Module 3-cpu-schedulingModule 3-cpu-scheduling
Module 3-cpu-scheduling
Hesham Elmasry
 
lec25-final.ppt
lec25-final.pptlec25-final.ppt
lec25-final.ppt
zahixdd
 
Track h asic prototyping - logtel
Track h   asic prototyping - logtelTrack h   asic prototyping - logtel
Track h asic prototyping - logtelchiportal
 
Track h asic prototyping - logtel
Track h   asic prototyping - logtelTrack h   asic prototyping - logtel
Track h asic prototyping - logtelchiportal
 
Automating the Hunt for Non-Obvious Sources of Latency Spreads
Automating the Hunt for Non-Obvious Sources of Latency SpreadsAutomating the Hunt for Non-Obvious Sources of Latency Spreads
Automating the Hunt for Non-Obvious Sources of Latency Spreads
ScyllaDB
 
Pragmatic Optimization in Modern Programming - Ordering Optimization Approaches
Pragmatic Optimization in Modern Programming - Ordering Optimization ApproachesPragmatic Optimization in Modern Programming - Ordering Optimization Approaches
Pragmatic Optimization in Modern Programming - Ordering Optimization Approaches
Marina Kolpakova
 
Prelim Slides
Prelim SlidesPrelim Slides
Prelim Slides
smpant
 
Joe armstrong erlanga_languageforprogrammingreliablesystems
Joe armstrong erlanga_languageforprogrammingreliablesystemsJoe armstrong erlanga_languageforprogrammingreliablesystems
Joe armstrong erlanga_languageforprogrammingreliablesystems
Sentifi
 
FPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow SwitchFPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow Switch
Yutaka Yasuda
 
parellel computing
parellel computingparellel computing
parellel computing
katakdound
 
A Practical Event Driven Model
A Practical Event Driven ModelA Practical Event Driven Model
A Practical Event Driven ModelXi Wu
 
On the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC ApplicationsOn the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC Applications
Wim Vanderbauwhede
 

Similar to How fpgas work when they don't (20)

20090720 smith
20090720 smith20090720 smith
20090720 smith
 
Assembly p1
Assembly p1Assembly p1
Assembly p1
 
EDCC14 Keynote, Newcastle 15may14
EDCC14 Keynote, Newcastle 15may14EDCC14 Keynote, Newcastle 15may14
EDCC14 Keynote, Newcastle 15may14
 
Matopt
MatoptMatopt
Matopt
 
Hardware Assisted Latency Investigations
Hardware Assisted Latency InvestigationsHardware Assisted Latency Investigations
Hardware Assisted Latency Investigations
 
Module 3-cpu-scheduling
Module 3-cpu-schedulingModule 3-cpu-scheduling
Module 3-cpu-scheduling
 
lec25-final.ppt
lec25-final.pptlec25-final.ppt
lec25-final.ppt
 
Track h asic prototyping - logtel
Track h   asic prototyping - logtelTrack h   asic prototyping - logtel
Track h asic prototyping - logtel
 
Track h asic prototyping - logtel
Track h   asic prototyping - logtelTrack h   asic prototyping - logtel
Track h asic prototyping - logtel
 
Realtime
RealtimeRealtime
Realtime
 
Ch1
Ch1Ch1
Ch1
 
Ch1
Ch1Ch1
Ch1
 
Automating the Hunt for Non-Obvious Sources of Latency Spreads
Automating the Hunt for Non-Obvious Sources of Latency SpreadsAutomating the Hunt for Non-Obvious Sources of Latency Spreads
Automating the Hunt for Non-Obvious Sources of Latency Spreads
 
Pragmatic Optimization in Modern Programming - Ordering Optimization Approaches
Pragmatic Optimization in Modern Programming - Ordering Optimization ApproachesPragmatic Optimization in Modern Programming - Ordering Optimization Approaches
Pragmatic Optimization in Modern Programming - Ordering Optimization Approaches
 
Prelim Slides
Prelim SlidesPrelim Slides
Prelim Slides
 
Joe armstrong erlanga_languageforprogrammingreliablesystems
Joe armstrong erlanga_languageforprogrammingreliablesystemsJoe armstrong erlanga_languageforprogrammingreliablesystems
Joe armstrong erlanga_languageforprogrammingreliablesystems
 
FPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow SwitchFPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow Switch
 
parellel computing
parellel computingparellel computing
parellel computing
 
A Practical Event Driven Model
A Practical Event Driven ModelA Practical Event Driven Model
A Practical Event Driven Model
 
On the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC ApplicationsOn the Capability and Achievable Performance of FPGAs for HPC Applications
On the Capability and Achievable Performance of FPGAs for HPC Applications
 

More from InfinIT - Innovationsnetværket for it

Erfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermarkErfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermark
InfinIT - Innovationsnetværket for it
 
Object orientering, test driven development og c
Object orientering, test driven development og cObject orientering, test driven development og c
Object orientering, test driven development og c
InfinIT - Innovationsnetværket for it
 
Embedded softwaredevelopment hcs
Embedded softwaredevelopment hcsEmbedded softwaredevelopment hcs
Embedded softwaredevelopment hcs
InfinIT - Innovationsnetværket for it
 
C og c++-jens lund jensen
C og c++-jens lund jensenC og c++-jens lund jensen
C og c++-jens lund jensen
InfinIT - Innovationsnetværket for it
 
201811xx foredrag c_cpp
201811xx foredrag c_cpp201811xx foredrag c_cpp
C som-programmeringssprog-bt
C som-programmeringssprog-btC som-programmeringssprog-bt
C som-programmeringssprog-bt
InfinIT - Innovationsnetværket for it
 
Infinit seminar 060918
Infinit seminar 060918Infinit seminar 060918
DCR solutions
DCR solutionsDCR solutions
Not your grandfathers BPM
Not your grandfathers BPMNot your grandfathers BPM
Not your grandfathers BPM
InfinIT - Innovationsnetværket for it
 
Kmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolutionKmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolution
InfinIT - Innovationsnetværket for it
 
EcoKnow - oplæg
EcoKnow - oplægEcoKnow - oplæg
Martin Wickins Chatbots i fronten
Martin Wickins Chatbots i frontenMartin Wickins Chatbots i fronten
Martin Wickins Chatbots i fronten
InfinIT - Innovationsnetværket for it
 
Marie Fenger ai kundeservice
Marie Fenger ai kundeserviceMarie Fenger ai kundeservice
Marie Fenger ai kundeservice
InfinIT - Innovationsnetværket for it
 
Mads Kaysen SupWiz
Mads Kaysen SupWizMads Kaysen SupWiz
Leif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support CenterLeif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support Center
InfinIT - Innovationsnetværket for it
 
Jan Neerbek NLP og Chatbots
Jan Neerbek NLP og ChatbotsJan Neerbek NLP og Chatbots
Jan Neerbek NLP og Chatbots
InfinIT - Innovationsnetværket for it
 
Anders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer SupportAnders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer Support
InfinIT - Innovationsnetværket for it
 
Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018
InfinIT - Innovationsnetværket for it
 
Innovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekterInnovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekter
InfinIT - Innovationsnetværket for it
 
Rokoko infin it presentation
Rokoko infin it presentation Rokoko infin it presentation
Rokoko infin it presentation
InfinIT - Innovationsnetværket for it
 

More from InfinIT - Innovationsnetværket for it (20)

Erfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermarkErfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermark
 
Object orientering, test driven development og c
Object orientering, test driven development og cObject orientering, test driven development og c
Object orientering, test driven development og c
 
Embedded softwaredevelopment hcs
Embedded softwaredevelopment hcsEmbedded softwaredevelopment hcs
Embedded softwaredevelopment hcs
 
C og c++-jens lund jensen
C og c++-jens lund jensenC og c++-jens lund jensen
C og c++-jens lund jensen
 
201811xx foredrag c_cpp
201811xx foredrag c_cpp201811xx foredrag c_cpp
201811xx foredrag c_cpp
 
C som-programmeringssprog-bt
C som-programmeringssprog-btC som-programmeringssprog-bt
C som-programmeringssprog-bt
 
Infinit seminar 060918
Infinit seminar 060918Infinit seminar 060918
Infinit seminar 060918
 
DCR solutions
DCR solutionsDCR solutions
DCR solutions
 
Not your grandfathers BPM
Not your grandfathers BPMNot your grandfathers BPM
Not your grandfathers BPM
 
Kmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolutionKmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolution
 
EcoKnow - oplæg
EcoKnow - oplægEcoKnow - oplæg
EcoKnow - oplæg
 
Martin Wickins Chatbots i fronten
Martin Wickins Chatbots i frontenMartin Wickins Chatbots i fronten
Martin Wickins Chatbots i fronten
 
Marie Fenger ai kundeservice
Marie Fenger ai kundeserviceMarie Fenger ai kundeservice
Marie Fenger ai kundeservice
 
Mads Kaysen SupWiz
Mads Kaysen SupWizMads Kaysen SupWiz
Mads Kaysen SupWiz
 
Leif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support CenterLeif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support Center
 
Jan Neerbek NLP og Chatbots
Jan Neerbek NLP og ChatbotsJan Neerbek NLP og Chatbots
Jan Neerbek NLP og Chatbots
 
Anders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer SupportAnders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer Support
 
Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018
 
Innovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekterInnovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekter
 
Rokoko infin it presentation
Rokoko infin it presentation Rokoko infin it presentation
Rokoko infin it presentation
 

Recently uploaded

Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 

Recently uploaded (20)

Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 
Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 

How fpgas work when they don't

  • 1. How FPGAs Work When They Don’t - and how Feynman can help us understand
  • 2. Summary Clock domain crossing, timing violations, single event effects and accelerated aging in hostile environments, power supply fluctuations, etc. As if the learning curve for HDL programming isn't steep already, as soon as we have mastered the archaic trade it is to write synthesizable code for FPGAs, we find the physical reality intruding, breaking our assumptions, and removing any remaining illusions we might have about the soothing comforts of deterministic programming. The physical reality is a nuisance; one we should deal with, but often do not. And understandably so. The non-ideal behavior of CMOS is difficult to simulate, difficult to grasp, and a hassle to mitigate. Fortunately, as we shall see in this presentation, the learning effort can be greatly reduced, as long as we apply the right perspective. One such is Richard Feynman's File Clerk model (FCM), which is both intuitive and instructive when the goal is to understand "how FPGAs work when they don't". With an outset in the FCM we go through the following topics: ● Basic computer organization in FPGAs ● Error mechanisms relevant in FPGA design ● Applying the FCM to explain ○ Clock domain crossing logic ○ SEE due to radiation ○ Timing violations ○ Voltage and frequency scaling
  • 3. Resumé Alex Birklykke, alex@space-inventor.com ● 2010: Msc.EE in Applied Signal Processing and Implementation ● 2015: PhD - Modeling and Predicting the behavior of computers operating without guardbands (case study of FPGAs) ● 2013-2016: FPGA development at Rohde & Schwarz (WLAN layer-1) ● 2016-2017: FPGA development at GomSpace A/S ● 2017- : Newspace entrepreneur with Space Inventor
  • 4. Research ● Empirical study of FPGA behavior when subject to voltage and frequency scaling ● Based on 65 nm Spartan 3E ● Objective was to determine the cause of errors, as well as model and predict errors. ● Research confirmed that ○ FPGAs are very noise immune devices ○ Timing violations are the cause of errors in voltage/frequency scaled device ○ Precise error behavior is hard to predict
  • 5. Presentation objective Provide an intuition about how FPGAs work when they don’t
  • 6. What could go wrong? Timing Closure ● Timing constraints not meet ● Multi-seed P&R or refactoring don’t always solve problem. Especially for systems with high FPGA utilization ● Sometimes it is necessary to ship systems with timing violations ● How to assess the criticality of timing violations?
  • 7. What could go wrong? Clock domain crossings ● Clock domain crossings are commonly encountered in FPGA applications ● Metastable behavior must be mitigated ● Error mechanism must be thoroughly understood in order to mitigate problem
  • 8. What could go wrong? Temperature effects and ageing ● Ring oscillator frequency in Virtex-5 FPGA vs: ○ Left) Location and temperature. ○ Right) Localized wearout ● Might lead to unforeseen timing violations S. Zhang, Delay Characterization in FPGA-based Reconfigurable Systems. Master Thesis. 2013
  • 9. What could go wrong? Radiation induced Ageing ● Microsemi SmartFusion2 SoC FPGA (65nm) ● Irradiated with Cobolt-60 gamma source ● Accelerated ageing observed ● For comparison, 20 krad ~ 5yrs in low Earth orbit ● 10% timing overhead must be introduced, to ensure timing closure after 5 yrs ● Bad news: Other studies have found that the Flash configuration memory cannot be reprogrammed after a few krad’s N. Rezzak, J. J. Wang, C. K. Huang, V. Nguyen and G. Bakker, "Total Ionizing Dose Characterization of 65 nm Flash-Based FPGA," 2014 IEEE Radiation Effects Data Workshop (REDW), Paris, 2014, pp. 1-5.
  • 10. What could go wrong? Chasing better performance Voltage and/or frequency scaling results in timing errors A. Birklykke, P. Koch, R. Prasad, L. Alminde and Y. Le Moullec, "Empirical verification of fault models for FPGAs operating in the subcritical voltage region," 2013 23rd International Workshop on Power and Timing Modeling, Optimization and Simulation (PATMOS), Karlsruhe, 2013, pp. 16-23.
  • 11. It’s all about timing How FPGAs work when they don’t?
  • 12. Feynman's Lectures on Computation ● Write-up of Feynman's lectures on computation given at CalTech from 1983-1987 ● Includes an introductory chapter on computation, as well as five chapters addressing the limitation of computers. ● Introduces the so-called “File Clerk Model” to explain the system-level behavior of sequential computers. ● Known as the as one of the great communicators of science
  • 13. The File Clerk Model ● Computers are data transfer machines first, and only secondly an arithmetic device ● The file clerk is primarily a data transfer function. Data processing is only secondary ● Feynman: Let’s use the file clerk as a metaphor for understanding basic computer structure
  • 14. The File Clerk Model File clerk “total sales for California” procedure Take out next “sales” card If “Location” says California, then Take out “total” card Add sales number to number on card Put “total” card back Put “sales” card back Repeat Sales cards Salesman: “Smith” Location: “Tahoe” Salary: 100 Sales: 1000 xxx.xx Total card File cabinet
  • 15. The File Clerk Model File clerk “total sales for California” procedure Take out next “sales” card If “Location” says California, then Add sales number to S Put “sales” card back Repeat until end Take out “total” card Replace total with S Put “total” card back Sales cards Salesman: “Smith” Location: “Tahoe” Salary: 100 Sales: 1000 xxx.xx Total card File cabinet S : 0 Local scratch pad Local scratch pad limits data transfer, thus increasing file clerk performance
  • 16. The File Clerk Model - Stored Program Clerking 1. R2 <- 1 2. R3 <- ADD (R1) (R2) 3. R1 <- (R2) 4. R2 <- (R3) 5. R4 <- SUB 1000 (R3) 6. PC <- 8 IF (CARRY) 7. PC <- 2 8. HALT Fetch instruction from address PC PC <- (PC) + 1 Do instruction R1 : 0 R2 : 0 R3 : 0 R4 : 0 User registers Program/Data Memory Fibonacci.exe PC : 0 CARRY : 0 Control register Generic file clerk with instruction set
  • 17. The File Clerk Model with deadlines ● Same model, but where results must be available at a certain deadline. ● Imagine an angry office manager dictating the pace ● Claim: The time-dependence allow us to intuitively explain how computers work when they don’t ● Trick: Use sympathetic insight/empathy for our file clerk
  • 18. Intuitive Explanation of Errors using the File Clerk Model Cause FCM eqv. FCM effect Reallife effect Under-voltage Starving clerk Less effective clerk, more time to do same task. Unmet deadlines Timing degradation Overclocking Tight deadlines Less room for missteps Slack reduction Electrical noise Office noise Processing errors more likely, variable execution time Lower signal integrity, probabilistic propagation delay Device Ageing Old file clerk Loss of vit and dexterity. More time to do same job Timing degradation High temperature Uncomfortable clerk Harder to focus. More time to do same job Timing degradation
  • 19. Adapting the File Clerk Model for FPGAs ● Timed FCM ● Think of a really simple-minded file clerk ● Vocabulary restricted to “yes”, “no”, and “maybe” ○ Maybe ~ Metastability ● Instructions limited to boolean expressions: file clerk becomes LUTs ● Important differences: ○ Program is unrolled into one long pipeline ○ Registers and file clerks are distributed Yes, no, maybe?
  • 20. Adapting the File Clerk Model for FPGAs ● “File clerk production line” ● Information transfer is still dominating activity ● System-level intuition about FCM still hold R eg R eg File clerks Scratch pad Input data Output data
  • 21. Mechanics of Timing Errors Q: Assuming that we have timing violations, what happens? Q: What conditions must be met before a timing violation result in a logic error? Q: When do we have to worry?
  • 22. Sensitization Criteria Timing violations are a necessary condition for timing errors, but not sufficient. The circuit must also be exercised FCM analogy: An idle “file clerk production line” does not make errors R eg R eg ...,X2, X1 …,Y2, Y1
  • 23. Patience solves all problems R eg R eg ...X ,X, X, X, X …,Y, Y, #, @, ± By repeating the input, the output will eventually settle to the correct error-free value
  • 24. Two Primary Error Modes R eg R eg Transition from X1 to X2 ● Dynamic hazard when F(X1) != F(X2) → possible “stuck-at” error ● Static hazard when F(X1) == F(X2) → possible “bit-flip” error F F(X2), F(X1)
  • 25. Generation of “Maybe’s” ● Register inputs must be stable during the setup and hold period (aperture). ● Unstable signals during latching → probability of meta-stabilities ● Given sufficient patiences, “maybe’s” will settle to a fixed yes or no. However, there is no guarantee that the value is correct (coin flip) ● With some probability, logic hazard can result in “maybe’s”
  • 26. Clock Domain Crossing ● Ubiquitous in FPGA designs ● Metastable behavior in receiving clock domain ● Critical for control signals ● Data signals are usually less critical (but it depends) ● Constant signals usually not critical (e.g. configuration signals for subsystem)
  • 27. Clock Domain Crossing Classical mitigation using synchronizer ● Decreases the probability of “maybe’s” ○ More levels, less probability ● No guarantee for correct signal transfer!!! ● To ensure signal integrity, the patience principle must be applied ○ Sig1 must be repeated
  • 28. When to worry about timing violations? Evaluate and accept ● Some data signals ● Debug ● Configuration ● Low frequency signals re. fclk Evaluate and avoid ● Mitigate ○ Switch to level signaling ○ Add synchronizers ● Refactor