$date Fri Sep 4 13:22:49 2026 $end $version Icarus Verilog $end $timescale 1ps $end $scope module tb $end $var wire 16 ! mem_rdata [15:0] $end $var wire 1 " mem_ready $end $var wire 1 # ready $end $var wire 8 $ rdata [7:0] $end $var wire 1 % mem_wr $end $var wire 16 & mem_wdata [15:0] $end $var wire 1 ' mem_ub_n $end $var wire 1 ( mem_req $end $var wire 1 ) mem_lb_n $end $var wire 23 * mem_addr [22:0] $end $var parameter 32 + ADDR_WIDTH $end $var real 1 , CLK_PERIOD $end $var reg 23 - addr [22:0] $end $var reg 1 . clk $end $var reg 16 / model_rdata [15:0] $end $var reg 1 0 model_ready $end $var reg 1 1 req $end $var reg 1 2 rst $end $var reg 8 3 wdata [7:0] $end $var reg 1 4 wr $end $var integer 32 5 i [31:0] $end $scope module dut $end $var wire 23 6 addr [22:0] $end $var wire 1 . clk $end $var wire 16 7 mem_rdata [15:0] $end $var wire 1 " mem_ready $end $var wire 1 1 req $end $var wire 1 2 rst $end $var wire 8 8 wdata [7:0] $end $var wire 1 4 wr $end $var parameter 32 9 ADDR_WIDTH $end $var parameter 2 : STATE_IDLE $end $var parameter 2 ; STATE_WAIT $end $var reg 23 < addr_reg [22:0] $end $var reg 23 = mem_addr [22:0] $end $var reg 1 ) mem_lb_n $end $var reg 1 ( mem_req $end $var reg 1 ' mem_ub_n $end $var reg 16 > mem_wdata [15:0] $end $var reg 1 % mem_wr $end $var reg 8 ? rdata [7:0] $end $var reg 1 # ready $end $var reg 2 @ state [1:0] $end $upscope $end $scope task read_byte $end $var reg 23 A byte_addr [22:0] $end $var reg 8 B expected [7:0] $end $upscope $end $scope task write_byte $end $var reg 23 C byte_addr [22:0] $end $var reg 8 D data [7:0] $end $upscope $end $upscope $end $enddefinitions $end $comment Show the parameter values. $end $dumpall b1 ; b0 : b10111 9 r12.5 , b10111 + $end #0 $dumpvars bx D bx C bx B bx A bx @ bx ? bx > bx = bx < b0 8 b0 7 b0 6 b10000000000 5 04 b0 3 12 01 00 b0 / 0. b0 - bx * x) x( x' bx & x% bx $ x# 0" b0 ! $end #6250 1' 1) b0 & b0 > b0 * b0 = 0% 0( 0# b0 $ b0 ? b0 < b0 @ 1. #12500 0. #18750 1. #25000 0. #31250 1. #37500 0. #43750 1. #50000 0. #56250 b10010 D b0 C 02 1. #62500 0. #68750 11 14 b10010 3 b10010 8 1. #75000 0. #81250 01 b1 @ b10010 & b10010 > 0) 1% 1( 1. #87500 0. #93750 1" 10 0( 1. #100000 0. #106250 b0 @ 1# 0" 00 1. #112500 0. #118750 0# b110100 D b1 C 1. #125000 0. #131250 11 b110100 3 b110100 8 b1 - b1 6 1. #137500 0. #143750 01 b1 @ b11010000000000 & b11010000000000 > 0' 1) 1( b1 < 1. #150000 0. #156250 0( 1" 10 1. #162500 0. #168750 0" 00 b0 @ 1# 1. #175000 0. #181250 0# b1010110 D b10 C 1. #187500 0. #193750 11 b1010110 3 b1010110 8 b10 - b10 6 1. #200000 0. #206250 01 b1 @ b1010110 & b1010110 > 1' 0) b1 * b1 = 1( b10 < 1. #212500 0. #218750 1" 10 0( 1. #225000 0. #231250 b0 @ 1# 0" 00 1. #237500 0. #243750 0# b1111000 D b11 C 1. #250000 0. #256250 11 b1111000 3 b1111000 8 b11 - b11 6 1. #262500 0. #268750 01 b1 @ b111100000000000 & b111100000000000 > 0' 1) 1( b11 < 1. #275000 0. #281250 0( 1" 10 1. #287500 0. #293750 0" 00 b0 @ 1# 1. #300000 0. #306250 0# b10010 B b0 A 1. #312500 0. #318750 11 04 b0 - b0 6 1. #325000 0. #331250 01 b1 @ b1111000 & b1111000 > 1' 0) b0 * b0 = 0% 1( b0 < 1. #337500 0. #343750 1" 10 b11010000010010 ! b11010000010010 7 b11010000010010 / 0( 1. #350000 0. #356250 b0 @ 1# b10010 $ b10010 ? 0" 00 1. #362500 0. #368750 0# b110100 B b1 A 1. #375000 0. #381250 11 b1 - b1 6 1. #387500 0. #393750 01 b1 @ b111100000000000 & b111100000000000 > 0' 1) 1( b1 < 1. #400000 0. #406250 0( 1" 10 1. #412500 0. #418750 0" 00 b0 @ 1# b110100 $ b110100 ? 1. #425000 0. #431250 0# b1010110 B b10 A 1. #437500 0. #443750 11 b10 - b10 6 1. #450000 0. #456250 01 b1 @ b1111000 & b1111000 > 1' 0) b1 * b1 = 1( b10 < 1. #462500 0. #468750 1" 10 b111100001010110 ! b111100001010110 7 b111100001010110 / 0( 1. #475000 0. #481250 b0 @ 1# b1010110 $ b1010110 ? 0" 00 1. #487500 0. #493750 0# b1111000 B b11 A 1. #500000 0. #506250 11 b11 - b11 6 1. #512500 0. #518750 01 b1 @ b111100000000000 & b111100000000000 > 0' 1) 1( b11 < 1. #525000 0. #531250 0( 1" 10 1. #537500 0. #543750 0" 00 b0 @ 1# b1111000 $ b1111000 ? 1. #550000 0. #556250 0# b110100 D b10000 C 1. #562500 0. #568750 11 14 b110100 3 b110100 8 b10000 - b10000 6 1. #575000 0. #581250 01 b1 @ b110100 & b110100 > 1' 0) b1000 * b1000 = 1% 1( b10000 < 1. #587500 0. #593750 1" 10 0( 1. #600000 0. #606250 b0 @ 1# b1010110 $ b1010110 ? 0" 00 1. #612500 0. #618750 0# b10010 D b10001 C 1. #625000 0. #631250 11 b10010 3 b10010 8 b10001 - b10001 6 1. #637500 0. #643750 01 b1 @ b1001000000000 & b1001000000000 > 0' 1) 1( b10001 < 1. #650000 0. #656250 0( 1" 10 1. #662500 0. #668750 0" 00 b0 @ 1# b1111000 $ b1111000 ? 1. #675000 0. #681250 0# b10101010 D b10000 C 1. #687500 0. #693750 11 b10101010 3 b10101010 8 b10000 - b10000 6 1. #700000 0. #706250 01 b1 @ b10101010 & b10101010 > 1' 0) 1( b10000 < 1. #712500 0. #718750 1" 10 0( 1. #725000 0. #731250 b0 @ 1# b1010110 $ b1010110 ? 0" 00 1. #737500 0. #743750 0# b10111011 D b10001 C 1. #750000 0. #756250 11 b10111011 3 b10111011 8 b10001 - b10001 6 1. #762500 0. #768750 01 b1 @ b1011101100000000 & b1011101100000000 > 0' 1) 1( b10001 < 1. #775000 0. #781250 0( 1" 10 1. #787500 0. #793750 0" 00 b0 @ 1# b1111000 $ b1111000 ? 1. #800000 0. #806250 0# b11111111 D b100000 C 1. #812500 0. #818750 11 b11111111 3 b11111111 8 b100000 - b100000 6 1. #825000 0. #831250 01 b1 @ b11111111 & b11111111 > 1' 0) b10000 * b10000 = 1( b100000 < 1. #837500 0. #843750 1" 10 0( 1. #850000 0. #856250 b0 @ 1# b1010110 $ b1010110 ? 0" 00 1. #862500 0. #868750 0# b10000000 D b100001 C 1. #875000 0. #881250 11 b10000000 3 b10000000 8 b100001 - b100001 6 1. #887500 0. #893750 01 b1 @ b1000000000000000 & b1000000000000000 > 0' 1) 1( b100001 < 1. #900000 0. #906250 0( 1" 10 1. #912500 0. #918750 0" 00 b0 @ 1# b1111000 $ b1111000 ? 1. #925000 0. #931250 0# b1111111 D b100010 C 1. #937500 0. #943750 11 b1111111 3 b1111111 8 b100010 - b100010 6 1. #950000 0. #956250 01 b1 @ b1111111 & b1111111 > 1' 0) b10001 * b10001 = 1( b100010 < 1. #962500 0. #968750 1" 10 0( 1. #975000 0. #981250 b0 @ 1# b1010110 $ b1010110 ? 0" 00 1. #987500 0. #993750 0# b11111111 B b100000 A 1. #1000000 0. #1006250 11 04 b100000 - b100000 6 1. #1012500 0. #1018750 01 b1 @ b10000 * b10000 = 0% 1( b100000 < 1. #1025000 0. #1031250 0( 1" 10 b1000000011111111 ! b1000000011111111 7 b1000000011111111 / 1. #1037500 0. #1043750 0" 00 b0 @ 1# b11111111 $ b11111111 ? 1. #1050000 0. #1056250 0# b10000000 B b100001 A 1. #1062500 0. #1068750 11 b100001 - b100001 6 1. #1075000 0. #1081250 01 b1 @ b111111100000000 & b111111100000000 > 0' 1) 1( b100001 < 1. #1087500 0. #1093750 1" 10 0( 1. #1100000 0. #1106250 b0 @ 1# b10000000 $ b10000000 ? 0" 00 1. #1112500 0. #1118750 0# b1111111 B b100010 A 1. #1125000 0. #1131250 11 b100010 - b100010 6 1. #1137500 0. #1143750 01 b1 @ b1111111 & b1111111 > 1' 0) b10001 * b10001 = 1( b100010 < 1. #1150000 0. #1156250 0( 1" 10 b1111111 ! b1111111 7 b1111111 / 1. #1162500 0. #1168750 0" 00 b0 @ 1# b1111111 $ b1111111 ? 1. #1175000 0. #1181250 0# 1.