mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-02 17:55:19 +00:00
Fix FunctionName module naming
This commit is contained in:
parent
784a6795cf
commit
a338089b6f
@ -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/dut/core/ifu/InstrE
|
||||||
add wave -noupdate -group {Execution Stage} /testbench/InstrEName
|
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/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/PCM
|
||||||
add wave -noupdate -expand -group {Memory Stage} /testbench/dut/core/InstrM
|
add wave -noupdate -expand -group {Memory Stage} /testbench/dut/core/InstrM
|
||||||
add wave -noupdate -expand -group {Memory Stage} /testbench/InstrMName
|
add wave -noupdate -expand -group {Memory Stage} /testbench/InstrMName
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
// and limitations under the License.
|
// 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 reset,
|
||||||
input logic clk,
|
input logic clk,
|
||||||
input string ProgramAddrMapFile,
|
input string ProgramAddrMapFile,
|
||||||
|
@ -84,11 +84,11 @@ module loggers import cvw::*; #(parameter cvw_t P,
|
|||||||
|
|
||||||
always_comb
|
always_comb
|
||||||
if (TEST == "embench") begin
|
if (TEST == "embench") begin
|
||||||
StartSampleFirst = FunctionName.FunctionName.FunctionName == "start_trigger";
|
StartSampleFirst = functionName.functionName.FunctionName == "start_trigger";
|
||||||
EndSampleFirst = FunctionName.FunctionName.FunctionName == "stop_trigger";
|
EndSampleFirst = functionName.functionName.FunctionName == "stop_trigger";
|
||||||
end else if (TEST == "coremark") begin
|
end else if (TEST == "coremark") begin
|
||||||
StartSampleFirst = FunctionName.FunctionName.FunctionName == "start_time";
|
StartSampleFirst = functionName.functionName.FunctionName == "start_time";
|
||||||
EndSampleFirst = FunctionName.FunctionName.FunctionName == "stop_time";
|
EndSampleFirst = functionName.functionName.FunctionName == "stop_time";
|
||||||
end else begin
|
end else begin
|
||||||
StartSampleFirst = reset;
|
StartSampleFirst = reset;
|
||||||
EndSampleFirst = '0;
|
EndSampleFirst = '0;
|
||||||
@ -106,22 +106,22 @@ module loggers import cvw::*; #(parameter cvw_t P,
|
|||||||
if(TEST == "embench") begin
|
if(TEST == "embench") begin
|
||||||
// embench runs warmup then runs start_trigger
|
// embench runs warmup then runs start_trigger
|
||||||
// embench end with stop_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);
|
//flopr #(1) StartSampleReg(clk, reset, StartSampleFirst, StartSampleDelayed);
|
||||||
//assign StartSample = 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);
|
flopr #(1) EndSampleReg(clk, reset, EndSampleFirst, EndSampleDelayed);
|
||||||
assign EndSample = EndSampleFirst & ~ EndSampleDelayed;
|
assign EndSample = EndSampleFirst & ~ EndSampleDelayed;
|
||||||
|
|
||||||
end else if(TEST == "coremark") begin
|
end else if(TEST == "coremark") begin
|
||||||
// embench runs warmup then runs start_trigger
|
// embench runs warmup then runs start_trigger
|
||||||
// embench end with stop_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);
|
//flopr #(1) StartSampleReg(clk, reset, StartSampleFirst, StartSampleDelayed);
|
||||||
//assign StartSample = 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);
|
flopr #(1) EndSampleReg(clk, reset, EndSampleFirst, EndSampleDelayed);
|
||||||
assign EndSample = EndSampleFirst & ~ EndSampleDelayed;
|
assign EndSample = EndSampleFirst & ~ EndSampleDelayed;
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ import cvw::*;
|
|||||||
module testbench;
|
module testbench;
|
||||||
/* verilator lint_off WIDTHTRUNC */
|
/* verilator lint_off WIDTHTRUNC */
|
||||||
/* verilator lint_off WIDTHEXPAND */
|
/* verilator lint_off WIDTHEXPAND */
|
||||||
parameter DEBUG=0;
|
parameter DEBUG=1;
|
||||||
parameter PrintHPMCounters=0;
|
parameter PrintHPMCounters=0;
|
||||||
parameter BPRED_LOGGER=0;
|
parameter BPRED_LOGGER=0;
|
||||||
parameter I_CACHE_ADDR_LOGGER=0;
|
parameter I_CACHE_ADDR_LOGGER=0;
|
||||||
@ -684,8 +684,8 @@ module testbench;
|
|||||||
loggers (clk, reset, DCacheFlushStart, DCacheFlushDone, memfilename, TEST);
|
loggers (clk, reset, DCacheFlushStart, DCacheFlushDone, memfilename, TEST);
|
||||||
|
|
||||||
// track the current function or global label
|
// track the current function or global label
|
||||||
if (DEBUG > 0 | ((PrintHPMCounters | BPRED_LOGGER) & P.ZICNTR_SUPPORTED)) begin : FunctionName
|
if (DEBUG > 0 | ((PrintHPMCounters | BPRED_LOGGER) & P.ZICNTR_SUPPORTED)) begin : functionName
|
||||||
FunctionName #(P) FunctionName(.reset(reset_ext | TestBenchReset),
|
functionName #(P) functionName(.reset(reset_ext | TestBenchReset),
|
||||||
.clk(clk), .ProgramAddrMapFile(ProgramAddrMapFile), .ProgramLabelMapFile(ProgramLabelMapFile));
|
.clk(clk), .ProgramAddrMapFile(ProgramAddrMapFile), .ProgramLabelMapFile(ProgramLabelMapFile));
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -710,11 +710,11 @@ module testbench;
|
|||||||
|
|
||||||
always @(posedge clk) begin
|
always @(posedge clk) begin
|
||||||
// if (reset) PrevPCZero <= 0;
|
// 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 ) |
|
TestComplete <= ((InstrM == 32'h6f) & dut.core.InstrValidM ) |
|
||||||
((dut.core.lsu.IEUAdrM == ProgramAddrLabelArray["tohost"] & dut.core.lsu.IEUAdrM != 0) & InstrMName == "SW"); // |
|
((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));
|
// (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)
|
// 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.");
|
// $error("Program fetched illegal instruction 0x00000000 from address 0x00000000 twice in a row. Usually due to fault with no fault handler.");
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user