Skip to content

flow: Enable PARALLEL_EVAL setup repair in 38 designs - #4760

Merged
maliberty merged 2 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-parallel-eval-rollout
Oct 28, 2026
Merged

maliberty merged 2 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-parallel-eval-rollout

Conversation

@jhkim-pii

@jhkim-pii jhkim-pii commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add SETUP_REPAIR_PHASES (passed as repair_timing -phases) and enable the experimental PARALLEL_EVAL setup repair policy in the 38 designs (half of the 76 CI designs) with the largest finish timing gain.

Impact

Metric (38 enabled designs, vs LEGACY) Median
Finish setup TNS reduction +44.9%
Finish fmax +1.02%
Finish std cell area -0.11%
Finish power -0.02%
Total flow runtime -20.1%
Enabled designs
# Design Setup TNS reduction Finish fmax Area Runtime
1 sky130hs/jpeg +97.8% +3.8% +0.1% +35.4%
2 nangate45/bp_be_top +100.0% +1.3% -0.2% +0.3%
3 gf180/riscv32i +93.3% +5.8% +0.6% -40.4%
4 gf12/ibex +98.7% +0.4% +3.6% -23.0%
5 sky130hd/riscv32i +91.3% +6.2% -0.4% -59.6%
6 ihp-sg13g2/ibex +95.7% -1.3% +0.6% +5.4%
7 asap7/riscv32i +80.8% +0.7% +0.2% -43.5%
8 asap7/ibex +84.0% -6.2% +0.6% -37.7%
9 sky130hs/riscv32i +72.9% +1.9% +0.9% -48.1%
10 nangate45/bp_multi_top +72.5% +0.2% -0.3% +4.4%
11 sky130hd/chameleon +69.1% +1.0% -0.8% -0.2%
12 nangate45/ibex +74.1% -5.0% -0.2% +6.9%
13 asap7/riscv32i-mock-sram +54.7% -0.5% +1.8% -24.1%
14 sky130hd/ibex +45.1% +7.7% +2.7% -31.2%
15 asap7/aes_lvt +50.9% +1.1% +0.5% +3.3%
16 gf12/aes +49.5% +1.3% -0.7% -41.9%
17 asap7/chi_async_bridge +47.8% +1.0% -0.3% -13.4%
18 asap7/aes +48.0% +0.4% -0.2% -0.1%
19 asap7/uart +44.8% +2.5% -3.1% +20.0%
20 ihp-sg13g2/gcd +41.6% +2.9% -3.7% +52.4%
21 nangate45/ariane133 +45.1% -2.3% +0.7% -23.5%
22 sky130hd/jpeg +41.1% +1.3% -2.1% -28.4%
23 gf12/tinyRocket +36.8% +3.9% -0.0% -24.9%
24 sky130hs/aes +35.0% +1.7% -0.3% -11.5%
25 asap7/gcd-ccs +31.1% +1.4% -2.8% +0.7%
26 sky130hs/ibex +20.0% +3.3% -0.4% -42.5%
27 nangate45/aes +20.3% +0.0% -1.0% -5.5%
28 nangate45/tinyRocket +17.9% +0.8% -0.1% -41.9%
29 gf180/ibex +17.1% -0.4% +2.5% -35.5%
30 ihp-sg13g2/riscv32i +9.4% +6.6% -1.1% -50.3%
31 sky130hd/aes +14.3% +0.7% +1.0% -5.6%
32 asap7/ethmac_lvt +14.5% +0.1% -0.1% +0.4%
33 nangate45/dynamic_node +6.6% +7.4% +2.3% -4.3%
34 sky130hd/gcd +8.5% +3.0% -5.7% -69.4%
35 gf180/aes-hybrid +7.7% +1.0% +8.2% -23.5%
36 asap7/jpeg +7.0% +0.4% -0.5% -17.3%
37 nangate45/cva6 +10.6% -3.2% +5.7% -29.1%
38 asap7/gcd +4.0% +0.9% +1.0% +1.3%

Related

@jhkim-pii jhkim-pii self-assigned this Oct 28, 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 introduces the SETUP_REPAIR_PHASES configuration variable, which allows specifying setup repair phase names (such as the experimental PARALLEL_EVAL policy) for repair_timing. The variable has been documented, integrated into the flow scripts, and enabled across various design configurations. The review feedback identifies redundant definitions of SETUP_REPAIR_PHASES in gcd-ccs/config.mk and riscv32i-mock-sram/config.mk, as these files already inherit the setting from their respective base configurations.

Comment thread flow/designs/asap7/gcd-ccs/config.mk Outdated
Comment thread flow/designs/asap7/riscv32i-mock-sram/config.mk Outdated
repair_timing selects its setup repair pipeline with -phases, but ORFS
had no way to pass it, so a design could not opt into the experimental
PARALLEL_EVAL policy.

Add SETUP_REPAIR_PHASES, passed as -phases by repair_timing_helper in
the same way SETUP_MOVE_SEQUENCE is passed as -sequence. It applies to
every repair_timing_helper call (floorplan, place, cts and grt). When
unset, repair_timing keeps its default phases, so no design changes.

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
Set SETUP_REPAIR_PHASES = PARALLEL_EVAL in the 38 designs with the
largest final timing gain when every CI design ran the policy, half of
the 76 designs in the public and private CI.

A CI run with PARALLEL_EVAL enabled for every design was compared
against the same ORFS and OpenROAD commits without it. The gain score
is the mean of the finish fmax gain and the finish setup TNS reduction
(clipped to +-100%). A design was eligible when its TEST flow completed,
passed the dashboard QoR check, gained timing, and added no DRC,
antenna or hold TNS degradation. rapidus2hp designs are not in this
repository and were left out.

asap7/gcd-ccs and asap7/riscv32i-mock-sram inherit the setting from
the included asap7/gcd and asap7/riscv32i configs.

| Rank | Design | Score | fmax | Setup TNS |
| ---: | --- | ---: | ---: | ---: |
| 1 | sky130hs/jpeg | +50.8 | +3.8% | +97.8% |
| 2 | nangate45/bp_be_top | +50.6 | +1.3% | +100.0% |
| 3 | gf180/riscv32i | +49.5 | +5.8% | +93.3% |
| 4 | gf12/ibex | +49.5 | +0.4% | +98.7% |
| 5 | sky130hd/riscv32i | +48.7 | +6.2% | +91.3% |
| 6 | ihp-sg13g2/ibex | +47.2 | -1.3% | +95.7% |
| 7 | asap7/riscv32i | +40.7 | +0.7% | +80.8% |
| 8 | asap7/ibex | +38.9 | -6.2% | +84.0% |
| 9 | sky130hs/riscv32i | +37.4 | +1.9% | +72.9% |
| 10 | nangate45/bp_multi_top | +36.4 | +0.2% | +72.5% |
| 11 | sky130hd/chameleon | +35.1 | +1.0% | +69.1% |
| 12 | nangate45/ibex | +34.6 | -5.0% | +74.1% |
| 13 | asap7/riscv32i-mock-sram | +27.1 | -0.5% | +54.7% |
| 14 | sky130hd/ibex | +26.4 | +7.7% | +45.1% |
| 15 | asap7/aes_lvt | +26.0 | +1.1% | +50.9% |
| 16 | gf12/aes | +25.4 | +1.3% | +49.5% |
| 17 | asap7/chi_async_bridge | +24.4 | +1.0% | +47.8% |
| 18 | asap7/aes | +24.2 | +0.4% | +48.0% |
| 19 | asap7/uart | +23.7 | +2.5% | +44.8% |
| 20 | ihp-sg13g2/gcd | +22.2 | +2.9% | +41.6% |
| 21 | nangate45/ariane133 | +21.4 | -2.3% | +45.1% |
| 22 | sky130hd/jpeg | +21.2 | +1.3% | +41.1% |
| 23 | gf12/tinyRocket | +20.4 | +3.9% | +36.8% |
| 24 | sky130hs/aes | +18.3 | +1.7% | +35.0% |
| 25 | asap7/gcd-ccs | +16.3 | +1.4% | +31.1% |
| 26 | sky130hs/ibex | +11.7 | +3.3% | +20.0% |
| 27 | nangate45/aes | +10.2 | +0.0% | +20.3% |
| 28 | nangate45/tinyRocket | +9.4 | +0.8% | +17.9% |
| 29 | gf180/ibex | +8.4 | -0.4% | +17.1% |
| 30 | ihp-sg13g2/riscv32i | +8.0 | +6.6% | +9.4% |
| 31 | sky130hd/aes | +7.5 | +0.7% | +14.3% |
| 32 | asap7/ethmac_lvt | +7.3 | +0.1% | +14.5% |
| 33 | nangate45/dynamic_node | +7.0 | +7.4% | +6.6% |
| 34 | sky130hd/gcd | +5.7 | +3.0% | +8.5% |
| 35 | gf180/aes-hybrid | +4.4 | +1.0% | +7.7% |
| 36 | asap7/jpeg | +3.7 | +0.4% | +7.0% |
| 37 | nangate45/cva6 | +3.7 | -3.2% | +10.6% |
| 38 | asap7/gcd | +2.4 | +0.9% | +4.0% |

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
@openroad-ci
openroad-ci force-pushed the secure-parallel-eval-rollout branch from bd6d30d to 69cc62a Compare October 28, 2026 19:23
@jhkim-pii
jhkim-pii requested a review from maliberty October 28, 2026 20:35
@openroad-ci

openroad-ci commented Oct 28, 2026 •

Copy link
Copy Markdown
Member

🔍 QoR check

Metrics reflect the PR merge build — i.e. what will land on the target branch.

Commit 2b5b8d9 · Jenkins build #2 · Baseline: build · View build on dashboard

62 design(s) checked — 1 with regression(s), 1 without a comparable baseline.

❌ nangate45/cva6 base — 2 failing metric(s)
Metric target base delta limit band
finish__timing__setup__ws -1.438 -1.359 -5.813% -1.427 PeriodPadding 5.000%
globalroute__timing__setup__ws -1.426 -1.347 -5.802% -1.415 PeriodPadding 5.000%

@jhkim-pii

Copy link
Copy Markdown
Contributor Author

@maliberty This PR enables PARALLEL_EVAL in 50% of ORFS designs.

Failure

asap7/swerv_wrapper: [ERROR RSZ-1008] FixedDelay conversion out of range: -inf

  • Nightly CI shows the same fail. Different issue.

@maliberty
maliberty merged commit 7bf5a81 into The-OpenROAD-Project:master Oct 28, 2026
10 of 12 checks passed
@maliberty
maliberty deleted the secure-parallel-eval-rollout branch October 28, 2026 21:55
@oharboe

oharboe commented Oct 29, 2026

Copy link
Copy Markdown
Collaborator

🥳

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.

4 participants