Skip to content

Route SRJ buses with path attraction#17

Merged
seveibar merged 3 commits into
mainfrom
feat/srj-bus-routing
Jul 27, 2026
Merged

Route SRJ buses with path attraction#17
seveibar merged 3 commits into
mainfrom
feat/srj-bus-routing

Conversation

@seveibar

Copy link
Copy Markdown
Contributor

Summary

  • consume explicit SimpleRouteJson.buses
  • physically order bus lanes from the more tightly clustered endpoint
  • route each bus center-out
  • attract each subsequent member to an already-routed adjacent path
  • expose bus attraction radius and bonus options
  • add an SRJ scheduling test and a dense BGA visual fixture

Why

The Rust router already contains direction-aware path attraction, but the WASM/SRJ orchestration never supplied bus membership or guide paths. As a result, tscircuit buses were routed as unrelated sequential nets.

BGA prototype

The visual fixture uses a 10×10 BGA at 0.8 mm pitch and routes four 6-bit buses from inner pads to four board-edge headers on four layers.

Five-run comparison after warm-up:

Metric Baseline Bus-aware
Routed traces 24/24 24/24
Autorouting errors 0 0
Vias 48 48
Bends 54 48
Routed length 345.934 mm 346.880 mm
Median solve time 1136.2 ms 1159.5 ms

The bus-aware result uses 11.1% fewer bends with the same via count, 0.27% more copper, and about 2% more median runtime.

Dependencies

The krt-wasm tests supply buses directly at the SRJ boundary so this PR can validate the consumer before the upstream releases land.

Validation

  • cargo check --no-default-features --features wasm
  • bun run build
  • bun run typecheck
  • bun test — 6 passing
  • visual inspection of the 24-signal BGA snapshot
  • git diff --check

@seveibar
seveibar marked this pull request as ready for review July 27, 2026 16:46
@seveibar
seveibar merged commit d5b9f41 into main Jul 27, 2026
2 checks passed
@seveibar
seveibar deleted the feat/srj-bus-routing branch July 27, 2026 16:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant