Files

19 lines
928 B
Systemverilog

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