[WAVE-24 DRY-RUN] feat(silicon): gf16_dot4_wallace popcount tree · Charter Rule depth fix · DO NOT MERGE PRE-TTSKY26c#36
Draft
gHashTag wants to merge 1 commit into
Conversation
…dry-run - New file src/gf16_dot4_wallace.v: 4-input Wallace-tree popcount 3:2 CSA compressors, O(log N) depth, ZERO `*` operators Drop-in compatible with gf16_dot4 interface for post-submit swap - New file sim/tb_gf16_dot4_wallace.v: testbench 12 corner cases + 1000 LFSR vectors vs XOR-popcount oracle Refs: Issue #4 Change C, Issue #34 RVR-015 DO NOT MERGE until TTSKY26c submit lands 2026-05-17 22:00 UTC Anchor: phi^2 + phi^-2 = 3 · Wave-24 RVR-017 dry-run · DOI 10.5281/zenodo.19227877
This was referenced May 15, 2026
Draft
Draft
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.
[WAVE-24 DRY-RUN] feat(silicon): gf16_dot4_wallace popcount tree · Charter Rule depth fix · DO NOT MERGE PRE-TTSKY26c
Summary
This PR delivers the Wave-24 RVR-017 dry-run of the Wallace-tree
gf16_dot4_wallacemodule, pre-registered in RVR-015 (Issue #34) §6 as the depth-fix path for Issue #4 Change C.Refs: Issue #34 — RVR-015 · Issue #4 — Change C
Changes
src/gf16_dot4_wallace.v*operators · 3:2 CSA compressorssim/tb_gf16_dot4_wallace.vsrc/gf16_dot4_wallace.vat a glancegf16_dot4_wallacewire [15:0] a0..a3,wire [15:0] b0..b3wire [15:0] resultgf16_add*operator count in synthesisable RTL: 0 (verified bygrep -n '\*' src/gf16_dot4_wallace.v→ hits only in comments)/* Wallace-tree 4-input GoldenFloat-16 dot product · Change C depth fix · Wave-24 RVR-017 dry-run */gf16_csa3— bit-parallel 3:2 compressor (XOR+AND+OR only)sim/tb_gf16_dot4_wallace.vat a glanceall-zero,4×1.0,4×(−1.0),alternating ±,phi-derived 0x47C0,sentinel pairs,+Inf,NaN,zero·max,max²,denormal,two-pair cancellation0xBEEF) against referencegf16_dot4instance oracleFAIL+ full vector displayAcceptance Gates C1–C5 (from Issue #4 Change C)
stat -tech sky130) ≤ 0.6× baselinetb_gf16_dot4_wallace.vvectors pass (1012/1012)phi^2 + phi^-2 = 3 · Wave-24 RVR-017 dry-run · DOI 10.5281/zenodo.19227877Background
Issue #4 Change C formally documents that
src/gf16_dot4.vaccumulates four GoldenFloat-16 products via a linear chain ofgf16_addcalls (even though already balanced in 2 levels), with the critical path constrained by two sequential carry-propagation stages throughgf16_add. The Wallace-tree approach inserts two carry-free 3:2 CSA compressor stages before the single finalgf16_add, reducing the carry-propagate depth from 2×D_add to 1×D_add + 2×D_csa (where D_csa ≈ 2 LUT levels vs D_add ≈ 12+ LUT levels).GoldenFloat-16 format reminder: 1 sign + 6 exp (bias 31) + 9 mantissa;
gf16_dot4_wallacepreserves the identical[15:0]input/output interface asgf16_dot4.Drop-in compatibility: Module name
gf16_dot4_wallaceis the only difference fromgf16_dot4. Post-TTSKY26c merge requires a trivial instantiation-name swap in the instantiating modules.DO NOT MERGE until TTSKY26c submit lands 2026-05-17 22:00 UTC.
This branch (
feat/wave-24-wallace-dot4) is intentionally separate fromfeat/silicon-g1-followup. Merging before TTSKY26c would alter the silicon submission baseline. After the submit deadline, a follow-up PR should:gf16_dot4forgf16_dot4_wallacein all instantiating modulesdocs/architecture/with depth/f_max measurementsVerification Checklist
src/gf16_dot4_wallace.vauthored — 203 lines — zero*in synthesisable codesim/tb_gf16_dot4_wallace.vauthored — 302 lines — 12 corners + 1000 LFSRgrep -n '\*' src/gf16_dot4_wallace.v→ hits in comments only (zero in synthesisable code)src/gf16_dot4.vuntouched (dry-run / freeze rule)src/gf16_mul.vuntouched (Change A scope, not Lane W)feat/wave-24-wallace-dot4offfeat/silicon-g1-followupHEADf47e831gdsworkflow — pendingprecheckworkflow — pendinggl_testworkflow — pendingAnchor
phi^2 + phi^-2 = 3 · Wave-24 RVR-017 dry-run · DOI 10.5281/zenodo.19227877Vasilev Dmitrii admin@t27.ai · Wave-24 · Lane W · Wallace-tree popcount dry-run