SlideShare a Scribd company logo
10
Most read
16
Most read
17
Most read
Clock Domain
Crossing
Part 7 – Timing Constraints
Amr Adel Mohammady
/amradelm
/amradelm
/amradelm
/amradelm
Free Palestine
Free Palestine
Introduction
2
• In the previous parts we went through all the CDC solutions and schemes.
• In this part we will discuss the timing constraints associated with these schemes.
• We mentioned that CDC paths are asynchronous and therefore can’t be analyzed with static timing analysis. ‘
• That’s why, in the past, the most common approach was applying false paths on CDC paths. We will see how that may lead to major issues.
• It turns out we still need some timing constraints to enforce some assumptions we made when designing the CDC circuit
CDC Handshake Protocol CDC FIFO
CDC Synchronizers
/amradelm
/amradelm
Free Palestine
Free Palestine
1st (Trial) Solution :
Apply False Path
3
/amradelm
/amradelm
Free Palestine
Free Palestine
What is a False Path?
• False paths are timing paths that can’t possibly occur due to the logic of the circuit
• Consider the example below:
o Both muxes have the same select signal. This means we have 2 possible timing paths. The one going through both red logics (200 + 300 = 500𝑝𝑠) and
the one going through both blue logics (100 + 500 = 600𝑝𝑠)
o The paths going through a red logic then a blue logic (200 + 500 = 700𝑝𝑠) or blue logic then red logic (100 + 300 = 400𝑝𝑠) is impossible to happen.
o Unless we instruct the tool to ignore these false paths, they will be considered for timing analysis leading to the large 𝑇𝑐𝑜𝑚𝑏 of the red to blue path which
will violate setup.
4
0 0
1 1
sel
200𝑝𝑠
100𝑝𝑠 500𝑝𝑠
300𝑝𝑠
𝑝𝑜𝑠𝑠𝑖𝑏𝑙𝑒 𝑝𝑎𝑡ℎ𝑠
/amradelm
/amradelm
Free Palestine
Free Palestine
What Would Happen With A False Path Constraint?
• Applying false path will make the tool ignore the timing of the paths and therefore may create unnecessary delay that breaks our CDC circuit.
o The tool might:
▪ Place the launch and capture FF far apart.
▪ Create unnecessarily long routes.
▪ Add unnecessary buffers in the routes.
▪ Use slow cells/FFs to save power.
o We will see how this may break our CDC circuits. We will consider 2 examples
▪ CDC Mux
▪ CDC Gray Coding
5
Possible Schematic of a very relaxed Path
/amradelm
/amradelm
Free Palestine
Free Palestine
CDC Mux Scheme And False Path
6
Let's review the CDC MUX scheme1:
• The data goes directly to the Rx domain MUX
• The enable goes to the Rx domain through FF
synchronizers
1 • The data reaches the MUX quickly since no FF
exist in the way.
• The enable is still going through the FF syncs
2 • After some time, the enable arrives at the MUX
and opens the gate for the data.
• Since the enable is synchronized, it's
guaranteed with STA that the gate will open
without violating setup or hold time and
therefore the data won't cause metastability
3
EN
D D D
EN
EN
You can watch an animation of this here : https://lnkd.in/en-iuNPx
[1] :
/amradelm
/amradelm
Free Palestine
Free Palestine
CDC Mux Scheme And False Path
7
Now let’s consider the faulty behavior with a
false path constraint applied1
• The data goes to the Rx domain MUX
• The enable goes to the Rx domain through FF
synchronizers
1 • The data takes a long time to reach the MUX
due to the logic delay.
• The enable reaches the MUX and opens the
gate
2 • After some time, the data arrives at the MUX
after the enable.
• The data is a domain 1 signal arriving at
domain 2 FF. Metastability happens
3
EN
D
D
D
EN EN
Metastability!
You can watch an animation of this here : https://lnkd.in/en-iuNPx
[1] :
/amradelm
/amradelm
Free Palestine
Free Palestine
CDC Gray Coding And False Path
8
Now let’s see the faulty behavior with CDC Gray coding
• Initially the Rx sees gray code 110 (decimal 4)
• After that we send gray code 111 (decimal 5)
1 • We then send gray code 101 (decimal 6)
• Due to the long delay on the LSB line, the logic “1” from decimal 5 didn’t
reach the Rx yet.
• Now the Rx sees two bit changing and may jump to wrong count
2
You can watch an animation of this here : https://lnkd.in/ejkpFvZR
[1] :
5 4
1
1
1
1
1
0
6 4
1
0
1
1
1
0
1
Multiple bits are changing at the same time.
The Gray code is violated
/amradelm
/amradelm
Free Palestine
Free Palestine
2nd (Trial) Solution :
Don’t Apply False Path
9
/amradelm
/amradelm
Free Palestine
Free Palestine
What Could Happen Without a False Path Constraints?
• By default, the tool will assume the 2 CDC clocks are synchronous and will run STA on any path between them.
• This will lead to one of 2 issues:
o If the clock skew between the 2 clocks is small, the path will be very tight and won’t meet timing. The synthesis and PnR tools will spend a lot of effort trying
to fix the path1.
o If the clock skew between the 2 clocks is large, the path will be relaxed and may meet timing with a large setup margin.
▪ The tool might add delay (for example, to save power)
▪ We get the same issue of applying a false path constraint
10
Small Skew Case
𝑇𝑙𝑎𝑢𝑛𝑐ℎ_𝑒𝑑𝑔𝑒
𝑇𝑐𝑎𝑝𝑡𝑢𝑟𝑒_𝑒𝑑𝑔𝑒
𝑇𝑐𝑞
𝑇𝑐𝑜𝑚𝑏
𝑇𝑠𝑒𝑡𝑢𝑝
Large Skew Case
𝑇𝑙𝑎𝑢𝑛𝑐ℎ_𝑒𝑑𝑔𝑒
𝑇𝑐𝑎𝑝𝑡𝑢𝑟𝑒_𝑒𝑑𝑔𝑒
𝑇𝑐𝑞
𝑇𝑐𝑜𝑚𝑏
𝑇𝑠𝑒𝑡𝑢𝑝
The tools ignore less critical paths and focus on the critical ones. This will lead to real paths being masked by
fake CDC violations
[1] :
/amradelm
/amradelm
Free Palestine
Free Palestine
3rd (Correct) Solution :
Skew Constraint
11
/amradelm
/amradelm
Free Palestine
Free Palestine
What is A Skew Constraint
• Skew checks constraint the arrival difference between 2 signals or more.
• In the example below we have a data bus of 4 bits. The bits should arrive close to each other with a difference no more than 3ns. This means the difference
between the latest bit to arrive and the earliest bit to arrive shouldn’t exceed 3ns.
• To fix skew violations we need to speed up slow signals and/or slow down fast ones.
/amradelm
/amradelm
Free Palestine
Free Palestine
CDC Gray Coding And Skew Constraint
13
Without A Skew Constraint With A Skew Constraint
Buffers are added by the tool on the other
paths to balance with the LSB route delay.
/amradelm
/amradelm
Free Palestine
Free Palestine
The Issue With This Approach
• The main issue with this approach is that it needs lots of manual efforts
• If we have multiple CDC paths, we need to identify each group of signals and add skew constraints for them
• We will try another easier approach
14
Group 1
Group 4
Group 2
Group 5
Group 3
Group 6
/amradelm
/amradelm
Free Palestine
Free Palestine
4th (Best) Solution :
Max Delay Constraint
15
/amradelm
/amradelm
Free Palestine
Free Palestine
Max and Min Delays
• Sometimes we want to control the arrival time of a signal.
• In the example below, it’s required that signal A arrives at the memory block no eariler than 10ns and no later than 30ns after the clock edge.
• To constraint signal A to follow this requirement we need to apply a min delay constraint of 10ns and a max delay of 30ns1.
https://docs.amd.com/r/2021.2-English/ug903-vivado-using-constraints/Min/Max-Delays
More details :
Don’t apply the constraint from the Q pin of the FF but from the CK pin. Otherwise, the setup and hold timing paths of
the FF will be broken
[1] :
/amradelm
/amradelm
Free Palestine
Free Palestine
Max Delay Constraint
• The best approach is to add a max delay constraint with an amount small enough that the CDC paths are not broken
• What makes this approach easy is that it can applied to all CDC paths with one line1 so it doesn’t need manual work:
• pt_shell> set_max_delay 4.0 -from CLK1 -to CLK2
• What remains now is what value to use for the max delay constraint.
o In some cases, we need to apply the Tx clock period
o In other cases, we need to apply the Rx clock period
o In other cases, we need to apply multiple clock periods.
o We will use the worst case (smallest) instead of applying a specific max delay
value for each
• The value used for max delay might be too tight for some CDC paths. In that case,
we can resort to skew constraint
≤ 𝟒 𝒏𝒔
≤ 𝟒 𝒏𝒔
≤ 𝟒 𝒏𝒔
In some tools, the max delay constraint overwrites the setup constraints, but in others, it won’t.
Depending on your tool, you might need to first apply a false path on the setup constraint then apply the max
delay constraint : Timing constraints for clock-domain crossings. #sta #cdc (github.com)
[1] :
/amradelm
/amradelm
Free Palestine
Free Palestine
References
18
1) https://gist.github.com/brabect1/7695ead3d79be47576890bbcd61fe426
2) Y. Mirsky, O. Tsarfaty, D. Stein, & O. Winner, “Timing Analysis of Unconstrained Clock Domain Crossings – the Need and the Method,”
3) O. Dasa, Y. Mirsky “A New Approach to Easily Resolve the Hidden Timing Dangers of False Path Constraints on Clock Domain Crossings”
/amradelm
/amradelm
Free Palestine
Free Palestine
Thank You!
19

More Related Content

PPT
VLSI circuit design process
PPT
Driving large capacitive loads
PPTX
BiCMOS Technology
PPTX
PPTX
Pulse shaping
PPTX
Pass Transistor Logic
PDF
High k dielectrics
VLSI circuit design process
Driving large capacitive loads
BiCMOS Technology
Pulse shaping
Pass Transistor Logic
High k dielectrics

What's hot (20)

PDF
Static_Timing_Analysis_in_detail.pdf
PPTX
Ditial to Analog Converter
PPT
Microwave components
PPT
Spintronics ppt
PDF
Synchronous and asynchronous clock
PPTX
INTEGRATED CIRCUIT
PDF
Design for Testability
PPT
Introduction to VHDL - Part 1
PDF
Gate-Level Simulation Methodology Improving Gate-Level Simulation Performance
PPTX
Sonar application (DSP)
PPTX
LOGIC FAMILY.pptx
PDF
IC Technology
PPT
Signal classification of signal
PPTX
crosstalk minimisation using vlsi
PPT
Analog to digital converters, adc
PPT
VLSI routing
PDF
minimisation of crosstalk in VLSI routing
PPTX
ASIC DESIGN FLOW
PPTX
Crosstalk
Static_Timing_Analysis_in_detail.pdf
Ditial to Analog Converter
Microwave components
Spintronics ppt
Synchronous and asynchronous clock
INTEGRATED CIRCUIT
Design for Testability
Introduction to VHDL - Part 1
Gate-Level Simulation Methodology Improving Gate-Level Simulation Performance
Sonar application (DSP)
LOGIC FAMILY.pptx
IC Technology
Signal classification of signal
crosstalk minimisation using vlsi
Analog to digital converters, adc
VLSI routing
minimisation of crosstalk in VLSI routing
ASIC DESIGN FLOW
Crosstalk
Ad

Similar to Clock Domain Crossing Part 7 - Timing Constraints (20)

PDF
Clock Domain Crossing All Parts Combined.pdf
PDF
Clock Domain Crossing Part 1 - Intro and MTBF
PDF
Deep Explaination of STA_setupandholdchecks
PDF
CN-U-II- Multiple access control Algo.pdf
PPT
the Multiple Access SLIDE for university students
PDF
VLSI Static Timing Analysis Setup And Hold Part 2
PPT
automtoive embedded flexray in embedded systems
PPTX
SLOTTED ALOHA and pure aloha are the category of aloha
PDF
Unit-2 Media Access Protocols.pdf
PPTX
Multiple Access Protocal
PDF
Medium access control. MAC Protocol.Data link layer
PPTX
Tieu luan qo s
PPT
DATA-LINK LAYER.ppt
PPTX
MAC COMPUTER NETWORK DATA LINK LAYER PROTOCOLS.pptx
PPTX
Logical link protocols and service data.pptx
PDF
VLSI Static Timing Analysis Timing Checks Part 3
PPTX
Computer Networks ppt for the following data base and it's analysis
PPTX
Computer networks unit iv
PDF
UNIT-V Wireless Communication.pdf
PPTX
DLL Elementary protocols from computer networks.pptx
Clock Domain Crossing All Parts Combined.pdf
Clock Domain Crossing Part 1 - Intro and MTBF
Deep Explaination of STA_setupandholdchecks
CN-U-II- Multiple access control Algo.pdf
the Multiple Access SLIDE for university students
VLSI Static Timing Analysis Setup And Hold Part 2
automtoive embedded flexray in embedded systems
SLOTTED ALOHA and pure aloha are the category of aloha
Unit-2 Media Access Protocols.pdf
Multiple Access Protocal
Medium access control. MAC Protocol.Data link layer
Tieu luan qo s
DATA-LINK LAYER.ppt
MAC COMPUTER NETWORK DATA LINK LAYER PROTOCOLS.pptx
Logical link protocols and service data.pptx
VLSI Static Timing Analysis Timing Checks Part 3
Computer Networks ppt for the following data base and it's analysis
Computer networks unit iv
UNIT-V Wireless Communication.pdf
DLL Elementary protocols from computer networks.pptx
Ad

More from Amr Adel (8)

PDF
Chip Designer's Code - Linux Terminal Part 3 - File Handling
PDF
ASIC Synthesis Optimizations And Settings Part 3
PDF
VLSI Static Timing Analysis Timing Checks Part 4 - Timing Constraints
PDF
VLSI Static Timing Analysis Timing Checks Part 5 - On Chip Variation
PDF
Clock Domain Crossing Part 3 - Data Duplication
PDF
Clock Domain Crossing Part 6 - Asynchronous FIFO
PDF
VLSI Static Timing Analysis Intro Part 1
PDF
FPGA Synthesis Optimizations And Settings Part 2b.pdf
Chip Designer's Code - Linux Terminal Part 3 - File Handling
ASIC Synthesis Optimizations And Settings Part 3
VLSI Static Timing Analysis Timing Checks Part 4 - Timing Constraints
VLSI Static Timing Analysis Timing Checks Part 5 - On Chip Variation
Clock Domain Crossing Part 3 - Data Duplication
Clock Domain Crossing Part 6 - Asynchronous FIFO
VLSI Static Timing Analysis Intro Part 1
FPGA Synthesis Optimizations And Settings Part 2b.pdf

Recently uploaded (20)

PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
Lecture Notes Electrical Wiring System Components
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PDF
composite construction of structures.pdf
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
CH1 Production IntroductoryConcepts.pptx
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PPT
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PPTX
Construction Project Organization Group 2.pptx
DOCX
573137875-Attendance-Management-System-original
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PDF
Digital Logic Computer Design lecture notes
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
Model Code of Practice - Construction Work - 21102022 .pdf
Lecture Notes Electrical Wiring System Components
Automation-in-Manufacturing-Chapter-Introduction.pdf
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
composite construction of structures.pdf
OOP with Java - Java Introduction (Basics)
CH1 Production IntroductoryConcepts.pptx
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
CYBER-CRIMES AND SECURITY A guide to understanding
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
Construction Project Organization Group 2.pptx
573137875-Attendance-Management-System-original
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
R24 SURVEYING LAB MANUAL for civil enggi
Digital Logic Computer Design lecture notes

Clock Domain Crossing Part 7 - Timing Constraints

  • 1. Clock Domain Crossing Part 7 – Timing Constraints Amr Adel Mohammady /amradelm /amradelm
  • 2. /amradelm /amradelm Free Palestine Free Palestine Introduction 2 • In the previous parts we went through all the CDC solutions and schemes. • In this part we will discuss the timing constraints associated with these schemes. • We mentioned that CDC paths are asynchronous and therefore can’t be analyzed with static timing analysis. ‘ • That’s why, in the past, the most common approach was applying false paths on CDC paths. We will see how that may lead to major issues. • It turns out we still need some timing constraints to enforce some assumptions we made when designing the CDC circuit CDC Handshake Protocol CDC FIFO CDC Synchronizers
  • 3. /amradelm /amradelm Free Palestine Free Palestine 1st (Trial) Solution : Apply False Path 3
  • 4. /amradelm /amradelm Free Palestine Free Palestine What is a False Path? • False paths are timing paths that can’t possibly occur due to the logic of the circuit • Consider the example below: o Both muxes have the same select signal. This means we have 2 possible timing paths. The one going through both red logics (200 + 300 = 500𝑝𝑠) and the one going through both blue logics (100 + 500 = 600𝑝𝑠) o The paths going through a red logic then a blue logic (200 + 500 = 700𝑝𝑠) or blue logic then red logic (100 + 300 = 400𝑝𝑠) is impossible to happen. o Unless we instruct the tool to ignore these false paths, they will be considered for timing analysis leading to the large 𝑇𝑐𝑜𝑚𝑏 of the red to blue path which will violate setup. 4 0 0 1 1 sel 200𝑝𝑠 100𝑝𝑠 500𝑝𝑠 300𝑝𝑠 𝑝𝑜𝑠𝑠𝑖𝑏𝑙𝑒 𝑝𝑎𝑡ℎ𝑠
  • 5. /amradelm /amradelm Free Palestine Free Palestine What Would Happen With A False Path Constraint? • Applying false path will make the tool ignore the timing of the paths and therefore may create unnecessary delay that breaks our CDC circuit. o The tool might: ▪ Place the launch and capture FF far apart. ▪ Create unnecessarily long routes. ▪ Add unnecessary buffers in the routes. ▪ Use slow cells/FFs to save power. o We will see how this may break our CDC circuits. We will consider 2 examples ▪ CDC Mux ▪ CDC Gray Coding 5 Possible Schematic of a very relaxed Path
  • 6. /amradelm /amradelm Free Palestine Free Palestine CDC Mux Scheme And False Path 6 Let's review the CDC MUX scheme1: • The data goes directly to the Rx domain MUX • The enable goes to the Rx domain through FF synchronizers 1 • The data reaches the MUX quickly since no FF exist in the way. • The enable is still going through the FF syncs 2 • After some time, the enable arrives at the MUX and opens the gate for the data. • Since the enable is synchronized, it's guaranteed with STA that the gate will open without violating setup or hold time and therefore the data won't cause metastability 3 EN D D D EN EN You can watch an animation of this here : https://lnkd.in/en-iuNPx [1] :
  • 7. /amradelm /amradelm Free Palestine Free Palestine CDC Mux Scheme And False Path 7 Now let’s consider the faulty behavior with a false path constraint applied1 • The data goes to the Rx domain MUX • The enable goes to the Rx domain through FF synchronizers 1 • The data takes a long time to reach the MUX due to the logic delay. • The enable reaches the MUX and opens the gate 2 • After some time, the data arrives at the MUX after the enable. • The data is a domain 1 signal arriving at domain 2 FF. Metastability happens 3 EN D D D EN EN Metastability! You can watch an animation of this here : https://lnkd.in/en-iuNPx [1] :
  • 8. /amradelm /amradelm Free Palestine Free Palestine CDC Gray Coding And False Path 8 Now let’s see the faulty behavior with CDC Gray coding • Initially the Rx sees gray code 110 (decimal 4) • After that we send gray code 111 (decimal 5) 1 • We then send gray code 101 (decimal 6) • Due to the long delay on the LSB line, the logic “1” from decimal 5 didn’t reach the Rx yet. • Now the Rx sees two bit changing and may jump to wrong count 2 You can watch an animation of this here : https://lnkd.in/ejkpFvZR [1] : 5 4 1 1 1 1 1 0 6 4 1 0 1 1 1 0 1 Multiple bits are changing at the same time. The Gray code is violated
  • 9. /amradelm /amradelm Free Palestine Free Palestine 2nd (Trial) Solution : Don’t Apply False Path 9
  • 10. /amradelm /amradelm Free Palestine Free Palestine What Could Happen Without a False Path Constraints? • By default, the tool will assume the 2 CDC clocks are synchronous and will run STA on any path between them. • This will lead to one of 2 issues: o If the clock skew between the 2 clocks is small, the path will be very tight and won’t meet timing. The synthesis and PnR tools will spend a lot of effort trying to fix the path1. o If the clock skew between the 2 clocks is large, the path will be relaxed and may meet timing with a large setup margin. ▪ The tool might add delay (for example, to save power) ▪ We get the same issue of applying a false path constraint 10 Small Skew Case 𝑇𝑙𝑎𝑢𝑛𝑐ℎ_𝑒𝑑𝑔𝑒 𝑇𝑐𝑎𝑝𝑡𝑢𝑟𝑒_𝑒𝑑𝑔𝑒 𝑇𝑐𝑞 𝑇𝑐𝑜𝑚𝑏 𝑇𝑠𝑒𝑡𝑢𝑝 Large Skew Case 𝑇𝑙𝑎𝑢𝑛𝑐ℎ_𝑒𝑑𝑔𝑒 𝑇𝑐𝑎𝑝𝑡𝑢𝑟𝑒_𝑒𝑑𝑔𝑒 𝑇𝑐𝑞 𝑇𝑐𝑜𝑚𝑏 𝑇𝑠𝑒𝑡𝑢𝑝 The tools ignore less critical paths and focus on the critical ones. This will lead to real paths being masked by fake CDC violations [1] :
  • 11. /amradelm /amradelm Free Palestine Free Palestine 3rd (Correct) Solution : Skew Constraint 11
  • 12. /amradelm /amradelm Free Palestine Free Palestine What is A Skew Constraint • Skew checks constraint the arrival difference between 2 signals or more. • In the example below we have a data bus of 4 bits. The bits should arrive close to each other with a difference no more than 3ns. This means the difference between the latest bit to arrive and the earliest bit to arrive shouldn’t exceed 3ns. • To fix skew violations we need to speed up slow signals and/or slow down fast ones.
  • 13. /amradelm /amradelm Free Palestine Free Palestine CDC Gray Coding And Skew Constraint 13 Without A Skew Constraint With A Skew Constraint Buffers are added by the tool on the other paths to balance with the LSB route delay.
  • 14. /amradelm /amradelm Free Palestine Free Palestine The Issue With This Approach • The main issue with this approach is that it needs lots of manual efforts • If we have multiple CDC paths, we need to identify each group of signals and add skew constraints for them • We will try another easier approach 14 Group 1 Group 4 Group 2 Group 5 Group 3 Group 6
  • 15. /amradelm /amradelm Free Palestine Free Palestine 4th (Best) Solution : Max Delay Constraint 15
  • 16. /amradelm /amradelm Free Palestine Free Palestine Max and Min Delays • Sometimes we want to control the arrival time of a signal. • In the example below, it’s required that signal A arrives at the memory block no eariler than 10ns and no later than 30ns after the clock edge. • To constraint signal A to follow this requirement we need to apply a min delay constraint of 10ns and a max delay of 30ns1. https://docs.amd.com/r/2021.2-English/ug903-vivado-using-constraints/Min/Max-Delays More details : Don’t apply the constraint from the Q pin of the FF but from the CK pin. Otherwise, the setup and hold timing paths of the FF will be broken [1] :
  • 17. /amradelm /amradelm Free Palestine Free Palestine Max Delay Constraint • The best approach is to add a max delay constraint with an amount small enough that the CDC paths are not broken • What makes this approach easy is that it can applied to all CDC paths with one line1 so it doesn’t need manual work: • pt_shell> set_max_delay 4.0 -from CLK1 -to CLK2 • What remains now is what value to use for the max delay constraint. o In some cases, we need to apply the Tx clock period o In other cases, we need to apply the Rx clock period o In other cases, we need to apply multiple clock periods. o We will use the worst case (smallest) instead of applying a specific max delay value for each • The value used for max delay might be too tight for some CDC paths. In that case, we can resort to skew constraint ≤ 𝟒 𝒏𝒔 ≤ 𝟒 𝒏𝒔 ≤ 𝟒 𝒏𝒔 In some tools, the max delay constraint overwrites the setup constraints, but in others, it won’t. Depending on your tool, you might need to first apply a false path on the setup constraint then apply the max delay constraint : Timing constraints for clock-domain crossings. #sta #cdc (github.com) [1] :
  • 18. /amradelm /amradelm Free Palestine Free Palestine References 18 1) https://gist.github.com/brabect1/7695ead3d79be47576890bbcd61fe426 2) Y. Mirsky, O. Tsarfaty, D. Stein, & O. Winner, “Timing Analysis of Unconstrained Clock Domain Crossings – the Need and the Method,” 3) O. Dasa, Y. Mirsky “A New Approach to Easily Resolve the Hidden Timing Dangers of False Path Constraints on Clock Domain Crossings”