OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

report_clock_skew_metric fails with float OverflowError

Open antonblanchard opened this issue 3 years ago • 1 comments

I starting hitting this after an update to ORFS - commit 90afa768f292 ("metrics: add clock skew report"). The attached test case fails with:

Error: floorplan.tcl, 101 OverflowError in method 'metric_float', argument 2 of type 'float'

Clock skew metrics before CTS seem of little use, but we probably shouldn't fall in a heap. I added:

puts [worst_clock_skew -setup]
puts [worst_clock_skew -hold]

and I get:

1.0000000190432691e+42
1.0000000190432691e+42

That's a lot of skew.

Test case: floorplan_multiply_adder_asap7_base_2022-09-14_14-55.tar.gz

antonblanchard avatar Sep 14 '22 05:09 antonblanchard

@vvbandeira We should move clock_skew inside the include_erc block of report_metrics.

maliberty avatar Sep 14 '22 05:09 maliberty

I am running into this as well. It's preventing me from running very simple designs for the upcoming tutorial.

Even with removing the offending commands, I see:

==========================================================================
check_antennas
--------------------------------------------------------------------------
[WARNING ANT-0011] -report_violating_nets is deprecated.
[INFO GRT-0043] No OR_DEFAULT vias defined.
[INFO ANT-0002] Found 0 net violations.
[INFO ANT-0001] Found 0 pin violations.
[INFO FLW-0007] clock clk period 5.000000
[INFO FLW-0008] Clock clk period -950000041162928859976620080891667939328.000
[INFO FLW-0009] Clock clk slack 1000000043329398871556523614962693701632.000
[ERROR STA-0414] period '-9.500000411629289e+38' is not a positive float.
Error: write_ref_sdc.tcl, 34 STA-0414

rovinski avatar Sep 23 '22 08:09 rovinski

I'll fix the flow to not report clock skew before cts is run. I'll leave this for @jjcherry56 to give a more reasonable result if someone does run it manually.

maliberty avatar Sep 23 '22 14:09 maliberty

It doesn't have anything to do with running cts and moving report_clock_skew will not help. The issue is there are no capture registers to measure skew to, just output pins, which the command reports: % report_clock_skew Clock clk No launch/capture paths found.

I updated opensta to return 0 in this case but did not update openroad.

jjcherry56 avatar Sep 23 '22 16:09 jjcherry56

@rovinski it looks like you don't have any clock constraints at all.

jjcherry56 avatar Sep 23 '22 19:09 jjcherry56

Leaving this open until sta is updated

maliberty avatar Sep 26 '22 22:09 maliberty

@jjcherry56 My case was actually that there was a clock constraint, but there were no input/output constraints and no reg->reg paths, only in->reg and reg->out. https://github.com/The-OpenROAD-Project/OpenROAD-flow-scripts/pull/594 fixes Error: floorplan.tcl, 101 OverflowError in method 'metric_float', argument 2 of type 'float' and https://github.com/The-OpenROAD-Project/OpenSTA/commit/18f11a302958ea6814cd1d711a18ec3eab3c1184 fixes [ERROR STA-0414] period '-9.500000411629289e+38' is not a positive float.. Adding input/output constraints also fixes the second error. Thanks!

rovinski avatar Sep 27 '22 02:09 rovinski