形式化方法综述

论文题目

硬件设计的形式化验证研究进展及趋势

微电子芯片设计的形式化验证工具

硬件设计的形式化验证的基础方法

系统级验证

行为级验证

门级验证

RTL级验证

约束求解

SAT串行求解技术

SMT串行求解技术

并行求解技术

模型检测与形式化验证

1. 模型检测

模型检测(Model Checking)是一种将待验证的设计建模为状态机模型的技术。通过对状态空间的全面搜索,模型检测可以验证设计是否满足特定规格或属性。

分类

状态空间爆炸

模型的状态空间与其规模呈指数增长关系,这个问题被称为“状态空间爆炸”(State Space Explosion)。

符号化模型检测

20世纪90年代,研究者提出了模型的符号化(symbolic)方法,引入了更为紧凑的数据结构,如二进制决策图(Binary Decision Diagram,简称BDD)。

限界模型检查

限界模型检查(Bounded Model Checking,BMC)是首个将SAT技术引入模型检查的工作。该方法将模型和规范表示为符号化迁移系统,构造布尔公式并使用SAT求解器验证。

K-induction与插值模型检查

为了克服BMC的不完备性,研究者提出了两种改进方法:

IC3/PDR技术

IC3/PDR是一种新型的硬件模型检查技术,其优势在于不构造长的布尔公式,输入给SAT求解器的公式大小恒定,但数量较多。该方法还提供有限的正确性证明。

2. 定理证明

定理证明,尤其是交互式定理证明,是基于数学逻辑的形式化验证方法。通过与用户交互,逐步构建设计的数学证明,确保逻辑正确性。

应用与优势

3. 硬件形式化验证

硬件形式化建模

自动化建模

自动化建模方法如断言挖掘技术,能够高效生成形式化断言。

4. 门级验证

门级电路验证主要考虑逻辑等价性检查(Logical Equivalence Checking,LEC),分为以下两类:

近年来,SAT求解器性能提升,使基于SAT的方法成为主流。

算术电路验证

算术电路(如乘除法器)验证是一个挑战,主要方法包括:

5. 寄存器传输级验证

寄存器传输级验证以形式化属性验证为主,近年来的研究集中在以下方面:

  1. 属性生成方法:基于高层次规约或机器学习生成验证属性。
  2. 属性排序与分组:通过断言排序与分组优化验证效率。
  3. 其他方法:符号轨迹求值、符号执行、合执行测试等方法。

自动生成属性

例如,RISC-V Formal用于生成指令集架构模型的形式化属性。普林斯顿大学的RTLCheck工具自动生成内存一致性模型的验证断言。

符号仿真技术

符号轨迹求值在工业界应用广泛,特别适用于浮点运算和存储单元的验证。

高层次验证

系统级验证

安全验证

国内研究现状

发展趋势与展望