mirror of
				https://github.com/openhwgroup/cvw
				synced 2025-02-11 06:05:49 +00:00 
			
		
		
		
	
						commit
						3f141575ff
					
				| @ -53,7 +53,7 @@ add wave -noupdate -group {Execution Stage} /testbench/dut/core/ifu/PCE | ||||
| add wave -noupdate -group {Execution Stage} /testbench/dut/core/ifu/InstrE | ||||
| add wave -noupdate -group {Execution Stage} /testbench/InstrEName | ||||
| add wave -noupdate -group {Execution Stage} /testbench/dut/core/ieu/c/InstrValidE | ||||
| add wave -noupdate -group {Execution Stage} /testbench/FunctionName/FunctionName/FunctionName | ||||
| add wave -noupdate -group {Execution Stage} /testbench/functionName/functionName/FunctionName | ||||
| add wave -noupdate -expand -group {Memory Stage} /testbench/dut/core/PCM | ||||
| add wave -noupdate -expand -group {Memory Stage} /testbench/dut/core/InstrM | ||||
| add wave -noupdate -expand -group {Memory Stage} /testbench/InstrMName | ||||
|  | ||||
| @ -1,26 +0,0 @@ | ||||
| ///////////////////////////////////////////
 | ||||
| // checksignature.sv
 | ||||
| //
 | ||||
| // Written: David Harris David_Harris@hmc.edu
 | ||||
| // Modified: 14 June 2023
 | ||||
| //
 | ||||
| // Purpose: Verifies the memory signature.
 | ||||
| // 
 | ||||
| // A component of the Wally configurable RISC-V project.
 | ||||
| // 
 | ||||
| // Copyright (C) 2021 Harvey Mudd College & Oklahoma State University
 | ||||
| //
 | ||||
| // SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1
 | ||||
| //
 | ||||
| // Licensed under the Solderpad Hardware License v 2.1 (the “License”); you may not use this file 
 | ||||
| // except in compliance with the License, or, at your option, the Apache License version 2.0. You 
 | ||||
| // may obtain a copy of the License at
 | ||||
| //
 | ||||
| // https://solderpad.org/licenses/SHL-2.1/
 | ||||
| //
 | ||||
| // Unless required by applicable law or agreed to in writing, any work distributed under the 
 | ||||
| // License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
 | ||||
| // either express or implied. See the License for the specific language governing permissions 
 | ||||
| // and limitations under the License.
 | ||||
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| @ -23,7 +23,7 @@ | ||||
| // and limitations under the License.
 | ||||
| ////////////////////////////////////////////////////////////////////////////////////////////////
 | ||||
| 
 | ||||
| module FunctionName import cvw::*; #(parameter cvw_t P) ( | ||||
| module functionName import cvw::*; #(parameter cvw_t P) ( | ||||
|   input logic reset, | ||||
|   input logic clk, | ||||
|   input string ProgramAddrMapFile, | ||||
|  | ||||
| @ -84,11 +84,11 @@ module loggers import cvw::*; #(parameter cvw_t P, | ||||
| 
 | ||||
|     always_comb | ||||
|       if (TEST == "embench") begin   | ||||
|         StartSampleFirst = FunctionName.FunctionName.FunctionName == "start_trigger"; | ||||
|         EndSampleFirst = FunctionName.FunctionName.FunctionName == "stop_trigger"; | ||||
|         StartSampleFirst = functionName.functionName.FunctionName == "start_trigger"; | ||||
|         EndSampleFirst = functionName.functionName.FunctionName == "stop_trigger"; | ||||
|       end else if (TEST == "coremark") begin | ||||
|         StartSampleFirst = FunctionName.FunctionName.FunctionName == "start_time"; | ||||
|         EndSampleFirst = FunctionName.FunctionName.FunctionName == "stop_time"; | ||||
|         StartSampleFirst = functionName.functionName.FunctionName == "start_time"; | ||||
|         EndSampleFirst = functionName.functionName.FunctionName == "stop_time"; | ||||
|       end else begin | ||||
|         StartSampleFirst = reset; | ||||
|         EndSampleFirst = '0; | ||||
| @ -106,22 +106,22 @@ module loggers import cvw::*; #(parameter cvw_t P, | ||||
|     if(TEST == "embench") begin | ||||
|       // embench runs warmup then runs start_trigger
 | ||||
|       // embench end with stop_trigger.
 | ||||
|       //assign StartSampleFirst = FunctionName.FunctionName.FunctionName == "start_trigger";
 | ||||
|       //assign StartSampleFirst = functionName.functionName.FunctionName == "start_trigger";
 | ||||
|       //flopr #(1) StartSampleReg(clk, reset, StartSampleFirst, StartSampleDelayed);
 | ||||
|       //assign StartSample = StartSampleFirst & ~ StartSampleDelayed;
 | ||||
| 
 | ||||
|       //assign EndSampleFirst = FunctionName.FunctionName.FunctionName == "stop_trigger";
 | ||||
|       //assign EndSampleFirst = functionName.functionName.FunctionName == "stop_trigger";
 | ||||
|       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";
 | ||||
|       //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";
 | ||||
|       //assign EndSampleFirst = functionName.functionName.FunctionName == "stop_time";
 | ||||
|       flopr #(1) EndSampleReg(clk, reset, EndSampleFirst, EndSampleDelayed); | ||||
|       assign EndSample = EndSampleFirst & ~ EndSampleDelayed; | ||||
| 
 | ||||
|  | ||||
| @ -684,8 +684,8 @@ module testbench; | ||||
|     loggers (clk, reset, DCacheFlushStart, DCacheFlushDone, memfilename, TEST); | ||||
| 
 | ||||
|   // track the current function or global label
 | ||||
|   if (DEBUG > 0 | ((PrintHPMCounters | BPRED_LOGGER) & P.ZICNTR_SUPPORTED)) begin : FunctionName | ||||
|     FunctionName #(P) FunctionName(.reset(reset_ext | TestBenchReset), | ||||
|   if (DEBUG > 0 | ((PrintHPMCounters | BPRED_LOGGER) & P.ZICNTR_SUPPORTED)) begin : functionName | ||||
|     functionName #(P) functionName(.reset(reset_ext | TestBenchReset), | ||||
| 			      .clk(clk), .ProgramAddrMapFile(ProgramAddrMapFile), .ProgramLabelMapFile(ProgramLabelMapFile)); | ||||
|   end | ||||
| 
 | ||||
| @ -710,11 +710,11 @@ module testbench; | ||||
| 
 | ||||
|   always @(posedge clk) begin | ||||
|   //  if (reset) PrevPCZero <= 0;
 | ||||
|   //  else if (dut.core.InstrValidM) PrevPCZero <= (FunctionName.PCM == 0 & dut.core.ifu.InstrM == 0);
 | ||||
|   //  else if (dut.core.InstrValidM) PrevPCZero <= (functionName.PCM == 0 & dut.core.ifu.InstrM == 0);
 | ||||
|     TestComplete <= ((InstrM == 32'h6f) & dut.core.InstrValidM ) | | ||||
| 		   ((dut.core.lsu.IEUAdrM == ProgramAddrLabelArray["tohost"] & dut.core.lsu.IEUAdrM != 0) & InstrMName == "SW"); // |
 | ||||
|     //   (FunctionName.PCM == 0 & dut.core.ifu.InstrM == 0 & dut.core.InstrValidM & PrevPCZero));
 | ||||
|    // if (FunctionName.PCM == 0 & dut.core.ifu.InstrM == 0 & dut.core.InstrValidM & PrevPCZero)
 | ||||
|     //   (functionName.PCM == 0 & dut.core.ifu.InstrM == 0 & dut.core.InstrValidM & PrevPCZero));
 | ||||
|    // if (functionName.PCM == 0 & dut.core.ifu.InstrM == 0 & dut.core.InstrValidM & PrevPCZero)
 | ||||
|     //  $error("Program fetched illegal instruction 0x00000000 from address 0x00000000 twice in a row.  Usually due to fault with no fault handler.");
 | ||||
|   end | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user