The GF-T ladder, and a correction: takum's RTL does exist - #636
Merged
Conversation
The page said no such RTL existed. It does — takum-arithmetic/Takum-Codec-RTL, VHDL, public — and the page is corrected rather than softened. What follows from that is now stated exactly. Synthesising VHDL alongside GF-T needs a front end this bench does not have, so the cost figures remain GF-T's own. What their source does show, and it is the whole cost argument: their 16-bit codec pulls in a 725-line FloPoCo leading-zero-counter and barrel shifter, generated for a Kintex-7. That is the regime decode GF-T's fixed fields do not have. Named as structural rather than measured, because that is what it is. A second correction from reading the oracle: tekum (arXiv:2512.10964) is a descendant of takum adapted for balanced ternary, and the oracle it is measured against here is a reverse-engineered structural model of it. The ratios are as good as that model, and the page says so now. The ladder is measured on one harness so the rows compare: GF-T8 at 50 LUTs and 153.23 MHz, GF-T16 at 212 and 131.73, GF-T32 at 1,477 and 83.27, one cycle of latency each. Getting there turned up a defect worth the whole exercise. gft_mul declares its product wire 32 bits; GF-T32's product is 52. The header calls the module parametric per rung and names GF-T32, so instantiating it that way looks supported and silently truncates — 1,995,730 mismatches in 2,128,964 combinations against gft_mul32.v. gft_mul_w derives the width from the parameters and agrees with gft_mul32 over 300,000 combinations. Sent upstream as trinity-fpga#510. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
github-actions Bot
added a commit
that referenced
this pull request
Aug 8, 2026
The GF-T ladder, and a correction: takum's RTL does exist (#636) The page said no such RTL existed. It does — takum-arithmetic/Takum-Codec-RTL, VHDL, public — and the page is corrected rather than softened. What follows from that is now stated exactly. Synthesising VHDL alongside GF-T needs a front end this bench does not have, so the cost figures remain GF-T's own. What their source does show, and it is the whole cost argument: their 16-bit codec pulls in a 725-line FloPoCo leading-zero-counter and barrel shifter, generated for a Kintex-7. That is the regime decode GF-T's fixed fields do not have. Named as structural rather than measured, because that is what it is. A second correction from reading the oracle: tekum (arXiv:2512.10964) is a descendant of takum adapted for balanced ternary, and the oracle it is measured against here is a reverse-engineered structural model of it. The ratios are as good as that model, and the page says so now. The ladder is measured on one harness so the rows compare: GF-T8 at 50 LUTs and 153.23 MHz, GF-T16 at 212 and 131.73, GF-T32 at 1,477 and 83.27, one cycle of latency each. Getting there turned up a defect worth the whole exercise. gft_mul declares its product wire 32 bits; GF-T32's product is 52. The header calls the module parametric per rung and names GF-T32, so instantiating it that way looks supported and silently truncates — 1,995,730 mismatches in 2,128,964 combinations against gft_mul32.v. gft_mul_w derives the width from the parameters and agrees with gft_mul32 over 300,000 combinations. Sent upstream as trinity-fpga#510. Co-authored-by: Dmitrii Vasilev <admin@t27.ai> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
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.
The page said no such RTL existed. It does — takum-arithmetic/Takum-Codec-RTL, VHDL, public — and the page is corrected rather than softened.
What follows from that is now stated exactly. Synthesising VHDL alongside GF-T needs a front end this bench doesn't have (brew's
ghdlis deprecated for failing Gatekeeper), so the cost figures remain GF-T's own. What their source does show — and it is the whole cost argument — is that their 16-bit codec pulls in a 725-line FloPoCo leading-zero-counter and barrel shifter, generated for a Kintex-7. That is the regime decode GF-T's fixed fields do not have. Labelled structural, not measured.A second correction from reading the oracle: tekum (arXiv:2512.10964) is a descendant of takum adapted for balanced ternary, and the oracle here is a reverse-engineered structural model of it. The ratios are as good as that model, and the page says so.
The ladder, one harness so the rows compare
A defect worth the whole exercise
gft_muldeclares its product wire 32 bits; GF-T32's product is 52. The header calls the module parametric per rung and names GF-T32, so instantiating it that way looks supported and silently truncates — 1,995,730 mismatches in 2,128,964 combinations againstgft_mul32.v.gft_mul_wderives the width from the parameters and agrees withgft_mul32over 300,000 combinations: it matches the module that is right and disagrees with the one that truncates. Sent upstream as gHashTag/trinity-fpga#510.🤖 Generated with Claude Code