--negotiate: PathFinder rounds on the empty board before routing
Every connection is routed N times on the empty board, where routes may share cells at a price that doubles each round for every other net on a cell, and a cell that stays shared gains history. The real routing then pays that history on free cells, so the first routes stop taking the space later routes (a fine-pitch part's escapes) have no way round. Off by default. The old history term never steered: it only accrued at rip-up fights, after the first routes had claimed the contested space, and routed connections are never revisited in later passes.
This commit is contained in:
@@ -99,6 +99,7 @@ def route_board_exact(
|
||||
seed: int | None = None,
|
||||
route_first: frozenset | None = None,
|
||||
access_cost: float = 0.0,
|
||||
negotiate: int = 0,
|
||||
rollback: bool = True,
|
||||
net_widths: dict[int, int] | None = None,
|
||||
via_drill: int | None = None,
|
||||
@@ -134,6 +135,7 @@ def route_board_exact(
|
||||
seed=seed,
|
||||
route_first=route_first,
|
||||
access_cost=access_cost,
|
||||
negotiate=negotiate,
|
||||
rollback=rollback,
|
||||
net_widths=net_widths,
|
||||
via_drill=via_drill,
|
||||
|
||||
Reference in New Issue
Block a user