mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	fixed busybear floating point NOP-out feature; restored regression to check 100000 instructions
This commit is contained in:
		
							parent
							
								
									e4c90f503a
								
							
						
					
					
						commit
						f00eb22700
					
				| @ -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…
	
		Reference in New Issue
	
	Block a user