【发布时间】:2016-01-17 01:53:02
【问题描述】:
我想知道什么时候在 SVA 中使用 -> 和 => ?
有没有区别
sequence A;
req |-> ##1 gnt;
endsequence
和
sequence B;
req |=> ##1 gnt;
endsequence
请告诉我.. 谢谢。
【问题讨论】:
标签: system-verilog assertions system-verilog-assertions
我想知道什么时候在 SVA 中使用 -> 和 => ?
有没有区别
sequence A;
req |-> ##1 gnt;
endsequence
和
sequence B;
req |=> ##1 gnt;
endsequence
请告诉我.. 谢谢。
【问题讨论】:
标签: system-verilog assertions system-verilog-assertions
区别在于前件(左边的表达式)成功时,后件(右边的表达式)是否在同一个时钟周期开始@987654321 @(重叠)或下一个时钟周期|=>(不重叠)。
记住这一点的一种方便方法是- 中只有一个小节,所以这是重叠的。并且= 中有两个小节,所以不重叠。
【讨论】:
|=> 等价于|-> ##1
所以req |=> ##1 gnt;等价于req |-> ##2 gnt;
请参阅IEEE Std 1800-2012 § 16.12.6 含义
【讨论】:
property name();
Enabling sequence (|-> or |=>) Consequent sequence
endproperty
结果:
当启用序列为 'true (1'b1) 时,它会检查后续序列 ..如果后续序列为 'true 则断言通过,如果后续序列为 'false 则断言失败..
当启用 seq 为 `false 时,它通过但显示为“viscus 成功” 并且您将无法在波形中看到绿色箭头
同时……
property name();
sequence1 (## delay) sequence2
endproperty
这是这件事的主要区别..我认为它可能会有所帮助
【讨论】: