Blog
A merged FPGA-repository PR replaces a magnitude-only comparison with a full adder and reports 3000 oracle checks, 0 errors, and a 440-LUT post-synthesis result.
[Measured — Yosys] A merged pull request in gHashTag/trinity-fpga adds a complete TEF/TNF floating-point adder, tef_add_full.v. It exists because an earlier area comparison put a magnitude-only circuit beside a complete tapered-field model: the two sides did not implement the same operation.
The new circuit has sign input and output, effective subtraction when signs differ, round-to-nearest-even from guard/round/sticky bits, full leading-zero normalisation, and the format’s overflow row. The correction is about making the cost question comparable; it is not a claim that this format is better than a published competitor.
Against the conformance oracle’s own encode, 3000 random pairs produced 0 errors. That check exposed two mistakes in the hand-written golden model: it divided the mantissa by 512 + 1 instead of 512, and it saturated overflow to the largest finite value instead of the Inf row. The first mistake changed 133 of 3000 results by one ulp. A third fault was real RTL: a carry-out bit was dropped instead of being folded into sticky.
| Circuit | LUT | CARRY4 |
|---|---|---|
| Magnitude-only adder | 97 | 8 |
| Full adder: sign, subtract, round, normalise | 440 | 48 |
| Internal linear structural tapered-field model | 1182 | 211 |
On this Yosys 0.65 run with synth_xilinx, xc7 family and DSP disabled, the full circuit is about 2.7× smaller than the internal reference model in LUT count. The missing rounding, subtraction and normalisation account for 343 LUT, or about 4.5× the magnitude-only circuit. These are post-synthesis cell counts, not a board measurement.
Before comparing formats, compare the operations they actually implement.
The engineering use is narrow but practical: keep magnitude-only, full arithmetic, oracle validation and synthesis configuration as separate fields in every area claim. Otherwise an asymmetry in the circuit can masquerade as a property of the format.
Every figure above is measured, and the limits are named with it.