Skip to content

Fix dense mixed-width boundary fanouts without size thresholds - #235

Open
ShiboSoftwareDev wants to merge 1 commit into
mainfrom
fix/am62l-ddr4-threshold-free
Open

Fix dense mixed-width boundary fanouts without size thresholds#235
ShiboSoftwareDev wants to merge 1 commit into
mainfrom
fix/am62l-ddr4-threshold-free

Conversation

@ShiboSoftwareDev

@ShiboSoftwareDev ShiboSoftwareDev commented Sep 12, 2026

Copy link
Copy Markdown
Contributor

PR #232 solves the exact AM62L DDR4 repro, but its new dense-boundary path is selected by fixed bus and connection-count limits. Those limits make the strategy depend on input size rather than the routing conflict it handles.

This replaces that policy with a structural trigger for boundary-only layouts where separate atomic bus fields compete with singleton corridors. The solver reserves every first via jointly, routes multi-connection buses before singleton corridors in physical target order, and tries the next atomic bus when the first ordered candidate cannot route. Existing mixed boundary/plane behavior keeps its established policy and route geometry.

Source-corner normalization now reruns length matching only when repaired geometry actually violates a declared bus or differential-pair constraint. The repro from #231 and its passing DRC/SVG assertions remain unchanged.

Validation:

  • bun run typecheck
  • bun run format:check
  • bun test — 308 pass, 0 fail, 634,799 assertions on the threshold-free solver tree
  • current-main integration: benchmark authorization tests pass; exact repro routes 49/49 in about 6 seconds
  • current-head dataset benchmark: 27/72 solved, matching fix: route complete AM62L DDR4 fanout #232; 72/72 completed with no partials or errors

@vercel

vercel Bot commented Sep 12, 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 12, 2026 6:18pm UTC

Request Review

@ShiboSoftwareDev

Copy link
Copy Markdown
Contributor Author

/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: 14a5030. Blacksmith job: success.

Full JSON/Markdown reports and logs

Solved 29/72 selected samples. Completed 72/72; partial 0; errors 0; timeouts 43.

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: 8eabec2.

Per-sample results
Sample Status Routed Seconds
01-top-left-offset solved 135/135 60.17
02-top-center solved 135/135 45.86
03-top-right-offset solved 135/135 48.86
04-right-top-offset solved 135/135 8.06
05-right-center solved 135/135 6.92
06-right-bottom-offset solved 135/135 9.65
07-bottom-right-offset solved 135/135 58.55
08-bottom-center solved 135/135 35.54
09-bottom-left-offset solved 135/135 62.82
10-left-bottom-offset solved 135/135 42.64
11-left-center solved 135/135 14.83
12-left-top-offset solved 135/135 43.85
13-rk3308-top-left-offset timeout 0/162 120.07
14-rk3308-top-center timeout 0/162 120.07
15-rk3308-top-right-offset timeout 0/162 120.11
16-rk3308-right-top-offset solved 162/162 72.54
17-rk3308-right-center solved 162/162 48.74
18-rk3308-right-bottom-offset solved 162/162 112.56
19-rk3308-bottom-right-offset solved 162/162 81.64
20-rk3308-bottom-center solved 162/162 82.75
21-rk3308-bottom-left-offset solved 162/162 103.85
22-rk3308-left-bottom-offset timeout 0/162 120.13
23-rk3308-left-center solved 162/162 81.71
24-rk3308-left-top-offset solved 162/162 61.07
25-k230-top-left-offset timeout 0/171 120.12
26-k230-top-center timeout 0/171 120.15
27-k230-top-right-offset timeout 0/171 120.13
28-k230-right-top-offset timeout 0/171 120.16
29-k230-right-center timeout 0/171 120.14
30-k230-right-bottom-offset timeout 0/171 120.14
31-k230-bottom-right-offset timeout 0/171 120.09
32-k230-bottom-center timeout 0/171 120.24
33-k230-bottom-left-offset timeout 0/171 120.17
34-k230-left-bottom-offset solved 171/171 113.54
35-k230-left-center timeout 0/171 120.13
36-k230-left-top-offset timeout 0/171 120.08
37-imx6ull-top-left-offset solved 102/102 69.14
38-imx6ull-top-center solved 102/102 99.46
39-imx6ull-top-right-offset timeout 0/102 120.08
40-imx6ull-right-top-offset solved 102/102 89.27
41-imx6ull-right-center solved 102/102 41.47
42-imx6ull-right-bottom-offset solved 102/102 48.13
43-imx6ull-bottom-right-offset timeout 0/102 120.04
44-imx6ull-bottom-center timeout 0/102 120.15
45-imx6ull-bottom-left-offset timeout 0/102 120.08
46-imx6ull-left-bottom-offset timeout 0/102 120.09
47-imx6ull-left-center solved 102/102 63.62
48-imx6ull-left-top-offset timeout 0/102 120.09
49-t113s3-top-left-offset timeout 0/128 120.03
50-t113s3-top-center solved 128/128 101.02
51-t113s3-top-right-offset timeout 0/128 120.04
52-t113s3-right-top-offset timeout 0/128 120.04
53-t113s3-right-center timeout 0/128 120.08
54-t113s3-right-bottom-offset timeout 0/128 120.03
55-t113s3-bottom-right-offset timeout 0/128 120.03
56-t113s3-bottom-center timeout 0/128 120.04
57-t113s3-bottom-left-offset timeout 0/128 120.04
58-t113s3-left-bottom-offset timeout 0/128 120.03
59-t113s3-left-center solved 128/128 83.09
60-t113s3-left-top-offset timeout 0/128 120.05
61-am3352-top-left-offset timeout 0/322 120.05
62-am3352-top-center timeout 0/322 120.04
63-am3352-top-right-offset timeout 0/322 120.06
64-am3352-right-top-offset timeout 0/322 120.05
65-am3352-right-center timeout 0/322 120.06
66-am3352-right-bottom-offset timeout 0/322 120.05
67-am3352-bottom-right-offset timeout 0/322 120.04
68-am3352-bottom-center timeout 0/322 120.04
69-am3352-bottom-left-offset timeout 0/322 120.04
70-am3352-left-bottom-offset timeout 0/322 120.03
71-am3352-left-center timeout 0/322 120.04
72-am3352-left-top-offset timeout 0/322 120.04

@ShiboSoftwareDev
ShiboSoftwareDev changed the base branch from repro/am62l-ddr4-full-fanout to main September 12, 2026 18:13
@ShiboSoftwareDev

Copy link
Copy Markdown
Contributor Author

/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: e25f493. 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: 8eabec2.

Per-sample results
Sample Status Routed Seconds
01-top-left-offset solved 135/135 62.90
02-top-center solved 135/135 41.81
03-top-right-offset solved 135/135 50.12
04-right-top-offset solved 135/135 7.55
05-right-center solved 135/135 6.70
06-right-bottom-offset solved 135/135 8.15
07-bottom-right-offset solved 135/135 58.33
08-bottom-center solved 135/135 34.13
09-bottom-left-offset solved 135/135 64.50
10-left-bottom-offset solved 135/135 42.79
11-left-center solved 135/135 14.84
12-left-top-offset solved 135/135 44.61
13-rk3308-top-left-offset timeout 0/162 120.09
14-rk3308-top-center timeout 0/162 120.05
15-rk3308-top-right-offset timeout 0/162 120.13
16-rk3308-right-top-offset solved 162/162 64.79
17-rk3308-right-center solved 162/162 47.01
18-rk3308-right-bottom-offset solved 162/162 109.01
19-rk3308-bottom-right-offset solved 162/162 74.65
20-rk3308-bottom-center solved 162/162 78.34
21-rk3308-bottom-left-offset solved 162/162 100.21
22-rk3308-left-bottom-offset timeout 0/162 120.18
23-rk3308-left-center solved 162/162 79.15
24-rk3308-left-top-offset solved 162/162 57.66
25-k230-top-left-offset timeout 0/171 120.21
26-k230-top-center timeout 0/171 120.23
27-k230-top-right-offset timeout 0/171 120.25
28-k230-right-top-offset timeout 0/171 120.27
29-k230-right-center timeout 0/171 120.22
30-k230-right-bottom-offset timeout 0/171 120.24
31-k230-bottom-right-offset timeout 0/171 120.20
32-k230-bottom-center timeout 0/171 120.29
33-k230-bottom-left-offset timeout 0/171 120.20
34-k230-left-bottom-offset timeout 0/171 120.14
35-k230-left-center timeout 0/171 120.13
36-k230-left-top-offset timeout 0/171 120.17
37-imx6ull-top-left-offset solved 102/102 69.81
38-imx6ull-top-center solved 102/102 99.82
39-imx6ull-top-right-offset timeout 0/102 120.11
40-imx6ull-right-top-offset solved 102/102 78.03
41-imx6ull-right-center solved 102/102 38.31
42-imx6ull-right-bottom-offset solved 102/102 43.35
43-imx6ull-bottom-right-offset timeout 0/102 120.08
44-imx6ull-bottom-center timeout 0/102 120.09
45-imx6ull-bottom-left-offset timeout 0/102 120.11
46-imx6ull-left-bottom-offset timeout 0/102 120.13
47-imx6ull-left-center solved 102/102 61.59
48-imx6ull-left-top-offset timeout 0/102 120.17
49-t113s3-top-left-offset timeout 0/128 120.06
50-t113s3-top-center timeout 0/128 120.13
51-t113s3-top-right-offset timeout 0/128 120.06
52-t113s3-right-top-offset timeout 0/128 120.05
53-t113s3-right-center timeout 0/128 120.06
54-t113s3-right-bottom-offset timeout 0/128 120.05
55-t113s3-bottom-right-offset timeout 0/128 120.05
56-t113s3-bottom-center timeout 0/128 120.08
57-t113s3-bottom-left-offset timeout 0/128 120.07
58-t113s3-left-bottom-offset timeout 0/128 120.06
59-t113s3-left-center solved 128/128 99.26
60-t113s3-left-top-offset timeout 0/128 120.07
61-am3352-top-left-offset timeout 0/322 120.11
62-am3352-top-center timeout 0/322 120.11
63-am3352-top-right-offset timeout 0/322 120.11
64-am3352-right-top-offset timeout 0/322 120.09
65-am3352-right-center timeout 0/322 120.10
66-am3352-right-bottom-offset timeout 0/322 120.10
67-am3352-bottom-right-offset timeout 0/322 120.09
68-am3352-bottom-center timeout 0/322 120.08
69-am3352-bottom-left-offset timeout 0/322 120.07
70-am3352-left-bottom-offset timeout 0/322 120.07
71-am3352-left-center timeout 0/322 120.05
72-am3352-left-top-offset timeout 0/322 120.06

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