24 lines
912 B
Systemverilog
24 lines
912 B
Systemverilog
module tb;
|
|
logic [4:0] register_index;
|
|
logic [2:0] abi_class;
|
|
integer index, args=0, saved=0, temporaries=0, fixed=0;
|
|
string trace_file;
|
|
abi_registers dut (.*);
|
|
initial begin
|
|
if ($value$plusargs("trace=%s", trace_file)) begin $dumpfile(trace_file); $dumpvars(0, tb); end
|
|
for (index=0; index<32; index+=1) begin
|
|
register_index=index[4:0]; #1;
|
|
case (abi_class)
|
|
3: args+=1;
|
|
4: saved+=1;
|
|
5: temporaries+=1;
|
|
0,1,2,6: fixed+=1;
|
|
default: $fatal(1, "FAIL class index=%0d class=%0d", index, abi_class);
|
|
endcase
|
|
end
|
|
if (args!=8 || saved!=12 || temporaries!=7 || fixed!=5) $fatal(1, "FAIL counts %0d %0d %0d %0d", args,saved,temporaries,fixed);
|
|
$display("PASS task02 args=8 saved=12 temporaries=7 fixed=5");
|
|
$finish;
|
|
end
|
|
endmodule
|