目录
$fsdbDumpfile(fsdb_name[,limit_size])
$fsdbDumpvars([depth, instance][, “option”])
Verdi完整界面
恢复默认窗口界面:window -> hardware debug mode
工具栏图标
在工具栏右键可以自行添加或删除图标
:打开设计文件
:打开波形窗口;打开原理图;打开时序图
:打开信号列表
打开信号列表效果:
:新建源标签;编辑设计文件(快捷键e);
新建源标签:
在代码窗口下方工具栏右键同样可以新建源标签
编辑设计文件:
会自动打开编辑窗口,可以直接在Verdi对代码进行修改
:
查看当前模块如何被例化;查看当前模块如何定义(也可以双击模块例化名)
上一步操作;下一步操作(ctrl+alt+f,ctrl+alt+b)
查看当前信号被那些信号驱动;查看当前信号会驱动那些信号
双击选定信号后跳转到上一处出现位置;跳转到下一处出现位置(快捷键p,n)
:显示上一层;显示下一层
bookmark:标签(快捷键ctrl+F2),在特定的代码处设置标签可以实现快速跳转(shift+F2前一个标签,F2后一个标签)
:查找当前代码中的特定字符串(快捷键/);向上查找;向下查找
查找快捷键:
查找范围:shift+S;source -> find scope
查找信号
法一:shift+A;source -> find signal/instance/instport
法二:在instance窗口右键,选择Show Search/filter,可查找某一信号
常用操作(ntrace窗口)
查看某个或多个信号波形
法一:选中后直接拖到波形窗口
法二:选中后ctrl+w
法三:选中后ctrl+4
打开模块原理图
在instance窗口中选中要查看模块,右键选择New Schematic
显示原理图中的各个信号/端口/模块名
打开原理图,在原理图工具栏中的view窗口
获得波形时刻代码里的数值
Source -> Active Annotation
获得代码内的参数值
将鼠标放到参数上,自动显示参数值
跳转到代码文件中的指定行
快捷键g
重新加载设计文件
快捷键shift+L
修改Verdi中的字体大小
tools -> prefences -> general -> font and size
可修改工具栏、菜单、波形和控制台等字体大小
查看mem中数据
将MEM信号拖至窗口,即可打开
波形窗口nwave
波形全屏显示
先点击波形窗口右上角的undock按键,再点maximize,即可实现全屏显示;从全屏恢复则点击dock按键
定位代码位置
双击信号波形,可实现信号在代码窗口中的定位,在波形窗口对信号drag,在代码窗口进行drop,可实现相同功能
波形放大/缩小
按住ctrl键并向上滚动或向下滚动鼠标滚轮,可以对波形进行放大或缩小,对应快捷键为shift+z或Z
点击鼠标左键不放,在任意位置进行横向拖动后释放,会对波形进行局部放大
Cursor (黄色)Marker (白色)
左键是Cursor,中键是Marker,点击鼠标左键可实现黄色光标的时刻定位,点击鼠标滚轮可实现白色光标的时刻定位( mark time)。右键放大黄色光标和白色光标之间波形
工具栏的两个时刻框内会分别显示两个光标对应的时间,紧邻的数字和单位代表两个光标的时间差,可以点击三角符号选择显示时间差还是对应的频率。
数值进制设置
显示信号的数值大小和变换过程,选中多位位宽信号后,在此窗口点击右键,可出现一些功能选项。
设置信号的显示格式,可以选择二级制,十进制,ASCII码等,默认为十六进制。
设置信号的符号,可以选择无符号格式,二进制有符号补码格式等。
设置对位位宽信号为数字后模拟波形形式。
信号窗口
(1)重命名,可对信号或分组进行重命名。
(2)移动信号,点击后可将对应信号移动至黄线位置,对应快捷键为M。
(3)组操作,包含分组展开,折叠展示,新建插入等操作。
(4)drag & drop在信号窗口对信号进行drag与drop,可实现信号在该窗口的复制与粘贴。
(5)显示信号的驱动,负载或连接性等信息,至该窗口内,不常用。
(6)信号的进制格式和符号设置,同数值窗口的相关设置。
(7)信号的剪切,复制和粘贴操作。
(8)多位宽信号的展开或折叠显示。
(9)可对bus(多位宽)信号进行调整显示,或将多个信号进行重组显示等,例如,为了显示一个新的重组信号bus_new = {cnt[3:0],cout,cout},可以将cout信号复制为两个,然后选中这些信号,右键并选择:bus operations - > create bus(对用快捷键K),打开信号重组窗口,进行简单操作,即可完成信号的重组显示。
(a)添加注释,或空白行等便于熟悉,清晰的显示
(b)对多个信号进行逻辑操作,并生成新的信号,予以显示,便于判断多个条件成立的情况,例如,为了找出“rstn = = 1”,“cnt = = 4’h4”,“cout = = 0”的时刻,可以选中这些信号,右键并选择:logical operation ,打开逻辑操作窗口,expression,框内默认对多个信号进行“&”操作,以双引号为边界,对相关信号进行逻辑重写,生成结果信号,可用于指示重写逻辑有效的时刻,示意图如下:
保存/加载波形文件
File - > Save Signal,File - > Restore Signal
Save Signal(对应快捷键shift + s),可将波形窗口中的信号以及相关设置保存到后缀名为.rc的文件中,下次打开波形文件后,通过Restore Signal 操作(对应快捷键R)指定.rc文件,可直接恢复上一次添加的相关信号及对应设置至波形图中。
显示信号层级路径
View - > Hierarchical Name ,快捷键H
自动计数
(1)Grid Options 网格计数
可以指定在波形窗口中绘制网格线,选项包括Rising Edge,Falling Edge和Both Edges。
View - > Grid Options
选中grid和grid counter with start number
如图信号下方出现了数字,用于计数,
(2)自动计数器
右击PCLK信号,选择Add Counter Signal by ,选择上升沿,下降沿,任意沿中的一个。
统计信号跳变次数
统计出某个信号在特定时间段内的跳变的次数。
View - > Signal Event Report
Rising:指的是指定marker时间段内上升沿数。
Falling:指的是指定marker时间段内下降沿数。
Waveform Compare比较波形
Tool - > Waveform Compare
查找信号的值
选择bus value时可以使用通配符*
在波形中显示状态机状态名称
tools ->Extract Interactive FSM
显示信号高位0
在 nWave 菜单栏依次点击 View --> Leading Zeros,之后就可以补全高位的 0
波形窗口快捷键
c 调整所选波形颜色,线的粗细和类型
C 关闭波形窗口
t 随机改变波形颜色
f 波形全部显示
z 波形缩小
Z 波形放大
l (last view)跳转到上次波形位置
g (get signal)添加信号,显示波形
n (next)search forward选定信号按指定的值向前跳转
N 向后跳转
m 将信号移动到黄线
h 显示信号层级路径
H 是否高亮所选信号
M 添加标记时刻(maker)
y 将黄线移动到中央
ctrl+R+-> 右移半屏
ctrl+R+<- 左移半屏
Verdi加载
打开Verdi没波形怎么办
先在工具栏点击对应图标创建新的空白波形窗口,点File -> Open 找到编译生成的fsdb/vf波形文件,点击右上角绿色加号后再点ok,就能成功加载波形文件,接下来想看什么信号自己拖到窗口就行
fsdb dump操作命令

$fsdbDumpfile(fsdb_name[,limit_size])
指定波形文件名,第二个参数可选择用来限制波形的大小(MB)。
$fsdbDumpvars([depth, instance][, “option”])
depth表示要加载波形的层次:
0表示当前instance下的所有变量以及其它module实例的波形,1表示当前instance中的变量的波形,不包括当前instance中的其它module实例的波形,2表示包含当前instance以及其中的第一级子instance的波形;以此类推。
instance指定要加载波形的module名。
option加载波形的选项:
+IO_Only – 只加载IO port信号;
+Reg_Only – 只加载reg类型信号;
+mda – 加载memory和MDA信号;
+packedmda – 加载packed MDA;
+struct – 加载structs;
+parameter – 加载parameter;
+fsdbfile+filename – 指定fsdb文件名字。(可覆盖dumpfile操作)
$fsdbAutoSwitchDumpfile(file_size, “fsdb_name”, number_of_files[, “log_file_name”, “+fsdb+no_overwrite”])
当波形的大小达到限制后自动以一个新的波形文件起始加载波形;在所有的波形文件加载完成后,会创建一个virtual FSDB文件,文件后缀.vf。查看波形时只需要加载此文件就可以合并所有的波形文件。
file_size:波形文件大小限制,单位为MB,最小为10M,若值小于10M则默认10M;
file_name:波形文件的名字,在实际加载波形时,文件名为file_name_000.fsdb ile_name_001.fsdb…;
number_of_files:最多可以加载多少个file_size这么大的波形文件,如果写为0,则默认没有限制;
log_file_name:指定log文件的名字,log文件中会记录每段波形的起始和中止时间
+fsdb+no_overwrite—当number_of_files限制的个数达到时停止dump波形;
后续补充......
参考博客:
全网最实用的Verdi教程2-电子发烧友网 (elecfans.com)