Skip to content

Access Points Know Neighbours#10545

Draft
openroad-ci wants to merge 4 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:drt_aps_know_neighbours
Draft

Access Points Know Neighbours#10545
openroad-ci wants to merge 4 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:drt_aps_know_neighbours

Conversation

@openroad-ci
Copy link
Copy Markdown
Collaborator

Summary

Supports issue #9948. Access points now have the compatible_neighbors_ which represents the number of access points on neighboring pins they are compatible with. This variable is only changed on the first iteration of access pattern creation where the compatibility graph is raw without the any access points marked as used. This PR does not change tool behaviour, only make so this new variable exists and has the correct value

Also creates the helper DPNodeToAccessPoint function that is used on the new feature.

Type of Change

  • New feature

Impact

Does not impact tool behavior

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

issue #9948

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 introduces tracking for compatible neighbors on access points (frAccessPoint) and refactors access point retrieval in FlexPA by introducing a helper method DPNodeToAccessPoint. Feedback is provided regarding a typo in the newly added method resetCompatibleNeigbours (missing 'h' in 'Neighbours') and its corresponding call site.

Comment thread src/drt/src/db/obj/frAccess.h Outdated
}
void setAllowVia(bool in) { allow_via_ = in; }
void addCompatibleNeighbour() { compatible_neighbors_++; }
void resetCompatibleNeigbours() { compatible_neighbors_ = 0; }
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.

medium

There is a typo in the method name resetCompatibleNeigbours (missing 'h' in 'Neighbours'). It should be renamed to resetCompatibleNeighbours to be consistent with addCompatibleNeighbour and getCompatibleNeighbours.

Suggested change
void resetCompatibleNeigbours() { compatible_neighbors_ = 0; }
void resetCompatibleNeighbours() { compatible_neighbors_ = 0; }

Comment thread src/drt/src/pa/FlexPA_acc_pattern.cpp Outdated
nodes[pin_idx][ap_idx] = std::make_unique<FlexDPNode>();
nodes[pin_idx][ap_idx]->setIdx({pin_idx, ap_idx});
nodes[pin_idx][ap_idx]->setNodeCost(ap->getCost());
ap->resetCompatibleNeigbours();
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.

medium

Update the call to use the corrected method name resetCompatibleNeighbours to fix the typo.

Suggested change
ap->resetCompatibleNeigbours();
ap->resetCompatibleNeighbours();

Signed-off-by: bnmfw <bernardoborgessandoval@gmail.com>
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