mirror of
https://github.com/openhwgroup/cvw.git
synced 2025-04-25 22:37:08 -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(
|
TestCase(
|
||||||
name="busybear",
|
name="busybear",
|
||||||
cmd="vsim -do wally-busybear-batch.do -c > {}",
|
cmd="vsim -do wally-busybear-batch.do -c > {}",
|
||||||
grepstr="# loaded 40000 instructions"
|
grepstr="# loaded 100000 instructions"
|
||||||
),
|
),
|
||||||
TestCase(
|
TestCase(
|
||||||
name="buildroot",
|
name="buildroot",
|
||||||
|
|
|
@ -36,7 +36,7 @@ vopt +acc work.testbench -o workopt
|
||||||
vsim workopt -suppress 8852,12070
|
vsim workopt -suppress 8852,12070
|
||||||
|
|
||||||
#do ./wave-dos/peripheral-waves.do
|
#do ./wave-dos/peripheral-waves.do
|
||||||
do ./wave-dos/busybear-waves.do
|
do ./wave-dos/default-waves.do
|
||||||
|
|
||||||
#do busy-mmu.do
|
#do busy-mmu.do
|
||||||
|
|
||||||
|
|
|
@ -468,12 +468,13 @@ module testbench();
|
||||||
speculative = ~equal(dut.hart.ifu.PCD,pcExpected,3);
|
speculative = ~equal(dut.hart.ifu.PCD,pcExpected,3);
|
||||||
if(dut.hart.ifu.PCD===pcExpected) begin
|
if(dut.hart.ifu.PCD===pcExpected) begin
|
||||||
if(dut.hart.ifu.InstrRawD[6:0] == 7'b1010011) begin // for now, NOP out any float instrs
|
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);
|
$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;
|
warningCount += 1;
|
||||||
forcedInstr = 1;
|
forcedInstr = 1;
|
||||||
end
|
end
|
||||||
|
@ -496,12 +497,13 @@ module testbench();
|
||||||
scan_file_PC = $fscanf(data_file_PC, "%x\n", CheckInstrD);
|
scan_file_PC = $fscanf(data_file_PC, "%x\n", CheckInstrD);
|
||||||
if(dut.hart.ifu.PCD === pcExpected) begin
|
if(dut.hart.ifu.PCD === pcExpected) begin
|
||||||
if(dut.hart.ifu.InstrRawD[6:0] == 7'b1010011) begin // for now, NOP out any float instrs
|
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);
|
$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;
|
warningCount += 1;
|
||||||
forcedInstr = 1;
|
forcedInstr = 1;
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue