如何在 System verilog 断言中写一个 属性?

How to write a property in System verilog assertions?

我想在SVA中写一个属性来正式验证一个行为。

这是我想要的:

property prop1(sig1,sig2,sig3,sig4);
    @(posedge clk)
    $fell(sig1) ##[1:$] first_match($fell(sig2)) ##0 sig3 |-> sig4 == sig3;
endproperty

我如何重写上面的 属性 以便在 sig1 下降后,它在剩余的评估周期中保持低电平?

注意:我不想将 sig1 设置为禁用 iff (sig1)

property prop1(sig1,sig2,sig3,sig4);
    @(posedge clk)
    (!sig1) throughout (##[1:$] first_match($fell(sig2)) ##0 sig3) 
          |-> sig4 == sig3;
endproperty

请参阅 1800-2012 LRM

中的 16.9.9 序列条件 部分