--fanout: only packages of --fanout-min-pins or more; supply-only mode; vias for signals that change layer

This commit is contained in:
2026-09-29 10:20:11 -06:00
parent 21c80d30f2
commit 74360f2f57
4 changed files with 65 additions and 30 deletions
+2 -2
View File
@@ -48,7 +48,7 @@ def _rules(dsn):
s = dsn.resolution.value
return FanoutRules(trace_width=150 * s, clearance=150 * s, via_half=225 * s, via_drill=200 * s,
hole_to_hole=250 * s, edge_clearance=0, signal_layers=[0, 3],
via_padstack="Via[0-3]_450:200_um")
via_padstack="Via[0-3]_450:200_um", min_pins=8)
def test_every_pin_gets_a_stub_outward_past_its_pad():
@@ -71,7 +71,7 @@ def test_a_plane_pin_gets_a_via_and_needs_no_route():
board = build_board(dsn)
items = plan_fanout(board, _rules(dsn))
assert len([i for i in items if isinstance(i, Via)]) == 1
exact, _scale, _ = route_dsn_board_exact(dsn, resolution=2, fanout=True)
exact, _scale, _ = route_dsn_board_exact(dsn, resolution=2, fanout=True, fanout_min_pins=8)
gnd = next(i + 1 for i, n in enumerate(dsn.nets) if n.name == "GND")
assert not any(f[0] == gnd for f in exact.result.failed)
assert exact.drc_clean