#VERDI# 关于调用$fsdb*系统函数却无法产生波形原因分析

前段时间,自己随便搞个小例子,进行SV 语言学习的时候,遇到一个问题,现总结如下。

在代码中添加如下的波形加载系统函数,用于仿真结束之后,进行波形review.。

#VERDI# 关于调用$fsdb*系统函数却无法产生波形原因分析_第1张图片

 Makefile 编写如下:


all   : clean vcs run
#-------------------------------------------------------------------------------------------------------
comp  : clean vcs
#-------------------------------------------------------------------------------------------------------
vcs   :
	vcs  \
              -f filelist.f  \
              -timescale=1ns/1ps \
			  -diag timescale  \
			  +incdir+/home/uvm-1.1d/+./test/+./env/+./interface/   \
			  -ntb_opts uvm-1.1  \
			  +fsdb+force  \
			  +vcs+initreg+random \
              -kdb -lca -full64  +vc  +v2k  -sverilog -debug_all +apllylearn+pli_learn.tab \
			  -a vcs_run.log  \
              |  tee  vcs_all.log  
#-------------------------------------------------------------------------------------------------------
run  :
	./simv 
#-------------------------------------------------------------------------------------------------------
verdi  :
	verdi -f filelist.f -ssf top_tb.fsdb &
#-------------------------------------------------------------------------------------------------------
clean  :
	rm  -rf  *~  core  csrc  simv* AN.DB  *.sw* stack* vc_hdrs.h  ucli.key  urg* *.log  novas.* *.fsdb* verdiLog  64* DVEfiles *.vpd
#-------------------------------------------------------------------------------------------------------
filelist :
	find -name "*.v" > filelist.f

 然后,运行编译命令,遇到如下编译失败error:

#VERDI# 关于调用$fsdb*系统函数却无法产生波形原因分析_第2张图片

 奇怪哎,怎么系统函数找不到呢,系统函数我们不是随便使用么?。。。。。

【尝试1】此时,尝试将 -debug_all 改成 -debug , 发现同样error:

#VERDI# 关于调用$fsdb*系统函数却无法产生波形原因分析_第3张图片

 【尝试2】继续尝试,将选项-debug 改成 -debug_pp, 发现报错依旧是那样。

#VERDI# 关于调用$fsdb*系统函数却无法产生波形原因分析_第4张图片

【尝试3】此时,尝试将-debug_pp  改写成 -debug_access(或者-debug_acc),均成功加载fsdb 波形。

#VERDI# 关于调用$fsdb*系统函数却无法产生波形原因分析_第5张图片                

 此外,对于任何 -debug_access* 选项,该方式均取得成功。

哎,此时完全糊涂了,到底为甚么呢? 为什么刚开始的 -debug 或者 -debug_all  或者-debug_pp  法力不够呢?那么如果执意选择此三个编译选项,该如何解决问题呢?

经查阅资料发现,我们虽然调用了系统函数$fsdbDump* ,并将其添加到了 验证环境代码中,但是却没有添加具体的tab 文件和 静态库文件,VCS 编译器是找不到的,所以报错。

那么,将下面两句添加到 Makefile 中 编译选项中:

-P 
${NOVAS_HOME}/share/PLI/VCS/LINUX64/novas.tab:加载表格文件
${NOVAS_HOME}/share/PLI/VCS/LINUX64/pli.a:加载静态库

 #VERDI# 关于调用$fsdb*系统函数却无法产生波形原因分析_第6张图片

 另外,据试验,完全可以 用 “-fsdb ” 代替上面复杂冗长的编译选项。


#VERDI# 关于调用$fsdb*系统函数却无法产生波形原因分析_第7张图片

 

你可能感兴趣的:(#,VCS__verdi,verdi)