原文链接1:verdi看波形快捷操作_赤橙黄绿蓝_新浪博客
原文链接2:https://blog.csdn.net/weixin_36345456/article/details/112743910(https://blog.csdn.net/weixin_36345456/article/details/112743910)
原文链接3:https://blog.csdn.net/cfhsin/article/details/118542696
1.快捷键
在代码窗口,单击选中信号,此时处于高亮状态,按Ctrl+w,可以将信号发送到波形窗口;
快捷键:(大写字母=Shift+小写)
g get, signlas添加信号,显示波形
n next, Search Forward选定信号按指定的值(上升沿,下降沿,both,指定Value)向前跳转
N 与n功能相同,方向向后
y Keep Cursor at Centor(开关)移至中央并保持居中,再按取消固定居中
c color,调整所选信号的波形显示颜色,线的粗细和类型,非常方便Debug
f full, Zoom All波形全部显示
z Zoom Out波形缩小,一般配合鼠标放大非常方便
Z Zoom In 波形放大
l last view,上次波形位置,相当于Vim里的``或’’
L 重新加载波形或设计文件,这个很方便,在新一次仿真完成之后Roload即可
b begin移动Cursor到波形开头
e end移动Cursor到波形结尾
r restore signals 保存波形信号列表
h hierarchy显示信号的绝对路径
H Highlight(开关)是否高亮显示所选信号
m move将信号移动到黄线位置
Delete 删除所选信号
Ctrl+Right Arrow 向右移动半屏
Ctrl+Left Arrow 向左移动半屏
鼠标:
左键:用于选择信号
右键:调出菜单
中间:单击移动黄线,拖动信号可移动位置排列顺序
滑轮:上下滚屏
左键圈定波形范围:按选定缩放
双击信号波形: 跳转到代码,并用绿色高亮该信号
双击信号:按位展开(expand),Struct展开下一层。再双击折叠(collapse)
右键信号名->Bus Operations->Expand as Sub-bus->可以按指定位宽展开,比如512bits的信号分成4个128的,方便查看
菜单栏中的By:可以选择Search不同的值:Any Change, Rising Edge, Falling Edge, Bus Value等
信号可以分组,组合信号都可以Rename
右键 Add Blank 可以让信号分组看起来更清晰
2.搜索查找功能
1 层次浏览器窗格中寻找实例(instance)
在利用 Verdi debug时,首先需要找到我们负责模块的实例(instance),再选择相应的信号来观察它们的行为来debug。当设计很庞大时,要找到底层的一个小模块,如果用鼠标从 top一层一层的往下点,效率会比较低;又或者我们只负责了一个小模块,对整个设计的层级关系并不清楚的时候,找到我们的底层设计会变得非常困难。
这时,只要我们知道底层模块的实例名,就可以利用Verdi的“Show Navigation Text Field”功能快速查找了。操作方法如下图,
a) 在Verdi的层次浏览器窗格(Verdi界面的左部)点右键,弹出菜单里选“Show Navigation Text Field”或快捷键“Ctrl+S”
b) 在输入对话框里输入相应的实例名,再点右边的搜索按钮就可以了。
2. 搜索源代码
源代码窗格里提供了三种搜索指令,功能各不相同,用来应付不同的使用场景。
1) Find scope
Find scope适用于整个chip里面的查找。前面提到的应用场景——寻找底层模块,find scope 也可以很轻松的办到,如下:
A) Source –> find scope
B) 在弹出对话框里Scope Type选module
Filter内填要找module关键字
Instance list 里面选择一个,点Go To,source code就会打开该module
另外,对话框最下面列出了整个设计中找到的个数,可以知道该module被instance次数。
- Find Signal/Instance/instport
这个指令可以查找指定模块内的信号、实例或输入输出端口。这个指令的好处是可以把要查找的内容都列出来,想看哪一个就用鼠标点一下,就会切换到源代码窗格对应位置。当模块内要查找的signal(instance or input/output port)比较多时,可以快速的找到想看的signal。
操作方法如下:
source –> Find Signal/Instance/instport
选择要查找的类型:signal, instance or instport
输入框里面输入信号名,点Find 按钮,下面会列出所有找到的信号
点击某个信号,就会到达source code 里面对应的信号
3)find string
Find string应该是debug 过程中使用频率最高的查找指令了。只要在输入框里面输入部分或全部要查找的字符串,再点一下find 按钮就可以了。
这个指令可以在当前文档(current File)或者全部文档(All file)里面查找,因为字符串查找匹配得比较多,要根据需要选择在当前文档或全部文档查找,以提高查找效率。
因为使用频率高,Verdi也很贴心的在默认工具栏里放置了Find string的输入窗口,如下:
输入栏输入字符串有几种方法
(1)手动输入,好处是可以只输入部分字符,不用全部输入信号名
(2)点击信号,按中键拖入输入栏,然后点向上或向下查找,找同名信号
(3)点击信号,按快捷键”Ctrl+F”,信号名就会自动输入到输入栏。这个快捷键很好用,大家要善加利用哦。
3. nWave里面的信号追溯源代码
Debug过程中,往nWave 里添加信号后,查看了信号波形,如果看到异常往往要回头看一下源代码。如果一时找不到了,find string当然可以找得到,但是需要输入一串字符,可能就不那么乐意了。
其实Verdi很贴心,可以直接把nwave里面的波形拖到nTrace里面,可以快速的找到要找的信号。
操作方法:nWave里面选择信号,如out_den
按住中键,直接拖到source code plane,
然后放开,就会显示你要找的信号了
3.波形对应FSM信号的切换
1.在verdi的顶层菜单窗口,tools–>Extract Interactive FSM
选择First State或者All Stages皆可,区别是First State仅展开目前的所指定的FSM state,All Stages将展开所有的FSM states。
使用快捷键x可以标注信号的值(在源代码中)Active Annotation
那么通过使用光标移动,就可以在源代码下看到状态的切换
2.或者在waveform窗口中选择waveform菜单 --> Signal Value Radix --> Edit Alias… 编辑alias即可以达到我们的目的,但前者更简洁。
会不断学习更新的!