vcs与verdi命令行仿真查看波形

发布时间 2023-11-14 15:31:19作者: 心比天高xzh

makefile

DESIGN_NAME = "fifo_tb"
LOG_VCS     = "vcs.log"
LOG_SIMV    = "simv.log"
FILE_LIST   = "./list.f"

# Code Coverage
CM      = -cm line+cond+tgl+fsm+branch+assert
CM_DIR  = -cm_dir cvrg

# Makefile body
.PHONY: env vcs simv verdi urg clean cleanall sim

env : 
	@echo "Design Name: $(DESIGN_NAME)"
	@echo "Log File   : $(LOG_VCS)"
	@echo "Log File   : $(LOG_SIMV)"
	@echo "File List  : $(FILE_LIST)"

# find . -name "*.v"  > list.f
vcs :
	vcs -nc -j32 -full64 -sverilog -debug_access+all \
		+nospecify +notimingcheck +delay_mode_zero \
		-l $(LOG_VCS) -f $(FILE_LIST) $(CM) $(CM_DIR)

simv : env vcs
	./simv -nc +COMPARE +fsdb+parallel \
		   -l $(LOG_SIMV) $(CM) $(CM_DIR)

verdi :
	verdi $(DESIGN_NAME).fsdb

urg :
	verdi -full64 -cov -covdir ./cvrg.vdb

clean :
	rm -rf simv ucli.key novas.* *.log
	rm -rf csrc simv.daidir verdiLog cvrg.vdb vdCovLog

cleanall : clean
	rm -rf *_Golden*.txt *_DUT.txt

sim : cleanall simv verdi

其中list.f中存放所有.v文件的相对路径,包括tb。

示例:

./fifo.v
./fifo_tb.v

在tb文件中,需要加入dump信号的指令。

initial 
begin
    $fsdbDumpfile("fifo_tb.fsdb");
    $fsdbDumpvars("+all");          
end

需要注意的是,dumpfile名要与makefile第一行的DESIGN_NAME相同。

否则需要手动打开fsdb的波形文件。