zl程序教程

您现在的位置是:首页 >  IT要闻

当前栏目

SVA学习|04.边沿敏感$rose、$fell、$stable用法

2023-02-19 12:29:09 时间

SVA内嵌了三个检测边沿敏感信号的函数,可以很方便的监测从一个时钟周期到另一个时钟周期,信号的变化。

  1. $rose,表示信号或表达式变为高电平时返回为真。
sequence s1;
 @(posedge clk) $rose(fish);
endsequence

序列s1检查,在每一个时钟上升沿,信号fish都要跳变为高电平,即1,才返回真,断言成功,否则,断言失败。

注意:

  • $rose监测的是“跳变”的情况,如果不发生跳变,一直为高电平,断言失败;
  • 断言的发生会延迟一个时钟,比如信号fish在第1个时钟上升沿发生跳变,在第2个时钟上升沿才会断言成功;
  1. fell, 和rose刚好相反,监测信号从高电平跳变为低电平的行为
sequence s2;
 @ (posedge clk) $fell(fish);
endsequence

序列s2检查,在每一个时钟上升沿,信号fish都要跳变为低电平,即0,才返回真,断言成功,否则,断言失败。

  1. $stable,信号或者表达式不发生变化时返回为真,断言成功。
sequence s3;
 @ (posedge clk) $stable (fish);
endsequence

序列s3检查,在每一个时钟上升沿,信号fish保持不变,才返回真,断言成功,否则,断言失败.

好了,今天的学习分享就到这里了,个人愚见,希望对你的学习有一点帮助,如有错误也欢迎批评指正。持续更新,欢迎关注。觉得有帮助的朋友,希望能够点个赞鼓励一下!!你的每个鼓励都是我持续创作的动力