forked from Github_Repos/cvw
		
	Updated testbench to record coremark performance counters.
Added comment about mtval probably not being correct for compressed instructions.
This commit is contained in:
		
							parent
							
								
									91f2b39a45
								
							
						
					
					
						commit
						6d2d7d181e
					
				@ -366,11 +366,9 @@ add wave -noupdate -group lsu -expand -group ptwalker /testbench/dut/core/lsu/VI
 | 
			
		||||
add wave -noupdate -group lsu -expand -group ptwalker -color Gold /testbench/dut/core/lsu/VIRTMEM_SUPPORTED/hptw/WalkerState
 | 
			
		||||
add wave -noupdate -group lsu -expand -group ptwalker /testbench/dut/core/lsu/VIRTMEM_SUPPORTED/hptw/HPTWAdr
 | 
			
		||||
add wave -noupdate -group lsu -expand -group ptwalker /testbench/dut/core/lsu/VIRTMEM_SUPPORTED/hptw/PTE
 | 
			
		||||
add wave -noupdate -group lsu -expand -group ptwalker /testbench/dut/core/lsu/VIRTMEM_SUPPORTED/hptw/PCFSpill
 | 
			
		||||
add wave -noupdate -group lsu -expand -group ptwalker /testbench/dut/core/lsu/VIRTMEM_SUPPORTED/hptw/NextPageType
 | 
			
		||||
add wave -noupdate -group lsu -expand -group ptwalker /testbench/dut/core/lsu/VIRTMEM_SUPPORTED/hptw/PageType
 | 
			
		||||
add wave -noupdate -group lsu -expand -group ptwalker /testbench/dut/core/lsu/VIRTMEM_SUPPORTED/hptw/ValidNonLeafPTE
 | 
			
		||||
add wave -noupdate -group lsu -expand -group ptwalker /testbench/dut/core/lsu/VIRTMEM_SUPPORTED/hptw/PCFSpill
 | 
			
		||||
add wave -noupdate -group lsu -expand -group ptwalker -expand -group types /testbench/dut/core/lsu/ITLBMissF
 | 
			
		||||
add wave -noupdate -group lsu -expand -group ptwalker -expand -group types /testbench/dut/core/lsu/DTLBMissM
 | 
			
		||||
add wave -noupdate -group lsu -expand -group ptwalker -expand -group types /testbench/dut/core/lsu/VIRTMEM_SUPPORTED/hptw/ITLBWriteF
 | 
			
		||||
@ -467,7 +465,6 @@ add wave -noupdate -group ifu -group Spill -expand -group takespill /testbench/d
 | 
			
		||||
add wave -noupdate -group ifu -group Spill -expand -group takespill /testbench/dut/core/ifu/Spill/spill/IFUCacheBusStallD
 | 
			
		||||
add wave -noupdate -group ifu -group Spill -expand -group takespill /testbench/dut/core/ifu/Spill/spill/ITLBMissF
 | 
			
		||||
add wave -noupdate -group ifu -group Spill -expand -group takespill /testbench/dut/core/ifu/Spill/spill/TakeSpillF
 | 
			
		||||
add wave -noupdate -group ifu -group Spill /testbench/dut/core/ifu/SelNextSpillF
 | 
			
		||||
add wave -noupdate -group ifu -group bus /testbench/dut/core/ifu/bus/icache/ahbcacheinterface/HSIZE
 | 
			
		||||
add wave -noupdate -group ifu -group bus /testbench/dut/core/ifu/bus/icache/ahbcacheinterface/HBURST
 | 
			
		||||
add wave -noupdate -group ifu -group bus /testbench/dut/core/ifu/bus/icache/ahbcacheinterface/HTRANS
 | 
			
		||||
@ -635,8 +632,10 @@ add wave -noupdate /testbench/dut/core/priv/priv/csr/counters/counters/DCacheMis
 | 
			
		||||
add wave -noupdate /testbench/dut/core/priv/priv/csr/counters/counters/InstrValidNotFlushedM
 | 
			
		||||
add wave -noupdate /testbench/clk
 | 
			
		||||
add wave -noupdate /testbench/HPMCSample/InitialHPMCOUNTERH
 | 
			
		||||
add wave -noupdate /testbench/HPMCSample/EndSample
 | 
			
		||||
add wave -noupdate /testbench/HPMCSample/StartSample
 | 
			
		||||
TreeUpdate [SetDefaultTree]
 | 
			
		||||
WaveRestoreCursors {{Cursor 2} {314596 ns} 1} {{Cursor 3} {314460 ns} 1} {{Cursor 4} {391801 ns} 1} {{Cursor 4} {49231900 ns} 0} {{Cursor 5} {394987 ns} 1}
 | 
			
		||||
WaveRestoreCursors {{Cursor 2} {314596 ns} 1} {{Cursor 3} {314460 ns} 1} {{Cursor 4} {391801 ns} 1} {{Cursor 4} {23 ns} 0} {{Cursor 5} {394987 ns} 1}
 | 
			
		||||
quietly wave cursor active 4
 | 
			
		||||
configure wave -namecolwidth 250
 | 
			
		||||
configure wave -valuecolwidth 194
 | 
			
		||||
@ -652,4 +651,4 @@ configure wave -griddelta 40
 | 
			
		||||
configure wave -timeline 0
 | 
			
		||||
configure wave -timelineunits ns
 | 
			
		||||
update
 | 
			
		||||
WaveRestoreZoom {49231842 ns} {49231960 ns}
 | 
			
		||||
WaveRestoreZoom {0 ns} {52 ns}
 | 
			
		||||
 | 
			
		||||
@ -133,7 +133,7 @@ module csr #(parameter
 | 
			
		||||
    if (InterruptM)           NextFaultMtvalM = 0;
 | 
			
		||||
    else case (CauseM)
 | 
			
		||||
      12, 1, 3:               NextFaultMtvalM = PCM;  // Instruction page/access faults, breakpoint
 | 
			
		||||
      2:                      NextFaultMtvalM = {{(`XLEN-32){1'b0}}, InstrM}; // Illegal instruction fault
 | 
			
		||||
      2:                      NextFaultMtvalM = {{(`XLEN-32){1'b0}}, InstrM}; // Illegal instruction fault // *** this should probably set to the uncompressed instruction
 | 
			
		||||
      0, 4, 6, 13, 15, 5, 7:  NextFaultMtvalM = IEUAdrM; // Instruction misaligned, Load/Store Misaligned/page/access faults
 | 
			
		||||
      default:                NextFaultMtvalM = 0; // Ecall, interrupts
 | 
			
		||||
    endcase
 | 
			
		||||
 | 
			
		||||
@ -447,6 +447,17 @@ logic [3:0] dummy;
 | 
			
		||||
	  flopr #(1) EndSampleReg(clk, reset, EndSampleFirst, EndSampleDelayed);
 | 
			
		||||
	  assign EndSample = EndSampleFirst & ~ EndSampleDelayed;
 | 
			
		||||
 | 
			
		||||
	end else if(TEST == "coremark") begin
 | 
			
		||||
	  // embench runs warmup then runs start_trigger
 | 
			
		||||
	  // embench end with stop_trigger.
 | 
			
		||||
	  assign StartSampleFirst = FunctionName.FunctionName.FunctionName == "start_time";
 | 
			
		||||
	  flopr #(1) StartSampleReg(clk, reset, StartSampleFirst, StartSampleDelayed);
 | 
			
		||||
	  assign StartSample = StartSampleFirst & ~ StartSampleDelayed;
 | 
			
		||||
 | 
			
		||||
	  assign EndSampleFirst = FunctionName.FunctionName.FunctionName == "stop_time";
 | 
			
		||||
	  flopr #(1) EndSampleReg(clk, reset, EndSampleFirst, EndSampleDelayed);
 | 
			
		||||
	  assign EndSample = EndSampleFirst & ~ EndSampleDelayed;
 | 
			
		||||
 | 
			
		||||
	end else begin
 | 
			
		||||
	  // default start condiction is reset
 | 
			
		||||
	  // default end condiction is end of test (DCacheFlushDone)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user