<@U018LA3KZCJ> <@U0169AQ41L6> Starting a thread to...
# openroad
a
@User @User Starting a thread to discuss the CTS results I'm seeing on my design
Firstly, CTS on my macros looks reasonable. Here's the register file. Skew is good, and overall delay seems reasonable (maybe a bit high?)
Copy code
===========================================================================
 report_clock_skew
============================================================================
Clock CLK
Latency      CRPR       Skew
_59544_/CLK ^
   3.90
_59544_/CLK ^
   3.53     -0.37       0.00
CTS on my top level design is not so good. Very high skew and very high max delay:
Copy code
===========================================================================
 report_clock_skew
============================================================================
Clock wb_clk_i
Latency      CRPR       Skew
_129424_/CLK ^
  12.04
_127204_/CLK ^
   6.52      0.00       5.52/tmp/
Perhaps it has something to do with the macro blockages?
m
Can you highlight 129424 in the picture? You have some parts of the clock tree going way off near the top of the design.
a
@User will do
Interesting that the quickest and slowest clock path are very close to each other, just under the top macro and in the center horizontally
I'll look through the CTS logs to see if I can get more info on these two paths
m
That's surprising. Can you package the cts step as a testcase to look at? Its hard to see too much from the image
a
Yeah, I'll do that
There's a false path between the main clock and the jtag clock. Fixing my timing constraints and retesting.
m
@User Thanks for sharing this. if you aren't skipping the in-to-reg paths or did not update your sdc to take into account multicorners. Then you ll end up with skews like this. Is the paths failing part of the "async_group"?
a
The skews are much better now I've separated the main clock and jtag clock. This is what I have for my sdc file now (does it look reasonable?) https://github.com/antonblanchard/microwatt-mpw5/blob/20220218/openlane/user_project_wrapper/base.sdc I'm completely out of my depth with multicorner timing, so let me know if you spot any issues.
I haven't constrained the rest of the I/Os since they are just used as GPIOs