Skip to content

grt/cugr: scope incremental global routing to dirty nets#10908

Open
eder-matheus wants to merge 13 commits into
The-OpenROAD-Project:masterfrom
eder-matheus:pr2-cugr-incremental-dirty-nets
Open

grt/cugr: scope incremental global routing to dirty nets#10908
eder-matheus wants to merge 13 commits into
The-OpenROAD-Project:masterfrom
eder-matheus:pr2-cugr-incremental-dirty-nets

Conversation

@eder-matheus

Copy link
Copy Markdown
Member

Summary

Makes CUGR's incremental global routing actually incremental. Previously each
incremental update reprocessed the full netlist (rebuilt the whole route map,
re-estimated global parasitics, re-scanned congestion, and refreshed every
net's slack/res-aware/pin state). This PR scopes that work to the dirty nets,
matching FastRoute's incremental model:

  • Reroute only what changed: a dirty net is rerouted only if it is
    res-aware (rsz-requested), has no route yet (new or journal-restored), or a
    pin moved to a different gcell; otherwise its existing route is kept.
  • Patch, don't rebuild: only the nets CUGR actually rerouted
    (getReroutedNets()) are patched into routes_, instead of rebuilding the
    full route map from getRoutes().
  • Scope auxiliary updates: slack refresh, res-aware marking, and pin
    access-point sync run over the dirty/rerouted subset only; the global
    parasitics re-estimate and the pattern/maze global congestion scan are
    skipped during incremental passes.
  • Share the stage sequence between full and incremental routing so both
    paths stay in lock-step.
  • Surface residual congestion: warn once (GRT-128) when an incremental
    pass leaves congestion, since CUGR incremental does not recover congestion it
    induces on neighboring nets.
  • Robustness: a no-op incremental pass now clears the rerouted-net list so
    stale entries (possibly naming since-deleted nets) are never replayed by
    getReroutedNets() consumers.

All changes are gated on use_cugr_; the FastRoute path is untouched. This is
the second PR of a stacked series building out CUGR incremental routing.

Type of Change

  • Bug fix
  • Refactoring

Impact

Faster incremental global routing under CUGR (work is proportional to the dirty
set rather than the whole design) with equivalent routing results. Fixes a
crash where a no-op incremental pass could replay a stale/deleted net. Adds a
GRT-128 warning when incremental routing leaves congestion. No effect on the
FastRoute path.

Verification

  • I have verified that the local build succeeds (./etc/Build.sh).
  • I have run the relevant tests and they pass.
  • My code follows the repository's formatting guidelines.
  • I have signed my commits (DCO).

…asitics rebuild

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…uting

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…uting

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…ones

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…ale replay

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
@eder-matheus

Copy link
Copy Markdown
Member Author

@codex review

@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 optimizes and refactors the incremental global routing flow in CUGR. Key changes include scoping slack updates, congestion checks, and pin access point updates specifically to the rerouted/dirty nets instead of performing global operations. Additionally, a warning mechanism is introduced to report residual congestion at the end of incremental routing sessions, and the incremental routing flow is streamlined to avoid redundant routing passes. There are no review comments, so no further feedback is provided.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4a9e8f0bb8

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/grt/src/GlobalRouter.cpp Outdated
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
@eder-matheus eder-matheus marked this pull request as ready for review July 14, 2026 17:54
@eder-matheus eder-matheus requested a review from a team as a code owner July 14, 2026 17:54
@eder-matheus eder-matheus requested a review from jfgava July 14, 2026 17:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant