1.遇到的问题
在用ncverilog跑RTL代码时,提示下列错误信息:
:User Defined system task or function ($fsdbDumpfile) registered during elaboration and used within the simulation has not been registered during simulation.
2.解决办法
- 首先查看下自己的系统是多少位的,采用以下命令可以实现
uname -i
大概率是x86_64,除非你的系统版本特别老!!
- 之后找到verdi软件所在的位置
[]$ which verdi
/usr/eda/synopsys/verdi/verdi-xxx.xx/bin/verdi
- 然后cd到verdi-xxx.xx目录下,你会看到一个share目录,进入share目录之后,会有一PLI目录,现在重点来了,此刻打开根目录下的.bashrc文件,在该文件中进行环境变量的配置。配置的内容如下:(这里的verdi-xxx.xx要替换成你系统中显示的目录名称)
- 注意:bash shell设置全局的环境变量用的是export,cshell设置全局的环境变量用的是setenv命令,提前查看一下自己用的是什么shell(echo $SHELL查看)
- 最后保存更改后的.bashrc文件,重新打开一个terminal或者source ~/.bashrc文件之后就可以识别到$fsdbDumpfile函数和$fsdbDumpvars了。