The-OpenROAD-Project / OpenROAD

OpenROAD's unified application implementing an RTL-to-GDS Flow. Documentation at https://openroad.readthedocs.io/en/latest/
https://theopenroadproject.org/
BSD 3-Clause "New" or "Revised" License
1.42k stars 496 forks source link

cts not honoring fanout limits #5306

Open gadfort opened 6 days ago

gadfort commented 6 days ago

Describe the bug

CTS does not appear to be honoring fanout limits in ihp130.

Pin                                   Limit Fanout  Slack
---------------------------------------------------------
clkbuf_leaf_11_clk/X                      8     14     -6 (VIOLATED)
clkbuf_leaf_12_clk/X                      8     14     -6 (VIOLATED)
clkbuf_leaf_16_clk/X                      8     14     -6 (VIOLATED)
clkbuf_leaf_29_clk/X                      8     14     -6 (VIOLATED)
clkbuf_leaf_41_clk/X                      8     14     -6 (VIOLATED)

Expected Behavior

No DRV violations from CTS

Environment

Jenkins CI runner

To Reproduce

aes with ihp130 from ORFS (in jenkins CI so should be reprodusable)

Relevant log output

Pin                                   Limit Fanout  Slack
---------------------------------------------------------
clkbuf_leaf_11_clk/X                      8     14     -6 (VIOLATED)
clkbuf_leaf_12_clk/X                      8     14     -6 (VIOLATED)
clkbuf_leaf_16_clk/X                      8     14     -6 (VIOLATED)
clkbuf_leaf_29_clk/X                      8     14     -6 (VIOLATED)
clkbuf_leaf_41_clk/X                      8     14     -6 (VIOLATED)
clkbuf_leaf_9_clk/X                       8     14     -6 (VIOLATED)
clkbuf_leaf_13_clk/X                      8     13     -5 (VIOLATED)
clkbuf_leaf_17_clk/X                      8     13     -5 (VIOLATED)
clkbuf_leaf_20_clk/X                      8     13     -5 (VIOLATED)
clkbuf_leaf_28_clk/X                      8     13     -5 (VIOLATED)
clkbuf_leaf_40_clk/X                      8     13     -5 (VIOLATED)
clkbuf_leaf_48_clk/X                      8     13     -5 (VIOLATED)
clkbuf_leaf_53_clk/X                      8     13     -5 (VIOLATED)
clkbuf_leaf_55_clk/X                      8     13     -5 (VIOLATED)
clkbuf_leaf_5_clk/X                       8     13     -5 (VIOLATED)
clkbuf_leaf_19_clk/X                      8     12     -4 (VIOLATED)
clkbuf_leaf_22_clk/X                      8     12     -4 (VIOLATED)
clkbuf_leaf_23_clk/X                      8     12     -4 (VIOLATED)
clkbuf_leaf_25_clk/X                      8     12     -4 (VIOLATED)
clkbuf_leaf_35_clk/X                      8     12     -4 (VIOLATED)
clkbuf_leaf_46_clk/X                      8     12     -4 (VIOLATED)
clkbuf_leaf_54_clk/X                      8     12     -4 (VIOLATED)
clkbuf_leaf_0_clk/X                       8     11     -3 (VIOLATED)
clkbuf_leaf_15_clk/X                      8     11     -3 (VIOLATED)
clkbuf_leaf_1_clk/X                       8     11     -3 (VIOLATED)
clkbuf_leaf_21_clk/X                      8     11     -3 (VIOLATED)
clkbuf_leaf_34_clk/X                      8     11     -3 (VIOLATED)
clkbuf_leaf_52_clk/X                      8     11     -3 (VIOLATED)
clkbuf_leaf_57_clk/X                      8     11     -3 (VIOLATED)
clkbuf_3_1_0_clk/X                        8     10     -2 (VIOLATED)
clkbuf_3_2_0_clk/X                        8     10     -2 (VIOLATED)
clkbuf_leaf_10_clk/X                      8     10     -2 (VIOLATED)
clkbuf_leaf_2_clk/X                       8     10     -2 (VIOLATED)
clkbuf_leaf_32_clk/X                      8     10     -2 (VIOLATED)
clkbuf_leaf_38_clk/X                      8     10     -2 (VIOLATED)
clkbuf_leaf_39_clk/X                      8     10     -2 (VIOLATED)
clkbuf_leaf_45_clk/X                      8     10     -2 (VIOLATED)
clkbuf_leaf_51_clk/X                      8     10     -2 (VIOLATED)
clkbuf_leaf_7_clk/X                       8     10     -2 (VIOLATED)
clkbuf_leaf_8_clk/X                       8     10     -2 (VIOLATED)
clkbuf_3_0_0_clk/X                        8      9        (VIOLATED)
clkbuf_3_6_0_clk/X                        8      9        (VIOLATED)
clkbuf_leaf_30_clk/X                      8      9        (VIOLATED)
clkbuf_leaf_31_clk/X                      8      9        (VIOLATED)
clkbuf_leaf_33_clk/X                      8      9        (VIOLATED)
clkbuf_leaf_3_clk/X                       8      9        (VIOLATED)
clkbuf_leaf_42_clk/X                      8      9        (VIOLATED)

Screenshots

No response

Additional Context

No response

maliberty commented 6 days ago

I don't see such errors in the latest CI (https://jenkins.openroad.tools/blue/rest/organizations/jenkins/pipelines/OpenROAD-flow-scripts-Nightly-Public/runs/4174/nodes/1246/log/?start=0)

gadfort commented 6 days ago

@maliberty it's in the timing report (for CTS) in the uploaded artifacts (I'm not sure why the CI is not showing the timing in the log). I'm sorry I should have mentioned that in the original post.

https://jenkins.openroad.tools/job/OpenROAD-flow-scripts-Public/job/public_tests_all/job/master/1285/artifact/flow/final_report_aes_ihp-sg13g2_base_2024-06-28_14-31.tar.gz

4_cts_final.txt

maliberty commented 6 days ago

@precisionmoon I don't see anything in CTS that checks max fanout. I tried setting export CTS_CLUSTER_SIZE = 8 but that only fixes the leaf clusters and violations remain higher in the tree.