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

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 -ssf $(DESIGN_NAME).fsdb -f list.f &

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_tb.v
./fifo.v

其中,tb文件最好放在第一行,否则可能出现类似报错
../addr_adm_tb.v, 3 Module "addr_adm_tb" has timescale but previous module(s)/package(s) do not.

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

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

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

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

本文作者:心比天高xzh

本文链接:https://www.cnblogs.com/xzh-personal-issue/p/17831734.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   心比天高xzh  阅读(130)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起