Route wider net classes at their width, falling back where they don't fit
The grid is laid out for the default width; a wider trace also needs the cells its extra half width reaches to be free, and claims a wider halo. A connection that does not fit at its class width (typically at a fine-pitch pin) is routed at the default instead and reported. A net is written at its class width when all of its connections went in at it, and the exact check verifies it at that width; nets that shove or the diagonal pass reshaped go out at the default.
This commit is contained in:
@@ -287,6 +287,14 @@ def main(argv: list[str] | None = None) -> int:
|
||||
print(f"freeroute: {len(missing)} connection(s) not routed:", file=sys.stderr)
|
||||
for net, a, b, _zone in missing:
|
||||
print(f" {net}: {a} to {b}", file=sys.stderr)
|
||||
if result.narrowed:
|
||||
print(
|
||||
f"freeroute: {len(result.narrowed)} connection(s) of a wider net class only fitted "
|
||||
"at the default width; their nets are written at the default width:",
|
||||
file=sys.stderr,
|
||||
)
|
||||
for net, a, b in result.narrowed:
|
||||
print(f" {net}: {a} to {b}", file=sys.stderr)
|
||||
if in_zone:
|
||||
print(
|
||||
f"freeroute: {len(in_zone)} more connection(s) left to a zone fill that may join them:",
|
||||
|
||||
Reference in New Issue
Block a user