Skip to content

Improve dense and peripheral fanout routing to 48/72 dataset cases - #189

Merged
seveibar merged 145 commits into
mainfrom
improve-fanout-to-60
Sep 9, 2026
Merged

Improve dense and peripheral fanout routing to 48/72 dataset cases#189
seveibar merged 145 commits into
mainfrom
improve-fanout-to-60

Conversation

@seveibar

@seveibar seveibar commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Dense BGA and peripheral fanouts can stall around shared source escapes, crowded boundary exits, and bus length constraints. This coordinates source reservations and complete bus groups, repairs boundary and source geometry, and adds bounded length repair through permitted signal layers.

The recorded complete benchmark passes 48/72, up from 18/72 with baseline solver 733d44a on the same dataset and budgets.

  • Coordinate dense BGA and four-sided peripheral routing while preserving required layer assignments and boundary lane order.
  • Repair crowded exits and constrained bus lengths, then validate final corners, differential-pair skew, copper clearance, and source-pad reentry.
  • Reduce repeated clearance work with spatial indexing and compact caches.
  • Integrate all 72 Dataset 31 samples at 637a6566a011be520b4fd170ad3f6da696ad4ff9.
  • Commit the complete benchmark report, independent audits, and an SVG for each of the 48 passing circuits.
Family Passing
AM62L 12/12
RK3308 9/12
K230 12/12
i.MX6ULL 11/12
T113-S3 4/12
AM3352 0/12

The full run completed all 72 samples with four workers, the original assignment budgets, and a 120-second deadline per sample: 48 solved, 24 timed out, zero partial results, and zero errors. Wall time was 22m57s. All 72 generated inputs match the original dataset inputs.

The report records measured runtime commit 090a27a8f5ecb38ab5f2000fcd1e8604312812db. A follow-up merges current main and repairs final normalization of shared plane copper; the full benchmark has not been rerun for that follow-up. Independent audits cover all 48 passing SVGs and 6,764 connections, with no geometry, ordering, bus/pair constraint, or source-pad reentry issues. The committed SVG hashes match the audited files.

The AM62L reproduction with 60 real decouplers now completes all 135 fanouts, including 102 plane drops, and passes full routed-copper DRC. Final corner repair preserves same-net plane sharing introduced by main while rejecting foreign/unknown copper, signal-branch merging, and source-pad reentry. A focused visual regression also verifies that cached plane permissions cannot leak into signal candidates; the full AM62L snapshot is refreshed for the repaired corners.

Validation: the complete AM62L regression, focused geometry/clearance regressions, typecheck, and tracked-file formatting pass locally. CI on d334643 passes all eight test shards and their aggregate; the typecheck and formatting workflows also pass. The original benchmark implementation/report revision 6c93ec5 also passed all eight test shards and their aggregate.

@seveibar
seveibar changed the base branch from improve-dense-source-routing to main September 9, 2026 17:14
@seveibar seveibar changed the title Recover dense BGA and peripheral fanouts with coordinated source and length repair Improve dense and peripheral fanout routing to 48/72 dataset cases Sep 9, 2026
@seveibar
seveibar marked this pull request as ready for review September 9, 2026 17:53
@seveibar
seveibar merged commit 4efefcd into main Sep 9, 2026
13 checks passed
@ShiboSoftwareDev

Copy link
Copy Markdown
Contributor

/benchmark

1 similar comment
@ShiboSoftwareDev

Copy link
Copy Markdown
Contributor

/benchmark

@github-actions

github-actions Bot commented Sep 12, 2026

Copy link
Copy Markdown

Dataset 31 — AM62L, RK3308, K230, i.MX6ULL, T113-S3, and AM3352 fanout benchmark

Commit: 4efefcd. Blacksmith job: success.

Full JSON/Markdown reports and logs

Solved 27/72 selected samples. Completed 72/72; partial 0; errors 0; timeouts 45.

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

Only dataset-fanout31-am62l is benchmarked: 12 AM62L, 12 RK3308, 12 K230, 12 i.MX6ULL, 12 T113-S3, and 12 AM3352 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; 102 for i.MX6ULL; 128 for T113-S3; 322 for AM3352). RAM fanout and inter-chip routing are separate phases.

Dataset revision: 637a656.

Per-sample results
Sample Status Routed Seconds
01-top-left-offset solved 135/135 65.77
02-top-center solved 135/135 43.56
03-top-right-offset solved 135/135 52.76
04-right-top-offset solved 135/135 8.50
05-right-center solved 135/135 7.17
06-right-bottom-offset solved 135/135 8.96
07-bottom-right-offset solved 135/135 58.14
08-bottom-center solved 135/135 36.84
09-bottom-left-offset solved 135/135 67.33
10-left-bottom-offset solved 135/135 48.07
11-left-center solved 135/135 16.09
12-left-top-offset solved 135/135 46.96
13-rk3308-top-left-offset timeout 0/162 120.08
14-rk3308-top-center timeout 0/162 120.05
15-rk3308-top-right-offset timeout 0/162 120.18
16-rk3308-right-top-offset solved 162/162 65.75
17-rk3308-right-center solved 162/162 45.42
18-rk3308-right-bottom-offset solved 162/162 115.53
19-rk3308-bottom-right-offset solved 162/162 76.41
20-rk3308-bottom-center solved 162/162 81.15
21-rk3308-bottom-left-offset solved 162/162 101.99
22-rk3308-left-bottom-offset timeout 0/162 120.29
23-rk3308-left-center solved 162/162 76.97
24-rk3308-left-top-offset solved 162/162 59.20
25-k230-top-left-offset timeout 0/171 120.17
26-k230-top-center timeout 0/171 120.28
27-k230-top-right-offset timeout 0/171 120.28
28-k230-right-top-offset timeout 0/171 120.23
29-k230-right-center timeout 0/171 120.22
30-k230-right-bottom-offset timeout 0/171 120.20
31-k230-bottom-right-offset timeout 0/171 120.22
32-k230-bottom-center timeout 0/171 120.33
33-k230-bottom-left-offset timeout 0/171 120.19
34-k230-left-bottom-offset timeout 0/171 120.19
35-k230-left-center timeout 0/171 120.19
36-k230-left-top-offset timeout 0/171 120.14
37-imx6ull-top-left-offset solved 102/102 74.14
38-imx6ull-top-center solved 102/102 103.94
39-imx6ull-top-right-offset timeout 0/102 120.12
40-imx6ull-right-top-offset solved 102/102 85.50
41-imx6ull-right-center solved 102/102 38.27
42-imx6ull-right-bottom-offset solved 102/102 44.11
43-imx6ull-bottom-right-offset timeout 0/102 120.11
44-imx6ull-bottom-center timeout 0/102 120.11
45-imx6ull-bottom-left-offset timeout 0/102 120.13
46-imx6ull-left-bottom-offset timeout 0/102 120.16
47-imx6ull-left-center solved 102/102 62.68
48-imx6ull-left-top-offset timeout 0/102 120.14
49-t113s3-top-left-offset timeout 0/128 120.06
50-t113s3-top-center timeout 0/128 120.06
51-t113s3-top-right-offset timeout 0/128 120.06
52-t113s3-right-top-offset timeout 0/128 120.04
53-t113s3-right-center timeout 0/128 120.04
54-t113s3-right-bottom-offset timeout 0/128 120.06
55-t113s3-bottom-right-offset timeout 0/128 120.07
56-t113s3-bottom-center timeout 0/128 120.07
57-t113s3-bottom-left-offset timeout 0/128 120.06
58-t113s3-left-bottom-offset timeout 0/128 120.05
59-t113s3-left-center solved 128/128 114.66
60-t113s3-left-top-offset timeout 0/128 120.06
61-am3352-top-left-offset timeout 0/322 120.08
62-am3352-top-center timeout 0/322 120.11
63-am3352-top-right-offset timeout 0/322 120.14
64-am3352-right-top-offset timeout 0/322 120.09
65-am3352-right-center timeout 0/322 120.11
66-am3352-right-bottom-offset timeout 0/322 120.12
67-am3352-bottom-right-offset timeout 0/322 120.06
68-am3352-bottom-center timeout 0/322 120.09
69-am3352-bottom-left-offset timeout 0/322 120.08
70-am3352-left-bottom-offset timeout 0/322 120.06
71-am3352-left-center timeout 0/322 120.08
72-am3352-left-top-offset timeout 0/322 120.09

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.

2 participants