Skip to content

pdn: add check for instance halo to ensure it does not overlap rows#10657

Open
gadfort wants to merge 2 commits into
The-OpenROAD-Project:masterfrom
gadfort:pdn-check-halo
Open

pdn: add check for instance halo to ensure it does not overlap rows#10657
gadfort wants to merge 2 commits into
The-OpenROAD-Project:masterfrom
gadfort:pdn-check-halo

Conversation

@gadfort

@gadfort gadfort commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Users keep running into issues where the PDN halo differs from the cut rows halo, causing issues/errors when PDN is inserting vias. This adds a check to ensure the powergrid instance halos do not overlap the follow pins on the standard cells.

Type of Change

  • Bug fix
  • Breaking change

Impact

If the powergrid setup is correct, no impact is expected, but if the grid has an overlap issue, this will break.

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

Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
@gadfort gadfort requested a review from a team as a code owner June 14, 2026 19:09
@gadfort gadfort requested a review from maliberty June 14, 2026 19:09
@gadfort

gadfort commented Jun 14, 2026

Copy link
Copy Markdown
Contributor Author

@mole99 FYI

@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 introduces a halo overlap check for macro instances in the PDN generator. It adds hasHalo(), suggestHalo(), and checkHalo() methods to InstanceGrid to detect when a macro's halo overlaps with standard cell rows and suggests a reduced halo size to resolve the conflict. Feedback on the changes highlights a potential underestimation in row bloat calculation due to integer division truncation when a followpin strap has an odd width, suggesting rounding up instead.

Comment thread src/pdn/src/grid.cpp
@maliberty

Copy link
Copy Markdown
Member

Fix the tcl lint. I think the bazel failure is unrelated

Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
@gadfort

gadfort commented Jun 14, 2026

Copy link
Copy Markdown
Contributor Author

@maliberty it looks like the tinyrocket needs to have its powergrid grid fixed, but when I do I get metrics failures. How do I update those?

@gadfort

gadfort commented Jun 14, 2026

Copy link
Copy Markdown
Contributor Author

@maliberty also I should mention most of the runtime of this test is actually global routing attempting to disable NDRs.

@maliberty

Copy link
Copy Markdown
Member

@maliberty it looks like the tinyrocket needs to have its powergrid grid fixed, but when I do I get metrics failures. How do I update those?

I assume you mean the one in OR and not the one in ORFS. save_flow_metrics and save_flow_metrics_limits

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.

2 participants