$date Fri Sep 4 14:26:01 2026 $end $version Icarus Verilog $end $timescale 1ps $end $scope module tb $end $var wire 1 ! seq_done $end $var wire 1 " seq_busy $end $var wire 1 # ram_wr $end $var wire 8 $ ram_wdata [7:0] $end $var wire 1 % ram_req $end $var wire 23 & ram_addr [22:0] $end $var wire 23 ' nm_x_base [22:0] $end $var wire 23 ( nm_w_base [22:0] $end $var wire 1 ) nm_start $end $var wire 16 * nm_n_neurons [15:0] $end $var wire 16 + nm_n_inputs [15:0] $end $var wire 23 , nm_bias_addr [22:0] $end $var wire 2 - nm_activation [1:0] $end $var parameter 32 . ADDR_WIDTH $end $var parameter 23 / BUF_A_BASE $end $var parameter 23 0 BUF_B_BASE $end $var real 1 1 CLK_PERIOD $end $var parameter 32 2 DATA_WIDTH $end $var parameter 23 3 L0_BIAS_ADDR $end $var parameter 23 4 L0_W_BASE $end $var parameter 23 5 L1_BIAS_ADDR $end $var parameter 23 6 L1_W_BASE $end $var parameter 32 7 N_LAYERS $end $var parameter 32 8 N_WIDTH $end $var parameter 1 9 RAM_IDLE $end $var parameter 1 : RAM_WAIT $end $var parameter 23 ; TABLE_BASE $end $var parameter 23 < X_BASE $end $var reg 23 = buf_a_base [22:0] $end $var reg 23 > buf_b_base [22:0] $end $var reg 1 ? clk $end $var reg 1 @ nm_busy $end $var reg 1 A nm_done $end $var reg 23 B ram_addr_latched [22:0] $end $var reg 8 C ram_rdata [7:0] $end $var reg 1 D ram_ready $end $var reg 1 E ram_state $end $var reg 8 F ram_wdata_latched [7:0] $end $var reg 1 G ram_wr_latched $end $var reg 1 H rst $end $var reg 8 I run_num_layers [7:0] $end $var reg 1 J run_start $end $var reg 1 K seq_busy_dropped_early $end $var reg 32 L staged_y [31:0] $end $var reg 23 M table_base [22:0] $end $var reg 23 N x_base [22:0] $end $var reg 32 O y_bus [31:0] $end $var integer 32 P errors [31:0] $end $var integer 32 Q errors_before [31:0] $end $var integer 32 R i [31:0] $end $var integer 32 S nm_delay [31:0] $end $var integer 32 T seq_done_count [31:0] $end $scope module u_dut $end $var wire 23 U buf_a_base [22:0] $end $var wire 23 V buf_b_base [22:0] $end $var wire 1 ? clk $end $var wire 1 @ nm_busy $end $var wire 1 A nm_done $end $var wire 8 W ram_rdata [7:0] $end $var wire 1 D ram_ready $end $var wire 1 H rst $end $var wire 8 X run_num_layers [7:0] $end $var wire 1 J run_start $end $var wire 23 Y table_base [22:0] $end $var wire 23 Z x_base [22:0] $end $var wire 32 [ y_bus [31:0] $end $var parameter 32 \ ADDR_WIDTH $end $var parameter 32 ] DATA_WIDTH $end $var parameter 32 ^ N_LAYERS $end $var parameter 32 _ N_WIDTH $end $var parameter 4 ` ST_COPY_ISSUE $end $var parameter 4 a ST_COPY_WAIT $end $var parameter 4 b ST_IDLE $end $var parameter 4 c ST_READ_DESC $end $var parameter 4 d ST_READ_WAIT $end $var parameter 4 e ST_START_LAYER $end $var parameter 4 f ST_WAIT_LAYER $end $var reg 8 g activation_acc [7:0] $end $var reg 24 h bias_addr_acc [23:0] $end $var reg 3 i copy_idx [2:0] $end $var reg 1 j cur_sel $end $var reg 4 k desc_byte_idx [3:0] $end $var reg 23 l desc_table_addr [22:0] $end $var reg 8 m layer_idx [7:0] $end $var reg 16 n n_inputs_acc [15:0] $end $var reg 16 o n_neurons_acc [15:0] $end $var reg 2 p nm_activation [1:0] $end $var reg 23 q nm_bias_addr [22:0] $end $var reg 16 r nm_n_inputs [15:0] $end $var reg 16 s nm_n_neurons [15:0] $end $var reg 1 ) nm_start $end $var reg 23 t nm_w_base [22:0] $end $var reg 23 u nm_x_base [22:0] $end $var reg 8 v num_layers_reg [7:0] $end $var reg 23 w ram_addr [22:0] $end $var reg 1 % ram_req $end $var reg 8 x ram_wdata [7:0] $end $var reg 1 # ram_wr $end $var reg 1 " seq_busy $end $var reg 1 ! seq_done $end $var reg 4 y state [3:0] $end $var reg 24 z w_base_acc [23:0] $end $var reg 1 { write_sel $end $upscope $end $scope task clk_wait $end $var integer 32 | k [31:0] $end $var integer 32 } n [31:0] $end $upscope $end $scope task report $end $var reg 512 ~ label [511:0] $end $upscope $end $scope task stage_layer_output $end $var reg 32 !" val [31:0] $end $upscope $end $upscope $end $enddefinitions $end $comment Show the parameter values. $end $dumpall b100 f b11 e b10 d b1 c b0 b b110 a b101 ` b100 _ b100 ^ b1000 ] b10111 \ b10000 < b100000000 ; 1: 09 b100 8 b100 7 b11000000000000 6 b100000000000000 5 b1000000000000 4 b10000000000000 3 b1000 2 r12.5 1 b1100000000 0 b1000000000 / b10111 . $end #0 $dumpvars bx !" bx ~ bx } bx | x{ bx z bx y bx x bx w bx v bx u bx t bx s bx r bx q bx p bx o bx n bx m bx l bx k xj bx i bx h bx g b0 [ b10000 Z b100000000 Y b0 X bx W b1100000000 V b1000000000 U bx T bx S b1000000000000 R bx Q b0 P b0 O b10000 N b100000000 M bx L xK 0J b0 I 1H xG bx F xE xD bx C bx B 0A 0@ 0? b1100000000 > b1000000000 = bx - bx , bx + bx * x) bx ( bx ' bx & x% bx $ x# x" x! $end #6250 0! 0" b0 $ b0 x b0 & b0 w 0# 0% 0) b0 * b0 s b0 + b0 r b1 - b1 p b0 , b0 q b0 ( b0 t b0 ' b0 u b0 i 0{ 0j b0 o b0 n b0 g b0 h b0 z b0 k b0 l b0 v b0 m b0 y b0 C b0 W 0D 0E 0K b0 T 1? #12500 0? #18750 1? #25000 0? #31250 1? #37500 0? #43750 1? #50000 0? #56250 0H 1? #62500 0? #68750 1? #75000 0? #81250 1? #87500 0? #93750 1? #100000 0? #106250 1? #112500 0? #118750 b101001000111110001010100001011 L b101001000111110001010100001011 !" b0 Q 1? #125000 b10 I b10 X 1J 0? #131250 b1 y b100000000 l b10 v 1" 1? #137500 b0 | b10 } 0J 0? #143750 b10 y b100000000 & b100000000 w 1% b1 | 1? #150000 0? #156250 0% 1E b0 F 0G b100000000 B b10 | 1? #162500 0? #168750 0E 1D bx0000000 C bx0000000 W 1? #175000 0? #181250 b1 y b1 k bx00000000000000000000000 z 0D 1? #187500 0? #193750 b10 y b100000001 & b100000001 w 1% 1? #200000 0? #206250 0% 1E b100000001 B 1? #212500 0? #218750 0E 1D b10000 C b10000 W 1? #225000 0? #231250 b1 y b10 k bx00000000001000000000000 z 0D 1? #237500 0? #243750 b10 y b100000010 & b100000010 w 1% 1? #250000 0? #256250 0% 1E b100000010 B 1? #262500 0? #268750 0E 1D b0 C b0 W 1? #275000 0? #281250 b1 y b11 k 0D 1? #287500 0? #293750 b10 y b100000011 & b100000011 w 1% 1? #300000 0? #306250 0% 1E b100000011 B 1? #312500 0? #318750 0E 1D bx0000000 C bx0000000 W 1? #325000 0? #331250 b1 y b100 k bx00000000000000000000000 h 0D 1? #337500 0? #343750 b10 y b100000100 & b100000100 w 1% 1? #350000 0? #356250 0% 1E b100000100 B 1? #362500 0? #368750 0E 1D b100000 C b100000 W 1? #375000 0? #381250 b1 y b101 k bx00000000010000000000000 h 0D 1? #387500 0? #393750 b10 y b100000101 & b100000101 w 1% 1? #400000 0? #406250 0% 1E b100000101 B 1? #412500 0? #418750 0E 1D b0 C b0 W 1? #425000 0? #431250 b1 y b110 k 0D 1? #437500 0? #443750 b10 y b100000110 & b100000110 w 1% 1? #450000 0? #456250 0% 1E b100000110 B 1? #462500 0? #468750 0E 1D 1? #475000 0? #481250 b1 y b111 k 0D 1? #487500 0? #493750 b10 y b100000111 & b100000111 w 1% 1? #500000 0? #506250 0% 1E b100000111 B 1? #512500 0? #518750 0E 1D 1? #525000 0? #531250 b1 y b1000 k 0D 1? #537500 0? #543750 b10 y b100001000 & b100001000 w 1% 1? #550000 0? #556250 0% 1E b100001000 B 1? #562500 0? #568750 0E 1D b100 C b100 W 1? #575000 0? #581250 b1 y b1001 k b100 n 0D 1? #587500 0? #593750 b10 y b100001001 & b100001001 w 1% 1? #600000 0? #606250 0% 1E b100001001 B 1? #612500 0? #618750 0E 1D b0 C b0 W 1? #625000 0? #631250 b1 y b1010 k 0D 1? #637500 0? #643750 b10 y b100001010 & b100001010 w 1% 1? #650000 0? #656250 0% 1E b100001010 B 1? #662500 0? #668750 0E 1D b10 C b10 W 1? #675000 0? #681250 b11 y b0 k b10 o 0D 1? #687500 0? #693750 b100 y 1) b10000 ' b10000 u b10 * b10 s b100 + b100 r b0 - b0 p b10000000000000 , b10000000000000 q b1000000000000 ( b1000000000000 t 1? #700000 0? #706250 0) b11 S 1@ 1? #712500 0? #718750 b10 S 1? #725000 0? #731250 b1 S 1? #737500 0? #743750 b0 S 1? #750000 0? #756250 b101001000111110001010100001011 O b101001000111110001010100001011 [ 1A 0@ 1? #762500 0? #768750 0A b101 y 1? #775000 0? #781250 b110 y b1011 $ b1011 x b1000000000 & b1000000000 w 1# 1% 1? #787500 0? #793750 1E b1011 F 1G b1000000000 B 0% 1? #800000 0? #806250 0E 1D 1? #812500 0? #818750 0D b101 y b1 i 1? #825000 0? #831250 b110 y b10101 $ b10101 x b1000000001 & b1000000001 w 1% 1? #837500 0? #843750 1E b10101 F b1000000001 B 0% 1? #850000 0? #856250 0E 1D 1? #862500 0? #868750 0D b1 y b100001011 l b1 m 1{ 1? #875000 0? #881250 b10 y b100001011 & b100001011 w 0# 1% 1? #887500 0? #893750 1E 0G b100001011 B 0% 1? #900000 0? #906250 0E 1D bx0000000 C bx0000000 W 1? #912500 0? #918750 0D b1 y b1 k 1? #925000 0? #931250 b10 y b100001100 & b100001100 w 1% 1? #937500 0? #943750 1E b100001100 B 0% 1? #950000 0? #956250 0E 1D b110000 C b110000 W 1? #962500 0? #968750 0D b1 y b10 k bx00000000011000000000000 z 1? #975000 0? #981250 b10 y b100001101 & b100001101 w 1% 1? #987500 0? #993750 1E b100001101 B 0% 1? #1000000 0? #1006250 0E 1D b0 C b0 W 1? #1012500 0? #1018750 0D b1 y b11 k 1? #1025000 0? #1031250 b10 y b100001110 & b100001110 w 1% 1? #1037500 0? #1043750 1E b100001110 B 0% 1? #1050000 0? #1056250 0E 1D bx0000000 C bx0000000 W 1? #1062500 0? #1068750 0D b1 y b100 k 1? #1075000 0? #1081250 b10 y b100001111 & b100001111 w 1% 1? #1087500 0? #1093750 1E b100001111 B 0% 1? #1100000 0? #1106250 0E 1D b1000000 C b1000000 W 1? #1112500 0? #1118750 0D b1 y b101 k bx00000000100000000000000 h 1? #1125000 0? #1131250 b10 y b100010000 & b100010000 w 1% 1? #1137500 0? #1143750 1E b100010000 B 0% 1? #1150000 0? #1156250 0E 1D b0 C b0 W 1? #1162500 0? #1168750 0D b1 y b110 k 1? #1175000 0? #1181250 b10 y b100010001 & b100010001 w 1% 1? #1187500 0? #1193750 1E b100010001 B 0% 1? #1200000 0? #1206250 0E 1D b1 C b1 W 1? #1212500 0? #1218750 0D b1 y b111 k b1 g 1? #1225000 0? #1231250 b10 y b100010010 & b100010010 w 1% 1? #1237500 0? #1243750 1E b100010010 B 0% 1? #1250000 0? #1256250 0E 1D b0 C b0 W 1? #1262500 0? #1268750 0D b1 y b1000 k 1? #1275000 0? #1281250 b10 y b100010011 & b100010011 w 1% 1? #1287500 0? #1293750 1E b100010011 B 0% 1? #1300000 0? #1306250 0E 1D b10 C b10 W 1? #1312500 0? #1318750 0D b1 y b1001 k b10 n 1? #1325000 0? #1331250 b10 y b100010100 & b100010100 w 1% 1? #1337500 0? #1343750 1E b100010100 B 0% 1? #1350000 0? #1356250 0E 1D b0 C b0 W 1? #1362500 0? #1368750 0D b1 y b1010 k 1? #1375000 0? #1381250 b10 y b100010101 & b100010101 w 1% 1? #1387500 0? #1393750 1E b100010101 B 0% 1? #1400000 0? #1406250 0E 1D b100 C b100 W 1? #1412500 0? #1418750 0D b11 y b0 k b100 o 1? #1425000 0? #1431250 b101100001000010001011000001011 L b101100001000010001011000001011 !" b100 y 1) b1000000000 ' b1000000000 u b100 * b100 s b10 + b10 r b1 - b1 p b100000000000000 , b100000000000000 q b11000000000000 ( b11000000000000 t 1? #1437500 0? #1443750 b11 S 1@ 0) 1? #1450000 0? #1456250 b10 S 1? #1462500 0? #1468750 b1 S 1? #1475000 0? #1481250 b0 S 1? #1487500 0? #1493750 b101100001000010001011000001011 O b101100001000010001011000001011 [ 1A 0@ 1? #1500000 0? #1506250 b101 y b0 i 0A 1? #1512500 0? #1518750 b110 y b1011 $ b1011 x b1100000000 & b1100000000 w 1# 1% 1? #1525000 0? #1531250 0% 1E b1011 F 1G b1100000000 B 1? #1537500 0? #1543750 0E 1D 1? #1550000 0? #1556250 b101 y b1 i 0D 1? #1562500 0? #1568750 b110 y b10110 $ b10110 x b1100000001 & b1100000001 w 1% 1? #1575000 0? #1581250 0% 1E b10110 F b1100000001 B 1? #1587500 0? #1593750 0E 1D 1? #1600000 0? #1606250 b101 y b10 i 0D 1? #1612500 0? #1618750 b110 y b100001 $ b100001 x b1100000010 & b1100000010 w 1% 1? #1625000 0? #1631250 0% 1E b100001 F b1100000010 B 1? #1637500 0? #1643750 0E 1D 1? #1650000 0? #1656250 b101 y b11 i 0D 1? #1662500 0? #1668750 b110 y b101100 $ b101100 x b1100000011 & b1100000011 w 1% 1? #1675000 0? #1681250 0% 1E b101100 F b1100000011 B 1? #1687500 0? #1693750 0E 1D 1? #1700000 0? #1706250 b0 y 1! 0" 0D 1? #1712500 0? #1718750 b1 T 0! b0 | b100 } 1? #1725000 0? #1731250 b1 | 1? #1737500 0? #1743750 b10 | 1? #1750000 0? #1756250 b11 | 1? #1762500 0? #1768750 b100000000110000001000000001 L b100000000110000001000000001 !" b1010100010001010101001101010100001000000100000100111010001000000011001000101101011011000110000101111001011001010111001000100000011100100111010101101110001000000010100001100100011001010111001101100011011100100110100101110000011101000110111101110010001000000010111100100000011100000110100101101110011001110010110101110000011011110110111001100111001000000010111100100000011000110110111101110000011110010010110101101111011101010111010000101001 ~ b100 | 1? #1775000 b1 I b1 X 1J 0? #1781250 b1 y 0{ b100000000 l b1 v b0 m 1" 1? #1787500 b0 | b10 } 0J 0? #1793750 b10 y b100000000 & b100000000 w 0# 1% b1 | 1? #1800000 0? #1806250 0% 1E 0G b100000000 B b10 | 1? #1812500 b11 I b11 X 1J 0? #1818750 0E 1D bx0000000 C bx0000000 W 1? #1825000 0J 0? #1831250 b1 y b1 k 0D 1? #1837500 0? #1843750 b10 y b100000001 & b100000001 w 1% 1? #1850000 0? #1856250 0% 1E b100000001 B 1? #1862500 0? #1868750 0E 1D b10000 C b10000 W 1? #1875000 0? #1881250 b1 y b10 k bx00000000001000000000000 z 0D 1? #1887500 0? #1893750 b10 y b100000010 & b100000010 w 1% 1? #1900000 0? #1906250 0% 1E b100000010 B 1? #1912500 0? #1918750 0E 1D b0 C b0 W 1? #1925000 0? #1931250 b1 y b11 k 0D 1? #1937500 0? #1943750 b10 y b100000011 & b100000011 w 1% 1? #1950000 0? #1956250 0% 1E b100000011 B 1? #1962500 0? #1968750 0E 1D bx0000000 C bx0000000 W 1? #1975000 0? #1981250 b1 y b100 k 0D 1? #1987500 0? #1993750 b10 y b100000100 & b100000100 w 1% 1? #2000000 0? #2006250 0% 1E b100000100 B 1? #2012500 0? #2018750 0E 1D b100000 C b100000 W 1? #2025000 0? #2031250 b1 y b101 k bx00000000010000000000000 h 0D 1? #2037500 0? #2043750 b10 y b100000101 & b100000101 w 1% 1? #2050000 0? #2056250 0% 1E b100000101 B 1? #2062500 0? #2068750 0E 1D b0 C b0 W 1? #2075000 0? #2081250 b1 y b110 k 0D 1? #2087500 0? #2093750 b10 y b100000110 & b100000110 w 1% 1? #2100000 0? #2106250 0% 1E b100000110 B 1? #2112500 0? #2118750 0E 1D 1? #2125000 0? #2131250 b1 y b111 k b0 g 0D 1? #2137500 0? #2143750 b10 y b100000111 & b100000111 w 1% 1? #2150000 0? #2156250 0% 1E b100000111 B 1? #2162500 0? #2168750 0E 1D 1? #2175000 0? #2181250 b1 y b1000 k 0D 1? #2187500 0? #2193750 b10 y b100001000 & b100001000 w 1% 1? #2200000 0? #2206250 0% 1E b100001000 B 1? #2212500 0? #2218750 0E 1D b100 C b100 W 1? #2225000 0? #2231250 b1 y b1001 k b100 n 0D 1? #2237500 0? #2243750 b10 y b100001001 & b100001001 w 1% 1? #2250000 0? #2256250 0% 1E b100001001 B 1? #2262500 0? #2268750 0E 1D b0 C b0 W 1? #2275000 0? #2281250 b1 y b1010 k 0D 1? #2287500 0? #2293750 b10 y b100001010 & b100001010 w 1% 1? #2300000 0? #2306250 0% 1E b100001010 B 1? #2312500 0? #2318750 0E 1D b10 C b10 W 1? #2325000 0? #2331250 b11 y b0 k b10 o 0D 1? #2337500 0? #2343750 b100 y 1) b10000 ' b10000 u b10 * b10 s b100 + b100 r b0 - b0 p b10000000000000 , b10000000000000 q b1000000000000 ( b1000000000000 t 1? #2350000 0? #2356250 0) b11 S 1@ 1? #2362500 0? #2368750 b10 S 1? #2375000 0? #2381250 b1 S 1? #2387500 0? #2393750 b0 S 1? #2400000 0? #2406250 b100000000110000001000000001 O b100000000110000001000000001 [ 1A 0@ 1? #2412500 0? #2418750 0A b101 y b0 i 1? #2425000 0? #2431250 b110 y b1 $ b1 x b1000000000 & b1000000000 w 1# 1% 1? #2437500 0? #2443750 1E b1 F 1G b1000000000 B 0% 1? #2450000 0? #2456250 0E 1D 1? #2462500 0? #2468750 0D b101 y b1 i 1? #2475000 0? #2481250 b110 y b10 $ b10 x b1000000001 & b1000000001 w 1% 1? #2487500 0? #2493750 1E b10 F b1000000001 B 0% 1? #2500000 0? #2506250 0E 1D 1? #2512500 0? #2518750 0D b0 y 1! 0" 1? #2525000 0? #2531250 0! b10 T b0 | b100 } 1? #2537500 0? #2543750 b1 | 1? #2550000 0? #2556250 b10 | 1? #2562500 0? #2568750 b11 | 1? #2575000 0? #2581250 b10101000100010101010011010101000010000001000010001110100010000001110010011101010110111001011111011100110111010001100001011100100111010000100000011100100110010100101101011100000111010101101100011100110110010100100000011011010110100101100100001011010111001001110101011011100010000001100100011011110110010101110011001000000110111001101111011101000010000001100011011011110111001001110010011101010111000001110100001000000111001101110100011000010111010001100101 ~ b100 | 1?