SVA:使用含义(| =>)vs序列?

时间:2013-05-20 14:32:36

标签: system-verilog verification assertions system-verilog-assertions

可以使用隐含运算符|=>和序列##1

构建SystemVerilog断言属性

例如:

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

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;将通过。

由于无法满足启用顺序的条件,后者不被视为失败。