Skip to content

Solve five K230 fanout cases and raise benchmark to 23/36 - #181

Open
seveibar wants to merge 41 commits into
mainfrom
k230-passing-samples
Open

Solve five K230 fanout cases and raise benchmark to 23/36#181
seveibar wants to merge 41 commits into
mainfrom
k230-passing-samples

Conversation

@seveibar

@seveibar seveibar commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

The newly integrated K230 dataset previously solved 0/12 configurations. This adds coordinated source and bus-layer reservations so five configurations now complete all 171 SoC connections within the existing 120-second benchmark limit.

The solver reserves signal and plane source escapes together, routes intact buses on their permitted layers, repairs boundary tails while retaining exact exits and existing vias, and shortens or length-matches complete buses before acceptance. Exact clearance caches and bounded initial tuning keep the search within the deadline. Every complete result still passes the existing independent validator.

./benchmark.sh now solves 23/36, up from 18/36, with no regressions among previously passing cases:

Family Before After
AM62L 12/12 12/12
RK3308 6/12 6/12
K230 0/12 5/12

K230 passes: top-left, right-bottom, left-bottom, left-center, and left-top. The dataset remains pinned to upstream 145d744; all 790 pads, 171 connections, eight layers, allowed-layer restrictions, clearance and length-skew limits are unchanged. The full run uses the default four workers and 120-second limit; 13 cases still time out.

Includes the complete benchmark JSON/Markdown reports and all 23 passing SVGs in benchmark-results/, plus 31 regression test files covering source reservations, boundary repair, physical length matching, and clearance caches.

Validation: all 226 tests pass across 182 files using the existing CI shard helper (four shards); bun run typecheck and bun run format:check pass. The final full benchmark validates 23 complete cases, and the saved SVG set matches the solved rows exactly.

@vercel

vercel Bot commented Sep 7, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
fanout-solver Ready Ready Preview Sep 7, 2026 6:09pm UTC

Request Review

@seveibar

seveibar commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

/benchmark

@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown

Dataset 31 — AM62L, RK3308, and K230 fanout benchmark

Commit: 84b618f. Blacksmith job: success.

Full JSON/Markdown reports and logs

Solved 18/36 selected samples. Completed 36/36; partial 0; errors 0; timeouts 18.

Concurrency: 32; per-sample deadline: 120s; assignment budget: sample defaults.

Only dataset-fanout31-am62l is benchmarked: 12 AM62L, 12 RK3308, and 12 K230 cases. A case is solved only when all its SoC connections have validated fanout with the original constraints (135 for AM62L; 162 for RK3308; 171 for K230). RAM fanout and inter-chip routing are separate phases.

Dataset revision: 145d744.

Per-sample results
Sample Status Routed Seconds
01-top-left-offset solved 135/135 56.27
02-top-center solved 135/135 40.69
03-top-right-offset solved 135/135 45.32
04-right-top-offset solved 135/135 7.51
05-right-center solved 135/135 6.89
06-right-bottom-offset solved 135/135 7.96
07-bottom-right-offset solved 135/135 51.51
08-bottom-center solved 135/135 34.23
09-bottom-left-offset solved 135/135 57.32
10-left-bottom-offset solved 135/135 38.40
11-left-center solved 135/135 16.28
12-left-top-offset solved 135/135 41.74
13-rk3308-top-left-offset timeout 0/162 120.09
14-rk3308-top-center timeout 0/162 120.08
15-rk3308-top-right-offset timeout 0/162 120.11
16-rk3308-right-top-offset solved 162/162 17.91
17-rk3308-right-center solved 162/162 8.98
18-rk3308-right-bottom-offset solved 162/162 37.95
19-rk3308-bottom-right-offset timeout 0/162 120.09
20-rk3308-bottom-center timeout 0/162 120.10
21-rk3308-bottom-left-offset timeout 0/162 120.08
22-rk3308-left-bottom-offset solved 162/162 42.70
23-rk3308-left-center solved 162/162 23.51
24-rk3308-left-top-offset solved 162/162 17.35
25-k230-top-left-offset timeout 0/171 120.17
26-k230-top-center timeout 0/171 120.18
27-k230-top-right-offset timeout 0/171 120.12
28-k230-right-top-offset timeout 0/171 120.20
29-k230-right-center timeout 0/171 120.14
30-k230-right-bottom-offset timeout 0/171 120.21
31-k230-bottom-right-offset timeout 0/171 120.13
32-k230-bottom-center timeout 0/171 120.19
33-k230-bottom-left-offset timeout 0/171 120.10
34-k230-left-bottom-offset timeout 0/171 120.08
35-k230-left-center timeout 0/171 120.08
36-k230-left-top-offset timeout 0/171 120.10

* Cache native via neighborhoods and canonical electrical net keys

* Retry complete layer groups with geometry-aware transit choices

* Add passing bottom-left K230 benchmark snapshot

* Repair bus length skew while retaining valid boundary tails

* Tune neighboring buses jointly after retained-tail repair fails

* Route dense turning buses from source pads with jointly placed first vias

* Record complete 24 of 36 benchmark verification

* Add validated right-top K230 breakout snapshot

* Keep source-origin routes inside the boundary until their exact exits

* Add validated bottom-center RK3308 breakout snapshot

Captured from frozen e90c174 with upstream dataset145d744 and the unchanged120-second benchmark deadline:162/162 connections in55.071seconds. A fresh whole-solution audit after all tuning also found zero early boundary contacts or non-octilinear/over-45-degree corners.

* Normalize final fanout turns and reject early boundary contact

* Check normalized target paths against their retained copper

* Repair neighboring boundary tails that block exit approaches

* Reserve future boundary approaches while placing first vias

* Skip source-origin cleanup for lanes within their bus skew limit

* Check only introduced copper around connected fanout bends

* Try exact exit phases for spaced boundary corridors

* Refresh K230 right-top snapshot after strict corner validation

* Allow validated length tuning on fixed source prefixes

* Repair independent boundary clusters on their own grid phases

* Match shortened singleton lanes after retained-tail repairs fail

* Choose source vias jointly for compressed bus exits

* Bound repeated flexible bus length searches before routing repair

* Record validated passing K230 compressed-exit snapshot

* Detect opposed source escapes in constrained pairs

* Route opposed source pairs jointly and repair their bus lengths atomically

* Snapshot passing RK3308 bottom-right fanout

* Jointly repair two overlong lanes after existing bus cleanup fails

* Retry source-origin routing using physical via channels

* Save passing RK3308 bottom-left benchmark snapshot

* Retry fresh source routing after downstream pair length failure

* Update passing RK3308 bottom-center benchmark snapshot

* Preserve complete matching searches for ordinary fixed-source buses

* Cache directed source escapes and avoid progress route copies

* Prefer alternate constrained ordering around opposed source pairs

* Record 30 of 36 benchmark results and passing fanout snapshots
* Integrate 12 i.MX6ULL dataset31 fanout samples

* Record 29 of 48 benchmark results and passing SVGs
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