我是SVA的新手。我对SVA的含义有疑问。
1: sequence s1;
2: start ##[1:$] !start;
3: endsequence: s1
4:
5: sequence s2;
6: ready && (!start);
7: endsequence: s2;
8:
9: assert_ready: assert property (@(posedge clk) s1 |-> ##5 s2);
此声明的目的是检查计时属性:
我试图通过使用形式验证工具Synopsys的VC形式来验证此属性。它表明此断言失败的原因是,当发生过早的“开始”时,s2序列为零。
我认为第6行的描述有误,这是一个真正的新手代码。您能不能让我知道如何正确描述早起的断言?
答案 0 :(得分:0)
我认为你想要
sequence s1;
start ##1 !start [*5]
endsequence: s1
sequence s2;
ready;
endsequence: s2;
assert_ready: assert property (@(posedge clk) s1 |-> s2);
尽管您可能必须根据自己的要求进行调整,例如在第五个周期start
与ready
重合时会发生什么。