diff --git a/wally-pipelined/regression/regression-wally.py b/wally-pipelined/regression/regression-wally.py index 56531bf25..56dfa4d9a 100755 --- a/wally-pipelined/regression/regression-wally.py +++ b/wally-pipelined/regression/regression-wally.py @@ -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", diff --git a/wally-pipelined/regression/wally-busybear.do b/wally-pipelined/regression/wally-busybear.do index f4e1a99a3..ac570b873 100644 --- a/wally-pipelined/regression/wally-busybear.do +++ b/wally-pipelined/regression/wally-busybear.do @@ -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 diff --git a/wally-pipelined/testbench/testbench-busybear.sv b/wally-pipelined/testbench/testbench-busybear.sv index c7c60838a..87ee82330 100644 --- a/wally-pipelined/testbench/testbench-busybear.sv +++ b/wally-pipelined/testbench/testbench-busybear.sv @@ -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