在做项目时,有时我们想统计某个信号的某个时间发生的情况。
例如,仿真过程中想知道I2C已经完成了多少个byte的传输,可以通过数rx/tx buffer的not empty信号的上升沿个数来确定,但如果没有在环境里创建相应的变量计数信号的上升沿个数,靠人力数又太麻烦,怎么办?
可以通过verdi的signal event report 功能实现,首先在波形窗口的左侧选择要检测的信号(一个或多个),在右侧用鼠标左键和中键选择好要检测的时间段,再点击波形窗口的view->signal event report,会出现如下窗口(这里借用了ic 君的图),通过该窗口可以看到上升沿个数,下降沿个数,占空比,翻转频率等信息。
有时,我们想检测的并不是一个简单的单bit信号,可能是多bit信号或多个信号的组合,这时我们可以用logical operation(signal->logical operation)功能,将所要检测的事件的发生/不发生用一个单bit信号表示。例如,为了检测一个2bit随机信号a[1:0]的值为2的次数,可以创建一个信号b= (a==2’b10)&clock(加clock是为了检测周期数),然后用signal event report检测b的行为。
参考文章:https://blog.youkuaiyun.com/crazybird1984/article/details/106648415