最近在使用Verdi,于是结合自己使用,以及网络上他人总结过的使用技巧进行了一个汇总
1.加载设计和波形
加载Verdi须在makefile脚本中添加:
- 其中,verdi 表示启动 Verdi 工具的命令;
- -nologo 表示启动 Verdi 时不加载欢迎界面;
- -ssf $(TEST_NAME).fsdb 表示指定 Verdi 可识别的波形文件$(TEST_NAME).fsdb,可自动加载波形;
- & 表示 Verdi 启动时新打开一个进程,不占用当前的 shell 环境进程。
2.重新加载设计和波形
在新一次仿真完成之后可选中波形或设计文件L(shift+l)重新加载波形或设计文件,也可点击file->reload design。
3.nWave使用
3.1 查寻模块实例化的位置
- 在nTrace界面
- 选中要查看的波形用鼠标左键拖拽到nwave界面
- 选中要查看的波形使用ctrl+w快捷键
- 在nWave界面
若是没有自动添加波形可以,在nWave界面使用快捷键g加载信号,在弹出的窗口中选择需要添加的信号,点击apply手动添加信号。
3.2 观察波形
- 放大波形可使用快捷键shift+z,也可以左键托选放大范围,还可以直接点击nWave界面的zoom in
- 缩小波形的快捷键为z,也可以点击nWave界面的zoom out:
- 查看全局波形,快捷键为f,或直接点击nWave界面的100%符号
- 移动信号,左键选取要移动的信号,中键选取要移到的位置(黄线),使用快捷键m即可将所选信号移动到黄线位置;也可以使用鼠标左键直接拖拽。
- 复制信号,左键点击要复制的信号,点击右键选择copy;或使用快捷键ctrl+p
- 粘贴信号,点击右键选择粘贴。
- 删除信号,左键选中要删除的信号,点击快捷键del,或通过右键进行选择。
- 显示结构,可以使用快捷键h看信号属于那个模块
- 重命名:
3.3 标记时间差
鼠标左键可以定位一条黄色的时间线,鼠标中键可以定义一条白的时间线,点击nWave界面的Δ可以获得这两条时间线内的放大波形,Δ后可获取时间差
若想标记其他时间点来对波形进行定位,也可以使用快捷键shift+m功能进行标记,该过程可以选取标记线的位置,颜色等等。如下图所示,在5000ns处创建了一条蓝色的标记线。
3.4 进制之间的转换
3.5 符号数之间的转换
3.6 通过逻辑操作创建新信号
3.7 总线操作
操作 | 简述 |
生成 | 将所选的多个信号合成总线 |
抽取 | 选择多bit信号中的部分生成总线 |
编辑 | 处理当前数据总线信息 |
取反 | 可应用于大小端的场景 |
3.8 查找信号的某个值、某个值跳转到某个值
3.9 波形对比
3.10 nWave中的快捷键总结(shift+小写字母=大写字母)
快捷键 | 概述 |
a | Set Active,当一个波形窗口打开多个波形文件时,可以选择当前需要显示的波形文件 |
c | Color/Pattern,设置信号与波形颜色,线的类型及粗细 |
f | Zoom All(full screen),显示全局波形 |
g | Get Signals,点击后会显示可以添加到波形窗口的信号 |
h | Hierarchical Name,显示信号的层次访问路径 |
k | create bus创建重组信号 |
l | Last View上一次缩放视图 |
m | Move,将所选信号移动至黄线位置(鼠标中键可选择黄线位置) |
n | search forward,向右搜索信号符合变化类型的时刻 |
r | Restore signals恢复波形列表及相关位置 |
t | 自动设置信号颜色 |
x | 移动光标时保持黄白光标之间的时间差值为定值 |
y | 将黄色光标移至中间并保持居中,再按取消居中 |
z | Zoom out缩小波形 |
shift+c | close window关闭波形窗口 |
shift+h | Highlight selected signals,是否高亮显示选择的信号波形 |
shift+l | Reload重新加载波形 |
shift+m | Marker添加标记时刻 |
shift+n | search backward,向左搜索信号符合变化类型的时刻 |
shift+p | Change to primary将当前波形窗口定义为基础波形窗口 |
shift+s | Save signal保存信号列表及设置到rc文件 |
shift+z | Zoom in 放大波形 |
shift+d | 删除所有信号 |
shift+左箭头 | 向左移动波形 |
shift+右箭头 | 向右移动波形 |
delete | 删除所选信号 |
上述列表为nWave窗口常用的快捷键
3.11 鼠标
左键:用于选择信号
右键:调出菜单
中间:单击移动黄线,拖动信号可移动位置排列顺序
滑轮:上下滚屏,按住shift键可实现左右滚屏
左键圈定波形范围:按选定缩放
双击信号波形: 跳转到代码,并用绿色高亮该信号
双击信号:按位展开(expand),Struct展开下一层。再双击折叠(collapse)
右键信号名->Bus Operations->Expand as Sub-bus->可以按指定位宽展开,比如512bits的信号分成4个128的,方便查看
3.12 波形属性调整:
改变波形进制:十进制,按住ALT,再依次按 W+R+D;二进制,按住ALT,再依次按 W+R+B
改变波形无符号和有符号: 无符号,按住ALT,再依次按W+N+U;有符号2的补码,按住ALT,再按W+N+2
4.波形文件保存
为方便调取波形,可以使用快捷键shift+s将当时的波形保存为一个名为xxx.rc的文件,在下次重新打开Verdi后可以按快捷键r打开界面,选择当时保存的波形文件,打开,则可避免重复添加信号
5.自动计数
5.1 Grid Options网格计数
可以指定在波形窗中绘制网格线。选项包括Rising Edge, Falling Edge和 Both Edges
5.2自动计数
右击i_clk信号,选择Add Counter Signal by,选择上升沿、下降沿、任意沿中的一个。
选择i_clk信号的上升沿为例子,波形中自动添加一个counter用于统计,如下所示。
6.Signal Event Report统计
统计出某个信号在特定时间段内的跳变的次数。
- 按鼠标滑轮中建,添加一条mark标记线用于选择统计区间。
- View -> Signal Event Report
Rising:指的是指定Marker时间段内上升沿数;
Falling:指的是指定Marker时间段内下降沿数;
7.获取所选时刻的波形值
使用快捷键x或者点击source->active annotation,即可看见每一个参数在所选时间的数据显示,通过点击工具栏中D可以获取当前信号是由哪个信号驱动的,L是指当前信号驱动了那个信号。
8.新建组与对组重命名,显示信号全路径
将黄线放到最后一行,添加信号即可新建一个信号组。然后鼠标选中右键即可进行相关操作,也可以选中一个模块,直接Ctrl+4即可将接口信号加入波形窗口,按快捷键H显示波形信号全路径,再按H撤销。
9.改变信号和波形颜色
按C或者T修改信号或者波形颜色,方便查看。
10.nTrace的使用
10.1查寻模块实例化的位置
1.在设计结构中双击实例化模块的名字->源代码窗口高亮了模块名
2.再双击高亮的模块名->看到在上层模块中的哪一行被调用了
10.2在nTrace中查找模块和信号
10.3查寻字符串
11.nSchema的使用
11.1查看原理图
11.2显示原理图各信号名
11.3查找某层次中某个信号
11.4使用Fan-In Cone追踪某个信号的驱动逻辑
1.首先要用上面的办法来查找信号
2.调用该工具
11.5产生partial hierarchy schematic
1.用来查看与选择特定信号有关的逻辑/模块。
2.选择需要查看的信号(可以通过shift键来选择多个信号)
12.nState的使用
12.1查看状态机视图
12.2查看状态的执行语句和转移条件
12.3查看某个状态的执行次数