Skip to content

drt: violation access points take precedent when returning from patterns - #11095

Draft
bnmfw wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:drt_acc_pattern_tieh
Draft

drt: violation access points take precedent when returning from patterns#11095
bnmfw wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:drt_acc_pattern_tieh

Conversation

@bnmfw

@bnmfw bnmfw commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Summary

On cases where only a single pin on an instance exists (usually tie instances) they are only connected to the virtual nodes during access pattern. Because virtual issues always returned 0 as their edge cost any access point would be considered valid, and furthermore only the first one would ever be considered. This moves the violation access point check to before that so that a pattern on a single pin instance can fail if the chosen access point is of violation type.

Type of Change

  • Bug fix

Impact

Fixes the corner case when access patterns on single pin instances would not generate if the first pin had a violation during access pattern commit.

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

Related Issues

Fixes #10955

Signed-off-by: bnmfw <bernardoborgessandoval@gmail.com>
@bnmfw bnmfw self-assigned this Aug 7, 2026
@github-actions github-actions Bot added the size/S label Aug 7, 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 optimizes the FlexPA::getEdgeCost function in src/drt/src/pa/FlexPA_acc_pattern.cpp by moving the violation access point check earlier in the execution flow. The review feedback suggests a further performance optimization: since virtual source and sink nodes are never present in viol_access_points, checking if the nodes are virtual before querying the set can prevent unnecessary overhead in this performance-critical innermost loop.

Comment thread src/drt/src/pa/FlexPA_acc_pattern.cpp
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.

TritonRoute: DRT-0085 "Valid access pattern combination not found" for tie-high cell instances (small single-rect Metal2 pin)

1 participant