busybear: allow overwriting read values

This commit is contained in:
Noah Boorstin 2021-03-22 17:28:39 -04:00
parent 7bb31c3287
commit 77dd0b4504
2 changed files with 11 additions and 3 deletions

View File

@ -25,6 +25,7 @@
///////////////////////////////////////////
`define BUSYBEAR
`define BUSYBEAR_FIX_READ {'h10000005}
// RV32 or RV64: XLEN = 32 or 64
`define XLEN 64

View File

@ -205,9 +205,16 @@ module testbench_busybear();
`ERROR
end
if ((readMask & HRDATA) !== (readMask & dut.HRDATA)) begin
$display("warning %0t ps, instr %0d: ExpectedHRDATA does not equal dut.HRDATA: %x, %x from address %x, %x", $time, instrs, HRDATA, dut.HRDATA, HADDR, HSIZE);
warningCount += 1;
`ERROR
if (HADDR inside `BUSYBEAR_FIX_READ) begin
$display("warning %0t ps, instr %0d, adr %0d: forcing HRDATA to expected: %x, %x", $time, instrs, HADDR, HRDATA, dut.HRDATA);
force dut.uncore.HRDATA = HRDATA;
#9;
release dut.uncore.HRDATA;
warningCount += 1;
end else begin
$display("%0t ps, instr %0d: ExpectedHRDATA does not equal dut.HRDATA: %x, %x from address %x, %x", $time, instrs, HRDATA, dut.HRDATA, HADDR, HSIZE);
`ERROR
end
end
//end else if(dut.hart.MemRWM[1]) begin
// $display("%x, %x, %x, %t", HADDR, dut.PCF, dut.HRDATA, $time);