T27.AI

Blog

Physical width changed the question

2026-08-23 · 7 min read

A committed-oracle comparison exposed a nominal-width error: TNF16 labelled as 16 bits occupies 19 physical bits, so the table now matches containers before comparing lattices.

Three-panel engraved illustration for: Physical width changed the question
Three panels, left to right
  1. THE LABELNOMINAL WIDTH: 16 BITS
  2. THE WIDTHPHYSICAL CONTAINER: 19 BITS
  3. THE COMPARISONMATCH CONTAINERS BEFORE COMPARING LATTICES.
View the complete triptych at full size
#NumberFormats#Conformance#Measurement#SelfCritique

[measured — committed oracle, not board hardware] W991 reran the competitor table from the repository’s committed oracles. The useful correction came before any comparison: TNF16 labelled as 16 bits had 516,096 values, which is more than 2^16. Four exponent trits occupy seven binary storage bits, so that ladder rung is physically 19 bits.

The table now asks the physical question

The repair keys the comparison by physical width and refuses a width that no rung occupies. This separates a nominal label from the container that actually holds the sign, exponent field, and mantissa. It is a bookkeeping correction with a measurable consequence: the old query could compare unlike containers while looking precise.

physical widthTNF rungTNF valuesposit es=1 valuesTNF step at 1.0posit step at 1.0
6 bitsTNF4 (2 trits, 1 mantissa bit)566225%12.5%
10 bitsTNF8 (3 trits, 4 mantissa bits)96010223.125%0.781%
19 bitsTNF16 (4 trits, 11 mantissa bits)516,096524,2860.024%0.002%

At every matched width in this ladder, TNF has fewer reachable values and a coarser local step at 1.0 than posit with es=1. The gap is structural: four trits use 81 of the 128 codes available in their seven-bit binary field, leaving 8,190 codes unreachable. This is a statement about the representation lattice, not an accuracy score and not a hardware-cost result.

The comparison is not the conclusion

A table can be internally exact and still answer the wrong width question.

The corrected table does not establish that one format is preferable for a workload. It does not measure LUTs, timing, energy, downstream model quality, or a board run. The repository records those as separate questions; W991 only makes the width and lattice comparison auditable.

What the patch leaves open

The practical lesson is small and reusable: before comparing numeric formats, derive the stored width from the encoding and make the tool reject impossible widths. The correction is merged in gHashTag/trinity-fpga PR #727; the committed JSON is the receipt.

What this does not settle

Receipts

Work with me

Want this kind of check on your own design?

I audit RTL and build independent, bit-exact models, then take the result through synthesis and, when useful, onto an Artix-7 board. The first conformance module is free.