Skip to content

Update metrics after GRT blocked tracks fix - #4417

Merged
eder-matheus merged 8 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:update-metrics-grt-fix-blocked-tracks
Aug 13, 2026
Merged

Update metrics after GRT blocked tracks fix#4417
eder-matheus merged 8 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:update-metrics-grt-fix-blocked-tracks

Conversation

@jfgava

@jfgava jfgava commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Microwatt is very sensitive to placement changes. I'm having timeout issues during DRT due to multiple loops after antenna repairs. To fix this, I limited the number of repair_antennas iterations during DRT (5 -> 2). I can take a deeper look later

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

Metric Old New Type
globalroute__timing__setup__tns -1480.0 -1890.0 Failing
finish__timing__setup__ws -81.2 -80.6 Tighten
finish__timing__setup__tns -31800.0 -12100.0 Tighten

designs/gf180/aes-hybrid/rules-base.json updates:

Metric Old New Type
cts__timing__setup__tns -123.0 -129.0 Failing
globalroute__timing__setup__tns -169.0 -144.0 Tighten
finish__timing__setup__tns -168.0 -144.0 Tighten

designs/gf180/riscv32i/rules-base.json updates:

Metric Old New Type
globalroute__timing__setup__tns -3.2 -5.5 Failing
finish__timing__setup__tns -2.85 -5.5 Failing

designs/sky130hd/chameleon/rules-base.json updates:

Metric Old New Type
cts__timing__setup__ws -2.67 -3.26 Failing
cts__timing__setup__tns -114.0 -136.0 Failing
globalroute__antenna_diodes_count 224 179 Tighten
globalroute__timing__setup__ws -2.32 -2.96 Failing
globalroute__timing__setup__tns -42.9 -48.8 Failing
detailedroute__route__wirelength 725303 853725 Failing
detailedroute__antenna_diodes_count 158 125 Tighten
finish__timing__setup__ws -2.06 -2.66 Failing
finish__timing__setup__tns -39.9 -41.9 Failing

designs/sky130hd/gcd/rules-base.json updates:

Metric Old New Type
placeopt__design__instance__area 4681 4663 Tighten
placeopt__design__instance__count__stdcell 552 550 Tighten
cts__timing__setup__tns -60.9 -64.3 Failing
globalroute__timing__setup__tns -71.6 -71.9 Failing
detailedroute__route__wirelength 13026 11307 Tighten
finish__design__instance__area 5996 5812 Tighten

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

Metric Old New Type
globalroute__timing__setup__tns -1.2 -3.0 Failing
detailedroute__antenna__violating__nets 1 0 Tighten
detailedroute__antenna_diodes_count 108 100 Tighten

designs/nangate45/swerv_wrapper/rules-base.json updates:

Metric Old New Type
globalroute__timing__setup__ws -0.466 -0.457 Tighten
detailedroute__antenna_diodes_count 106 105 Tighten
finish__timing__setup__tns -384.0 -394.0 Failing
finish__design__instance__area 734366 733977 Tighten

designs/sky130hd/microwatt/rules-base.json updates:

Metric Old New Type
synth__canonical_netlist__hash ac96d25af26f4c444d6d33c37bcbe873ae3330f7 2bfce367a7b9e450c60e37954e2129f0b0d0018c Failing
synth__netlist__hash ef0ae6eee3a802961bdd11bae631bb23692b1abe 9ad86d2c1fc49d89f16f179403a07403d067c7b4 Failing
synth__design__instance__area__stdcell 677000.0 676000.0 Tighten
cts__timing__setup__ws -2.32 -2.1 Tighten
cts__timing__setup__tns -254.0 -219.0 Tighten
globalroute__antenna_diodes_count 4314 4098 Tighten
globalroute__timing__setup__tns -269.0 -263.0 Tighten
detailedroute__antenna__violating__nets 8 96 Failing
detailedroute__antenna_diodes_count 2725 2336 Tighten
finish__timing__setup__ws -2.16 -2.14 Tighten
finish__timing__setup__tns -227.0 -221.0 Tighten
finish__design__instance__area 5568932 5568093 Tighten

Related to #11093

CI Could not Update Rules

[ERROR] asap7/tinyRocket skipped. File 'rules-base.json' not found. Please create the file with 'make update_rules'.

Messages from CI

[INFO] asap7/minimal not included in CI.
[INFO] gf12 not included in the update.
[INFO] gf55 not included in the update.
[INFO] nangate45/bp_quad not included in CI.

jfgava added 3 commits August 11, 2026 21:49
Signed-off-by: Jonas Gava <jfgava@precisioninno.com>
Signed-off-by: Jonas Gava <jfgava@precisioninno.com>
Signed-off-by: Jonas Gava <jfgava@precisioninno.com>
@jfgava jfgava self-assigned this Aug 12, 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 commit and adjusts the baseline rules across multiple designs to reflect changes in timing, area, wirelength, and antenna diode counts. However, limiting MAX_REPAIR_ANTENNAS_ITER_DRT to 2 in the microwatt configuration introduces a severe regression, increasing antenna violating nets from 8 to 96. It is recommended to address the root cause of the timeout or looping issue in DRT rather than capping the repair iterations.

# GRT non-default config
export FASTROUTE_TCL = $(DESIGN_HOME)/$(PLATFORM)/$(DESIGN_NICKNAME)/fastroute.tcl

export MAX_REPAIR_ANTENNAS_ITER_DRT = 2

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.

high

Limiting MAX_REPAIR_ANTENNAS_ITER_DRT to 2 introduces a major regression, increasing antenna violating nets from 8 to 96. Capping the repair iterations to bypass timeouts compromises physical design integrity. The timeout/looping issue in DRT should be resolved at the root level rather than reducing the repair iterations.

@jfgava jfgava Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Agree. After Yosys 0.68 update, the number of diodes in DRT increased from 1700 to 2700. The problems with antennas got worse. With the new computation of blocked tracks, placement (routability) is affected, which affects all subsequent steps. The DRT step alone took more than 2h with 5 iterations of repair antennas. I can investigate this later

jfgava added 2 commits August 12, 2026 16:55
Signed-off-by: Jonas Gava <jfgava@precisioninno.com>
…ROAD-flow-scripts into update-metrics-grt-fix-blocked-tracks
@openroad-ci

openroad-ci commented Aug 12, 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 00f18d0 · Jenkins build #5 · Baseline: build

61 design(s) checked — 12 with regression(s), 0 without a comparable baseline.
Design Variant Verdict local vs inline passed / failed / missing
asap7/aes base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/aes-block base ✅ pass ✅ MATCH 25 / 0 / 0
asap7/aes-mbff base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/aes_lvt base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/cva6 base ✅ pass ✅ MATCH 12 / 0 / 2
asap7/ethmac base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/ethmac_lvt base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/gcd base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/gcd-ccs base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/ibex base ❌ fail ⚠️ MISMATCH 24 / 1 / 2
asap7/jpeg base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/jpeg_lvt base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/mock-alu base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/mock-cpu base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/riscv32i-mock-sram base ❌ fail ⚠️ MISMATCH 24 / 1 / 2
asap7/swerv_wrapper base ✅ pass ✅ MATCH 25 / 0 / 2
asap7/uart base ✅ pass ✅ MATCH 25 / 0 / 2
gf180/aes base ✅ pass ✅ MATCH 25 / 0 / 2
gf180/aes-hybrid base ❌ fail ⚠️ MISMATCH 22 / 3 / 2
gf180/ibex base ✅ pass ✅ MATCH 25 / 0 / 2
gf180/jpeg base ✅ pass ✅ MATCH 25 / 0 / 22
gf180/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 2
gf180/uart-blocks base ✅ pass ✅ MATCH 25 / 0 / 2
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 / 2
ihp-sg13g2/gcd base ✅ pass ✅ MATCH 25 / 0 / 2
ihp-sg13g2/i2c-gpio-expander base ✅ pass ✅ MATCH 25 / 0 / 2
ihp-sg13g2/ibex base ❌ fail ⚠️ MISMATCH 24 / 1 / 2
ihp-sg13g2/jpeg base ❌ fail ⚠️ MISMATCH 24 / 1 / 2
ihp-sg13g2/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 2
ihp-sg13g2/spi base ✅ pass ✅ MATCH 25 / 0 / 2
nangate45/aes base ✅ pass ✅ MATCH 25 / 0 / 2
nangate45/ariane133 base ✅ pass ✅ MATCH 25 / 0 / 2
nangate45/ariane136 base ✅ pass ✅ MATCH 25 / 0 / 2
nangate45/black_parrot base ✅ pass ✅ MATCH 25 / 0 / 2
nangate45/bp_be_top base ✅ pass ✅ MATCH 25 / 0 / 2
nangate45/bp_fe_top base ✅ pass ✅ MATCH 25 / 0 / 3
nangate45/bp_multi_top base ✅ pass ✅ MATCH 25 / 0 / 2
nangate45/dynamic_node base ✅ pass ✅ MATCH 25 / 0 / 2
nangate45/gcd base ✅ pass ✅ MATCH 25 / 0 / 2
nangate45/ibex base ✅ pass ✅ MATCH 25 / 0 / 2
nangate45/jpeg base ✅ pass ✅ MATCH 25 / 0 / 2
nangate45/mempool_group base ❌ fail ⚠️ MISMATCH 11 / 1 / 2
nangate45/swerv base ❌ fail ⚠️ MISMATCH 23 / 2 / 2
nangate45/swerv_wrapper base ❌ fail ⚠️ MISMATCH 22 / 3 / 2
nangate45/tinyRocket base ✅ pass ✅ MATCH 25 / 0 / 2
sky130hd/aes base ✅ pass ✅ MATCH 25 / 0 / 4
sky130hd/chameleon base ❌ fail ⚠️ MISMATCH 19 / 6 / 2
sky130hd/gcd base ❌ fail ⚠️ MISMATCH 20 / 5 / 2
sky130hd/ibex base ✅ pass ✅ MATCH 25 / 0 / 3
sky130hd/jpeg base ✅ pass ✅ MATCH 25 / 0 / 2
sky130hd/microwatt base ❌ fail ⚠️ MISMATCH 23 / 2 / 2
sky130hd/riscv32i base ❌ fail ⚠️ MISMATCH 24 / 1 / 2
sky130hs/aes base ✅ pass ✅ MATCH 25 / 0 / 4
sky130hs/gcd base ✅ pass ✅ MATCH 25 / 0 / 4
sky130hs/ibex base ✅ pass ✅ MATCH 25 / 0 / 4
sky130hs/jpeg base ✅ pass ✅ MATCH 25 / 0 / 2
sky130hs/riscv32i base ✅ pass ✅ MATCH 25 / 0 / 2
❌ asap7/ibex base — 1 failing metric(s)
Metric target base delta threshold
finish__timing__setup__tns -236.468 0 20%
❌ asap7/riscv32i-mock-sram base — 1 failing metric(s)
Metric target base delta threshold
finish__timing__setup__tns -3522.14 -1888.2 86.53426543798327% 20%
❌ gf180/aes-hybrid base — 3 failing metric(s)
Metric target base delta threshold
cts__timing__setup__tns -128.514 -122.663 4.7699795374318255% 20%
finish__timing__setup__tns -143.056 -139.958 2.213521199216908% 20%
globalroute__timing__setup__tns -143.136 -140.622 1.787771472458079% 20%
❌ ihp-sg13g2/ibex base — 1 failing metric(s)
Metric target base delta threshold
globalroute__timing__setup__tns -3.41123 -1.35349 152.03215391321694% 20%
❌ ihp-sg13g2/jpeg base — 1 failing metric(s)
Metric target base delta threshold
detailedroute__antenna_diodes_count 121 119 1.680672268907563% 0.1%
❌ nangate45/mempool_group base — 1 failing metric(s)
Metric target base delta threshold
finish__timing__hold__tns -1.32298 -0.313244 322.3480737061205% 20%
❌ nangate45/swerv base — 2 failing metric(s)
Metric target base delta threshold
cts__timing__setup__tns -448.945 -432.355 3.8371245851210234% 20%
globalroute__timing__setup__tns -477.642 -471.381 1.3282249390620327% 20%
❌ nangate45/swerv_wrapper base — 3 failing metric(s)
Metric target base delta threshold
cts__timing__setup__tns -458.177 -414.603 10.509813001835491% 20%
finish__timing__setup__tns -441.685 -383.316 15.227384194763589% 20%
globalroute__timing__setup__tns -503.196 -437.6 14.989945155393054% 20%
❌ sky130hd/chameleon base — 6 failing metric(s)
Metric target base delta threshold
cts__timing__setup__tns -134.92 -113.614 18.752970584611052% 20%
cts__timing__setup__ws -3.10681 -2.54796 21.933232860798444% 5.0%
finish__timing__setup__tns -41.2721 -39.3269 4.94623273128571% 20%
finish__timing__setup__ws -2.51409 -1.91051 31.592611396956833% 5.0%
globalroute__timing__setup__tns -48.1714 -42.3108 13.851309831059682% 20%
globalroute__timing__setup__ws -2.80897 -2.17267 29.28654604702969% 5.0%
❌ sky130hd/gcd base — 5 failing metric(s)
Metric target base delta threshold
cts__timing__setup__tns -65.3291 -60.7162 7.597478103043339% 20%
finish__timing__setup__tns -70.9872 -66.8068 6.257446846728177% 20%
finish__timing__setup__ws -1.6206 -1.47925 9.555517998985973% 5.0%
globalroute__timing__setup__tns -74.7868 -71.4034 4.7384298226695085% 20%
globalroute__timing__setup__ws -1.69133 -1.60789 5.189409723301967% 5.0%
❌ sky130hd/microwatt base — 2 failing metric(s)
Metric target base delta threshold
cts__timing__setup__tns -228.739 -211.376 8.214272197411248% 20%
detailedroute__antenna__violating__nets 55 6 816.6666666666666% 30%
❌ sky130hd/riscv32i base — 1 failing metric(s)
Metric target base delta threshold
cts__timing__setup__tns -50.6069 -42.1647 20.021961498599538% 20%

jfgava added 2 commits August 12, 2026 21:04
Signed-off-by: Jonas Gava <jfgava@precisioninno.com>
Signed-off-by: Jonas Gava <jfgava@precisioninno.com>
@eder-matheus
eder-matheus self-requested a review August 13, 2026 01:08
@jfgava jfgava added the UpdateRules Starts GHA to update rules label Aug 13, 2026
@openroad-ci openroad-ci removed the UpdateRules Starts GHA to update rules label Aug 13, 2026
Signed-off-by: Jonas Gava <jfgava@precisioninno.com>
@jfgava

jfgava commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

designs/sky130hd/microwatt/rules-base.json updates:

Metric Old New Type
placeopt__design__instance__area 5408427 5361392 Tighten
placeopt__design__instance__count__stdcell 181507 142704 Tighten
cts__design__instance__count__setup_buffer 15783 12409 Tighten
cts__design__instance__count__hold_buffer 15783 12409 Tighten
cts__timing__setup__tns -219.0 -232.0 Failing
globalroute__antenna_diodes_count 4098 2711 Tighten
globalroute__timing__setup__tns -263.0 -256.0 Tighten
detailedroute__route__wirelength 8076674 7815847 Tighten
detailedroute__antenna__violating__nets 96 72 Tighten
detailedroute__antenna_diodes_count 2336 1290 Tighten
finish__timing__setup__tns -221.0 -215.0 Tighten
finish__timing__hold__ws -0.883 -0.75 Tighten
finish__timing__hold__tns -3.42 -3.0 Tighten
finish__design__instance__area 5568093 5512180 Tighten

designs/ihp-sg13g2/ibex/rules-base.json updates:

Metric Old New Type
globalroute__timing__setup__tns -1.6 -5.01 Failing
detailedroute__route__wirelength 1012494 1000843 Tighten
finish__timing__setup__tns -5.34 -3.26 Tighten
finish__design__instance__area 320304 320206 Tighten

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

Metric Old New Type
globalroute__timing__setup__ws -51.2 -51.1 Tighten
globalroute__timing__setup__tns -209.0 -208.0 Tighten
finish__timing__setup__tns -200.0 -436.0 Failing

designs/sky130hd/gcd/rules-base.json updates:

Metric Old New Type
cts__timing__setup__tns -64.3 -65.5 Failing
globalroute__timing__setup__ws -1.66 -1.75 Failing
globalroute__timing__setup__tns -71.9 -75.0 Failing
detailedroute__route__wirelength 11307 14559 Failing
finish__timing__setup__ws -1.53 -1.68 Failing
finish__timing__setup__tns -67.0 -71.2 Failing

designs/nangate45/swerv_wrapper/rules-base.json updates:

Metric Old New Type
cts__timing__setup__ws -0.431 -0.429 Tighten
cts__timing__setup__tns -415.0 -459.0 Failing
globalroute__timing__setup__ws -0.457 -0.431 Tighten
globalroute__timing__setup__tns -438.0 -504.0 Failing
detailedroute__route__wirelength 4160494 4834629 Failing
finish__timing__setup__ws -0.425 -0.408 Tighten
finish__timing__setup__tns -394.0 -442.0 Failing

@eder-matheus
eder-matheus enabled auto-merge August 13, 2026 02:09
@eder-matheus
eder-matheus merged commit fbd08fe into The-OpenROAD-Project:master Aug 13, 2026
8 checks passed
@eder-matheus
eder-matheus deleted the update-metrics-grt-fix-blocked-tracks branch August 13, 2026 04:25
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.

3 participants