mirror of
https://github.com/openhwgroup/cvw.git
synced 2025-04-24 22:07:12 -04:00
fixed busybear floating point NOP-out feature; restored regression to check 100000 instructions
This commit is contained in:
parent
69ef758e78
commit
86d55cd07a
3 changed files with 14 additions and 12 deletions
|
@ -26,7 +26,7 @@ configs = [
|
|||
TestCase(
|
||||
name="busybear",
|
||||
cmd="vsim -do wally-busybear-batch.do -c > {}",
|
||||
grepstr="# loaded 40000 instructions"
|
||||
grepstr="# loaded 100000 instructions"
|
||||
),
|
||||
TestCase(
|
||||
name="buildroot",
|
||||
|
|
|
@ -36,7 +36,7 @@ vopt +acc work.testbench -o workopt
|
|||
vsim workopt -suppress 8852,12070
|
||||
|
||||
#do ./wave-dos/peripheral-waves.do
|
||||
do ./wave-dos/busybear-waves.do
|
||||
do ./wave-dos/default-waves.do
|
||||
|
||||
#do busy-mmu.do
|
||||
|
||||
|
|
|
@ -468,12 +468,13 @@ module testbench();
|
|||
speculative = ~equal(dut.hart.ifu.PCD,pcExpected,3);
|
||||
if(dut.hart.ifu.PCD===pcExpected) begin
|
||||
if(dut.hart.ifu.InstrRawD[6:0] == 7'b1010011) begin // for now, NOP out any float instrs
|
||||
force CheckInstrD = 32'b0010011;
|
||||
release CheckInstrD;
|
||||
force dut.hart.ifu.InstrRawD = 32'b0010011;
|
||||
#7;
|
||||
release dut.hart.ifu.InstrRawD;
|
||||
$display("warning: NOPing out %s at PC=%0x, instr %0d, time %0t", PCtext, dut.hart.ifu.PCD, instrs, $time);
|
||||
force CheckInstrD = 32'b0010011;
|
||||
force dut.hart.ifu.InstrRawD = 32'b0010011;
|
||||
while (clk != 0) #1;
|
||||
while (clk != 1) #1;
|
||||
release dut.hart.ifu.InstrRawD;
|
||||
release CheckInstrD;
|
||||
warningCount += 1;
|
||||
forcedInstr = 1;
|
||||
end
|
||||
|
@ -496,12 +497,13 @@ module testbench();
|
|||
scan_file_PC = $fscanf(data_file_PC, "%x\n", CheckInstrD);
|
||||
if(dut.hart.ifu.PCD === pcExpected) begin
|
||||
if(dut.hart.ifu.InstrRawD[6:0] == 7'b1010011) begin // for now, NOP out any float instrs
|
||||
force CheckInstrD = 32'b0010011;
|
||||
release CheckInstrD;
|
||||
force dut.hart.ifu.InstrRawD = 32'b0010011;
|
||||
#7;
|
||||
release dut.hart.ifu.InstrRawD;
|
||||
$display("warning: NOPing out %s at PC=%0x, instr %0d, time %0t", PCtext, dut.hart.ifu.PCD, instrs, $time);
|
||||
force CheckInstrD = 32'b0010011;
|
||||
force dut.hart.ifu.InstrRawD = 32'b0010011;
|
||||
while (clk != 0) #1;
|
||||
while (clk != 1) #1;
|
||||
release dut.hart.ifu.InstrRawD;
|
||||
release CheckInstrD;
|
||||
warningCount += 1;
|
||||
forcedInstr = 1;
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue