Verdi使用技巧(二)

描述

上一篇文章IC君跟大家分享了Verdi使用技巧——连续有效信号量测方法。 有不少网友在文章后留言或者微信给我留言,提供了一些其它方法。 不得不说广大人民群众的智慧才是无穷无尽的,大家一起交流才能取得更大的进步!

首先补充一下其他网友给我提供的测量连续有效信号的一些方法。

网格法:

点击菜单里面的view选项,选择Grid Options,如下图所示:

signal

选中选项Grid on 以及选项 Grid Counter with Start Number,如下图所示,点击Apply或者OK之后,就可以看到波形里面出现了网格,最下面有数字出现。 这种方法还有一个好处是鼠标左键点到CLK信号的任意位置,计数都是从新的地方开始,具有很强的灵活性。

signal

自动添加计数器:

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

signal

就会自动产生一个16进制的计数信号,不过它的计数起点是从CLK的0时刻开始,不能选择任意时刻,所以缺乏灵活性。

signal

这两种方法更推荐第一种网格法,看起来很强大,大家可以继续探索探索。

但是实际debug过程中,更常遇到的场景是非连续有效的信号,如下图所示:CLK并不是在每个时刻都是有效的,这时我们又该如何比较快速准确的获知某个时间段内有效信号(CLK)个数呢?

signal

跟获取连续有效信号个数一样,如果某个时间段内有效信号个数较少(比如少于10个),直接手动数就可以了。 当有效信号toggle次数比较多时,肉眼无法快速看出数量的时候,我们可以利用Verdi nWave里面的Logical operation 和Signal Event report 这两个功能来实现。

对于非连续有效数据传输,通常会有一个信号来标志哪笔数据是有效的,如上图中的valid_in信号为1时表示data_in数据有效。 利用这个标志信号跟时钟进行“与”操作,就得到一个新的时钟。 这个新的时钟只有在数据有效时才有,在数据无效时被遮掉了。 再通过Signal Event report获知指定时间内新的时钟个数,就可以知道有效数据的个数了。

具体操作步骤如下:

1.鼠标选中时钟信号clk和数据有效标志信号valid_in;

2.点开nWave 菜单里面的Signal,再选择下拉菜单里的Logical Operation,如下图:

signal

3.在弹出的对话框里面,如下图所示,确认Expression 里的信号操作是”&”; 把Name改成valid_in_clk; 然后点击Create/Modify按钮;

signal

再回来看波形,如下图所示,就会发现多了一个信号valid_in_clk,这个信号就是我们需要的新时钟信号。

signal

4.接下来就是Signal Event Report闪亮登场了。 选中valid_in_clk, 然后在View下拉菜单里面选Signal Event Report。 如下图所示,在弹出的对话框里,找到Falling#这一列,里面列的数字16就是我们指定的时间段内有效的数据个数了。

signal

如果还是半信半疑的同学,可以手动数一数,看看Logical Operation加Signal Event Report这套组合拳的结果是否正确,哈哈~

用Logical Operation和Signal Event Report来量测非连续有效信号的方法就介绍到这里了,大家都学会了吗?

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

全部0条评论

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

×
20
完善资料,
赚取积分