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