From c383bef1ad61c30492be05fe67cc4517faef712c Mon Sep 17 00:00:00 2001 From: Kunlin Han Date: Mon, 22 Apr 2024 11:32:46 -0700 Subject: [PATCH] Run verilator configurations and testsuites in different folders. --- sim/verilator/Makefile | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/sim/verilator/Makefile b/sim/verilator/Makefile index 4042326a8..542b09d1c 100644 --- a/sim/verilator/Makefile +++ b/sim/verilator/Makefile @@ -3,8 +3,7 @@ OPT= PARAMS?=-DVERILATOR=1 --no-trace-top NONPROF?=--stats -WORKING_DIR=${WALLY}/sim/verilator -TARGET=$(WORKING_DIR)/target +VERILATOR_DIR=${WALLY}/sim/verilator 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 @@ -13,42 +12,41 @@ TEST?=arch64i default: run 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 - 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 - mkdir -p $(WORKING_DIR)/logs_profiling - mv gmon_$(WALLYCONF)* $(WORKING_DIR)/logs_profiling - echo "Please check $(WORKING_DIR)/logs_profiling/gmon_$(WALLYCONF)* for logs and output files." + mkdir -p $(VERILATOR_DIR)/logs_profiling + mv gmon_$(WALLYCONF)* $(VERILATOR_DIR)/logs_profiling + echo "Please check $(VERILATOR_DIR)/logs_profiling/gmon_$(WALLYCONF)* for logs and output files." -run: obj_dir_non_profiling/Vtestbench_$(WALLYCONF) - mkdir -p $(WORKING_DIR)/logs - time $(WORKING_DIR)/obj_dir_non_profiling/Vtestbench_$(WALLYCONF) +TEST=$(TEST) 2>&1 > $(WORKING_DIR)/logs/$(WALLYCONF)_$(TEST).log - echo "Please check $(WORKING_DIR)/logs/$(WALLYCONF)_$(TEST).log for logs and output files." +run: wkdir/$(WALLYCONF)_$(TEST)/Vtestbench + mkdir -p $(VERILATOR_DIR)/logs + wkdir/$(WALLYCONF)_$(TEST)/Vtestbench +TEST=$(TEST) 2>&1 > $(VERILATOR_DIR)/logs/$(WALLYCONF)_$(TEST).log + echo "Please check $(VERILATOR_DIR)/logs/$(WALLYCONF)_$(TEST).log for logs and output files." -obj_dir_non_profiling/Vtestbench_$(WALLYCONF): $(SOURCE) - mkdir -p obj_dir_non_profiling - time verilator \ - --Mdir obj_dir_non_profiling -o Vtestbench_$(WALLYCONF) \ - -cc --binary \ +wkdir/$(WALLYCONF)_$(TEST)/Vtestbench: $(SOURCE) + verilator \ + --Mdir wkdir/$(WALLYCONF)_$(TEST) -o Vtestbench \ + --binary \ $(OPT) $(PARAMS) $(NONPROF) \ --timescale "1ns/1ns" --timing --top-module testbench --relative-includes \ "-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 obj_dir_profiling/Vtestbench_$(WALLYCONF): $(SOURCE) mkdir -p obj_dir_profiling - time verilator \ + verilator \ --Mdir obj_dir_profiling -o Vtestbench_$(WALLYCONF) \ - -cc --binary \ + --binary \ --prof-cfuncs $(OPT) $(PARAMS) \ --timescale "1ns/1ns" --timing --top-module testbench --relative-includes \ 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 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: - rm -rf $(WORKING_DIR)/obj_dir_non_profiling $(WORKING_DIR)/obj_dir_profiling $(WORKING_DIR)/logs $(WORKING_DIR)/logs_profiling \ No newline at end of file + rm -rf $(VERILATOR_DIR)/wkdir $(VERILATOR_DIR)/obj_dir_profiling $(VERILATOR_DIR)/logs $(VERILATOR_DIR)/logs_profiling \ No newline at end of file