可以使用隐含运算符|=>
和序列##1
例如:
property P1;
@(posedge clk)
A ##1 B |=> C ##1 D;
endproperty
上面我们使用A ##1 B
作为启用序列(前提)和C ##1 D
作为完成序列(结果)。
我不明白为什么不能改写为:
property P2;
@(posedge clk)
A ##1 B ##1 C ##1 D;
endproperty
何时以及为什么要在序列|=>
上选择隐含##1
?
答案 0 :(得分:1)
序列传递的上述属性相同,但失败条件不匹配。
如果它们都是1,那么A ##1 B ##1 C ##1 D;
和A ##1 B |=> C ##1 D;
都是真的。
如果我们将A设为1,则其余为0:
A ##1 B ##1 C ##1 D;
失败,A ##1 B |=> C ##1 D;
将通过。
由于无法满足启用顺序的条件,后者不被视为失败。