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 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步