Skip to content

odb: make 3DBlox connection region check direction-aware#10840

Open
osamahammad21 wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
osamahammad21:3dblox-conn-direction-check
Open

odb: make 3DBlox connection region check direction-aware#10840
osamahammad21 wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
osamahammad21:3dblox-conn-direction-check

Conversation

@osamahammad21

Copy link
Copy Markdown
Member

Summary

  • Make the 3DBlox connection region check direction-aware: the declared top region must face down and the declared bot region must face up
  • Split geometric failures into specific messages: no XY overlap, no Z overlap (internal_ext), and surface gap vs connection thickness (with values)
  • Swap top/bottom regions of unfolded connections when the holding chip is Z-mirrored so the unfolded model reflects world orientation
  • Fix checker unit-test fixtures that declared connections backwards; add tests for the swapped-declaration and Z-mirrored assembly cases

Type of Change

  • New feature

Impact

  • check_3dblox now flags connections whose top/bot declaration contradicts the physical stackup; invalid-connection messages state the exact failure reason

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

Closes #10836

Closes The-OpenROAD-Project#10836

Signed-off-by: osamahammad21 <osama@precisioninno.com>
@osamahammad21 osamahammad21 requested a review from a team as a code owner July 7, 2026 22:48
@osamahammad21 osamahammad21 requested a review from maliberty July 7, 2026 22:48
@github-actions github-actions Bot added the size/M label Jul 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 refactors the 3D-Blox connection validation logic by introducing a ConnectionStatus enum to provide more detailed error messages for invalid connections (such as invalid stacking direction, XY overlap, Z overlap, or thickness mismatch). It also updates dbUnfoldedBuilder to handle Z-mirroring of assemblies by swapping top and bottom regions when parent_xform.isMirrorZ() is true, and updates/adds corresponding unit tests. There are no review comments, so I have no feedback to provide.

Comment on lines +205 to 207
if (!top || !bot) {
return ConnectionStatus::kValid;
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it ok for chips to touch with no defined region?

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.

3DBlox checker: connection region validation should be direction-aware

2 participants