Skip to content

Solve 30 of 36 dataset31 fanouts within 120 seconds - #183

Merged
seveibar merged 36 commits into
k230-passing-samplesfrom
k230-30-of-36
Sep 7, 2026
Merged

Solve 30 of 36 dataset31 fanouts within 120 seconds#183
seveibar merged 36 commits into
k230-passing-samplesfrom
k230-30-of-36

Conversation

@seveibar

@seveibar seveibar commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Raise the default dataset31 benchmark from 23/36 to 30/36, retaining every passing case from #181. This PR is stacked on #181. The dataset revision (145d744), original DRCs, four-worker default, and 120-second sample deadline remain unchanged.

Chip Previous This PR
AM62L 12/12 12/12
RK3308 6/12 9/12
K230 5/12 9/12

Dense fanouts can finish their topology but fail bus length matching because of source-via placement or boundary joins. Add bounded source-via and retained-tail retries, validate the resulting corner and boundary geometry, and commit source reservations only after the complete bus satisfies its original constraints. Cache immutable clearance checks and avoid rebuilding routes for progress counts; use the source geometry to try an alternate constrained routing order before its existing fallbacks.

New passes are RK3308 samples 19–21 and K230 samples 28, 31–33. The complete benchmark report and all 30 passing SVGs are committed in benchmark-results/.

Validation: official ./benchmark.sh on 7fe6bd0 reports 30 solved, 0 partial, 0 errors, and 6 timeouts. All 36 captured inputs match the previous inputs exactly. All eight CI shards pass (246 tests); the four existing dataset07 tests skipped by CI also pass locally. Typecheck and formatting pass. Independent SVG checks found no corner or boundary issues in the new or changed staged outputs.

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.
@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 10:20am UTC

Request Review

@seveibar seveibar changed the title Improve dense RK3308 and K230 fanout routing Solve 30 of 36 dataset31 fanouts within 120 seconds Sep 7, 2026
@seveibar
seveibar marked this pull request as ready for review September 7, 2026 10:20
@seveibar
seveibar merged commit 364f6d9 into k230-passing-samples Sep 7, 2026
11 checks passed
@tscircuitbot

Copy link
Copy Markdown
Collaborator

Thank you for your contribution! 🎉

PR Rating: ⭐⭐⭐
Impact: Major

Track your contributions and see the leaderboard at: tscircuit Contribution Tracker


seveibar added a commit that referenced this pull request Sep 9, 2026
)

* Enable larger fine winding grids and index copper clearance checks

* Preserve reserved boundary slots and route fixed singletons with spaced exits

* Reserve plane capacity while finding partial signal source escapes

* Pack whole boundary bus intervals and preserve explicit source reservations

* Choose winding grid phases that preserve narrow via channels

* Route complete buses around reserved source vias with negotiated search

* Avoid repeated clearance work while tuning long bus routes

* Index nearby route segments during repeated clearance validation

* Prepare reserved source escapes by constrained target layer

* Repair crowded boundary links without inventing cutpoint vias

* Align negotiated routes to tight channels and repair boundary tails

* Keep boundary cut paths separate and cache move blockers by layer

* Integrate complete layer-reserved routing with exact length and boundary repairs

* Reuse exact obstacle checks for unchanged tuning segments

* Snapshot the first complete K230 benchmark fanout

* Cache retained self-intersections while tuning bus lengths

* Shorten trapped bus lanes with bounded exact rerouting before tuning

* Accept shorter lanes when the complete bus skew improves

* Repair nearly complete reserved-via bus groups with bounded local rerouting

* Repair boundary tails beginning at retained transit vias

* Keep repaired routes inside the board until their exact exits

* Reuse complete clearance of retained immutable route plans

* Repair overlong pair lanes atomically when shortening changes their order

* Allow explicitly permitted transit across the source layer

* Retry permitted source-layer transit and preserve directly tunable routes

* Align crowded boundary repair grids with exact exit tracks

* Snapshot the passing K230 left-bottom fanout benchmark

* Document coordinated dense routing and atomic length repairs

* Preserve unchanged lead copper during bus length matching

* Avoid redundant repairs before permitted transit fallback

* Record passing K230 left-top breakout snapshot

* Retry length-trapped single-layer topology from fixed reservations

* Bound optional length matching work before route cleanup fallback

* Bound first tuning pass before geometric length repair

* Record passing K230 right-bottom fanout snapshot

* Cache static routing edges in exact compact slots

* Move stalled tuning to geometric repair sooner

* Record passing K230 top-left fanout snapshot

* Record 23 passing dataset fanout benchmark cases

* Solve 30 of 36 dataset31 fanouts within 120 seconds (#183)

* 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 i.MX6ULL dataset31 samples and benchmark all 48 cases (#184)

* Integrate 12 i.MX6ULL dataset31 fanout samples

* Record 29 of 48 benchmark results and passing SVGs

* Resolve obstacle net ownership once per routed trace

* Route dense wide buses on aligned edges and retry blocked pair reservations

* Try diagonal source corridors when length repair stalls

* Retry source reservations when wide bus length matching fails

* Retry shared reservations after later bus length failure

* Integrate all 60 dataset31 fanout cases including T113-S3

* Repair constrained source pairs before costly length fallbacks

* Verify T113-S3 capture and 60-case benchmark reporting

* Record 29 of 60 passing fanouts on latest dataset31

* Retry untunable source routes with fresh higher-cost escapes

* Retain future approach guides after fresh source routing fails

* Bound the speculative fresh-source trial before protected retries

* Skip empty native via occupancy checks without caching owners

* Rematch unfinished source dogbones around length tuning

* Format i.MX 6ULL routing fixtures

* Test transactional rematching of unfinished source dogbones

* Integrate all 72 dataset31 cases including AM3352

* Initialize corner helper layer assignments without a full solve

* Add temporary diagnostics for Linux routing regressions

* Revert "Add temporary diagnostics for Linux routing regressions"

This reverts commit 561d5d1.

* Run routing snapshots on the macOS ARM baseline platform

* Allow capture startup time for the six-family CLI test

* Expect all 72 cases in PR benchmark queue message

* Allow cold SVG renderer startup in corner snapshot test

* Allow cold startup for ordinary CI tests

* Record 40 of 72 passing benchmark cases and SVG snapshots

* Allocate flexible multi-edge buses across legal layers before packing exits

* Allow source-origin routing through permitted internal signal layers

* Reserve coherent vias beyond peripheral lead bodies

* Repair connected boundary clusters up to 32 lanes atomically

* Merge layered boundary targets while preserving each original lane sequence

* Choose legal source-aligned lane merges for multi-edge targets

* Complete one missing source-origin lane around retained group copper

* Route multi-edge BGA groups around complete shared source reservations

* Route intact buses jointly with individually mapped target layers

* Match constrained buses by extending legal folds and distributing tuning

* Retain provisional matched buses during group length repair

* Retry split constrained buses with joint source placement

* Route four-sided peripheral packages jointly across signal layers

* Use joint peripheral routing for complete four-sided lead packages

* Try bounded distributed tuning after multi-edge bus cleanup

* Continue private distributed tuning around blocked lanes

* Try bounded distributed matching for dense peripheral pairs

* Prioritize target-layer travel for opposite-side constrained buses

* Allow source-layer boundary allocation for explicit return-via strategies

* Allow fixed via buses to return to a permitted source layer

* Coordinate multi-edge BGA buses across their assigned layers

* Open bounded length tuning windows through permitted signal layers

* Repair failed peripheral pairs with bounded source and transit alternatives

* Validate original differential-pair length tolerances

* Recover aligned opposite split buses with bounded distributed matching

* Record 72-sample benchmark and snapshots for all 40 passing circuits

* Reject tuning vias that shortcut retained copper on the same net

* Retain future boundary approaches throughout group cleanup

* Match declared differential pairs within original bus constraints

* Allow opt-in source-origin TOP exits after real internal transit

* Reject source-origin TOP routes that shortcut their own copper

* Preserve staged matching before unconstrained buses are routed

* Keep pair declarations consistent with the reduced guided-track fixture

* Account for unresolved pairs when validating a partial routing fixture

* Repair constrained wide buses with overlong source prefixes

* Record 43 of 72 passing benchmark circuits and snapshots

* Reuse clearance validation within recursive length matching

* Bound wide source cleanup before ordinary routing retries

* Try new source placement before repeating a failed fixed topology

* Spend source cleanup allowance only on eligible geometry

* Route exact boundary approaches with negotiated terminal connectors

* Allow clear side-first entries into reserved boundary tails

* Allow CI variance for compound source and via repair regressions

* Audit exact boundary entry suffixes and preserve repair provenance

* Record complete 45-of-72 benchmark and passing snapshots

* Preserve fixed-via retries for exits beside the source field

* Open bounded multi-segment windows for bus length tuning

* Record complete 47-of-72 benchmark and recovered K230 snapshots

* Repair short returning arms before boundary terminal entries

* Reuse symmetric indexed clearance while tuning bus lengths

* Normalize legacy fanout corners without losing matched lengths

* Limit plane source repair to drops without endpoint copper

* Validate declared pair lengths after all corner repairs

* Preserve supplied copper when validating repaired boundary tails

* Restore AM62L completion after source and boundary normalization

* Retune matched bus lengths after multiple corner repairs

* Refresh validated fanout snapshots and check emitted copper

Regenerate seventeen circuit snapshots after final corner normalization. Preserve all existing physical assertions, add emitted axis/45 checks to eight fixtures, and add native DRC checks to three fixtures.

* Store native static clearance in compact adjacency slots

* Retain received K230 SVGs when snapshot comparisons fail

* Preserve intermediate path selection during final corner repair

* Refresh validated source and K230 offset fanout snapshots

* Refresh K230 right-center snapshot from validated CI output

* Capture received SVGs for restored fanout snapshots

* Refresh validated source transit and physical phase snapshots

* Refresh seven validated iMX6ULL fanout snapshots from CI

* Bound and diagnose isolated SVG renderer startup

* Record complete benchmark and audit source pad reentries

* Repair final source-pad reentries and reject remaining returns

* Normalize reserved and peripheral routes before final validation

* Record 48 of 72 validated fanouts and passing SVGs

* Recover untunable wide fanouts with protected source and first-via repair

* Reserve first-via relocation for protected source retries

* Allow both northeast reproduction snapshots to finish in CI

* Publish the fully validated 48-case routing improvements

* Preserve shared plane copper during final source normalization
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