@tscircuit/fanout-solver 0.0.15 → 0.0.17
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.
- package/README.md +38 -0
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -198,6 +198,44 @@ parameters. Each sample has one shared boundary around all of its footprints,
|
|
|
198
198
|
and component bounds come from the exact footprinter-generated copper pad
|
|
199
199
|
extents.
|
|
200
200
|
|
|
201
|
+
## SRJ19 benchmark
|
|
202
|
+
|
|
203
|
+
The repository also loads all 200 samples from
|
|
204
|
+
[`tscircuit/dataset-srj19`](https://github.com/tscircuit/dataset-srj19) as a
|
|
205
|
+
pinned development dependency. The adapter keeps the complete obstacle field
|
|
206
|
+
but selects only connections that touch the BGA, producing progressively larger
|
|
207
|
+
fanout problems with opposite-side passive overlays. Every adapted problem uses
|
|
208
|
+
the same six-layer stackup (`top`, `inner1` through `inner4`, and `bottom`) so
|
|
209
|
+
benchmark improvements are directly comparable.
|
|
210
|
+
|
|
211
|
+
Run the full benchmark with:
|
|
212
|
+
|
|
213
|
+
```sh
|
|
214
|
+
./benchmark.sh
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Use `--sample sample001`, `--limit 10`, or
|
|
218
|
+
`--max-layer-combinations 16` for shorter runs. Samples run one at a time by
|
|
219
|
+
default and print progress as they finish. `--concurrency 8` runs isolated
|
|
220
|
+
samples in parallel, and `--sample-timeout-seconds 600` prevents a difficult
|
|
221
|
+
sample from blocking the remaining work. Each run writes the full ordered
|
|
222
|
+
results to `benchmark-results/srj19.json` and
|
|
223
|
+
`benchmark-results/srj19.md`. Partial solutions are reported as benchmark
|
|
224
|
+
results instead of failing the command, making current completion rates a
|
|
225
|
+
baseline for solver improvements. `bun run benchmark:srj19` is an alias for the
|
|
226
|
+
same command.
|
|
227
|
+
|
|
228
|
+
The `SRJ19 Benchmark` GitHub Actions workflow runs the complete dataset on a
|
|
229
|
+
Blacksmith 32-vCPU ARM runner with 32 sample processes by default. It can be
|
|
230
|
+
started manually with an optional sample id, or for a pull request by adding
|
|
231
|
+
`[BENCHMARK TEST]` to its title. The workflow publishes the Markdown summary and
|
|
232
|
+
uploads both reports as an artifact.
|
|
233
|
+
|
|
234
|
+
Run `bun run start` and open the `datasets/srj19` Cosmos fixture to step the
|
|
235
|
+
selected sample through `GenericSolverDebugger`. The page has Previous/Next,
|
|
236
|
+
sample dropdown, and range controls and stores the selection in the `sample`
|
|
237
|
+
URL parameter.
|
|
238
|
+
|
|
201
239
|
## Dataset 02
|
|
202
240
|
|
|
203
241
|
`datasets/dataset02.ts` is the four-layer BGA400 stress benchmark. It routes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tscircuit/fanout-solver",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.17",
|
|
4
4
|
"description": "BGA fanout solver with coordinated bus-layer escapes for SimpleRouteJson",
|
|
5
5
|
"module": "lib/index.ts",
|
|
6
6
|
"type": "module",
|
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
"typecheck": "bunx tsc --noEmit",
|
|
29
29
|
"test": "bun test",
|
|
30
30
|
"benchmark": "bun benchmarks/run-benchmark.ts",
|
|
31
|
+
"benchmark:srj19": "./benchmark.sh",
|
|
31
32
|
"render:dataset": "bun scripts/render-dataset-pngs.ts",
|
|
32
33
|
"format": "biome format --write .",
|
|
33
34
|
"format:check": "biome format ."
|
|
@@ -39,6 +40,7 @@
|
|
|
39
40
|
},
|
|
40
41
|
"devDependencies": {
|
|
41
42
|
"@biomejs/biome": "2.5.5",
|
|
43
|
+
"@tsci/tscircuit.dataset-srj19-bga-passive-overlays": "github:tscircuit/dataset-srj19#c1206f3",
|
|
42
44
|
"@tscircuit/footprinter": "0.0.394",
|
|
43
45
|
"@types/bun": "1.3.14",
|
|
44
46
|
"@types/react": "19.2.14",
|