global_route.tcl: carry -allow_congestion into the incremental reroutes - #4563
eder-matheus merged 3 commits into
Conversation
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>
There was a problem hiding this comment.
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.
🔍 QoR checkMetrics reflect the PR merge build — i.e. what will land on the target branch. Commit 62 design(s) checked — 0 with regression(s), 0 without a comparable baseline. |
There was a problem hiding this comment.
@oharboe repair_antennas also needs the {*}$allow_congestion flag to be consistent with the other calls.
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>
|
@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? |
e2fee6a
into
The-OpenROAD-Project:master
A flow that accepts congestion says so once, with
-allow_congestioninGLOBAL_ROUTE_ARGS, but everyglobal_routecall decides for itself. The-start_incremental/-end_incrementalbrackets aroundrepair_design,repair_timingandrecover_powerran without the flag. So the reroute afterrepair_designtreated 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_TCLsetsset_global_routing_layer_adjustment M2-M7 0.97. It is accepted withGLOBAL_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.global_route.tcl-end_incrementalrepair_antennas-end_incrementalEach change is needed:
repair_antennasno longer withdraws the accepted route thatestimate_parasiticsneeds.No ORFS design routes with
-allow_congestiontoday, which is why CI has not seen either failure.tclfmtandtclintare clean.