grt/cugr: scope incremental global routing to dirty nets#10908
grt/cugr: scope incremental global routing to dirty nets#10908eder-matheus wants to merge 13 commits into
Conversation
…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>
|
@codex review |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
💡 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".
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
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:
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.
(
getReroutedNets()) are patched intoroutes_, instead of rebuilding thefull route map from
getRoutes().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.
paths stay in lock-step.
pass leaves congestion, since CUGR incremental does not recover congestion it
induces on neighboring nets.
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 isthe second PR of a stacked series building out CUGR incremental routing.
Type of Change
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
./etc/Build.sh).