mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Reorganized src hierarchically
This commit is contained in:
parent
fc1fb94217
commit
396cea1ea7
@ -1,7 +1,7 @@
|
|||||||
# check for warnings in Verilog code
|
# check for warnings in Verilog code
|
||||||
# The verilator lint tool is faster and better than Modelsim so it is best to run this first.
|
# The verilator lint tool is faster and better than Modelsim so it is best to run this first.
|
||||||
|
|
||||||
verilator --lint-only --top-module wallypipelinedsoc -Iconfig/rv64ic src/*.sv
|
verilator --lint-only --top-module wallypipelinedsoc -Iconfig/rv64ic src/*/*.sv
|
||||||
|
|
||||||
# --lint-only just runs lint rather than trying to compile and simulate
|
# --lint-only just runs lint rather than trying to compile and simulate
|
||||||
# -I points to the include directory where files such as `include wally-config.vh are found
|
# -I points to the include directory where files such as `include wally-config.vh are found
|
||||||
|
@ -27,8 +27,7 @@ vlib work
|
|||||||
# suppress spurious warnngs about
|
# suppress spurious warnngs about
|
||||||
# "Extra checking for conflicts with always_comb done at vopt time"
|
# "Extra checking for conflicts with always_comb done at vopt time"
|
||||||
# because vsim will run vopt
|
# because vsim will run vopt
|
||||||
#vlog +incdir+../config/rv64ic ../testbench/testbench-imperas.sv ../src/*.sv -suppress 2583
|
vlog +incdir+$1 ../testbench/testbench-imperas.sv ../src/*/*.sv -suppress 2583
|
||||||
vlog +incdir+$1 ../testbench/testbench-imperas.sv ../src/*.sv -suppress 2583
|
|
||||||
|
|
||||||
# start and run simulation
|
# start and run simulation
|
||||||
# remove +acc flag for faster sim during regressions if there is no need to access internal signals
|
# remove +acc flag for faster sim during regressions if there is no need to access internal signals
|
||||||
|
@ -30,8 +30,8 @@ vlib work
|
|||||||
# default to config/rv64ic, but allow this to be overridden at the command line. For example:
|
# default to config/rv64ic, but allow this to be overridden at the command line. For example:
|
||||||
# do wally-pipelined.do ../config/rv32ic
|
# do wally-pipelined.do ../config/rv32ic
|
||||||
switch $argc {
|
switch $argc {
|
||||||
0 {vlog +incdir+../config/rv64ic ../testbench/testbench-imperas.sv ../src/*.sv -suppress 2583}
|
0 {vlog +incdir+../config/rv64ic ../testbench/testbench-imperas.sv ../src/*/*.sv -suppress 2583}
|
||||||
1 {vlog +incdir+$1 ../testbench/testbench-imperas.sv ../src/*.sv -suppress 2583}
|
1 {vlog +incdir+$1 ../testbench/testbench-imperas.sv ../src/*/*.sv -suppress 2583}
|
||||||
}
|
}
|
||||||
# start and run simulation
|
# start and run simulation
|
||||||
# remove +acc flag for faster sim during regressions if there is no need to access internal signals
|
# remove +acc flag for faster sim during regressions if there is no need to access internal signals
|
||||||
@ -44,6 +44,17 @@ view wave
|
|||||||
# Diplays All Signals recursively
|
# Diplays All Signals recursively
|
||||||
add wave /testbench/clk
|
add wave /testbench/clk
|
||||||
add wave /testbench/reset
|
add wave /testbench/reset
|
||||||
|
add wave -divider
|
||||||
|
add wave /testbench/dut/hart/ebu/IReadF
|
||||||
|
add wave /testbench/dut/hart/DataStall
|
||||||
|
add wave /testbench/dut/hart/InstrStall
|
||||||
|
add wave /testbench/dut/hart/StallF
|
||||||
|
add wave /testbench/dut/hart/StallD
|
||||||
|
add wave /testbench/dut/hart/FlushD
|
||||||
|
add wave /testbench/dut/hart/FlushE
|
||||||
|
add wave /testbench/dut/hart/FlushM
|
||||||
|
add wave /testbench/dut/hart/FlushW
|
||||||
|
|
||||||
add wave -divider
|
add wave -divider
|
||||||
add wave -hex /testbench/dut/hart/ifu/PCF
|
add wave -hex /testbench/dut/hart/ifu/PCF
|
||||||
add wave -hex /testbench/dut/hart/ifu/InstrF
|
add wave -hex /testbench/dut/hart/ifu/InstrF
|
||||||
|
@ -77,6 +77,7 @@ module dtim (
|
|||||||
assign #2 entry = HADDR[17:2];
|
assign #2 entry = HADDR[17:2];
|
||||||
endgenerate
|
endgenerate
|
||||||
assign HREADTim = RAM[entry];
|
assign HREADTim = RAM[entry];
|
||||||
|
// assign HREADTim = HREADYTim ? RAM[entry] : ~RAM[entry]; // *** temproary mess up read value before ready
|
||||||
|
|
||||||
// write each byte based on the byte mask
|
// write each byte based on the byte mask
|
||||||
// UInstantiate a byte-writable memory here if possible
|
// UInstantiate a byte-writable memory here if possible
|
@ -96,13 +96,12 @@ module wallypipelinedhart (
|
|||||||
dcu dcu(/*.Funct3M(InstrM[14:12]),*/ .*); // data cache unit
|
dcu dcu(/*.Funct3M(InstrM[14:12]),*/ .*); // data cache unit
|
||||||
|
|
||||||
ahblite ebu( // *** make IRData InstrF
|
ahblite ebu( // *** make IRData InstrF
|
||||||
.IPAdrF(PCF), .IReadF(1'b0), .IRData(), //.IReady(),
|
.IPAdrF(PCF), .IReadF(1'b1), .IRData(), //.IReady(),
|
||||||
.DPAdrM(DataAdrM), .DReadM(MemRWdcuoutM[1]), .DWriteM(MemRWdcuoutM[0]), .DWDataM(WriteDataM),
|
.DPAdrM(DataAdrM), .DReadM(MemRWdcuoutM[1]), .DWriteM(MemRWdcuoutM[0]), .DWDataM(WriteDataM),
|
||||||
.DSizeM(Funct3M[1:0]), .DRData(ReadDataM), //.DReady(),
|
.DSizeM(Funct3M[1:0]), .DRData(ReadDataM), //.DReady(),
|
||||||
.UnsignedLoadM(Funct3M[2]),
|
.UnsignedLoadM(Funct3M[2]),
|
||||||
.*);
|
.*);
|
||||||
//assign InstrF = ReadDataM[31:0];
|
//assign InstrF = ReadDataM[31:0];
|
||||||
// assign UnsignedLoadM = Funct3M[2]; // *** maybe move read extension to dcu
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
mdu mdu(.*); // multiply and divide unit
|
mdu mdu(.*); // multiply and divide unit
|
@ -75,6 +75,7 @@ string tests64iNOc[] = {
|
|||||||
"rv64i/I-MISALIGN_JMP-01","2000"
|
"rv64i/I-MISALIGN_JMP-01","2000"
|
||||||
};
|
};
|
||||||
string tests64i[] = '{
|
string tests64i[] = '{
|
||||||
|
"rv64i/I-LW-01", "4110",
|
||||||
"rv64i/I-ADD-01", "3000",
|
"rv64i/I-ADD-01", "3000",
|
||||||
"rv64i/I-ADDI-01", "3000",
|
"rv64i/I-ADDI-01", "3000",
|
||||||
"rv64i/I-ADDIW-01", "3000",
|
"rv64i/I-ADDIW-01", "3000",
|
||||||
|
Loading…
Reference in New Issue
Block a user