Repository navigation
T50: a representation that leaves its own domain pays at the boundary - #840
Merged
Merged
Conversation
A design whose internal representation differs from its interface is not complete until the conversion is inside the measured design. Comparing it against one that already speaks the interface flatters it. Measured: without the reconstruction the Z[phi] layer was 660 cells at 204.08 MHz against 1098 at 69.21 -- 1.66x smaller, 2.95x faster. With the reconstruction inside it, 839 cells at 106.26 MHz: 1.31x smaller and 1.54x faster. The reconstruction is shift-adds with no multiplier and it still halves the clock. This narrows T49's numbers without touching its statement -- unrolling does recover throughput; the comparison it was quoted against was incomplete. Audits run locally: RU and EN PASS, 27 routes.
github-actions Bot
added a commit
that referenced
this pull request
Aug 18, 2026
T50: a representation that leaves its own domain pays at the boundary (#840) A design whose internal representation differs from its interface is not complete until the conversion is inside the measured design. Comparing it against one that already speaks the interface flatters it. Measured: without the reconstruction the Z[phi] layer was 660 cells at 204.08 MHz against 1098 at 69.21 -- 1.66x smaller, 2.95x faster. With the reconstruction inside it, 839 cells at 106.26 MHz: 1.31x smaller and 1.54x faster. The reconstruction is shift-adds with no multiplier and it still halves the clock. This narrows T49's numbers without touching its statement -- unrolling does recover throughput; the comparison it was quoted against was incomplete. Audits run locally: RU and EN PASS, 27 routes.
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.
T50 — a design whose internal representation differs from its interface is not complete until the conversion is inside the measured design. Comparing such a design against one that already speaks the interface attributes the conversion cost to neither, and flatters the first.
Measured, from trinity-fpga#593:
The reconstruction is shift-adds with no multiplier — and it still halves the clock. That is the honest deployable number; the earlier one compared a layer that cannot be consumed as it stands against one that can.
This narrows T49's numbers without touching its statement: unrolling does recover throughput. It was the baseline it got quoted against that was incomplete.
The refusal: the remaining advantage is real and smaller, measured on iCE40 which has no DSP blocks and so penalises the multiplier maximally. And it does not say the conversion is a loss the representation was preventing — a quantised layer requantises at its boundary regardless, and the exactness bought inside is not undone by rounding at the exit.
Ratchet 179/26 against baseline 184/27, no file gained. Audits: RU and EN PASS, 27 routes.