Skip to content

global_route.tcl: carry -allow_congestion into the incremental reroutes - #4563

Merged
eder-matheus merged 3 commits into
The-OpenROAD-Project:masterfrom
oharboe:grt-incremental-allow-congestion
Sep 26, 2026
Merged

eder-matheus merged 3 commits into
The-OpenROAD-Project:masterfrom
oharboe:grt-incremental-allow-congestion

Conversation

@oharboe

@oharboe oharboe commented Sep 25, 2026

Copy link
Copy Markdown
Collaborator

Draft: depends on The-OpenROAD-Project/OpenROAD#11525. It stays a draft until that PR is merged and ORFS's OpenROAD is bumped past it. On today's OpenROAD it fails later in the same stage (EST-0005 after repair_antennas, see the table).

A flow that accepts congestion says so once, with -allow_congestion in GLOBAL_ROUTE_ARGS, but every global_route call decides for itself. The -start_incremental/-end_incremental brackets around repair_design, repair_timing and recover_power ran without the flag. So the reroute after repair_design treated the accepted congested route as unaccepted, rerouted it harder, and failed on GRT-0232. This PR passes the flow's choice to every bracket.

Tested locally

The grt stage of a small design, with the route congested on purpose: a PRE_GLOBAL_ROUTE_TCL sets set_global_routing_layer_adjustment M2-M7 0.97. It is accepted with GLOBAL_ROUTE_ARGS=-congestion_iterations 0 -allow_congestion -verbose, with incremental repair and antenna repair on. Both OpenROAD binaries are built from the same master commit, with and without #11525.

OpenROAD \ global_route.tcl master this PR
master GRT-0232 at the first -end_incremental EST-0005 after repair_antennas
with #11525 GRT-0232 at the first -end_incremental finishes: route, both repairs, antennas, parasitics

Each change is needed:

  • This PR: the incremental reroutes decide from their own call.
  • #11525: repair_antennas no longer withdraws the accepted route that estimate_parasitics needs.

No ORFS design routes with -allow_congestion today, which is why CI has not seen either failure.

tclfmt and tclint are clean.

A flow that accepts congestion says so once, with -allow_congestion in
GLOBAL_ROUTE_ARGS, but every global_route call decides for itself. The
-start_incremental/-end_incremental brackets around the repairs and
recover_power ran without it, so the reroute after repair_design treated
the accepted congested route as unaccepted, rerouted it harder and failed
on GRT-0232. The brackets now pass the flow's choice.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>

@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 global routing flow to conditionally include the -allow_congestion flag based on the GLOBAL_ROUTE_ARGS environment variable. The reviewer suggests using the existing env_var_exists_and_non_empty helper function to make the environment variable check more robust and prevent potential runtime errors.

Comment thread flow/scripts/global_route.tcl
@openroad-ci

openroad-ci commented Sep 25, 2026 •

Copy link
Copy Markdown
Member

🔍 QoR check

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

Commit 985039d · Jenkins build #4 · Baseline: build · View build on dashboard

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

@oharboe
oharboe marked this pull request as ready for review September 25, 2026 15:01
Comment thread flow/scripts/global_route.tcl Outdated

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@oharboe repair_antennas also needs the {*}$allow_congestion flag to be consistent with the other calls.

oharboe and others added 2 commits September 25, 2026 22:23
Consistent with the incremental reroutes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
@oharboe

oharboe commented Sep 26, 2026

Copy link
Copy Markdown
Collaborator Author

@maliberty @eder-matheus ORFS origin/master went red due to a rules-base.json update needed after tools/OpenROAD update, nothing to do on this PR.

@eder-matheus

Copy link
Copy Markdown
Member

@maliberty @eder-matheus ORFS origin/master went red due to a rules-base.json update needed after tools/OpenROAD update, nothing to do on this PR.

I've restarted the pipeline, I believe it will get the correct metric limits now. If it still doesn't work, could you merge latest master on your branch?

@eder-matheus
eder-matheus merged commit e2fee6a into The-OpenROAD-Project:master Sep 26, 2026
11 of 12 checks passed
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