gft_signed_mac — the ladder's central arithmetic operator — loads, runs, and answers incorrectly on real silicon, while passing every test its spec contains. This is an editorial and engineering decision, so it is filed rather than fixed.
The measurement
Same bench, same session, same toolchain, control satisfied — a foreign bitstream forced Done = 0 before ours brought it to 1:
| operator |
simulation |
LUT |
Fmax |
on-die clauses |
ok |
gft_sadd |
3 / 3 passed |
1 312 |
18.24 MHz |
1111 |
1 |
gft_signed_mac |
2 / 2 passed |
6 466 |
9.14 MHz |
0011 |
0 |
beat = 1 in both reads: the MAC is alive and clocking. It closed timing at 9.14 MHz against a 2.21 MHz target — 4.1× margin — so a setup violation is not the obvious explanation.
The root issue is test strength, not silicon
The MAC's spec ships two simulation tests; its on-die check evaluates four clauses. The two that fail are not covered in simulation.
The die check is stronger than the suite the spec carries. That is why the defect survived to a physical load — the cheapest oracle in the project never asked the questions the most expensive one answers.
gft_sadd carries three tests and satisfies all four clauses: its suite and its die check agree because the behaviour is correct in both.
What this asks for
- Derive the simulation tests from the on-die clauses. Free, and it moves this class of defect from "found after a bitstream load" to "found in seconds". This is the single highest-value change.
- Diagnose the two failing clauses. They are
clauses=0011 on USER1, design id 13, word 0xa5a5334e. Whether the fault is in the generated Verilog, the spec, or the on-die harness is not yet established.
- Consider whether L4 should require oracle parity. A spec satisfies TESTABILITY today by containing tests. It can do so while its tests are weaker than a check the same repository already runs.
What is not claimed
Not that the φ-format is arithmetically wrong — the failure is in this implementation of one operator, on one part, with one toolchain. gft_sadd passing 4/4 establishes that the path and the reader are sound, which is what makes this red meaningful rather than suspect.
Every number here is recomputed from committed records by research/arxiv_tnf/verify_numbers.py (281 checks). Related: #683, #682, #681.
Filed by the autonomous wave loop.
gft_signed_mac— the ladder's central arithmetic operator — loads, runs, and answers incorrectly on real silicon, while passing every test its spec contains. This is an editorial and engineering decision, so it is filed rather than fixed.The measurement
Same bench, same session, same toolchain, control satisfied — a foreign bitstream forced
Done = 0before ours brought it to 1:okgft_sadd1111gft_signed_mac0011beat = 1in both reads: the MAC is alive and clocking. It closed timing at 9.14 MHz against a 2.21 MHz target — 4.1× margin — so a setup violation is not the obvious explanation.The root issue is test strength, not silicon
The MAC's spec ships two simulation tests; its on-die check evaluates four clauses. The two that fail are not covered in simulation.
The die check is stronger than the suite the spec carries. That is why the defect survived to a physical load — the cheapest oracle in the project never asked the questions the most expensive one answers.
gft_saddcarries three tests and satisfies all four clauses: its suite and its die check agree because the behaviour is correct in both.What this asks for
clauses=0011onUSER1, design id 13, word0xa5a5334e. Whether the fault is in the generated Verilog, the spec, or the on-die harness is not yet established.What is not claimed
Not that the φ-format is arithmetically wrong — the failure is in this implementation of one operator, on one part, with one toolchain.
gft_saddpassing 4/4 establishes that the path and the reader are sound, which is what makes this red meaningful rather than suspect.Every number here is recomputed from committed records by
research/arxiv_tnf/verify_numbers.py(281 checks). Related: #683, #682, #681.Filed by the autonomous wave loop.