Commit 287d9bb
check_net_connectivity: size spatial-query rings/cells to the net's real geometry (#363)
Profiling the set11 rp2350_fpga_eensy plane steps showed the plane-step
cleanup passes spend most of their time rebuilding the connectivity
graph, and each build was dominated by two spatial loops scanning fixed
worst-case neighbourhoods over 0.05mm-pitch plane fill:
- the point-point loop queried a fixed 1.0mm radius when the pair
tolerance it feeds is max(size1,size2)/4 (~0.11mm here);
- the T-junction loop queried psize/2 + 1.0 when the credit rule is
(psize + seg.width)/2 (~0.2-0.4mm here);
- both indexes used fixed 1.0mm cells, which hold hundreds of
points/segments each on dense fill.
Compute the exact per-net bounds (max point size, max segment width)
and size the index cells to the query radius so every scan is a 3x3
ring proportional to real neighbours. GND graph build on the eensy
plane board: 518ms -> 84ms (6.2x). route_planes step: 14.5s -> 9.9s.
Union results are unchanged (same components); union ORDER can change,
which may flip ties among redundant same-net segments in cleanup
(observed: one fewer redundant +3V3 segment, DRC/connectivity grades
identical).
Verified: connectivity unit tests (via-in-pad, pad-overlap, via-barrel,
endpoint-cap, orphan-island, strict-collapse) pass; full-board
check_connected reports byte-identical on 8 routed boards; A/B replay
of both eensy plane steps grades identically (0 DRC violations, same
disconnected pads).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UKFKAEkBFgwTKh1E4oJkaQ1 parent dc771db commit 287d9bb
1 file changed
Lines changed: 23 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
533 | 533 | | |
534 | 534 | | |
535 | 535 | | |
536 | | - | |
537 | | - | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
538 | 547 | | |
539 | 548 | | |
540 | | - | |
541 | | - | |
542 | | - | |
543 | | - | |
544 | 549 | | |
545 | 550 | | |
546 | 551 | | |
| |||
638 | 643 | | |
639 | 644 | | |
640 | 645 | | |
641 | | - | |
642 | | - | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
643 | 653 | | |
644 | 654 | | |
645 | 655 | | |
| |||
650 | 660 | | |
651 | 661 | | |
652 | 662 | | |
653 | | - | |
654 | | - | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
655 | 668 | | |
656 | 669 | | |
657 | 670 | | |
| |||
0 commit comments