Verdi非常实用技巧
1. 基本快捷键操作1.1 波形文件保存.rc使用verdi保存已经拉出来的信号方便下次使用,按键 shift+S 可以将波形保存为xxx.rc格式文件,使用波形文件时,按快捷键r 打开界面,选择波形1.2 mark标记功能按键 shift+M 使用mark功能标记一下,可以自定义名称和颜色,方便查找。1.3 显示波形信号全路径按 H 显示波形信号全路径,再按H撤销。不区分大小写。1.4 改变信号
1. 基本快捷键操作
1.1 波形文件保存.rc
使用verdi保存已经拉出来的信号方便下次使用,按键 shift+S 可以将波形保存为xxx.rc格式文件,使用波形文件时,按快捷键 r 打开界面,选择波形
1.2 mark标记功能
按键 shift+M 使用mark功能标记一下,可以自定义名称和颜色,方便查找。
1.3 显示波形信号全路径
按 H 显示波形信号全路径,再按H撤销。不区分大小写。
1.4 改变信号颜色
按键C或者T修改信号颜色。按T更实用,每按一次颜色自动改变。不区分大小写。
1.5 查找信号
找到模块里的某个信号,按?弹出find string对话框进行查找。
1.6 搜索源代码
源代码窗格里提供了三种搜索指令,功能各不相同,用来应付不同的使用场景。
1) Find scope
Find scope适用于整个chip里面的查找。前面提到的应用场景如下:
-
Source –> find scope或者 按shift+S
-
在弹出对话框里Scope Type选module
-
Filter内填要找module关键字
-
Instance list 里面选择一个,点Go To,source code就会打开该module
另外,对话框最下面列出了整个设计中找到的个数,可以知道该module被instance次数。
2) Find Signal/Instance/instport
这个指令可以查找指定模块内的信号、实例或输入输出端口。这个指令的好处是可以把要查找的内容都列出来,想看哪一个就用鼠标点一下,就会切换到源代码窗格对应位置。当模块内要查找的signal(instance or input/output port)比较多时,可以快速的找到想看的signal。
操作方法如下:
- source –> Find Signal/Instance/instport 或者shift+A
- 选择要查找的类型:signal, instance or instport
- 输入框里面输入信号名,点Find 按钮,下面会列出所有找到的信号, 点击某个信号,就会到达source code 里面对应的信号
2) Find String
Find string应该是debug 过程中使用频率最高的查找指令了。只要在输入框里面输入部分或全部要查找的字符串,再点一下find 按钮就可以了。
这个指令可以在当前文档(current File)或者全部文档(All file)里面查找,因为字符串查找匹配得比较多,要根据需要选择在当前文档或全部文档查找,以提高查找效率。
因为使用频率高,Verdi也很贴心的在默认工具栏里放置了Find string的输入窗口,如下:
输入栏输入字符串有几种方法
- 手动输入,好处是可以只输入部分字符,不用全部输入信号名
- 点击信号,按中键拖入输入栏,然后点向上或向下查找,找同名信号
- 点击信号,按快捷键”Ctrl+F”,信号名就会自动输入到输入栏。这个快捷键很好用,大家要善加利用哦。
2. 波形解析
2.1 Bus Operation总线拆分
一个多比特的bus拆分成几个位宽较小的bus:
右键/Signal -> Bus Operations -> Expand as Sub-bus
将32bit分割为4个8bit bus.
分割结果:
2.2 Logical Operation逻辑运算
可以通过对现有信号执行的逻辑操作创建新信号,或者搜索信号值。
右键/Signal -> Logical Operation
数值搜索
逻辑操作
例如:两信号进行与运算,也可以进行其他运算。
相与之后结果:
2.3 Set Search Value数值搜索、上升沿和下降沿搜索
进行数值搜索、上升沿和下降沿搜索
选中信号,按n向后搜索,N向前搜索;或者按左右小箭头进行查找搜索。例如:
数值搜索:
上下沿搜索:
3. 自动计数
3.1 Grid Options网格计数
可以指定在波形窗中绘制网格线。选项包括Rising Edge, Falling Edge和 Both Edges。
View -> Grid Options 选中Grid on和Grid counter with Start Number
如图,以AXI_AWVALID上升沿为例,网格线下方出现了计数,用于统计上升沿个数。
3.2 自动计数
右击AXI_WVALID信号,选择Add Counter Signal by,选择上升沿、下降沿、任意沿中的一个。
选择AXI_WVALID信号的上升沿为例子,波形中自动添加一个counter用于统计。
4.Signal Event Report统计
统计出某个信号在特定时间段内的跳变的次数。
- 按鼠标滑轮中建,添加一条mark标记线用于选择统计区间。
- View -> Signal Event Report
Rising:指的是指定Marker时间段内上升沿数;
Falling:指的是指定Marker时间段内下降沿数;
备注:利用Logical Operation和Signal Event Report可以统计非连续有效信号
5. Waveform Compare比较波形:
nWave提供了一种综合比较自动比较不同结果的能力。在比较完成后,nWave以图形方式显示波形窗格中的任何不匹配,然后可以通过每个不匹配来分析差异。
Tools -> Waveform Compare
5. Verdi emulation波形加载
5.1 打开波形
打开常规波形:
verdi -dbdir ./simv.dair -ssf debug.fsdb
打开emulation的波形:
verdi -dbdir ./simv.dair -ssf debug.zwd
打开emulation转换前的波形:
verdi -emulation --zebu-work zebu.work --timescale 1ns --input debug.ztdb
5.2 打开 source code
如果没有kdb文件,可以通过flist打开source code
verdi -f tb_top.flist
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)