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的输入窗口,如下:

输入栏输入字符串有几种方法

  1. 手动输入,好处是可以只输入部分字符,不用全部输入信号名
  2. 点击信号,按中键拖入输入栏,然后点向上或向下查找,找同名信号
  3. 点击信号,按快捷键”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
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐