forked from Github_Repos/cvw
Merge remote-tracking branch 'origin/main' into cache
This commit is contained in:
commit
36452749d7
@ -86,3 +86,6 @@
|
|||||||
|
|
||||||
/* verilator lint_off STMTDLY */
|
/* verilator lint_off STMTDLY */
|
||||||
/* verilator lint_off WIDTH */
|
/* verilator lint_off WIDTH */
|
||||||
|
|
||||||
|
`define TWO_BIT_PRELOAD "../config/busybear/twoBitPredictor.txt"
|
||||||
|
`define BTB_PRELOAD "../config/busybear/BTBPredictor.txt"
|
||||||
|
1024
wally-pipelined/config/coremark/twoBitPredictor.txt
Normal file
1024
wally-pipelined/config/coremark/twoBitPredictor.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -88,3 +88,6 @@
|
|||||||
/* verilator lint_off WIDTH */
|
/* verilator lint_off WIDTH */
|
||||||
/* verilator lint_off ASSIGNDLY */
|
/* verilator lint_off ASSIGNDLY */
|
||||||
/* verilator lint_off PINCONNECTEMPTY */
|
/* verilator lint_off PINCONNECTEMPTY */
|
||||||
|
|
||||||
|
`define TWO_BIT_PRELOAD "../config/coremark/twoBitPredictor.txt"
|
||||||
|
`define BTB_PRELOAD "../config/coremark/BTBPredictor.txt"
|
||||||
|
1024
wally-pipelined/config/rv32ic/twoBitPredictor.txt
Normal file
1024
wally-pipelined/config/rv32ic/twoBitPredictor.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -84,3 +84,6 @@
|
|||||||
|
|
||||||
/* verilator lint_off STMTDLY */
|
/* verilator lint_off STMTDLY */
|
||||||
/* verilator lint_off WIDTH */
|
/* verilator lint_off WIDTH */
|
||||||
|
|
||||||
|
`define TWO_BIT_PRELOAD "../config/rv32ic/twoBitPredictor.txt"
|
||||||
|
`define BTB_PRELOAD "../config/rv32ic/BTBPredictor.txt"
|
||||||
|
1024
wally-pipelined/config/rv64ic/twoBitPredictor.txt
Normal file
1024
wally-pipelined/config/rv64ic/twoBitPredictor.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -87,3 +87,6 @@
|
|||||||
/* verilator lint_off WIDTH */
|
/* verilator lint_off WIDTH */
|
||||||
/* verilator lint_off ASSIGNDLY */
|
/* verilator lint_off ASSIGNDLY */
|
||||||
/* verilator lint_off PINCONNECTEMPTY */
|
/* verilator lint_off PINCONNECTEMPTY */
|
||||||
|
|
||||||
|
`define TWO_BIT_PRELOAD "../config/rv64ic/twoBitPredictor.txt"
|
||||||
|
`define BTB_PRELOAD "../config/rv64ic/BTBPredictor.txt"
|
||||||
|
1024
wally-pipelined/config/rv64icfd/twoBitPredictor.txt
Normal file
1024
wally-pipelined/config/rv64icfd/twoBitPredictor.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -87,3 +87,6 @@
|
|||||||
/* verilator lint_off WIDTH */
|
/* verilator lint_off WIDTH */
|
||||||
/* verilator lint_off ASSIGNDLY */
|
/* verilator lint_off ASSIGNDLY */
|
||||||
/* verilator lint_off PINCONNECTEMPTY */
|
/* verilator lint_off PINCONNECTEMPTY */
|
||||||
|
|
||||||
|
`define TWO_BIT_PRELOAD "../config/rv64icfd/twoBitPredictor.txt"
|
||||||
|
`define BTB_PRELOAD "../config/rv64icfd/BTBPredictor.txt"
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
check_test () {
|
|
||||||
output=$(timeout 2m ./"$1" 2>/dev/null)
|
|
||||||
found=$(echo $output | grep -c "$2")
|
|
||||||
echo "$found"
|
|
||||||
}
|
|
||||||
echo "-----------------------"
|
|
||||||
echo "starting all regression tests!"
|
|
||||||
echo "note: this could take up to 3 minutes to run"
|
|
||||||
echo "-----------------------"
|
|
||||||
echo "checking verilator"
|
|
||||||
verilator_out=$(cd ..; ./lint-wally 2>&1)
|
|
||||||
[[ -z $verilator_out ]] && echo "verilator passed" || echo "verilator failed"
|
|
||||||
echo "starting Imperas rv64ic"
|
|
||||||
sleep 1
|
|
||||||
exec 3< <(check_test "sim-wally-batch" "All tests ran without failures.")
|
|
||||||
#echo "starting Imperas rv32ic"
|
|
||||||
#sleep 1
|
|
||||||
#exec 5< <(check_test "sim-wally-rv32ic" "All tests ran without failures.")
|
|
||||||
#echo "starting busybear"
|
|
||||||
sleep 1
|
|
||||||
exec 4< <(check_test "sim-busybear-batch" "loaded 100000 instructions")
|
|
||||||
echo "-----------------------"
|
|
||||||
echo "waiting for tests to finish..."
|
|
||||||
echo "-----------------------"
|
|
||||||
rv64_out=$(cat <&3)
|
|
||||||
[[ $rv64_out -eq 1 ]] && echo "rv64ic passed" || echo "rv64ic failed"
|
|
||||||
#rv32_out=$(cat <&5)
|
|
||||||
#[[ $rv32_out -eq 1 ]] && echo "rv32ic passed" || echo "rv32ic failed"
|
|
||||||
busybear_out=$(cat <&4)
|
|
||||||
[[ $busybear_out -eq 1 ]] && echo "busybear passed" || echo "busybear failed"
|
|
||||||
|
|
||||||
[[ -z $verilator_out && $rv64_out -eq 1 && $busybear_out -eq 1 ]] && echo "all passed" || echo "not all passed"
|
|
||||||
#[[ -z $verilator_out && $rv32_out -eq 1 && $rv64_out -eq 1 && $busybear_out -eq 1 ]] && echo "all passed" || echo "not all passed"
|
|
@ -31,16 +31,9 @@ vlog +incdir+../config/busybear ../testbench/*.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
|
||||||
vopt +acc=+/testbench_busybear/dut/hart/ifu/bpred/DirPredictor/memory/memory +acc=+/testbench_busybear/dut/hart/ifu/bpred/TargetPredictor/memory/memory work.testbench_busybear -o workopt
|
vopt work.testbench_busybear -o workopt
|
||||||
|
|
||||||
vsim workopt -suppress 8852,12070
|
vsim workopt -suppress 8852,12070
|
||||||
# load the branch predictors with known data. The value of the data is not important for function, but
|
|
||||||
# is important for perventing pessimistic x propagation.
|
|
||||||
mem load -infile twoBitPredictor.txt -format bin testbench_busybear/dut/hart/ifu/bpred/DirPredictor/memory/memory
|
|
||||||
switch $argc {
|
|
||||||
0 {mem load -infile ../config/rv64ic/BTBPredictor.txt -format bin testbench_busybear/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
1 {mem load -infile ../config/$1/BTBPredictor.txt -format bin testbench_busybear/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
}
|
|
||||||
|
|
||||||
run -all
|
run -all
|
||||||
quit
|
quit
|
||||||
|
@ -34,13 +34,6 @@ vlog +incdir+../config/busybear ../testbench/*.sv ../src/*/*.sv -suppress 2583
|
|||||||
vopt +acc work.testbench_busybear -o workopt
|
vopt +acc work.testbench_busybear -o workopt
|
||||||
|
|
||||||
vsim workopt -suppress 8852,12070
|
vsim workopt -suppress 8852,12070
|
||||||
# load the branch predictors with known data. The value of the data is not important for function, but
|
|
||||||
# is important for perventing pessimistic x propagation.
|
|
||||||
mem load -infile twoBitPredictor.txt -format bin testbench_busybear/dut/hart/ifu/bpred/DirPredictor/memory/memory
|
|
||||||
switch $argc {
|
|
||||||
0 {mem load -infile ../config/rv64ic/BTBPredictor.txt -format bin testbench_busybear/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
1 {mem load -infile ../config/$1/BTBPredictor.txt -format bin testbench_busybear/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
view wave
|
view wave
|
||||||
|
@ -35,14 +35,6 @@ vlog +incdir+../config/coremark ../testbench/testbench-coremark.sv ../src/*/*.sv
|
|||||||
vopt +acc work.testbench -o workopt
|
vopt +acc work.testbench -o workopt
|
||||||
vsim workopt
|
vsim workopt
|
||||||
|
|
||||||
# load the branch predictors with known data. The value of the data is not important for function, but
|
|
||||||
# is important for perventing pessimistic x propagation.
|
|
||||||
mem load -infile twoBitPredictor.txt -format bin testbench/dut/hart/ifu/bpred/DirPredictor/memory/memory
|
|
||||||
switch $argc {
|
|
||||||
0 {mem load -infile ../config/rv64ic/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
1 {mem load -infile ../config/$1/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
}
|
|
||||||
|
|
||||||
view wave
|
view wave
|
||||||
|
|
||||||
-- display input and output signals as hexidecimal values
|
-- display input and output signals as hexidecimal values
|
||||||
|
@ -38,13 +38,6 @@ switch $argc {
|
|||||||
vopt +acc work.testbench -o workopt
|
vopt +acc work.testbench -o workopt
|
||||||
vsim workopt
|
vsim workopt
|
||||||
|
|
||||||
# load the branch predictors with known data. The value of the data is not important for function, but
|
|
||||||
# is important for perventing pessimistic x propagation.
|
|
||||||
mem load -infile twoBitPredictor.txt -format bin testbench/dut/hart/ifu/bpred/DirPredictor/memory/memory
|
|
||||||
switch $argc {
|
|
||||||
0 {mem load -infile ../config/rv64ic/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
1 {mem load -infile ../config/$1/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
}
|
|
||||||
|
|
||||||
view wave
|
view wave
|
||||||
do wally-peripherals-signals.do
|
do wally-peripherals-signals.do
|
||||||
|
@ -27,20 +27,12 @@ vlib work$2
|
|||||||
# 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+$1 ../testbench/testbench-imperas.sv ../src/*/*.sv -suppress 2583 -work work$2
|
vlog +incdir+$1 ../testbench/testbench-imperas.sv ../testbench/function_radix.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
|
||||||
#vopt +acc=+/testbench/dut/hart/ifu/bpred/DirPredictor/memory/memory +acc=+/testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory work$2.testbench -o workopt$2
|
vopt work.testbench -o workopt
|
||||||
#vsim workopt$2
|
vsim workopt
|
||||||
|
|
||||||
# load the branch predictors with known data. The value of the data is not important for function, but
|
run -all
|
||||||
# is important for perventing pessimistic x propagation.
|
quit
|
||||||
#mem load -infile twoBitPredictor.txt -format bin testbench/dut/hart/ifu/bpred/DirPredictor/memory/memory
|
|
||||||
#switch $argc {
|
|
||||||
# 0 {mem load -infile ../config/rv64ic/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
# 1 {mem load -infile ../config/$1/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
#}
|
|
||||||
|
|
||||||
#run -all
|
|
||||||
#quit
|
|
||||||
|
@ -35,16 +35,8 @@ switch $argc {
|
|||||||
}
|
}
|
||||||
# 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
|
||||||
vopt +acc=+/testbench/dut/hart/ifu/bpred/DirPredictor/memory/memory +acc=+/testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory work.testbench -o workopt
|
vopt work.testbench -o workopt
|
||||||
vsim workopt
|
vsim workopt
|
||||||
|
|
||||||
# load the branch predictors with known data. The value of the data is not important for function, but
|
|
||||||
# is important for perventing pessimistic x propagation.
|
|
||||||
mem load -infile twoBitPredictor.txt -format bin testbench/dut/hart/ifu/bpred/DirPredictor/memory/memory
|
|
||||||
switch $argc {
|
|
||||||
0 {mem load -infile ../config/rv64ic/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
1 {mem load -infile ../config/$1/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
}
|
|
||||||
|
|
||||||
run -all
|
run -all
|
||||||
quit
|
quit
|
||||||
|
@ -38,13 +38,6 @@ switch $argc {
|
|||||||
vopt +acc -gDEBUG=1 work.testbench -o workopt
|
vopt +acc -gDEBUG=1 work.testbench -o workopt
|
||||||
vsim workopt
|
vsim workopt
|
||||||
|
|
||||||
# load the branch predictors with known data. The value of the data is not important for function, but
|
|
||||||
# is important for perventing pessimistic x propagation.
|
|
||||||
mem load -infile twoBitPredictor.txt -format bin testbench/dut/hart/ifu/bpred/DirPredictor/memory/memory
|
|
||||||
switch $argc {
|
|
||||||
0 {mem load -infile ../config/rv64ic/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
1 {mem load -infile ../config/$1/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
}
|
|
||||||
|
|
||||||
do wave.do
|
do wave.do
|
||||||
add log -r /*
|
add log -r /*
|
||||||
|
@ -38,13 +38,6 @@ switch $argc {
|
|||||||
vopt +acc work.testbench -o workopt
|
vopt +acc work.testbench -o workopt
|
||||||
vsim workopt
|
vsim workopt
|
||||||
|
|
||||||
# load the branch predictors with known data. The value of the data is not important for function, but
|
|
||||||
# is important for perventing pessimistic x propagation.
|
|
||||||
mem load -infile twoBitPredictor.txt -format bin testbench/dut/hart/ifu/bpred/DirPredictor/memory/memory
|
|
||||||
switch $argc {
|
|
||||||
0 {mem load -infile ../config/rv64ic/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
1 {mem load -infile ../config/$1/BTBPredictor.txt -format bin testbench/dut/hart/ifu/bpred/TargetPredictor/memory/memory}
|
|
||||||
}
|
|
||||||
|
|
||||||
view wave
|
view wave
|
||||||
|
|
||||||
|
@ -101,6 +101,8 @@ module testbench_busybear();
|
|||||||
$readmemh("/courses/e190ax/busybear_boot/ram.txt", dut.uncore.dtim.RAM);
|
$readmemh("/courses/e190ax/busybear_boot/ram.txt", dut.uncore.dtim.RAM);
|
||||||
$readmemh("/courses/e190ax/busybear_boot/bootmem.txt", dut.imem.bootram, 'h1000 >> 3);
|
$readmemh("/courses/e190ax/busybear_boot/bootmem.txt", dut.imem.bootram, 'h1000 >> 3);
|
||||||
$readmemh("/courses/e190ax/busybear_boot/ram.txt", dut.imem.RAM);
|
$readmemh("/courses/e190ax/busybear_boot/ram.txt", dut.imem.RAM);
|
||||||
|
$readmemb(`TWO_BIT_PRELOAD, dut.hart.ifu.bpred.DirPredictor.memory.memory);
|
||||||
|
$readmemb(`BTB_PRELOAD, dut.hart.ifu.bpred.TargetPredictor.memory.memory);
|
||||||
end
|
end
|
||||||
|
|
||||||
integer warningCount = 0;
|
integer warningCount = 0;
|
||||||
|
@ -471,6 +471,12 @@ string tests32i[] = {
|
|||||||
.ProgramLabelMapFile(ProgramLabelMapFile));
|
.ProgramLabelMapFile(ProgramLabelMapFile));
|
||||||
end
|
end
|
||||||
|
|
||||||
|
// initialize the branch predictor
|
||||||
|
initial begin
|
||||||
|
$readmemb(`TWO_BIT_PRELOAD, dut.hart.ifu.bpred.DirPredictor.memory.memory);
|
||||||
|
$readmemb(`BTB_PRELOAD, dut.hart.ifu.bpred.TargetPredictor.memory.memory);
|
||||||
|
end
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
/* verilator lint_on STMTDLY */
|
/* verilator lint_on STMTDLY */
|
||||||
|
Loading…
Reference in New Issue
Block a user