47 lines
1.0 KiB
Systemverilog
47 lines
1.0 KiB
Systemverilog
class ramreg_scoreboard;
|
|
integer fid;
|
|
|
|
function new();
|
|
endfunction;
|
|
|
|
//extern task do_check();
|
|
|
|
extern function bit compare(
|
|
bit[31:0] spi_exp[$],
|
|
bit[31:0] spi_act[$]
|
|
);
|
|
|
|
endclass
|
|
|
|
function bit ramreg_scoreboard::compare(
|
|
bit[31:0] spi_exp[$],
|
|
bit[31:0] spi_act[$]
|
|
);
|
|
|
|
bit result=1'b1;
|
|
int i=0;
|
|
|
|
|
|
if(spi_exp.size() != spi_act.size()) begin
|
|
result = 1'b0;
|
|
$fwrite(fid,"ScoreBoard(ERROR): write & read datanum ARNT'T equal!\n");
|
|
$fwrite(fid,"Exp spi_data size:%0d\n",spi_exp.size());
|
|
$fwrite(fid,"Act spi_data size:%0d\n",spi_act.size());
|
|
end
|
|
|
|
else
|
|
for(i=0;i<spi_act.size();i++) begin
|
|
if(spi_exp[i] != spi_act[i]) begin
|
|
result = 1'b0;
|
|
$fwrite(fid,"ScoreBoard(ERROR): register read error(%0d)!\n",i);
|
|
$fwrite(fid,"Exp spi_data:\t%h\n",spi_exp[i]);
|
|
$fwrite(fid,"Act spi_data:\t%h\n",spi_act[i]);
|
|
end
|
|
else
|
|
$fwrite(fid,"register read Successfully!\n");
|
|
end
|
|
|
|
return result;
|
|
|
|
endfunction
|