如何写出正式验证的财产?

时间:2016-05-12 10:11:42

标签: system-verilog formal-verification

property prop1;
@(posedge clk)
$fell(sig1) ##1 sequence1 |-> sequence2;
endproperty

我想在第一个时钟周期后禁用属性iff sig1=1'b1

sig1上从高到低的转换是我的触发条件。如果我disable iff(sig1)将无法满足触发条件。

在正式验证器中启用和满足序列时,也无法使用throughout

我该怎么办? 谢谢!

2 个答案:

答案 0 :(得分:0)

如何编写一些卫星代码来推导sig的延迟版本:

  always @(posedge clk) sig1d <= sig1;

  property prop1;
    @(posedge clk) disable iff(sig1d) 
    $fell(sig1) ##1 sequence1 |-> sequence2;
  endproperty

http://www.edaplayground.com/x/2tbX

答案 1 :(得分:0)

如果在第一个周期后没有看到sig1为高,则可以重新编写断言以仅触发:

property prop1;
  @(posedge clk) disable iff(sig1d) 
    $fell(sig1) ##1 !sig1 ##0 sequence1 |-> sequence2;
endproperty