Chisel / Firrtl Verilog后端工作证明

时间:2018-04-12 15:46:49

标签: chisel

是否有一些内置的测试或工具用于正式验证凿子或设计与生成的verilog?构建verilog后端的概念是什么?它有什么错误吗?

2 个答案:

答案 0 :(得分:4)

Chisel和FIRRTL中没有内置的形式验证支持。编译器或后端没有工作证明。与任何传统编译器一样,虽然我们尽力捕获并修复它们,但肯定存在错误。

我们正在使用Yosys在我们对FIRRTL代码库进行的任何更改之间的FIRRTL电路的几个实例上执行LEC。我想扩展形式验证的使用,以确保编译器中的各种转换不会改变它们运行的​​电路的语义。我们还在尝试模型检查后端,以改进与正式验证工具的集成。

答案 1 :(得分:2)

从FIRRTL v1.4和Chisel v3.4开始,将对验证原语提供基本支持。

如果导入chisel3.experimental.verification,则会得到assertassumecover,它们会在Verilog中生成相应的结构。

import chisel3.experimental.{verification => v}

class Foo extends Module {
  val predicate: Bool
  v.assert(predicate)
}

请注意,这是一个相当底层的接口。我目前正在使用一个帮助程序库,以使在Chisel中进行正式验证更为容易:https://github.com/tdb-alcorn/chisel-formal