3

我想知道什么时候在 SVA中使用->和使用?=>之间有什么区别吗

sequence A;
 req |-> ##1 gnt;
endsequence

sequence B;
 req |=> ##1 gnt;
endsequence

请让我知道..谢谢。

4

3 回答 3

2

|=>等价于|-> ##1
因此,req |=> ##1 gnt;等价于req |-> ##2 gnt;

请参阅IEEE Std 1800-2012 § 16.12.6含义

于 2015-10-19T16:55:33.227 回答
2

不同之处在于,当前(左边的表达式)成功时,后(右边的表达式)是在同一个时钟周期|->(重叠)还是下一个时钟周期|=>(非重叠)开始。

记住这一点的一种方便方法是 中只有一个小节-,所以这是重叠的。里面有两个小节=,所以不重叠。

于 2015-10-18T22:34:55.693 回答
0
  • 这两种蕴含运算符都使用以下类型的方法..
  • 我认为您对在哪里使用 |->(重叠) 和 |=>(非重叠) 有了基本的了解

property name(); Enabling sequence (|-> or |=>) Consequent sequence endproperty

结果 :

  • 当启用序列为'true(1'b1)时,它会检查后续序列..如果后续序列为'true,则断言通过,如果后续序列为'false,则断言失败..

  • 当启用 seq 为 `false 而不是通过但显示为“viscus success”并且您将无法在波形中看到绿色箭头

尽管...

property name(); sequence1 (## delay) sequence2 endproperty

  • 在这种情况下,如果 seq1 为“真”,则在延迟一段时间后,它会检查 seq2,如果 seq2 为“真”,则断言通过,如果 seq2 为“假”,则断言失败。
  • 如果 seq1 是 `false 则断言直接失败..

这是这件事的主要区别..我认为这可能会有所帮助

于 2015-10-21T07:27:39.347 回答