Skip to content

tighten design clocks - #4456

Open
eder-matheus wants to merge 3 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:tighten_design_clocks
Open

tighten design clocks#4456
eder-matheus wants to merge 3 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:tighten_design_clocks

Conversation

@eder-matheus

Copy link
Copy Markdown
Member

[WARNING] Multiple clocks not supported. Will use first clock: core_clock: 0.2500.
designs/nangate45/gcd/rules-base.json updates:

Metric Old New Type
synth__design__instance__area__stdcell 723.0 721.0 Updating
placeopt__design__instance__area 743 952 Updating
placeopt__design__instance__count__stdcell 677 818 Updating
cts__design__instance__count__setup_buffer 59 71 Updating
cts__design__instance__count__hold_buffer 59 71 Updating
cts__timing__setup__ws -0.0529 -0.169 Updating
cts__timing__setup__tns -0.396 -7.07 Updating
cts__timing__hold__ws -0.023 -0.0125 Updating
cts__timing__hold__tns -0.092 -0.05 Updating
globalroute__timing__setup__ws -0.0657 -0.199 Updating
globalroute__timing__setup__tns -0.51 -8.29 Updating
globalroute__timing__hold__ws -0.023 -0.0125 Updating
globalroute__timing__hold__tns -0.092 -0.05 Updating
detailedroute__route__wirelength 4818 7219 Updating
finish__timing__setup__ws -0.0559 -0.193 Updating
finish__timing__setup__tns -0.404 -7.99 Updating
finish__timing__hold__ws -0.023 -0.0125 Updating
finish__timing__hold__tns -0.092 -0.05 Updating
finish__design__instance__area 980 1115 Updating

[WARNING] Multiple clocks not supported. Will use first clock: clk: 2.0000.
designs/nangate45/dynamic_node/rules-base.json updates:

Metric Old New Type
synth__design__instance__area__stdcell 24000.0 24900.0 Updating
placeopt__design__instance__area 25239 27915 Updating
placeopt__design__instance__count__stdcell 12066 14957 Updating
cts__design__instance__count__setup_buffer 1049 1301 Updating
cts__design__instance__count__hold_buffer 1049 1301 Updating
cts__timing__setup__ws -0.362 -1.13 Updating
cts__timing__setup__tns -1.45 -952.0 Updating
cts__timing__hold__ws -0.3 -0.1 Updating
cts__timing__hold__tns -1.2 -0.4 Updating
globalroute__timing__setup__ws -0.38 -1.14 Updating
globalroute__timing__setup__tns -1.49 -800.0 Updating
globalroute__timing__hold__ws -0.3 -0.1 Updating
globalroute__timing__hold__tns -1.2 -0.4 Updating
detailedroute__route__wirelength 208117 256231 Updating
finish__timing__setup__ws -0.344 -1.11 Updating
finish__timing__setup__tns -1.32 -821.0 Updating
finish__timing__hold__ws -0.3 -0.1 Updating
finish__timing__hold__tns -1.2 -0.4 Updating
finish__design__instance__area 26188 30878 Updating

designs/asap7/jpeg/rules-base.json updates:

Metric Old New Type
synth__design__instance__area__stdcell 7008.24 7690.0 Updating
placeopt__design__instance__area 7105 8104 Updating
placeopt__design__instance__count__stdcell 59181 67209 Updating
cts__design__instance__count__setup_buffer 5146 5844 Updating
cts__design__instance__count__hold_buffer 5146 5844 Updating
cts__timing__setup__ws -34.0 -123.0 Updating
cts__timing__setup__tns -136.0 -24400.0 Updating
cts__timing__hold__ws -34.0 -27.2 Updating
cts__timing__hold__tns -136.0 -109.0 Updating
globalroute__timing__setup__ws -34.0 -129.0 Updating
globalroute__timing__setup__tns -136.0 -30200.0 Updating
globalroute__timing__hold__ws -34.0 -27.2 Updating
globalroute__timing__hold__tns -136.0 -109.0 Updating
detailedroute__route__wirelength 172630 209390 Updating
finish__timing__setup__ws -34.0 -117.0 Updating
finish__timing__setup__tns -136.0 -22800.0 Updating
finish__timing__hold__ws -34.0 -27.2 Updating
finish__timing__hold__tns -136.0 -109.0 Updating
finish__design__instance__area 7253 8497 Updating

[WARNING] Multiple clocks not supported. Will use first clock: CLK: 3.4000.
designs/nangate45/bp_multi_top/rules-base.json updates:

Metric Old New Type
placeopt__design__instance__area 574454 572379 Updating
placeopt__design__instance__count__stdcell 104245 99445 Updating
cts__design__instance__count__setup_buffer 9065 8647 Updating
cts__design__instance__count__hold_buffer 9065 8647 Updating
cts__timing__setup__ws -0.24 -0.35 Updating
cts__timing__setup__tns -0.96 -0.86 Updating
cts__timing__hold__ws 0.0 -0.17 Updating
cts__timing__hold__tns 0.0 -0.68 Updating
globalroute__antenna_diodes_count 0 103 Updating
globalroute__timing__setup__ws -0.24 -0.434 Updating
globalroute__timing__setup__tns -0.96 -0.944 Updating
globalroute__timing__hold__ws -0.24 -0.17 Updating
globalroute__timing__hold__tns -0.96 -0.68 Updating
detailedroute__route__wirelength 4231362 3889222 Updating
detailedroute__antenna_diodes_count 5 103 Updating
finish__timing__setup__ws -0.24 -0.362 Updating
finish__timing__setup__tns -0.96 -0.872 Updating
finish__timing__hold__ws -0.0317 -0.17 Updating
finish__timing__hold__tns -0.96 -0.68 Updating
finish__design__instance__area 581042 579401 Updating

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
@eder-matheus eder-matheus self-assigned this Aug 21, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the OpenROAD submodule and tightens the clock periods for the jpeg_encoder and gcd designs, resulting in updated baseline rules (such as area, wirelength, and timing slack) across several test cases. However, the feedback highlights that these clock period reductions introduce severe timing violations. Specifically, in gcd, the 0.25 ns clock period combined with hardcoded clock latency leaves insufficient time for the data path, while in jpeg_encoder, the 545 ps target severely over-constrains the design, causing massive setup Total Negative Slack (TNS) that could destabilize regression tests.

Comment thread flow/designs/nangate45/gcd/constraint.sdc
Comment thread flow/designs/asap7/jpeg/jpeg_encoder15_7nm.sdc
@eder-matheus
eder-matheus requested a review from maliberty August 21, 2026 16:09
@openroad-ci

openroad-ci commented Aug 21, 2026

Copy link
Copy Markdown
Member

🔍 QoR check

Metrics reflect the PR merge build — i.e. what will land on the target branch. Advisory — results are log-only and do not affect build status. The authoritative QoR gate remains the local rules-file check.

Commit cddfb29 · Jenkins build #2 · Baseline: build

62 design(s) checked — 4 with regression(s), 0 without a comparable baseline.
Design Variant Verdict local vs inline passed / failed / missing
asap7/aes base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/aes-block base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/aes-mbff base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/aes_lvt base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/cva6 base ✅ pass ✅ MATCH 12 / 0 / 0
asap7/ethmac base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/ethmac_lvt base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/gcd base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/gcd-ccs base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/jpeg base ❌ fail ⚠️ MISMATCH 18 / 7 / 0
asap7/jpeg_lvt base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/mock-alu base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/mock-cpu base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/riscv32i-mock-sram base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/swerv_wrapper base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/uart base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/aes base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/aes-hybrid base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 0
gf180/uart-blocks base ✅ pass ✅ MATCH 25 / 0 / 0
gt2n/aes base ✅ pass ✅ MATCH 25 / 0 / 0
gt2n/gcd base ✅ pass ✅ MATCH 25 / 0 / 0
gt2n/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/aes base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/gcd base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/i2c-gpio-expander base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 0
ihp-sg13g2/spi base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/aes base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/ariane133 base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/ariane136 base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/black_parrot base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/bp_be_top base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/bp_fe_top base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/bp_multi_top base ❌ fail ⚠️ MISMATCH 24 / 1 / 0
nangate45/cva6 base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/dynamic_node base ❌ fail ⚠️ MISMATCH 17 / 8 / 0
nangate45/gcd base ❌ fail ⚠️ MISMATCH 15 / 10 / 0
nangate45/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/mempool_group base ✅ pass ✅ MATCH 12 / 0 / 0
nangate45/swerv base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/swerv_wrapper base ✅ pass ✅ MATCH 25 / 0 / 0
nangate45/tinyRocket base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/aes base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/chameleon base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/gcd base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/microwatt base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hd/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hs/aes base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hs/gcd base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hs/ibex base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hs/jpeg base ✅ pass ✅ MATCH 25 / 0 / 0
sky130hs/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 0
❌ asap7/jpeg base — 7 failing metric(s)
Metric target base delta limit band
cts__timing__setup__tns -24318.5 -1.61149 1508969.2464737603% -137.61149 PeriodPadding 20%
cts__timing__setup__ws -95.7394 -1.61149 5841.048346561257% -35.61149 PeriodPadding 5.0%
finish__timing__setup__tns -22664 0 -136.0 PeriodPadding 20%
finish__timing__setup__ws -89.7057 6.6317 -1452.6803082165961% -34.0 PeriodPadding 5.0%
globalroute__timing__setup__tns -30095.7 -8.03713 374358.2954363062% -144.03713 PeriodPadding 20%
globalroute__timing__setup__ws -101.623 -3.338 2944.42780107849% -37.338 PeriodPadding 5.0%
placeopt__design__instance__count__stdcell 58443 50695 15.283558536344808% 58299.25 Padding 15%
❌ nangate45/bp_multi_top base — 1 failing metric(s)
Metric target base delta limit band
globalroute__timing__setup__ws -0.264436 0.888505 -129.7619034220404% -0.24 PeriodPadding 5.0%
❌ nangate45/dynamic_node base — 8 failing metric(s)
Metric target base delta limit band
cts__timing__setup__tns -793.073 0 -1.2 PeriodPadding 20%
cts__timing__setup__ws -1.02793 0.0124922 -8328.574630569476% -0.3 PeriodPadding 5.0%
finish__design__instance__area 26850.3 22308.6 20.358516446572175% 25654.89 Padding 15%
finish__timing__setup__tns -820.522 0 -1.2 PeriodPadding 20%
finish__timing__setup__ws -1.01389 0.0386814 -2721.130569214144% -0.3 PeriodPadding 5.0%
globalroute__timing__setup__tns -799.306 0 -1.2 PeriodPadding 20%
globalroute__timing__setup__ws -1.04446 0.00328015 -31941.836501379512% -0.3 PeriodPadding 5.0%
placeopt__design__instance__count__stdcell 13006 11305 15.046439628482972% 13000.75 Padding 15%
❌ nangate45/gcd base — 10 failing metric(s)
Metric target base delta limit band
cts__timing__setup__tns -7.02464 0 -0.092 PeriodPadding 20%
cts__timing__setup__ws -0.156759 0.00545863 -2971.7645269967006% -0.023 PeriodPadding 5.0%
detailedroute__route__wirelength 6277 3625 73.15862068965517% 4168.75 Padding 15%
finish__design__instance__area 969.836 683.354 41.92292720903075% 785.8571 Padding 15%
finish__timing__setup__tns -7.93732 0 -0.092 PeriodPadding 20%
finish__timing__setup__ws -0.180601 0.016009 -1228.1216815541259% -0.023 PeriodPadding 5.0%
globalroute__timing__setup__tns -8.23991 0 -0.092 PeriodPadding 20%
globalroute__timing__setup__ws -0.186904 0.000752287 -24944.773337835162% -0.023 PeriodPadding 5.0%
placeopt__design__instance__area 827.526 671.65 23.207920792079207% 772.3975 Padding 15%
placeopt__design__instance__count__stdcell 711 606 17.326732673267326% 696.9 Padding 15%

…ate/OpenROAD-flow-scripts into tighten_design_clocks

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants