Route multi-pin nets as trees: spanning-tree pairs, T into routed copper
A net's pin groups were joined as a chain in pin order, and each connection had to end on one chosen pin. Groups are now paired by a minimum spanning tree (Manhattan distance between their nearest pins), and a connection may start or end on any copper its net has already routed on that side (path cells, via cells on every layer; not walled cells, whose via moves into the pad). Plane nets keep their drops to the plane. A connection that tees onto another records it as an anchor. Ripping a connection rips what hangs on it, transitively, inside the same rip-up transaction, so rollback restores all of them. The exact engine gets the connections in commit order with their anchors and drops a T whose anchor it rejects. --no-tree restores the chain.
This commit is contained in:
@@ -160,6 +160,7 @@ def test_cli_supported_combinations_are_accepted(tmp_path):
|
||||
"access": ["--access-cost", "5"],
|
||||
"negotiate": ["--negotiate", "2"],
|
||||
"rollback": ["--no-rollback"],
|
||||
"tree": ["--no-tree"],
|
||||
}
|
||||
for engine, options in ENGINE_OPTIONS.items():
|
||||
for option in options:
|
||||
|
||||
Reference in New Issue
Block a user