System verilog 生成封面所需时间的重要性

System verilog 生成封面所需时间的重要性,system-verilog,formal-verification,System Verilog,Formal Verification,我正在正式验证大设计中的一个小模块 我已经分析和阐述了设计(使用Jaspergold-fpv) 我写了一个非常简单的封面属性(SVA),如下所示: 找到封面大约需要5300秒。我注意到“绑定”是143 那么,为什么生成封面需要这么长时间?这意味着什么(需要时间和限制) 是因为工具必须深入研究设计状态才能生成封面,而且COI很大吗?还是其他原因 感谢您的帮助。尝试获取所有可能最终导致Clk上升沿信号失效的场景&因此所需时间取决于COI “Bound”表示所有试图命中反断言信号A的组合在不到143个

我正在正式验证大设计中的一个小模块

我已经分析和阐述了设计(使用Jaspergold-fpv)

我写了一个非常简单的封面属性(SVA),如下所示:

找到封面大约需要5300秒。我注意到“绑定”是143

那么,为什么生成封面需要这么长时间?这意味着什么(需要时间和限制)

是因为工具必须深入研究设计状态才能生成封面,而且COI很大吗?还是其他原因


感谢您的帮助。

尝试获取所有可能最终导致Clk上升沿信号失效的场景&因此所需时间取决于COI

“Bound”表示所有试图命中反断言信号A的组合在不到143个周期内完成


总的来说,这些表示在多个方面&属性命中的速度有多快。

我找到了生成封面处理时间长的原因。长时间延迟的原因是正式引擎试图(理想情况下)找到最短路径以匹配特定的覆盖/序列。因此,在许多实际场景中,对于正式引擎来说,最短路径可能不是最快的。这是因为,正式引擎可能必须切换许多触发器才能达到特定的覆盖状态

在我的特殊情况下,名为“扫描模式”的触发器依赖于几个之前的触发器。因此,该工具必须触发许多触发器才能断言“扫描模式”。因此,触发器(1'b1)上的假定属性大大减少了覆盖生成时间。 不带“假定”属性的覆盖生成时间:150秒。
假设属性的封面生成时间:2秒。

对于封面属性,正式引擎不会搜索所有场景。据我了解,他们用最短的线索寻找任何可能性。如果我错了,请告诉我。谢谢
    cover_property1:cover property(@(posedge clk) $fell(signalA));