Interface Timing Challenges and Solutions at Block Level
Interface Timing Challenges and Solutions at Block Level
Interface Timing Challenges and Solutions at Block Level
| Company | D&R China | dr-embedded.com | Wiki | Login | Subscribe to D&R SoC News Alert
SEARCH IP NEWS INDUSTRY ARTICLES BLOGS VIDEOS SLIDES EVENTS Search Industry Articles
Introduction
timing tool (Primetime in our case) Maximizing Performance & Reliability for
Flash Applications with Synopsys xSPI
2. IO timing miscorrelation at the block level and the top-level Solution
3. Flops placement inside blocks, such that optimization buffer/inverter Leveraging the RISC-V Efficient Trace (E-
count can be reduced Trace) standard
When we take routed design from PnR to Signoff for timing analysis, due to
different EDA tool vendors the IO timing miscorrelation may occur.
https://www.design-reuse.com/articles/47437/interface-timing-challenges-and-solutions-at-block-level.html 1/7
3/17/24, 2:30 PM Interface Timing Challenges and Solutions at Block Level
Different extraction engine at PnR and Signoff Projects
2. System Verilog Assertions Simplified
Mismatch in source Insertion delay at PnR and signoff
3. Dynamic Memory Allocation and
Fragmentation in C and C++
At PnR, Innovus calculates source insertion delay by taking the mean value 4. Design Rule Checks (DRC) - A
of worst corner’s latencies and then apply the same to all the corners. PT Practical View for 28nm Technology
5. Synthesis Methodology & Netlist
does not take source insertion delay from incoming PnR sdc but calculates it
Qualification
separately for each corner. Since PT calculates source insertion delay
independently for each corner using StarRC extraction engine, it is more See the Top 20 >>
accurate than PnR tool.
For example:
E-mail This Article Printer-Friendly Page
While in the case of PT, the source-insertion delay value of each corner is
different.
PT
Innovus Source Source
Clock name Corner name
Insertion delay Insertion
delay
virtual_clock_1 FUNC_125_SETUP_SS_RC_WC 0.379 0.358
FUNC_m40_SETUP_SS_C_WC 0.379 0.388
FUNC_125_HOLD_FF_RC_BC 0.194 0.212
FUNC_m40_HOLD_FF_C_BC 0.194 0.174
virtual_clock_2 FUNC_125_SETUP_SS_RC_WC 0.367 0.377
FUNC_m40_SETUP_SS_C_WC 0.367 0.404
FUNC_125_HOLD_FF_RC_BC 0.185 0.227
FUNC_m40_HOLD_FF_C_BC 0.185 0.188
1. Inappropriate modelling of the driver pin and output load for the IO pins
2. Missing constraints
Block constraints like false paths, multicycle paths, external delays, etc. if
not appropriately provided in the top-level run or vice-versa can result in
huge miscorrelation from block to top-level timing. Few of the other reasons
for IO timing miscorrelations are
Different StarRc and signoff tool recipe or version used at the block
level and top-level
Mismatch in de-rating numbers in the block level and top-level runs
During timing optimization, tool will place the flops based on its internal and
external timing requirements. Often we have more priority to Internal
(Reg2Reg) timing, so flops would be placed a bit far away from the IO ports.
4- Latency requirements
1. If the same skew group flops sit very far from each other (as per figure
1) or
2. If the same skew group flops are placed far away from the block-clock
port (as per figure 2)
The meeting skew between these two flops affects target latency.
https://www.design-reuse.com/articles/47437/interface-timing-challenges-and-solutions-at-block-level.html 2/7
3/17/24, 2:30 PM Interface Timing Challenges and Solutions at Block Level
fig 1
fig 2
IO Timing Solutions
https://www.design-reuse.com/articles/47437/interface-timing-challenges-and-solutions-at-block-level.html 3/7
3/17/24, 2:30 PM Interface Timing Challenges and Solutions at Block Level
Let's discuss some essential characteristic of a clock network before digging
more into how the insertion delay can help in timing.
fig 3
By default, the tool puts all the clock sinks, driven by the same clock, into a
common skew group and balances this with global latency target. Thus, clock
insertion delay is effectively determined by the longest sink’s insertion delay.
To address the IO fixing, we need to either pull or push the violated sinks
such that it does not affect the subsequent timing path.
While pushing tool try to add and for pulling reduces clock buf/inv in the
clock path.
In2Reg
Reg2Reg Reg2Out
After
After clock- After clock-
Setup Default Default Default clock-
insertion insertion
mode Reg2Reg In2Reg Reg2Out insertion
delay delay
delay
setting setting
setting
WNS(ns) -0.04 -0.214 -0.155 -0.045 -0.072 -0.061
TSN(ns) -2.255 -55.47 -36.268 -2.381 -3.61 -2.782
FEP 138 3895 1025 145 114 78
Table 3: Timing-Summary
As shown in Table 3, we were able to fix IO timing with this approach, and
also made sure that it’s not affecting the internal timing.
It is not always necessary that we will get the desired network delay value as
per our settings due to various challenges, which we have discussed earlier.
In such cases, we have to try with different insertion delay numbers.
https://www.design-reuse.com/articles/47437/interface-timing-challenges-and-solutions-at-block-level.html 4/7
3/17/24, 2:30 PM Interface Timing Challenges and Solutions at Block Level
There is a chance of new internal timing violations because of IO flops’
latency change. For this type of scenario, we can enable useful-skew with
the following set of commands at the placement stage.
Note- The latency values in these commands will be inverted relative to the
set_ccopt_property specification. Therefore, if you want to pull up a pin, the
value of CTS insertion_delay should be positive (0.10ns in our case) and
set_clock_latency value at placement stage should be negative (-0.10ns in
our case).
There is one more way to achieve IO latency if direct pull/push does not
work.
1. Create a dedicated skew group for sinks, which have specific latency
requirement.
2. Specify all these sinks, as exclusive sinks and then specify target
latency. The exclusive skew groups always have an exclusive_sinks_rank
value greater than zero.
3. Once an exclusive skew group is created, CCOpt assigns that exclusive
skew group a rank one greater than the highest existing skew group.
https://www.design-reuse.com/articles/47437/interface-timing-challenges-and-solutions-at-block-level.html 5/7
3/17/24, 2:30 PM Interface Timing Challenges and Solutions at Block Level
“Launch” path
There are few more approaches that can be used for remaining minor IO
timing violations such as:
Conclusion
There can be multiple reasons for IO timing violations and therefore you
should select the appropriate approach based on the scenario. The solutions
provided in this article can help designer to understand interface timing
associated challenges and solutions. To simplify IO timing closure not all
solutions are applicable to a particular design, but a mix of these solutions
can helps the design team to achieve desired results.
References:
Authors:
Contact eInfochips
Your Name:
Your E-mail address:
Your Company address:
Your Phone Number:
Write your message:
https://www.design-reuse.com/articles/47437/interface-timing-challenges-and-solutions-at-block-level.html 6/7
3/17/24, 2:30 PM Interface Timing Challenges and Solutions at Block Level
send
Partner with us List your Products Design-Reuse.com © 2024 Design And Reuse
Suppliers, list your IPs for free. Contact Us All Rights Reserved.
About us
D&R Partner Program No portion of this site may be copied, retransmitted,
Advertise with Us reposted, duplicated or otherwise used without the
Partner with us List your Products Privacy Policy express written permission of Design And Reuse.
https://www.design-reuse.com/articles/47437/interface-timing-challenges-and-solutions-at-block-level.html 7/7