Skip to content

grt: fix missing via for co-located pins on different layers#10044

Merged
eder-matheus merged 10 commits intoThe-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:grt_fill_via
Apr 6, 2026
Merged

grt: fix missing via for co-located pins on different layers#10044
eder-matheus merged 10 commits intoThe-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:grt_fill_via

Conversation

@openroad-ci
Copy link
Copy Markdown
Collaborator

Summary

  • Fix fillVIA skipping zero-length Steiner edges between co-located pins on different layers by resolving nodes through stackAlias before checking layer info (root cause of RSZ-0074)
  • Fix get3DRoute to emit GSegments for zero-length edges that carry via grids (fallback getPlanarRoutes path)
  • Fix isCoveringPin to generate via guides for all pin types, not just ports and pad/macro pins
  • Add colocated_pins regression test with pins on metal3 and metal4 in the same gcell

Type of Change

  • Bug fix

Impact

Create correct vias when colocated pins for different layers.

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).

Related Issues

Fixes #9919

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>
@eder-matheus
Copy link
Copy Markdown
Member

@maliberty Secure-CI is running, but I don't expect major changes in our designs.

@povik FYI, I tested with the provided test case and it finishes with no errors.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

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 enhances global routing to handle zero-length edges between co-located pins on different layers, preventing the silent dropping of vias. Key modifications include simplifying pin coverage checks in GlobalRouter.cpp, adding logic to process zero-length edges in FastRoute.cpp, and utilizing stackAlias for layer resolution in utility.cpp. Review feedback identifies a logic error in a skip condition in utility.cpp, recommends refactoring duplicated logic in FastRoute.cpp into a helper function, and suggests removing redundant variable assignments.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

clang-tidy review says "All clean, LGTM! 👍"

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 3, 2026

clang-tidy review says "All clean, LGTM! 👍"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 4, 2026

clang-tidy review says "All clean, LGTM! 👍"

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 6, 2026

clang-tidy review says "All clean, LGTM! 👍"

@eder-matheus eder-matheus merged commit f576dda into The-OpenROAD-Project:master Apr 6, 2026
15 checks passed
@openroad-ci openroad-ci deleted the grt_fill_via branch April 6, 2026 14:31
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.

GRT route incomplete manifesting as resizer error

3 participants