odb: support embedded chiplets via internal-side regions#10982
odb: support embedded chiplets via internal-side regions#10982osamahammad21 wants to merge 3 commits into
Conversation
Signed-off-by: osamahammad21 <osama@precisioninno.com>
…EXT region Signed-off-by: osamahammad21 <osama@precisioninno.com>
There was a problem hiding this comment.
Code Review
This pull request introduces validation rules for creating chip regions, restricting INTERNAL and INTERNAL_EXT sides to RDL or SUBSTRATE chiplets, and preventing region creation on hierarchical chips. It also updates the overlapping chip checker to avoid flagging expected geometric overlaps for embedded chiplets connected via INTERNAL_EXT regions, and updates the corresponding unit tests. The review feedback suggests correcting a typo in an error message (changing 'RTL' to 'RDL'), simplifying deep pointer chaining in the checker using a helper method, and fixing a missing space in another error message.
Signed-off-by: osamahammad21 <osama@precisioninno.com>
|
@codex review |
|
Appears to have real CI failures. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 17ef408444
ℹ️ 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 Rect cavity = bot->getCuboid().getEnclosingRect().intersect( | ||
| top->getCuboid().getEnclosingRect()); |
There was a problem hiding this comment.
Guard disjoint INTERNAL_EXT regions before intersecting
When an INTERNAL_EXT connection has disjoint XY region footprints, as can occur in a malformed design that the connection checker is supposed to report, Rect::intersect() hits its assert(intersects(r)) and aborts assertion-enabled builds before a "Connection regions" marker can be emitted. Check the footprints first or use the non-asserting intersection API so invalid connections remain diagnosable.
Useful? React with 👍 / 👎.
| if ((side == dbChipRegion::Side::INTERNAL_EXT | ||
| || side == dbChipRegion::Side::INTERNAL) | ||
| && (chip->getChipType() != dbChip::ChipType::RDL | ||
| && chip->getChipType() != dbChip::ChipType::SUBSTRATE)) { |
There was a problem hiding this comment.
Update the existing DIE-based INTERNAL region test fixture
This restriction makes the registered TestChips suite fail during ChipHierarchyFixture construction: memory_chip is created with the default DIE type, then createChipRegions() creates its R3 region with side INTERNAL, which now throws ODB-0566 before every fixture test runs. The checker fixture was converted to SUBSTRATE, but this existing fixture must also be reconciled with the new invariant.
Useful? React with 👍 / 👎.
| } | ||
| dbChipRegion* chip_region = dbChipRegion::create( | ||
| chip, region.name, getChipRegionSide(region.side, logger_), layer); | ||
| const auto side = getChipRegionSide(region.side, logger_); |
There was a problem hiding this comment.
Sign off the commit for DCO compliance
The raw commit message for 7a008af5a62ef3ce984f79ae49d4ed43b14d17fb has no Signed-off-by: trailer, despite its verification text claiming DCO sign-off; recreate the commit with git commit -s before submission.
AGENTS.md reference: AGENTS.md:L18-L18
Useful? React with 👍 / 👎.
Summary
INTERNAL/INTERNAL_EXTregion sides to RDL and SUBSTRATE chiplets; error otherwise during 3DBV parsing.INTERNAL_EXTregion, so a legitimately embedded chiplet is not reported as an overlap violation.Type of Change
Impact
Verification
./etc/Build.sh).