Skip to content

feat(iZH): integrate rule-driven antenna checking and repair into EarlyRouter - #224

Open
Ayoubbelguellaoui wants to merge 6 commits into
openecos-projects:mainfrom
Ayoubbelguellaoui:main
Open

Ayoubbelguellaoui wants to merge 6 commits into
openecos-projects:mainfrom
Ayoubbelguellaoui:main

Conversation

@Ayoubbelguellaoui

Copy link
Copy Markdown

This PR moves antenna violation detection and repair into iRT's EarlyRouter. EarlyRouter catches and fixes violations mid-route instead of leaving them for a separate pass to find after routing finishes.

EarlyRouter reads antenna rules from LEF/IDB and picks a repair strategy for each violation: hop-up when it's viable, diode insertion otherwise. AntennaFixer validates the repair against existing wires and vias before applying it. AntennaEngine then re-verifies only the nets that changed.

A post-routing checker only reports what already broke; this catches and repairs it while EarlyRouter still owns the route.

- Add kBoth/kSkip to AFFixKind, hopUpPermitted(), applySelected()
- classify() returns kBoth for metal PAR (hop-up first, diode fallback)
- AntennaEngine uses applySelected() instead of always-fallback-to-diode
- Phase A-D bug fixes: incremental index, skip-net overlap, orphan
  cleanup, via_master_idx preservation, materialize scope, via fallback
- Manhattan L-shaped diode stub routing, jog overlap check, multi-row
  diode site search
- RoutingContext::forTest() for unit testing
- 6 strategy-selector tests proving violation/rule-driven selection
- test_izh_antenna_fixer and test_izh_antenna_checker pass
@ZhishengZeng
ZhishengZeng requested review from ZhishengZeng and shuyulun01 and removed request for ZhishengZeng September 11, 2026 04:13
@ZhishengZeng

ZhishengZeng commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

Thanks, @Ayoubbelguellaoui !

This looks like a substantial change. We may need some time to go through it.

@Ayoubbelguellaoui

Copy link
Copy Markdown
Author

Of course, reliability is what matters most ! @ZhishengZeng

- Log touched_nets, total_signal_nets, elapsed_ms per fix iteration
- Add antenna benchmark test for violation/net/timing reporting
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants