Files
FPGA-Neural/tools/validation/mac8_tree_p2.hex
T
micheleandClaude Sonnet 5 20b0b1f4c0 test: certify mac_unit/mac8 datapath (C.1), confirm real N_INPUTS=0 guard gap
mac_unit.v: exhaustive unit test (all 65536 (x,w) combinations at
DATA_WIDTH=8, plus 486 boundary acc_in vectors) against an independent
Python oracle (tools/validation/mac_oracle.py). 66022/66022 match, 0
reserves.

mac8.v: first-ever dedicated unit test (previously only indirect
coverage at whatever single PARALLEL neuron_parallel_tb.v happens to
use). Verified at PARALLEL=2/8/32 with structural adversarial vectors
(catches swapped/duplicated tree wiring), 300 random INT8 pairs per
PARALLEL with realistic accumulating acc_in, and worst-case magnitude
adversarial vectors. 939/939 match.

Confirms BUG-002 (N_INPUTS=0 bypasses the N_INPUTS%PARALLEL elaboration
guard) is real, on both simulation and real Yosys synthesis -- root
cause: [DATA_WIDTH*N_INPUTS-1:0] becomes [-1:0] for N_INPUTS=0, which
both tools treat as a genuine 2-bit undriven vector rather than
collapsing to zero width. Includes a documented self-correction: the
first verification attempt produced a false "hang" using an invalid
one-shot late check of a single-cycle done pulse -- caught by
reproducing the same false result on a known-good sanity config before
trusting it.

Full regression re-run clean after adding 3 new testbenches: 36/36 real
tests pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013xXuuRUWZScuo1DeYJxs3v
2026-09-04 13:42:57 +02:00

314 lines
7.6 KiB
Plaintext

010102010000000000000003
01010201000003e8000003eb
02010101000003e8000003eb
bd4be50f0018cd950018b85f
ff7afec3ffe201f6ffe201f6
0a733a08ffefd14affefd798
0cc49dadfff87fccfff89d15
1d9b7be4000dc1da000da8f5
518e08db0006102e0005eaf4
020873adffe94b82ffe92649
4586613effe49f1fffe495bb
5dc3db5efffb7993fffb55d4
000d8ec2ffe7b08bffe7cc27
6a2d0d24ffff2aeeffff3f64
9fdb2eeefffd2e32fffd38fb
60e536130005083e00050220
fcbe4fa5ffe9f34dffe9d840
1468468effeefd23ffeee617
c6d8c7c40015fa85001610f1
729062190001366100010e13
3625df60ffe6d55effe6d0cc
6ca9d49afffc4da4fffc3a78
dff589f8ffe8da9affe8dfbd
4a8439c1fff44c47fff41a68
f838cdd7ffe95c12ffe9627d
7c11807d0019ab16001974d2
ec3d9232001e5c0d001e41cd
e796233d000236be0002496f
75d886370005ed470005c0c9
4b542a430019d8150019fbaf
c6ff8ebc0018ab880018ca0a
0191475a001b17e7001b306e
89a8be3200066e1600068a1a
c4b7555f0000e3a80001144f
d076684effed2df2ffed3782
5640429ffffb8ddafffb8a58
4117ca88ffeaab8effeacab5
a8c8576ffff92268fff95b61
3699aae0fffcb954fffcae5a
22a650990009702e0009440a
01aed7a8fffa3798fffa455e
8f85a70afff59ed4fff5d1a5
75b451bdfff480bbfff448cc
e807fc26000e4f58000e4e18
8dce0e6f001c8f7c001cac04
f212f33cfff61190fff60d88
47e8493efff4c5d7fff4d0dd
90a6ba8e00065c850006a311
06467307ffeb5f30ffeb63f9
df01ea67fffd474cfffd3e51
57dbef48fffb3582fffb2427
d0e0a190000786790007b609
18bf4e1a00000bed00000dc1
4d0c90c5fff9f65ffffa13cb
bd5ac4faffe1c904ffe1b2de
d351238a0005b7e500059986
cca902e5ffe4fea9ffe5101f
2aee00f9ffefcb56ffefc862
262d65e2001610e600160bbe
e83c7786ffe45874ffe41a1e
c0d3b71afff8091afff80cf0
158651e4001a1dfb001a0b1d
2528ed6d000f9846000f95f7
818d72c300040eda00042cbd
569a14c1ffe35fdeffe338ae
c65666fdffec908bffec7bdd
8b2b8c8900056c0000058e45
da075361ffe91ba1ffe93a0a
d1b323befff280c4fff285e1
22a36a4efff4570cfff46afe
a2e5e8a5000a98d5000aab47
1806ddb6000ebe28000ec8d6
cc0f01f0ffeccfa4ffeccc88
e1f88b06000aaeec000aad26
f9a0742cffeba0b8ffebb748
dd701d67ffee5b3bffee5796
6ee89cbefff5ced2fff5de4a
f764246d00000bbe0000178e
d9e7ec75ffe6106bffe60b16
1087d468000a1aea000a017a
fb4c4542000408cf0004191d
ad8513ddffebfdf4ffec233c
c857dd2cffedff1fffede613
f58610e00000ea550000ed93
e08d873e000a2688000a179a
5a5805befff4fa3cfff517e2
28be8b00001cbe7c001cb42c
c6b09528fff33d6afff33ed2
5104857c00026c25000231d5
0dcf3a68ffe54401ffe55914
005098cd000fe29c000ff754
0fe227a5ffedd757ffedc7b8
02242eb20012993900128b7d
1c0fdccc001a4bf8001a54ec
fbad7b4d00175e8e0017852c
edf7978b0008510f000881b7
be1290d900075546000761b2
5f82de74000c0f56000bd12c
3fd736d4fff5aa50fff596f1
158cb806ffeadfcfffead49b
f9109392fff281cafff2b030
24d9bcdefff14a52fff14dde
ce987afeffee4aa2ffee5dfe
5bd538e8001d54e6001d405d
e295dbab0011dd3b0011f60e
98d4b1300000c8ee0000cbfe
d20d3e3cfff46124fff46d56
bbb98c4800025276000244f9
6d7d0d280010e58000111cc1
e46e3766ffe429d7ffe433b9
16e45fd0000814130007ffdb
e9c9ca810017828e0017a249
acfb04c9ffefbf47ffefc00f
6214fc7bffea734fffea790b
723a814b0011787a00116d19
931e969a0013e2b70014002d
8070984ffff40561fff3ad49
667a3b760000eb8f0001375d
f5826451fff6d249fff6f757
60be22ba0005dc600005ba54
e7e33a56001b4244001b5895
2e56624300007ae20000a3fc
7e8c3039000919e10008eb79
7ae441adfffbd2ebfffbb080
858bed6700019f650001cff7
a8e6ebadfff8c48ffff8d44e
5fa08676fffc382cfffbdc50
53e41748000a084b000a05af
95cbb6ac001b7bd3001baa42
71eb5c63001072fa00108d49
6fabe1a0ffea6066ffea472b
a71a8387000f27ef000f59fa
4e1173f2001a5d5f001a5c43
29b8b1470004b00300048e92
db1cd7e5fff815c8fff8160f
3b77d220fffbe3dbfffbf988
ff2b8ae7ffe853d2ffe85f2d
141cadb8ffeaefacffeb0934
c1f8e920fffd7840fffd7758
770eca72000f8fbc000f7e32
912cf5eafff65ffbfff64dd9
ec6bc941fff1f3d1fff1dd7e
7279f2e600177a630017b1b1
8fb5eb02000a150b000a35fc
d061af25000046a2000028bd
e018796700012509000152b8
cf68ffb8ffe96fccffe95c2c
da396a58ffefb77affefd374
d1c5447dffe4cff6ffe4fbff
5aa1bcef0016b20400169522
5385e2c1fff43347fff412c8
a470fb25ffe95c3dffe93344
7ac9d65e0008739a000849f8
3e9b54bb000e8812000e58f8
53ad5aedffe91c99ffe8fb02
53718c9d00072b4f00077cce
5aa84e25000a86f0000a7346
8a6f14d30019a19800196aea
a30ce8ee000c3c3b000c398f
541bdc500014c30a0014c0a6
dd7e2e2f001df291001de9c9
7f70d3bb000c6d70000cb121
d8a0830ffff605ebfff60d98
e8f75f56ffeb152affeb35ec
b2116cd8ffe82a97ffe81489
e8c8f3f400195f5900196535
c9ddc1cc00156fe100158432
05eefe06fffd2a9efffd2a38
c702f4dd0018d2140018d346
fe905fe5ffe6ecc7ffe6e3a2
c839475afffaeea7fffafb25
1eb92900ffebe60cffebddba
3387b1eaffffbcbeffffab6d
375319a6fff841a5fff84ab0
37c0abaefff16e10fff17b8a
58e15d9dffe93e90ffe90ff1
0608f0a9001aa3bc001aa95c
57387ae8fff4dd48fff4e4e0
d50c7bf0fffcf9eafffcf036
765f6f0affea3899ffea68b9
779ca35afff142b5fff0f387
e52db31f0002538300024571
79b4bb9dffeaafdcffeaa69f
4df6a2270011b9e20011a88e
83fb97c70003759f00038f71
c5e953a5fffb076dfffaef39
e36e3631001a7e88001a7c68
c60d67affff807a9fff7e420
87cdee52fff7c6f1fff7d948
4007693f0000b1550000ccec
cb59e67c0010e45f0010c55a
ab126a5c0002c8890002e8a7
ad0ecf19ffeefeafffeef55c
1594631f0003f3ec0003f70d
10bf6e4cffeffeacfff01b44
f6bce59b0005f4f500060244
dfb3f459001191ca0011978b
6aac6ba2ffe8eb95ffe8a183
469a77b800132ee60012f18a
5f4c0e11ffe80987ffe826a9
ed07ed3bfff57238fff56d52
4524a14d00092d6300091a84
6da73ea700016bce0001305b
036537880015f6980015ddff
4b1b177bffe95188ffe9647e
516bee000010b65d0010d838
2c2e483bfff90577fff91df7
52c79733ffffd4f0ffffadc3
9a8876bb001cb489001cc48b
d017936dfff7513ffff71e86
fe406099fffbb688fffb8f68
4d41a9fa0000bc040000d19b
2be3b042000217d70001fe58
d51ed089000aa2e3000ab429
15543321fff9c073fff9cdea
00b0456a001e3125001e4db7
a9c24f5ffffe9ae0fffecd43
e4b540580010ed9500110bc9
9914566dffe30f0cffe32b9e
934b5c8d000f5e20000f14dd
01e8e447fffcc85afffcc07e
b186310dffff9006ffffb829
9531b440000b8d06000b658b
5e91ac9bfff8b9e8fff8b24a
e2cf86cbffe290d2ffe2afd2
352a774affec354cffec6064
1b28625c0011bcd20011e442
ebb924d2fffd973cfffd9697
f628063200112e2300112dbf
f0ebd212001ddcc0001ddad4
9809356bffed82d6ffed9555
87760c65ffe82b7effe7f874
7cf12f75000e27a1000e35d8
7818690b000afc7a000b0c3d
cd8003b3fffaadc2fffac65b
5cf076df0006a1de00068ce8
87bc0071ffed22caffed42ee
1d5aef1cffeb76daffeb7f30
9405e60000096b2d00096911
cd803798000d550c000d5834
78ae10bcfffe5296fffe27e6
6fe3d11600035f2e00034e91
00da01e7fff76c6dfff76c54
7425d4d200066b9d00068449
fc98810e0004c82a0004c2d8
43470923ffe6f196ffe70566
e2dd1fcdfffd17bffffd15ac
dc6c6a5effe7135affe72b16
c9bafe95fff5f191fff60171
77db3bd00011a4f0001188ad
c247cd16ffea3ce7ffea2753
3bb375b7001b8a72001b5756
c7e3b109001cb08a001cb438
ae22add9000c1902000c1ac3
7add47470008b1aa0008b4ad
0c1c78f10014e7ff0014e247
5f0af63e0001410f00014259
b95a6ed3fffbd619fffba9cd
7e0dd8e9ffe38120ffe38b1e
8d444401000dd383000db53b
da03c35f001a5a49001a4334
0d57fd99001cff2a001d04ca
d3857cd7ffe53c59ffe53e1c
f5fc0382fff33391fff33243
7b6ad9ab0015dc2800161c09
3ea59fccffe617e6ffe61590
6a652d35001a821f001ab542
c1bd05f600086bbd00087c08
3fa3eea30010d1740010c11b
07a3c41c000783b200077a97
83ab4a06fff31622fff3415f
1400aea700065e2100067aa3
6ab0674b00110d1300110a20
c844a0cffff3c843fff3cbc3
bb00e5b6fffc80c3fffc8891
6cff3413fff42402fff42772
9915a9bd00060cc700061b19
2e49e366ffe59e12ffe59fa2
eed43421ffeb98d1ffeba29d
54c74021ffe6825dffe677e9
49f501c9ffe38652ffe382f8
8ffeae58ffeadbceffeac080
ea49377c001a73b8001a8816
8a329f4cffe45d3fffe42967
89ed38d600123321001232c6
b8b9e67effe20b06ffe21232
b223216a000977ca00097aca
a8f383b80017099900173139
26470afe0009ac5e0009b6d4
fffb6c91ffe39120ffe36251
0caa4684fffdaaa7fffd84b7
5abee23cffe3c639ffe3a7fd
9db182baffe35ed3ffe39fd4
6e185e55001d0bc6001d354c
b59259a6ffe7d780ffe7d870
de8de9ff00145872001467cf
d730383e000a1aad000a208d
6a621909ffe83872ffe861e7
f156d0f9000860af00085cf5
3ee2b8abffeafed9ffeb0f7d
a401d9970008d79a0008e73d
7ef08639001cf4a3001cd199
25fe55bafffa5738fffa3fb0
808080800000000000008000
807f807f00000000ffff8100
808080807fffffff80007fff
807f807f7fffffff7fff80ff
808080808000000080008000
807f807f800000007fff8100
808080804000000040008000
807f807f400000003fff8100
80808080c0000000c0008000
807f807fc0000000bfff8100