verdi加载代码速度快,能快速报告出常见的语法错误,方便快速追踪信号源头,以及查看信号驱动负载。
在追查代码方面verdi有着vivado工具不具备的优势,所以在大型工程一般先用verdi打开检测基本的错误。
但是verdi 不能识别vivado 源语(例如IOBUF , BUFGMUX等),如果代码中有直接例化源语则verdi会报错,如果工程中例化源语比较多,还可能导致淹没其它重要的错误报警。不能识别源语也会导致追踪信号到源语就会中断,影响代码追踪效率。
下图verdi不能识别源语导致的错误警告。
那么如何解决这问题呢?
首先看看vivado有没有对应的仿真模型,在vivado 安装目录搜索对应源语名字,例如IOBUF源语搜索find -name “IOBUF.v”
能搜索到两个模型,xeclib目录下为正式元件库,unisims目录下为功能仿真库。
我们用unisims/IOBUF.v即可
其余的源语同样的道理添加进filelist。
更新后发现功能仿真模型有GTS变量找不到错误,见下图
所以还得额外创建变量文件。
把源语仿真模型filelsit和对应变量定义文件一起加到filelist中
更新后verdi加载源语正常,追踪到经过源语信号信号可正常往下一级一级追踪。
完美解决