数字IC设计随笔之一(Verdi自动添加波形脚本应用)
Verdi自动添加波形脚本应用
在刚接触verdi时,每次查看波形都需要重新加载一遍,写了简单的脚本用于实现波形加载,没想到下载需求挺多,也有私信问如何使用,在这里将做简单的说明。
脚本有三个文件,分别是genwavecmd.sh、template.cmd和wavelist.txt,其中template.cmd是Verdi波形加载的模板,之前采用的Verdi软件版本低,在新版本中执行时将出现语法错误;wavelist.txt是需要查看的信号列表,必须以相应的语法格式书写,才便于genwavecmd.sh脚本读取。
wavelist.txt文件内容如下:
/DCU_tb/DCU/ClockGen
(
por
oscclk
rstn
)
/DCU_tb/DCU/RAMController
(
POR
PWE
PPROG
)
/DCU_tb/DCU/Timer
(
timer_INT
)
信号的定义以层级的形式声明信号所属的模块,之后在圆括号里声明需要查看的信号名,比如第一组信号声明,首先声明/DCU_tb/DCU/ClockGen,表示从顶层模块引用ClockGen模块中的信号,括号中的信号为该模块中的信号。后面两组信号类似。
template.cmd中的类容需要修改以在新版本的verdi中运行,主要修改内容为文件的读入和fsdb文件的加载,修改后的文件如下:
debImport “-f” “./tb.v”
wvCreateWindow
wvResizeWindow -win $_nWave2 0 30 1920 394
wvOpenFile -win $nWave2 {/home/stu05/project/test_example/vg_dump.fsdb}
verdiDockWidgetHide -dock widgetDock_WelcomePage
verdiDockWidgetHide -dock widgetDock<Inst.Tree>
verdiDockWidgetHide -dock widgetDock<Decl.Tree>
verdiDockWidgetHide -dock widgetDock
verdiDockWidgetHide -dock widgetDock_MTB_SOURCE_TAB_1
verdiDockWidgetDisplay -dock windowDock_nWave_2
wvResizeWindow -win $_nWave2 0 30 1920 874
wvGetSignalOpen -win $_nWave2
wvAddSignal -win $_nWave2 -clear
该模板以Verdi_N-2017.12-SP2为例。
在terminal中输入下列命令运行:
执行完成之后将产生wave.cmd文件,该文件用于Verdi软件运行。
verdi将自动加载wavelist.txt中的波形。
当Verdi软件使用多了以后,我们发现Verdi在每次加载信号之后会记录软件执行的动作,并保存在当前路径./VerdiLog/verdi.cmd文件中。在第一次手动加载需要查看的波形后,之后可以通过Verdi -play verdi.cmd命令加载。
上述内容纯属于个人理解,难免有不当之处,还望各位同行多多指点。