Skip to content

grt: implement resistance-aware for CUGR#10594

Open
eder-matheus wants to merge 20 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:grt_cugr_resistance_aware
Open

grt: implement resistance-aware for CUGR#10594
eder-matheus wants to merge 20 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:grt_cugr_resistance_aware

Conversation

@eder-matheus

Copy link
Copy Markdown
Member

Summary

Implement resistance-aware cost to CUGR routing flow.

Type of Change

  • New feature
  • Breaking change

Impact

When using -resistance_aware flag, CUGR now responds with computing costs and prioritizing nets, in order to prioritize low-resistance metal layers for long, high fanout, critical nets. The core logic tries to mimic how FastRoute handles resistance aware, but the costs are mainly applied to the PatterRoute stages.

New unit tests were added for validation. CI is running.

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 included tests to prevent regressions.
  • I have signed my commits (DCO).

@eder-matheus eder-matheus self-assigned this Jun 4, 2026
@github-actions github-actions Bot added the size/L label Jun 4, 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 implements a resistance-aware routing feature in the CUGR global router, allowing critical nets to be biased toward lower-resistance upper metal layers. Key changes include calculating wire and via resistance costs, computing resistance-aware net scores, and integrating these costs into pattern routing, alongside several timing and mechanism validation tests. Feedback on these changes highlights opportunities to improve robustness: specifically, finding the first non-zero layer resistance as a reference instead of assuming layer 0 is valid, adding defensive null-checks for the STA network access, and ensuring markResAwareNets early-returns when the critical net percentage is zero to avoid incorrectly marking nets.

Comment thread src/grt/src/cugr/src/GridGraph.cpp Outdated
Comment thread src/grt/src/GlobalRouter.cpp
Comment thread src/grt/src/cugr/src/CUGR.cpp Outdated
Comment thread src/grt/src/cugr/src/GridGraph.cpp Outdated
@eder-matheus eder-matheus marked this pull request as ready for review June 8, 2026 21:58
@eder-matheus eder-matheus requested a review from a team as a code owner June 8, 2026 21:58
@eder-matheus eder-matheus requested a review from jfgava June 8, 2026 21:58
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…es-aware

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

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…tween congestion and timing

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
@openroad-ci openroad-ci force-pushed the grt_cugr_resistance_aware branch from d62dcbd to 0a6794d Compare June 9, 2026 14:17
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