Undefined System Task call to ‘$fsdbDumpfile‘

问题描述:

在使用VCS或者Irun进行仿真的时候,当需要dump FSDB波形的时候报错:

Undefined System Task call to '$fsdbDumpfile'

原因分析:

主要原因是VERDI的工具库没有设置好。


解决方案:

下面分仿真工具为VCS和Irun分别提供两种解决方案:

1、VCS

首先要把FSDB dumper库的路径添加到LD_LIBRARY_PATH环境变量, Shell命令格式如下:

 setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${NOVAS_HOME}/share/PLI/VCS/LINUX64

注意:如果使用的是32位Linux,需要把LINUX64替换成LINUX。

Verilog中常用的FSDB dumping命令包括$fsdbDumpfile和$fsdbDumpvars等,调用格式如下:

$fsdbDumpfile("test.fsdb");
$fsdbDumpvars(1, Testbench.inst);

用VCS仿真时,需要使用-P选项调用FSDB dumper,命令格式如下:

vcs +v2k -R -nc -debug_pp -LDFLAGS -rdynamic -P ${NOVAS_HOME}/share/PLI/VCS/LINUX64/novas.tab ${NOVAS_HOME}/share/PLI/VCS/LINUX64/pli.a Testbench.v Counter.v

其中+v2k表示使用Verilog-2001标准,-R表示自动运行仿真,-nc表示不显示版权信息,-debug_pp和-LDFLAGS -rdynamic是Verdi要求的选项。

还有一个比较简单一点的方法:
1、 把NOVAS_HOME和LD_LIBRARY_PATH这两个变量设对
2、VCS加-fsdb参数

2、Irun

将verdi的PLI库路径加入环境变量LD_LIBRARY_PATH:

 setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${VERDI_HOME}/share/PLI/IUS/LINUX64

3、区别

路径不一样,VCS的是/share/PLI/VCS/LINUX64,Irun的是/share/PLI/IUS/LINUX64。

你可能感兴趣的:(随笔)