19 lines
928 B
Systemverilog
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
|