Repository navigation
widgets: nine more tools from their own .t27 specs, and gatle - #1413
Merged
Merged
Conversation
…n .t27 spec Three more drop-in FPGA tools, read in the reader's browser, nothing uploaded: - bit-autopsy: a 7-series .bit parsed per UG470: header part vs the IDCODE it writes, frames, zero bytes; counts cross-checked against prjxray bitread. - fasm-skyline: a .fasm as one column per configured tile on the full XC7A200T grid (prjxray-db tilegrid), PNG and STL out. - synth-smells: a yosys synth_xilinx log as a lint card (latches, undriven wires, driver conflicts, memories as FFs, final cells). gallery.t27 gets them via tri widget gallery-add (WIDGET_COUNT 34) and three researched ideas (same-circuit, lut-golf, wave-card) refill the shelf. Closes #1379 Closes #1380 Closes #1381 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop a .vcd: value changes, busiest net, signals stuck at X/Z, time span, parsed in the browser in chunks. Samples are vvp output as dumped: counter (7/7), vsa-bind (6/6), tmu (0/8, labelled: tmu.v reads *_wide.mem files that are not committed, #1393). Gallery: 35 widgets, shelf refilled with die-guessr. Closes #1385 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Device totals parsed from two real nextpnr-xilinx xc7a200t runs (AX7203 board, fbg484; the two logs agree on all 57 BEL types); LUTs divided by the 134,600 LUT6 positions by default, BELs on a toggle; every result is an upper bound, not a promise that it routes. node0: 28 copies, tnf16: 160. Closes #1387 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Paste or drop stat -json: LUT, FF, DSP, BRAM by explicit 7-series cell lists in the spec, unknown types listed as other, never dropped; card and badge say "yosys synth, not place and route". Sample: lm_head_matvec, Yosys 0.67, synth_xilinx -flatten: LUT 138, FF 149, DSP 0, BRAM 4. Closes #1386 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…low-check lut-depth: paste yosys ltp -noff output, see the longest path as a LUT staircase (sample: gf16_add.v, 23 levels, 11 LUTs; levels are not ns). fsm-sketch: drop a yosys fsm_export KISS2 or fsm_info log, see the state machine yosys actually extracted (uart_rx 4 states, spi_flash_master 7, fsm_simple refused). Gallery 39 widgets, 7 ideas. Closes #1394 Closes #1396 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The page shows the Verilog the t27 compiler (wasm, in the browser) emits for one spec a day; the reader has six guesses at its yosys synth_xilinx LUT count. Pool: 37 of 1682 specs (yosys 0.67+post, -nodsp, stat -json; rejects counted in pool.json). Puzzle #1 ternary/gft_sgd_step, 1826 LUTs. Nothing is stored or sent. Gallery 40 widgets, 6 ideas. Closes #1384 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
X Brain Health CheckScore: 100.0/100 X Brain is above merge threshold |
Contributor
🧪 Brain Stress Test ResultsTests: 261/261 passed, 0 leaked |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1379
Closes #1380
Closes #1381
Closes #1384
Closes #1385
Closes #1386
Closes #1387
Closes #1394
Closes #1396
(epic #1377)
Nine more widget tools for the WIDGETS tab, each a static page at
t27.ai/widgets/<id>/generated fromspecs/widgets/<id>.t27. Stacked on #1383, rebased onto main after it merged.bit-autopsyfasm-skylinesynth-smellsvcd-wrappedfits-onstat-cardlut-depthfsm-sketchgatleFound while building
gf16_add.v:165range select.[N]strarray size is not checked by the compiler.{ "version": 1, "head_sha": "59fc1cbf173b670c4d6d605709b387bf743a64f8", "summary": "Nine more widget tools generated from their own specs/widgets/<id>.t27, listed in the Queen's WIDGETS tab as kind tool; the gallery now holds 40 widgets and 6 ideas, and gatle is a daily guessing game over real t27 modules.", "changes": [ "Nine specs under specs/widgets/ (bit-autopsy, fasm-skyline, synth-smells, vcd-wrapped, fits-on, stat-card, lut-depth, fsm-sketch, gatle) with 47 test blocks; their tool.js, tool.css, card.png and data files under public/widgets/<id>/.", "scripts/widget-data/ gains the scripts that produced each widget's data and card, so every number on a page is reproducible from a named command.", "specs/widgets/gallery.t27 lists the nine as tool at the end of their category runs, remaps the asserted indices, and refills the idea shelf with xdc-check and open-flow-check from the competitor sweep.", "src/lib/queenWidgets.generated.ts and public/widgets/gallery.t27 regenerated from the gallery spec.", "src/data/siliconHistory.ts loses the second gf16_attn exclusion key: #1383 added it while main gained the same key in 3fbafd19b, and the duplicate (TS1117) turned the typecheck ratchet red on main." ], "tests": [ { "command": "node scripts/widget-pages-from-spec.mjs --check", "result": "22 tool pages up to date; spec tests 114, asserts 609, all hold", "status": "passed", "evidence": "Local run on this branch after rebasing onto main at 8cd27f51c (tri widget check)." }, { "command": "node --test scripts/widget-pages-from-spec.test.mjs", "result": "3 pass, 0 fail on the rebased branch", "status": "passed", "evidence": "Local run on this branch." }, { "command": "node scripts/widgets-from-spec.mjs --check", "result": "40 widgets in 3 categories, 6 ideas not built; spec tests 7, asserts 22, all hold", "status": "passed", "evidence": "Local run on this branch." }, { "command": "npm run typecheck:ratchet (tsc -p tsconfig.app.json)", "result": "179 errors across 26 files; baseline 179 across 26; no file gained, siliconHistory.ts back to 0", "status": "passed", "evidence": "Local run on this branch." }, { "command": "tri widget status --repo <this checkout>", "result": "22 tools, 0 problems: every tool has spec, page, tool.js, card and no gitignored file", "status": "passed", "evidence": "Local run of ~/skills/widget-forge/scripts/widget.py status." } ], "limitations": [ "Widget data are snapshots taken by the scripts under scripts/widget-data/ on the dates their specs name; nothing re-runs them on deploy.", "gatle's pool holds 37 of 1682 specs, the ones whose generated Verilog yosys accepts; the rest are filed on t27#6224.", "lut-depth and fsm-sketch read yosys output the reader pastes; yosys itself does not run in the browser.", "Nothing is posted anywhere; cards are made for the owner to post." ], "tags": [ "t27", "FPGA", "Widgets", "QueenBoard" ], "blog": { "title": "Nine more FPGA widgets, and a daily game that asks you to out-guess yosys", "summary": "Bitstream autopsy, FASM skyline, synth log smells, VCD wrapped, fits-on, stat card, LUT depth, FSM sketch and gatle: each a static page whose words and numbers live in a .t27 spec with its own tests.", "outline": [ "Bit-autopsy found five committed bitstreams that ask for a 100T while the bench holds a 200T; the page reads the IDCODE straight from the reader's .bit file.", "Synth-smells and fsm-sketch turn the yosys log a reader already has into the latch, the undriven wire and the state machine they did not know about.", "Gatle is a daily puzzle built from real t27 modules: the reader guesses the LUT count yosys reported, with six tries and a hint after each.", "What the builders found on the way: Verilog that yosys refuses, a string size the compiler does not check, and an ltp flag that walks through flip-flops." ] } }🤖 Generated with Claude Code