mirror of
https://github.com/openhwgroup/cvw
synced 2025-02-11 06:05:49 +00:00
Run verilator configurations and testsuites in different folders.
This commit is contained in:
parent
f94aab2d0d
commit
c383bef1ad
@ -3,8 +3,7 @@
|
|||||||
OPT=
|
OPT=
|
||||||
PARAMS?=-DVERILATOR=1 --no-trace-top
|
PARAMS?=-DVERILATOR=1 --no-trace-top
|
||||||
NONPROF?=--stats
|
NONPROF?=--stats
|
||||||
WORKING_DIR=${WALLY}/sim/verilator
|
VERILATOR_DIR=${WALLY}/sim/verilator
|
||||||
TARGET=$(WORKING_DIR)/target
|
|
||||||
SOURCE=${WALLY}/config/shared/*.vh ${WALLY}/config/${WALLYCONF} ${WALLY}/src/cvw.sv ${WALLY}/testbench/testbench.sv ${WALLY}/testbench/common/*.sv ${WALLY}/src/*/*.sv ${WALLY}/src/*/*/*.sv
|
SOURCE=${WALLY}/config/shared/*.vh ${WALLY}/config/${WALLYCONF} ${WALLY}/src/cvw.sv ${WALLY}/testbench/testbench.sv ${WALLY}/testbench/common/*.sv ${WALLY}/src/*/*.sv ${WALLY}/src/*/*/*.sv
|
||||||
|
|
||||||
WALLYCONF?=rv64gc
|
WALLYCONF?=rv64gc
|
||||||
@ -13,42 +12,41 @@ TEST?=arch64i
|
|||||||
default: run
|
default: run
|
||||||
|
|
||||||
profile: obj_dir_profiling/Vtestbench_$(WALLYCONF)
|
profile: obj_dir_profiling/Vtestbench_$(WALLYCONF)
|
||||||
$(WORKING_DIR)/obj_dir_profiling/Vtestbench_$(WALLYCONF) +TEST=$(TEST)
|
$(VERILATOR_DIR)/obj_dir_profiling/Vtestbench_$(WALLYCONF) +TEST=$(TEST)
|
||||||
mv gmon.out gmon_$(WALLYCONF).out
|
mv gmon.out gmon_$(WALLYCONF).out
|
||||||
gprof $(WORKING_DIR)/obj_dir_profiling/Vtestbench_$(WALLYCONF) gmon_$(WALLYCONF).out > gmon_$(WALLYCONF).log
|
gprof $(VERILATOR_DIR)/obj_dir_profiling/Vtestbench_$(WALLYCONF) gmon_$(WALLYCONF).out > gmon_$(WALLYCONF).log
|
||||||
verilator_profcfunc gmon_$(WALLYCONF).log > gmon_$(WALLYCONF).log2
|
verilator_profcfunc gmon_$(WALLYCONF).log > gmon_$(WALLYCONF).log2
|
||||||
mkdir -p $(WORKING_DIR)/logs_profiling
|
mkdir -p $(VERILATOR_DIR)/logs_profiling
|
||||||
mv gmon_$(WALLYCONF)* $(WORKING_DIR)/logs_profiling
|
mv gmon_$(WALLYCONF)* $(VERILATOR_DIR)/logs_profiling
|
||||||
echo "Please check $(WORKING_DIR)/logs_profiling/gmon_$(WALLYCONF)* for logs and output files."
|
echo "Please check $(VERILATOR_DIR)/logs_profiling/gmon_$(WALLYCONF)* for logs and output files."
|
||||||
|
|
||||||
run: obj_dir_non_profiling/Vtestbench_$(WALLYCONF)
|
run: wkdir/$(WALLYCONF)_$(TEST)/Vtestbench
|
||||||
mkdir -p $(WORKING_DIR)/logs
|
mkdir -p $(VERILATOR_DIR)/logs
|
||||||
time $(WORKING_DIR)/obj_dir_non_profiling/Vtestbench_$(WALLYCONF) +TEST=$(TEST) 2>&1 > $(WORKING_DIR)/logs/$(WALLYCONF)_$(TEST).log
|
wkdir/$(WALLYCONF)_$(TEST)/Vtestbench +TEST=$(TEST) 2>&1 > $(VERILATOR_DIR)/logs/$(WALLYCONF)_$(TEST).log
|
||||||
echo "Please check $(WORKING_DIR)/logs/$(WALLYCONF)_$(TEST).log for logs and output files."
|
echo "Please check $(VERILATOR_DIR)/logs/$(WALLYCONF)_$(TEST).log for logs and output files."
|
||||||
|
|
||||||
obj_dir_non_profiling/Vtestbench_$(WALLYCONF): $(SOURCE)
|
wkdir/$(WALLYCONF)_$(TEST)/Vtestbench: $(SOURCE)
|
||||||
mkdir -p obj_dir_non_profiling
|
verilator \
|
||||||
time verilator \
|
--Mdir wkdir/$(WALLYCONF)_$(TEST) -o Vtestbench \
|
||||||
--Mdir obj_dir_non_profiling -o Vtestbench_$(WALLYCONF) \
|
--binary \
|
||||||
-cc --binary \
|
|
||||||
$(OPT) $(PARAMS) $(NONPROF) \
|
$(OPT) $(PARAMS) $(NONPROF) \
|
||||||
--timescale "1ns/1ns" --timing --top-module testbench --relative-includes \
|
--timescale "1ns/1ns" --timing --top-module testbench --relative-includes \
|
||||||
"-I${WALLY}/config/shared" "-I${WALLY}/config/$(WALLYCONF)" \
|
"-I${WALLY}/config/shared" "-I${WALLY}/config/$(WALLYCONF)" \
|
||||||
wrapper.c \
|
${WALLY}/sim/verilator/wrapper.c \
|
||||||
${WALLY}/src/cvw.sv ${WALLY}/testbench/testbench.sv ${WALLY}/testbench/common/*.sv ${WALLY}/src/*/*.sv ${WALLY}/src/*/*/*.sv
|
${WALLY}/src/cvw.sv ${WALLY}/testbench/testbench.sv ${WALLY}/testbench/common/*.sv ${WALLY}/src/*/*.sv ${WALLY}/src/*/*/*.sv
|
||||||
|
|
||||||
obj_dir_profiling/Vtestbench_$(WALLYCONF): $(SOURCE)
|
obj_dir_profiling/Vtestbench_$(WALLYCONF): $(SOURCE)
|
||||||
mkdir -p obj_dir_profiling
|
mkdir -p obj_dir_profiling
|
||||||
time verilator \
|
verilator \
|
||||||
--Mdir obj_dir_profiling -o Vtestbench_$(WALLYCONF) \
|
--Mdir obj_dir_profiling -o Vtestbench_$(WALLYCONF) \
|
||||||
-cc --binary \
|
--binary \
|
||||||
--prof-cfuncs $(OPT) $(PARAMS) \
|
--prof-cfuncs $(OPT) $(PARAMS) \
|
||||||
--timescale "1ns/1ns" --timing --top-module testbench --relative-includes \
|
--timescale "1ns/1ns" --timing --top-module testbench --relative-includes \
|
||||||
wrapper.c \
|
wrapper.c \
|
||||||
"-I${WALLY}/config/shared" "-I${WALLY}/config/$(WALLYCONF)" ${WALLY}/src/cvw.sv ${WALLY}/testbench/testbench.sv ${WALLY}/testbench/common/*.sv ${WALLY}/src/*/*.sv ${WALLY}/src/*/*/*.sv
|
"-I${WALLY}/config/shared" "-I${WALLY}/config/$(WALLYCONF)" ${WALLY}/src/cvw.sv ${WALLY}/testbench/testbench.sv ${WALLY}/testbench/common/*.sv ${WALLY}/src/*/*.sv ${WALLY}/src/*/*/*.sv
|
||||||
|
|
||||||
questa:
|
questa:
|
||||||
time vsim -c -do "do ${WALLY}/sim/wally-batch.do $(WALLYCONF) $(TEST)"
|
vsim -c -do "do ${WALLY}/sim/wally-batch.do $(WALLYCONF) $(TEST)"
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(WORKING_DIR)/obj_dir_non_profiling $(WORKING_DIR)/obj_dir_profiling $(WORKING_DIR)/logs $(WORKING_DIR)/logs_profiling
|
rm -rf $(VERILATOR_DIR)/wkdir $(VERILATOR_DIR)/obj_dir_profiling $(VERILATOR_DIR)/logs $(VERILATOR_DIR)/logs_profiling
|
Loading…
Reference in New Issue
Block a user