@tscircuit/fanout-solver 0.0.65 → 0.0.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +22 -15
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -282,8 +282,8 @@ extents.
282
282
 
283
283
  ## Dataset 31 benchmark
284
284
 
285
- Run `./benchmark.sh` (or `bun run benchmark`) to benchmark **all 24 dataset 31
286
- directional cases: 12 AM62L and 12 RK3308** from
285
+ Run `./benchmark.sh` (or `bun run benchmark`) to benchmark **all 36 dataset 31
286
+ directional cases: 12 AM62L, 12 RK3308, and 12 K230** from
287
287
  [`tscircuit/dataset-fanout31-am62l`](https://github.com/tscircuit/dataset-fanout31-am62l).
288
288
  The upstream revision is pinned in `scripts/generate-repro/package.json` and
289
289
  recorded in every report. Other datasets remain available for regression tests
@@ -294,6 +294,7 @@ and the debugger, but have no benchmark commands or workflows.
294
294
  ./benchmark.sh --list
295
295
  ./benchmark.sh --sample 11-left-center
296
296
  ./benchmark.sh --sample 13-rk3308-top-left-offset
297
+ ./benchmark.sh --sample 25-k230-top-left-offset
297
298
  ./benchmark.sh --concurrency 8 --sample-timeout-seconds 300
298
299
  ```
299
300
 
@@ -307,11 +308,16 @@ constraints:
307
308
  | --- | ---: | ---: | ---: | ---: | ---: |
308
309
  | AM62L | 12 | 33 | 102 | 135 | 573 |
309
310
  | RK3308 | 12 | 49 | 113 | 162 | 451 |
310
-
311
- Both families have nine DDR signal buses. The RK3308 samples use a 355-ball SoC
312
- and 96-ball DDR3L RAM, with the RAM placed on each side at three offsets.
313
- The timed workers run
314
- **this checkout's solver**, not the upstream package's released solver.
311
+ | K230 | 12 | 65 | 106 | 171 | 790 |
312
+
313
+ AM62L and RK3308 have nine DDR signal buses each. The RK3308 samples use a
314
+ 355-ball SoC and 96-ball DDR3L RAM. The K230 samples use a 390-ball SoC and two
315
+ 200-ball x16 LPDDR4 RAM packages, with 17 signal buses and six differential pairs.
316
+ Each family places its RAM on all four sides at three offsets per side. K230
317
+ retains both physical RAM endpoints of its shared RESET net; the two RAM packages
318
+ have separate breakout regions. All 790 pads in each K230 case remain obstacles,
319
+ including unused signal and supply pads. The timed workers run **this checkout's
320
+ solver**, not the upstream package's released solver.
315
321
  To capture the inputs without solving, use `bun run generate:dataset31`.
316
322
  The optional `--dataset dataset31` flag is accepted for explicit CI invocation;
317
323
  other dataset selections are rejected.
@@ -343,20 +349,21 @@ Timed-out workers do not retain their in-flight routing counts.
343
349
  Every solved case also writes `benchmark-results/<sample-id>.svg`. These SVGs
344
350
  are committed so route changes can be reviewed in Git. A run replaces the selected
345
351
  cases' snapshots and removes their stale SVGs if they no longer solve; filtered
346
- runs preserve unselected snapshots. JSON reports and captured inputs remain
347
- ignored. CI includes the SVGs in its benchmark artifacts.
352
+ runs preserve unselected snapshots. The latest JSON and Markdown reports are
353
+ also committed; captured inputs remain ignored. CI includes the reports, inputs,
354
+ and SVGs in its benchmark artifacts.
348
355
  Compare reports with the same dataset revision and budgets to track progress.
349
356
  A case is solved only when every SoC connection has validated fanout: all 135
350
- connections for AM62L or all 162 for RK3308. This covers the SoC fanout phase; RAM
351
- fanout and downstream inter-chip routing are separate phases. Partial, error,
352
- and timeout rows are benchmark results (exit 0); invalid CLI arguments or report
357
+ connections for AM62L, all 162 for RK3308, or all 171 for K230. This covers the SoC
358
+ fanout phase; RAM fanout and downstream inter-chip routing are separate phases.
359
+ Partial, error, and timeout rows are benchmark results (exit 0); invalid CLI arguments or report
353
360
  I/O failures are command failures (nonzero exit).
354
361
 
355
362
  ### PR comment trigger
356
363
 
357
364
  Once `.github/workflows/benchmark.yml` is on the default branch, a repository
358
365
  writer can comment **`/benchmark`** on an open PR. The workflow captures that
359
- PR's exact head SHA, runs all 24 dataset 31 samples on a **32-vCPU Blacksmith ARM**
366
+ PR's exact head SHA, runs all 36 dataset 31 samples on a **32-vCPU Blacksmith ARM**
360
367
  runner, then updates a status comment with solve totals, per-sample results,
361
368
  and a link to the complete JSON/Markdown reports and captured inputs. The Actions
362
369
  UI also supports a manual run, optionally supplying an open PR number. No custom
@@ -522,8 +529,8 @@ bun run render:dataset
522
529
  bun run start
523
530
  ```
524
531
 
525
- The benchmark runs all 24 dataset 31 AM62L and RK3308 cases and reports solve
526
- counts, validation, and timing. `bun run start` opens all regression
532
+ The benchmark runs all 36 dataset 31 AM62L, RK3308, and K230 cases and reports
533
+ solve counts, validation, and timing. `bun run start` opens all regression
527
534
  datasets in the standard tscircuit solver debugger. `bun run
528
535
  render:dataset` writes `graphics-debug` PNGs under one subdirectory per dataset,
529
536
  with a red shared boundary, gray component courtyards, and green fanout-exit
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/fanout-solver",
3
- "version": "0.0.65",
3
+ "version": "0.0.66",
4
4
  "description": "BGA fanout solver with coordinated bus-layer escapes for SimpleRouteJson",
5
5
  "module": "lib/index.ts",
6
6
  "type": "module",