tap: fix overlapping endcap cells at macro boundary jogs - #11035
tap: fix overlapping endcap cells at macro boundary jogs#11035eder-matheus wants to merge 6 commits into
Conversation
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…ROAD into tap_endcap_overlaps
There was a problem hiding this comment.
Code Review
This pull request refactors endcap and corner cell placement logic to correctly handle boundary jogs between abutting macros, preventing overlapping cells. It introduces tracking of occupied row spans and allows row-terminating corners to displace overlapping non-flush corners. A performance optimization was suggested in the review to avoid temporary vector allocations when checking occupied spans inside a row loop.
|
@codex review |
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
…rtical Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Summary
When two abutting macros have edges misaligned by a small step, the
boundary jog creates a row narrower than the corner master, and tapcell
placed overlapping cells there: the two jog corners on top of each other,
and horizontal edge fills on top of row-end endcaps.
Fix:
filled_horizontal_edges_intooccupied_row_spans_, whichtracks the x-spans of all boundary cells per row; corner, horizontal
edge, and vertical edge placement check it before creating a cell.
corner that is not at it (same area only), since edge placement relies
on row-end corners to terminate rows. Displaced corners are only
destroyed after all checks pass, so a corner always survives at the jog.
Type of Change
Impact
No more overlapping endcap/corner cells at boundary jogs, so
check_placement passes after tapcell. Existing tap tests are unchanged.
Verification
./etc/Build.sh).New tests: abutting_macros_step and abutting_macros_step_no_corners, both
running check_placement -verbose, registered in CMake and Bazel.
Related Issues
Fixes overlap and TAP errors on two private designs.