Repository navigation
Conversation
… the Ethernet FCS specs/fpga/rgmii.t27 (module fpga_rgmii): RGMII v2.0 timing as test-checked arithmetic: 125 MHz DDR = 1000 Mbps, 8 ns period / 4 ns nibble phase, the 10/100 downshift as SDR (25 MHz / 2.5 MHz, one edge -- DDR at 25 MHz would carry 200 Mbps, the trap the test names), IDELAYE2 tap math from UG471 (78 ps at the 200 MHz reference, 31 taps = 2418 ps; a 2.0 ns shift costs 26 taps, the 4 ns half-period does not fit -- delay elements centre the eye, they do not slip phase), and the Artix-7 fact that ODELAYE2 does not exist outside HP banks. Constants cite their sources; every other number is derived by the tests. No board measurement exists yet -- the header says THEORETICAL and names the boards. specs/fpga/eth_crc.t27 (module fpga_eth_crc): The 802.3 FCS as one spec: reflected 0xEDB88320 step, byte table (every entry re-derived from crc_bit by test table_is_derived), preset/post-xor 0xFFFFFFFF, FCS = one's complement. ORACLE vectors computed with Python 3 zlib.crc32, not transcribed: the published check value 0xcbf43926, one octet, empty, two frames (broadcast/IPv4, slow-protocols/length), and the receiver fact that frame + FCS returns the register to 0xFFFFFFFF. The 0x2144DF1C / 0xDEBB20E3 magic residues belong to other CRC conventions and are deliberately not claimed. Both compile clean through the wasm t27c (typecheckOk, hirOk, 0 errors). Their tests use calls, locals and separated/hex literals, which the in-browser mini-runner cannot execute -- the known trinity#1477 gap; the native runner executes them. Refs gHashTag/trinity#1484 (buses-and-peripherals, module 8) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
This was referenced Oct 7, 2026
…1484) The Zig reference rejects an array literal longer than its [32]u8 parameter (expected 32 array elements; found 36), which the wasm typecheck accepts -- caught by the t27b corpus run in CI, not by the local check. Every crc_buf literal now carries exactly 32 elements: the first len bytes are the frame, the rest zero padding the loop never reads. All oracle values are unchanged because crc_buf only folds data[0..len]. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
PR DashboardGenerated at: 2026-10-07 22:05:12 UTC
Summary
Seal Status
|
…gs (Closes #7625, Refs trinity#1484) eth_crc.t27 is a self-contained player spec and carries its own hex and CRC bit helpers, like the two specs that already share hex_nibble_of; crc_bits was unique until now. Recorded in the same commit as the specs, per the gate's own instruction. build_tree 5 rides along from the merged master specs. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Contributor
PR DashboardGenerated at: 2026-10-07 22:24:46 UTC
Summary
Seal Status
|
Owner
Author
|
Superseded by #7626: same specs, rebuilt as a clean three-commit chain on top of current master (root commit now carries the issue reference the L1 gate needs). The REST API cannot retarget a PR head branch, so the fixed history ships as a new PR; the old branch is left untouched. |
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.
Two new pure-t27 specs the trinity buses-and-peripherals course (gHashTag/trinity#1484, module 8) lists as required:
specs/fpga/rgmii.t27 —
module fpga_rgmiiHAVE_ODELAY == false).specs/fpga/eth_crc.t27 —
module fpga_eth_crctable_is_derivedre-deriving every entry fromcrc_bit, preset/post-xor 0xFFFFFFFF,fcs_of= one's complement.zlib.crc32(real tool, not transcription): check value0xcbf43926, single octet, empty, two frames (broadcast+IPv4 header, slow-protocols+length), and the receiver fact — CRC over frame + FCS returns the register to0xFFFFFFFF.0x2144DF1C/0xDEBB20E3residues belong to other CRC conventions and are deliberately not claimed (the wrong-constant mistake was caught by re-running the tool, see commit).Verification
Both compile clean through the wasm t27c (
typecheckOk: true, hirOk: true, 0 errors). Their tests use calls, locals and separated/hex literals — exactly what the in-browser mini-runner cannot execute (known gap, gHashTag/trinity#1477); the native runner covers them.Refs gHashTag/trinity#1484, Refs gHashTag/trinity#1476
🤖 Generated with Claude Code
Closes #7625 (this repo's spec request; the course that consumes them is gHashTag/trinity#1484)