module tb; logic [31:0] memory_word, read_data; logic [1:0] address_low; logic [2:0] funct3; logic fault; string trace_file; load_extend dut (.*); initial begin if ($value$plusargs("trace=%s", trace_file)) begin $dumpfile(trace_file); $dumpvars(0, tb); end memory_word=32'h80ff7f01; address_low=3; funct3=0; #1; if(read_data!==32'hffffff80||fault)$fatal(1,"FAIL LB %h",read_data); funct3=4; #1; if(read_data!==32'h80||fault)$fatal(1,"FAIL LBU %h",read_data); address_low=2; funct3=1; #1; if(read_data!==32'hffff80ff||fault)$fatal(1,"FAIL LH %h",read_data); funct3=5; #1; if(read_data!==32'h80ff||fault)$fatal(1,"FAIL LHU %h",read_data); address_low=0; funct3=2; #1; if(read_data!==memory_word||fault)$fatal(1,"FAIL LW %h",read_data); $display("PASS task02 lb=ffffff80 lbu=00000080 lh=ffff80ff lhu=000080ff"); $finish; end endmodule