Repository navigation
S11: the FPGA adapter contract and the first device receipts (Refs #3573) - #4961
Merged
Merged
Conversation
…ashTag#3573, Refs dmitrii-f-t27/trinity-memory#66) specs/fpga/adapter.t27: the versioned contract -- inputs (bitstream sha256 tied to provenance, board identity under the full-IDCODE rule with the printed nibble-dropped form recorded beside it), configuration (flasher, cable, sram/flash), eight distinct error statuses, the trinity.fpga-receipt.v1 receipt and the dry-run/flash boundary: a build-only record never carries a result line, a device receipt always carries the transcript hash and an HW RESULT line. tools/trinity_fpga_adapter.py checks the receipts and self-check plants every defect (8/8 raised). The first device receipts: the golden chunk bit-exact in both formats (320/320) and the weights-per-second runs (12/12 each), on the AX7203 (IDCODE 0x13636093). Also Refs gHashTag/trinity#588. Co-Authored-By: ZCode <zcode@local>
Collaborator
Author
|
The four red checks ( |
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.
Refs #3573. Refs gHashTag/trinity#588. Refs dmitrii-f-t27/trinity-memory#66. S11 of gHashTag/trinity#988, in the S05 shape (S01–S06 merged 2026-09-12 via #3581 and siblings).
What
specs/fpga/adapter.t27— the versioned contract: inputs (bitstream sha256 tied to provenance, board identity under the full-IDCODE rule: the full 32-bit value recorded beside openFPGALoader's nibble-dropped print, so a masked match never passes), configuration (flasher, cable, sram/flash target), eight distinct error statuses (wrong_version,hash_mismatch,bitstream_absent,bitstream_empty,placeholder_command,idcode_mismatch,transcript_missing,dry_run_as_device), thetrinity.fpga-receipt.v1receipt schema and the dry-run/flash boundary — a build-only record ishardware: falseand never carries a result line; a device receipt always carries the bitstream sha256, the full IDCODE, the transcript sha256 and anHW RESULTline. The two laws of [spec][Trinity S11] Specify adapters to existing training, network and hardware projects #3573 hold throughout: no hardware run is inferred from synthesis; physical acceptance is tied to a recorded device and transcript.tools/trinity_fpga_adapter.py—check(receipts held to the contract, parsed from the spec itself) andself-check(each of the eight defects planted once, each refused by its own status: 8/8).conformance/trinity/fpga_adapter.json— the receipts: four device records (the golden chunk in dense5 and baseline2, 320/320 Y lines bit-exact each; the weights-per-second runs, 12/12 each) and one dry_run build record, each with bitstream sha256, provenance (commit, routed Fmax, verdict), full IDCODE0x13636093beside the printed0x3636093, and transcript hashes.specs/trinity/capabilities/fpga.adapter.t27(trinity/fpga.adapter, OWNER_REPO dmitrii-f-t27/trinity-memory, WORK_PACKAGE S11, EVIDENCE measured), OWNERS/README rows, two seals, and the docs/now entry.Measured
ALINX AX7203 (XC7A200T, IDCODE 0x13636093): BitNet b1.58 2B4T layer-0
q_projrows 0–319 (819,200 weights) read from DDR3 at 240 MHz through the UART loader, decoded and dotted on the device — every Y line equal to the t27/C reference, both formats (first rows −2561, 2660, −52, −2385). The receipts carry the build records of the bitstreams that ran (routed Fmax 64.32 MHz PASS at 60 MHz target).Verification
python3 tools/trinity_fpga_adapter.py check→ 5/5 receipts pass.self-check→ 8/8 defects raised by their own status; the clean dry-run receipt passes.tri hooks pre-commitpasses on the rebased branch (the NOW entry follows the current gate format). The upstream Bridge change of #64 may ride separately — this PR does not include it.What this does not claim
ax7203_full.t27by identity, or add one here) is left open as listed in [upstream] S11 in gHashTag/t27: FPGA adapter contract, bitstream path, dry-run/flash boundary, device receipt dmitrii-f-t27/trinity-memory#66's open questions.Do not merge without the owner's approval
The owner's review is requested; per #3573's and the epic's rules this PR is not merged without it.
🤖 Generated with Claude Code