pdn: over pad connections balancing - #11213
Conversation
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
…ce the number of connection to pads Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
There was a problem hiding this comment.
Code Review
This pull request refactors the PadDirectConnectionStraps class to build pad connections as a group, ensuring they are balanced across nets and placed with knowledge of each other. It also introduces a new test case to verify this connection balancing behavior. The review feedback highlights a potential issue in PadDirectConnectionStraps::buildOverPad where the preferred offset is unconditionally inserted into the offsets list without verifying if it falls within the valid [lane_min, lane_max] range, which could lead to invalid strap placement outside the pin boundary.
Signed-off-by: Peter Gadfort <gadfort@zeroasic.com>
|
@codex review |
| std::shared_ptr<odb::PtrMap<odb::dbNet, int>> net_map | ||
| = std::make_shared<odb::PtrMap<odb::dbNet, int>>(); |
There was a problem hiding this comment.
| std::shared_ptr<odb::PtrMap<odb::dbNet, int>> net_map | |
| = std::make_shared<odb::PtrMap<odb::dbNet, int>>(); | |
| auto net_map = std::make_shared<odb::PtrMap<odb::dbNet, int>>(); |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cf22bc5748
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const ShapePtr& other = *itr; | ||
| if (other->getNet() == iterm_->getNet()) { | ||
| return other.get(); |
There was a problem hiding this comment.
Reapply target filtering after cutting straps
When an obstruction cuts away the fragment reaching the originally selected ring or stripe, this fallback accepts any intersecting shape on the same net. That bypasses isTargetShape(), which deliberately rejects instance-grid and non-target wire shapes, so a pad-connected fragment that only reaches a same-net macro grid or followpin can be retained and counted as a successful pad-to-core connection. Apply the same target eligibility check here before returning the replacement target.
Useful? React with 👍 / 👎.
Summary
Closes #9994
Change over pad power grid connections to build by group so we can attempt to balance the pin connections
There are now 12 VDD connections and 14 VSS connections.

Type of Change
Impact
Generally more connections for designs needing over pad connections, other design are not impacted by this change.
Verification
./etc/Build.sh).Related Issues
#9994