0
mirror of https://github.com/bbenchoff/OrthoRoute.git synced 2026-08-22 06:09:32 +00:00
Files
OrthoRoute/benchmarks/__init__.py
Brian Benchoff edd0713973 Add synthetic backplane generator and routing metrics harness
benchmarks/synthetic_boards.py: parameterized make_backplane(connectors,
pins_per, layers, pattern) building domain Boards shaped like the real
target hardware. Patterns: random pairs (matches the real backplane's
~2 pads/net), straight-across neighbor pairs, and multi-pad bus nets.
Scales from 4-net CPU test boards toward the 16x1100 monster.

benchmarks/metrics.py: collect_route_metrics(pf, board, timings) ->
stable JSON dict: per-layer copper usage, layers_used, wirelength, via
count, completion/excluded nets, iterations, overuse, phase timings,
git sha. 'How many layers does this board actually need' is now a
measured number instead of a guess.

benchmarks/run_benchmark.py: CLI runner, CPU-only, writes JSON to
benchmarks/results/ (gitignored) and prints a one-line summary.

Baseline finding worth recording: the engine does not converge even
trivial multi-net boards on CPU today - 8 straight-across nets on 4
layers end at overuse=199 after 250 iterations with ~23 vias/net of
thrash, and random-pairs boards only 'converge' by excluding nets.
Tests pin harness correctness, not routing quality; tightening them is
the scoreboard for the negotiation/punch-in work.
2026-07-22 16:01:11 -07:00

2 lines
73 B
Python

"""Benchmark tooling: synthetic board generation and routing metrics."""