【开发工具】Verdi使用
1. Verdi入门
能够生成fsdb波形;
能够查看fsdb波形;
能够追踪RTL代码。
1.1 verdi简介
VCS和Verdi这两个工具目前都属于Synopsys(新思)公司,其中Verdi的来源可谓一路坎坷,Synopsys在收购Verdi之前是用的自己的DVE工具,这也是后面收购Verdi以后,旧版本的VCS编译的时候,还必须加上-P(VIP环境中常见)参数指定Verdi的PLI接口,这么麻烦的原因就在这两个软件本来就不是一家公司设计的。
1997年,台湾的SpringSofe(源笙)公司在硅谷创建Novas Software,Verdi最初就是由Novas Software公司开发(现在使用Verdi的时候会产生novas.rc和novas.conf这两个临时文件。),曾用名Debussy,和Verdi一样,这两个都是用的19世纪音乐家的名字。
在2008年,台湾的EDA厂家SpringSoft收购,并将其合并为SpringSofter USA全资子公司。
在2012年,Synopsys收购了spring soft公司,所以此时Verdi才正式属于Synopsys,DVE中的很多功能就此整合到Verdi中。
ps:VCS编译时加入-kdb(整合Verdi后推出),可以生成simv.daidr文件,使用这个Verdi可以秒开波形,不再浪费编译时间(支持Makefile)
Verdi Knowledge Database (KDB) is supported in both VCS two-step and three-step flows. In the VCS two-step flow, add the - kdb option to the command line to generate Verdi Knowledge Database (KDB).
1.2 Verdi的实用技巧
调出信号列表
波形文件保存.rc
放大缩小波形
可以点击这两个标志。也可以使用快捷键shift + Z和z。
但是我自己的很少这么使用,我一般更懒一些直接全鼠标操作,在nwave波形界面拖动鼠标:
水平左右是选中一段波形放大,垂直上下总览全局,还有4个45度方向,其中就包括了刚刚上面提到的2倍放大缩小,这个操作就很方便
重新加载波形
使用shift + L可以重新加载波形,这样如果有信号更新就没必要关闭verdi窗口再打开了
mark标记功能
为方便波形定位,按键shift+M使用mark功能标记一下,可以自定义波形的名称和颜色,方便查找。
显示波形信号全路径
按H显示波形信号全路径,再按H撤销
拖动信号到目的位置
长按鼠标中键,当然鼠标左键也可以,但是从代码signal list中往nWave中移动的话还是中键好用一些
改变信号和波形颜色
按C或者T修改信号或者波形颜色,方便查看
从代码中找到对应波形
选中信号ctrl+w
在所有文件中查找信号
按快捷键“/”,会跳出 Find string 对话框,输入需要查找的信号名。
在scope of search 选项点击 in all files, 点击find即可。
也可以通过点击图形界面source--->find string弹出
窗口操作撤回
如果在调试过程中不小心误操作把窗口拉到了奇怪的位置,我就经常干这样的事...可以通过window选项中的previous layout(ctrl + alt + R)和next layout(ctrl + alt + E)来进行撤销还原。
如果错太离谱,要直接初始化页面的话,就点第一个hardware debug mode(ctrl + alt + H)
保存当前调试的所有设置和界面
在调试波形的过程中进场需要设置分组,调整顺序什么的,如果中途退出后面再导入波形不会记录这些操作,你可以保存当前的调试环境,并在下次重载。verdi自动把当前的调试环境保存在工作目录下的VerdiLog 的autoload.ses 中。File->Save Session 保存当前调试状态,下次启动后File->Restore Session.
实际上波形中的变动verdi会自动保存到默认的ses中。只不过手动保存可以定义不同的调试版本。
灵活使用calling/definition
在代码中定位信号的上下层,以及同信号的其他位置
信号值查找
把模式选定为bus value,然后在右边窗口输入要查找的数值,选中信号后点击右边的左右方向键就可以找到输入值在信号中的位置了。
在verdi中编辑代码
编辑完后记得点击代码界面右上角的保存,一般适用于改一些小错误,一两句话这种,如果大修还是去vim比较方便。
进制切换
在nWave界面,选中要求切换进制的信号右键,选择第一个 set radix,默认16进制。
参考资料:
[1] https://blog.csdn.net/fengxiaocheng/article/details/106615840
[2] https://blog.csdn.net/darknessdarkness/article/details/105003185
[3] https://blog.csdn.net/immeatea_aun/article/details/80961258
[4] https://blog.csdn.net/zhajio/article/details/109450216
[5] 维基百科