odb: make 3DBlox connection region check direction-aware#10840
odb: make 3DBlox connection region check direction-aware#10840osamahammad21 wants to merge 1 commit into
Conversation
Closes The-OpenROAD-Project#10836 Signed-off-by: osamahammad21 <osama@precisioninno.com>
There was a problem hiding this comment.
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.
| if (!top || !bot) { | ||
| return ConnectionStatus::kValid; | ||
| } |
There was a problem hiding this comment.
Is it ok for chips to touch with no defined region?
There was a problem hiding this comment.
This condition does not really mean that. This condition is checking if the defined connection in 3dbx has at least one null region (~)
According to the 3dblox standard, it is allowed to have the bottom region as null, but it doesn't allow the top region to be null. A connection to a null region defines the anchor point of the whole design as it is a connection to the virtual plane.
In this PR, I am not tackling the issue of allowing an empty top region, I am keeping the previous logic as is and incorporating the new violation kInvalidDirection
Summary
topregion must face down and the declaredbotregion must face upType of Change
Impact
check_3dbloxnow flags connections whosetop/botdeclaration contradicts the physical stackup; invalid-connection messages state the exact failure reasonVerification
./etc/Build.sh).Related Issues
Closes #10836