verific 的 yosys 正式功能是什么?

What are yosys formal capabilities with verific?

我正在尝试将 Yosys 形式验证功能与 Verific 解析器一起使用。

与 "read_verilog -formal" 命令相比,带有 verific 形式验证的 yosys 支持哪些功能? 例如,使用 read_verilog 的正式代码的快速编译给出了 "assume property" 语法的错误: "The sva directive is not sensitive to a clock. Unclocked directives are not supported"

我不确定是否应该以任何方式修改 Verific 库标志以使其支持更多功能,或者它不受支持。

目前 Yosys 对带有或不带有 Verific 的 SVA 的支持非常有限。但是,我们计划在不久的将来通过 Verific 大幅扩展 Yosys 对 SVA 的支持。目标是为 Verific 可以解析的所有内容提供几乎完整的支持。

关于 "The sva directive is not sensitive to a clock. Unclocked directives are not supported" 错误消息:这是一条 Verific 错误消息,我认为没有 Verific 库标志可以绕过它。 (但我不确定。)技术上未锁定的属性不是 SystemVerilog 标准 afaik 的一部分。 (语法允许,但标准文本没有为它定义语义。)

Yosys 支持非时钟 SVA 属性。 (但只有微不足道的表达式属性。)

Verific 和 Yosys 都支持即时断言和假设。 (那是 always 块中的断言和假设。)现在,这是我推荐的大多数情况下人们编写新属性的东西,也是因为大多数模拟器对即时断言有更好的支持(或者如果支持是,添加会更容易)到目前为止失踪)。

现在我想说的是,将 Verific 与 Yosys 一起使用的最大优势是支持非 SVA System Verilog(和 VHDL)代码。几个月后,我们希望通过 Verific 支持更多的 SVA 结构,但这还没有实现。

Edit/Update: 通过 Verific 对 SVA 的支持现在正在缓慢改进。请参阅 this directory for examples that can be processed via Verific. New examples are added as new features are added to the Verific bindings. Currently counter.sv 是其中最高级的示例。