一、Verdi用途与优势 Verdi主要用于生成fsdb模型,同VCS使用的vcd文件相比,verdi使用的fsdb相当于vcd文件经过霍夫编码压缩之后的精简版,可用于查看fsdb波形并追踪RTL代码。
虽说verdi、modelsim都是用来调试波形, modelsim与verdi相比,最大的缺点是波形不会全dump,wave窗口拉不全的话需要重新跑,而verdi边运行边查看。具体做法是,在使用tcl指令,在运行仿真时,设置仿真时间,每次run完毕之后,在nWave窗口中file——>自动加载(shift+L快捷键),异常方便!
二、FSDB波形
Verdi只能查看fsdb格式的波形,而VCS可以生成供DVE查看的vpd格式的波形,如果想要输出fsdb格式的波形,需要额外在testbench中添加fsdb指令,或者通过脚本进行设置。FSDB全称为(Fast Signal Data Base):快速信号数据库,fsdb文件是Verdi使用的一种专用数据格式,fsdb通过verilog的PLI接口实现,如:fsdbDumpfile("f0.fsdb"); //指定生成的fsdb文件的文件名fsdbDumpars(0,top); //指定dump的变量
三、开发环境与配置
使用Verdi前需要对开发环境进行配置,使得系统在调用Verdi时找到其路径,在使用verdi时找到其库文件与路径,所以要注意三个变量和三条指令的使用:Verdi_HOME/NOVAS_HOME 仿真器默认,为设置PATH做准备 PATH 让系统能够找到verdi,如果不设置PATH,在调用Veidi时系统无法识别。
LD_LIBRARY_PATH 为了使得Verdi在运行过程中找到需要的库文件,对Library的位置在开发环境中进行配置,可通过:
echo $LD_LIBRARY_PATH | sed ‘s/:/\n/g’
进行查看,库文件中包含.so(共享对象文件,shared object),pli.a(静态库)等库文件,还需要*.tab(表格文件)来获取对应信息、索引等。
echo 用于获取环境变量,获取并打印,打印环境变量指令为:
echo $PATH | sed ‘s/\ :/\n/g’
which 查询当前路径是否设置成功,若设置成功会显示一个软件路径,查看verdi路径:which verdi
uname 查询当前系统信息,如硬件平台否为:x86_64
四、VCS+Verdi 如何dump波形
在dump波形时会用到那些命令,解决的是生成fsdb波形的问题,为了生成.fsbd格式的文件,可以使用verilog波形函数,也可以使用ucli/tcl接口:
(一)使用Verilog系统函数 作为小白,