分享一些Verdi实用技巧

电子说

1.3w人已加入

描述

Bus Operations总线操作

一个多比特的bus拆分成几个位宽较小的bus:

Signal -> Bus Operations -> Expand as Sub-bus

计数器

例如将128bit分成32bit:

计数器

结果:

计数器

Logical Operation逻辑运算

可以通过对现有信号执行的逻辑操作创建新信号,或者搜索信号值。

Signal -> Logical Operation

计数器

逻辑操作

两信号进行与运算,也可以进行其他运算:

计数器

相与之后得出新信号:

计数器

数值搜索

 输入搜索的值,点击create,该值位置会拉高.

计数器

计数器

Set Search Value数值搜索、上升沿和下降沿搜索

进行数值搜索、上升沿和下降沿搜索

计数器

选中信号,按n向后搜索,N向前搜索;

数值搜索:

计数器

上下沿搜索:

计数器

自动计数

方法一:Grid Options网格计数

可以指定在波形窗中绘制网格线。选项包括Rising Edge, Falling Edge和 Both Edges。

View -> Grid Options

计数器

选中grid和grid counter with start number:

计数器

如图:信号下方出现了数字,可以用于计数。

计数器      

方法二:自动计数器

右击PCLK信号,选择Add Counter Signal by,选择上升沿、下降沿、任意沿中的一个。

计数器计数器

Signal Event Report统计

统计出某个信号在特定时间段内的跳变的次数。

View -> Signal Event Report

计数器

Rising:指的是指定Marker时间段内上升沿数;

Falling:指的是指定Marker时间段内下降沿数;

计数器

备注:利用Logical Operation和Signal Event Report可以统计非连续有效信号

Waveform Compare比较波形:

nWave提供了一种综合比较自动比较不同结果的能力。在比较完成后,nWave以图形方式显示波形窗格中的任何不匹配,然后可以通过每个不匹配来分析差异。

Tools -> Waveform Compare

计数器

计数器

Reverse回退仿真

makefile中加上 -lca -kdb -debug_access+all+reverse

计数器

运行 ./simv –verdi &启动verdi之后,需要打开verdi的回退仿真功能:

tools->Preferences中设置

计数器

计数器

设置几个断点;在verdi的console中,输入run,启动仿真;

计数器

点击run/continue reverse回退仿真

计数器

计数器

此时,执行的光标,回到了断点代码的前一行。此时仿真的状态就回到了执行上一条指令的状态。

因此可以利用reverse功能,实现回退式仿真。这样当仿真不小心过了我们的设定点,可以使用reverse功能,回退到这个点。从而避免重新启动仿真。





审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分