$date Thu Mar 4 15:10:28 2021 $end $version Icarus Verilog $end $timescale 1ps $end $scope module rv32_soc_TB $end $var reg 1 ! clock $end $var reg 1 " reset $end $scope module uut $end $var wire 1 ! clk $end $var wire 1 " reset $end $var wire 32 # o_data [31:0] $end $var wire 1 $ mem_wr $end $var wire 1 % mem_rd $end $var wire 32 & i_data [31:0] $end $var wire 32 ' PC [31:0] $end $scope module core $end $var wire 1 ! clk $end $var wire 1 " reset $end $var wire 1 ( writeBack $end $var wire 5 ) writeBackRegId [4:0] $end $var wire 1 * writeBackEn $end $var wire 32 + regOut2 [31:0] $end $var wire 32 , regOut1 [31:0] $end $var wire 1 - isBRANCH $end $var wire 1 . isALU $end $var wire 32 / in_data [31:0] $end $var wire 32 0 imm [31:0] $end $var wire 1 1 funcQual $end $var wire 3 2 func3 [2:0] $end $var wire 1 3 compare_out $end $var wire 1 4 alusel2 $end $var wire 1 5 alusel1 $end $var wire 32 6 aluout [31:0] $end $var wire 5 7 RegId2 [4:0] $end $var wire 5 8 RegId1 [4:0] $end $var wire 32 9 PCplus4 [31:0] $end $var reg 32 : PC [31:0] $end $var reg 32 ; aluIn1 [31:0] $end $var reg 32 < aluIn2 [31:0] $end $var reg 32 = instr [31:0] $end $var reg 1 % mem_rd $end $var reg 1 $ mem_wr $end $var reg 32 > out_data [31:0] $end $var reg 32 ? out_mem_addr [31:0] $end $var reg 6 @ state [5:0] $end $var reg 32 A writeBackData [31:0] $end $scope module ALU $end $var wire 1 ! clk $end $var wire 32 B in1 [31:0] $end $var wire 32 C in2 [31:0] $end $var wire 1 1 opequal $end $var wire 3 D func3 [2:0] $end $var reg 32 E out [31:0] $end $upscope $end $scope module COMPARE $end $var wire 1 ! clk $end $var wire 3 F op [2:0] $end $var wire 32 G in2 [31:0] $end $var wire 32 H in1 [31:0] $end $var reg 1 3 out $end $upscope $end $scope module decoder $end $var wire 1 I funcisshift $end $var wire 32 J instr [31:0] $end $var wire 5 K rs2 [4:0] $end $var wire 5 L rs1 [4:0] $end $var wire 5 M rd [4:0] $end $var wire 3 N func3 [2:0] $end $var wire 32 O Iimm [31:0] $end $var wire 32 P Bimm [31:0] $end $var reg 1 5 alusel1 $end $var reg 1 4 alusel2 $end $var reg 1 1 funcQual $end $var reg 32 Q imm [31:0] $end $var reg 1 . isALU $end $var reg 1 - isBRANCH $end $var reg 1 * writeBackEn $end $upscope $end $scope module regs $end $var wire 1 ! clock $end $var wire 32 R data1 [31:0] $end $var wire 32 S data2 [31:0] $end $var wire 1 ( inEn $end $var wire 5 T read1 [4:0] $end $var wire 5 U read2 [4:0] $end $var wire 32 V writedata [31:0] $end $var wire 5 W writereg [4:0] $end $var integer 32 X i [31:0] $end $upscope $end $upscope $end $scope module ram $end $var wire 32 Y PC [31:0] $end $var wire 1 ! clk $end $var wire 32 Z i_data [31:0] $end $var wire 1 % rd $end $var wire 1 $ wr $end $var reg 32 [ o_data [31:0] $end $upscope $end $upscope $end $upscope $end $enddefinitions $end #0 $dumpvars bx [ bx Z bx Y b100000 X bx W bx V bx U bx T bx S bx R bx Q bx0 P bx O bx N bx M bx L bx K bx J xI bx H bx G bx F bx E bx D bx C bx B bx A bx @ bx ? bx > bx = bx < bx ; bx : bx 9 bx 8 bx 7 bx 6 x5 x4 x3 bx 2 01 bx 0 bx / 0. 0- bx , bx + x* bx ) x( bx ' bx & x% x$ bx # x" 0! $end #5000 b1 9 b0 : 0% 0$ b1 @ 1" 1! #10000 0" 0! #15000 1% b0 ' b0 ? b0 Y b10 @ 1! #20000 0! #25000 b1100110011000011000001000010011 & b1100110011000011000001000010011 / b1100110011000011000001000010011 [ 0% b100 @ 1! #30000 0! #35000 b100000 X 0I b11001100110 0 b11001100110 Q 14 05 1. 01 1( 1* b100 ) b100 M b100 W b101 , b101 H b101 R b11 8 b11 L b11 T b110 7 b110 K b110 U b0 2 b0 D b0 F b0 N b11001100110 O b11001100100 P b1100110011000011000001000010011 = b1100110011000011000001000010011 J b1000 @ 1! #40000 0! #45000 b100000 X b11001100110 < b11001100110 C b101 ; b101 B b10000 @ 1! #50000 0! #55000 b100000 X b11001101011 A b11001101011 V b10 9 b1 : b1 @ b11001101011 6 b11001101011 E 1! #60000 0! #65000 b100000 X 1% b1 ' b1 ? b1 Y b10 @ 1! #70000 0! #75000 0% b100 @ b1100110011000011010001000010011 & b1100110011000011010001000010011 / b1100110011000011010001000010011 [ 1! #80000 0! #85000 1( 1* b11001100110 0 b11001100110 Q 14 05 1. b10 2 b10 D b10 F b10 N b1100110011000011010001000010011 = b1100110011000011010001000010011 J b1000 @ 1! #90000 0! #95000 b10000 @ b1 6 b1 E 1! #100000 0! #105000 b100000 X b1 A b1 V b11 9 b10 : b1 @ 1! #110000 0! #115000 b100000 X 1% b10 ' b10 ? b10 Y b10 @ 1! #120000 0! #125000 b1100110011000011011001000010011 & b1100110011000011011001000010011 / b1100110011000011011001000010011 [ 0% b100 @ 1! #130000 0! #135000 1( 1* b11001100110 0 b11001100110 Q 14 05 1. b11 2 b11 D b11 F b11 N b1100110011000011011001000010011 = b1100110011000011011001000010011 J b1000 @ 1! #140000 0! #145000 b10000 @ 1! #150000 0! #155000 b100 9 b11 : b1 @ 1! #160000 0! #165000 1% b11 ' b11 ? b11 Y b10 @ 1! #170000 0! #175000 0% b100 @ b1100110011000011100001000010011 & b1100110011000011100001000010011 / b1100110011000011100001000010011 [ 1! #180000 0! #185000 1( 1* b11001100110 0 b11001100110 Q 14 05 1. b100 2 b100 D b100 F b100 N b1100110011000011100001000010011 = b1100110011000011100001000010011 J b1000 @ 1! #190000 0! #195000 b10000 @ b11001100011 6 b11001100011 E 1! #200000 0! #205000 b100000 X b11001100011 A b11001100011 V b101 9 b100 : b1 @ 1! #210000 0! #215000 b100000 X 1% b100 ' b100 ? b100 Y b10 @ 1! #220000 0! #225000 b1100110011000011110001000010011 & b1100110011000011110001000010011 / b1100110011000011110001000010011 [ 0% b100 @ 1! #230000 0! #235000 1( 1* b11001100110 0 b11001100110 Q 14 05 1. b110 2 b110 D b110 F b110 N b1100110011000011110001000010011 = b1100110011000011110001000010011 J b1000 @ 1! #240000 0! #245000 b10000 @ b11001100111 6 b11001100111 E 1! #250000 0! #255000 b100000 X b11001100111 A b11001100111 V b110 9 b101 : b1 @ 1! #260000 0! #265000 b100000 X 1% b101 ' b101 ? b101 Y b10 @ 1! #270000 0! #275000 0% b100 @ b1100110011000011111001000010011 & b1100110011000011111001000010011 / b1100110011000011111001000010011 [ 1! #280000 0! #285000 1( 1* b11001100110 0 b11001100110 Q 14 05 1. b111 2 b111 D b111 F b111 N b1100110011000011111001000010011 = b1100110011000011111001000010011 J b1000 @ 1! #290000 0! #295000 b10000 @ b100 6 b100 E 1! #300000 0! #305000 b100000 X b100 A b100 V b111 9 b110 : b1 @ 1! #310000 0! #315000 b100000 X 1% b110 ' b110 ? b110 Y b10 @ 1! #320000 0! #325000 b11000011001001000010011 & b11000011001001000010011 / b11000011001001000010011 [ 0% b100 @ 1! #330000 0! #335000 1I 1( 1* b110 0 b110 Q 14 05 1. b1 2 b1 D b1 F b1 N b110 O b100 P b11000011001001000010011 = b11000011001001000010011 J b1000 @ 1! #340000 0! #345000 b110 < b110 C b10000 @ b101000000 6 b101000000 E 1! #350000 0! #355000 b100000 X b101000000 A b101000000 V b1000 9 b111 : b1 @ 1! #360000 0! #365000 b100000 X 1% b111 ' b111 ? b111 Y b10 @ 1! #370000 0! #375000 0% b100 @ b11000011101001000010011 & b11000011101001000010011 / b11000011101001000010011 [ 1! #380000 0! #385000 1( 1* b110 0 b110 Q 14 05 1. b101 2 b101 D b101 F b101 N b11000011101001000010011 = b11000011101001000010011 J b1000 @ 1! #390000 0! #395000 b10000 @ b0 6 b0 E 1! #400000 0! #405000 b100000 X b0 A b0 V b1001 9 b1000 : b1 @ 1! #410000 0! #415000 b100000 X 1% b1000 ' b1000 ? b1000 Y b10 @ 1! #420000 0! #425000 b1000000011000011101001000010011 & b1000000011000011101001000010011 / b1000000011000011101001000010011 [ 0% b100 @ 1! #430000 0! #435000 11 1( 1* b10000000110 0 b10000000110 Q 14 05 1. b10000000110 O b10000000100 P b1000000011000011101001000010011 = b1000000011000011101001000010011 J b1000 @ 1! #440000 0! #445000 b10000000110 < b10000000110 C b10000 @ 1! #450000 0! #455000 b1010 9 b1001 : b1 @ 1! #460000 0! #465000 1% b1001 ' b1001 ? b1001 Y b10 @ 1! #470000 0! #475000 0% b100 @ bx & bx / bx [ 1! #480000 0! #485000 b100000 X xI x( x* bx 0 bx Q x4 x5 01 0. bx ) bx M bx W bx , bx H bx R bx 8 bx L bx T bx 7 bx K bx U bx 2 bx D bx F bx N bx O bx0 P bx = bx J b1000 @ 1! #490000 0! #495000 bx < bx C bx ; bx B b10000 @ 1! #500000 0! #505000 b1011 9 b1010 : b1 @ 1! #510000 0! #515000 1% b1010 ' b1010 ? b1010 Y b10 @ 1! #520000 0! #525000 0% b100 @ 1! #530000 0! #535000 b1000 @ 1! #540000 0! #545000 b10000 @ 1! #550000 0! #555000 b1100 9 b1011 : b1 @ 1! #560000 0! #565000 1% b1011 ' b1011 ? b1011 Y b10 @ 1! #570000 0! #575000 0% b100 @ 1! #580000 0! #585000 b1000 @ 1! #590000 0! #595000 b10000 @ 1! #600000 0! #605000 b1101 9 b1100 : b1 @ 1! #610000 0! #615000 1% b1100 ' b1100 ? b1100 Y b10 @ 1! #620000 0! #625000 0% b100 @ 1! #630000 0! #635000 b1000 @ 1! #640000 0! #645000 b10000 @ 1! #650000 0! #655000 b1110 9 b1101 : b1 @ 1! #660000 0! #665000 1% b1101 ' b1101 ? b1101 Y b10 @ 1! #670000 0! #675000 0% b100 @ 1! #680000 0! #685000 b1000 @ 1! #690000 0! #695000 b10000 @ 1! #700000 0! #705000 b1111 9 b1110 : b1 @ 1! #710000 0! #715000 1% b1110 ' b1110 ? b1110 Y b10 @ 1! #720000 0! #725000 0% b100 @ 1! #730000 0! #735000 b1000 @ 1! #740000 0! #745000 b10000 @ 1! #750000 0! #755000 b10000 9 b1111 : b1 @ 1! #760000 0! #765000 1% b1111 ' b1111 ? b1111 Y b10 @ 1! #770000 0! #775000 0% b100 @ 1! #780000 0! #785000 b1000 @ 1! #790000 0! #795000 b10000 @ 1! #800000 0! #805000 b10001 9 b10000 : b1 @ 1! #810000 0! #815000 1% b10000 ' b10000 ? b10000 Y b10 @ 1! #820000 0! #825000 0% b100 @ 1! #830000 0! #835000 b1000 @ 1! #840000 0! #845000 b10000 @ 1! #850000 0! #855000 b10010 9 b10001 : b1 @ 1! #860000 0! #865000 1% b10001 ' b10001 ? b10001 Y b10 @ 1! #870000 0! #875000 0% b100 @ 1! #880000 0! #885000 b1000 @ 1! #890000 0! #895000 b10000 @ 1! #900000 0! #905000 b10011 9 b10010 : b1 @ 1! #910000 0! #915000 1% b10010 ' b10010 ? b10010 Y b10 @ 1! #920000 0! #925000 0% b100 @ 1! #930000 0! #935000 b1000 @ 1! #940000 0! #945000 b10000 @ 1! #950000 0! #955000 b10100 9 b10011 : b1 @ 1! #960000 0! #965000 1% b10011 ' b10011 ? b10011 Y b10 @ 1! #970000 0! #975000 0% b100 @ 1! #980000 0! #985000 b1000 @ 1! #990000 0! #995000 b10000 @ 1! #1000000 0! #1005000 b10101 9 b10100 : b1 @ 1! #1010000 0!