Formal Verification(形式验证)
在计算机硬件(特别是集成电路)和软件系统的设计过程中,形式验证的含义是根据某个或某些形式规范或属性,使用数学的方法证明其正确性或非正确性。
形式验证是一个系统性的过程,将使用数学推理来验证设计意图(指标)在实现(RTL)中是否得以贯彻。形式验证可以克服所有3种仿真挑战,由于形式验证能够从算法上穷尽检查所有随时间可能变化的输进值。
形式验证的出现
由于仿真对于超大规模设计来说太耗费时间,形式验证就出现了。当确认设计的功能仿真是正确的以后,设计实现的每一个步骤的结果都可以与上个步骤的结果做形式比较,也就是等价检查,如果一致就说明设计合理,不必进行仿真了。
形式验证主要是进行逻辑形式和功能的一致性比较,是靠工具自己来完成,无需开发测试向量。而且由于实现的每个步骤之间逻辑结构变化都不是很大,所有逻辑的形式比较会非常快。这比仿真的时间要少很多。一般要做形式验证的步骤有:RTL和RTL。
IC设计验证方法
形式验证(Formal Verification)是一种IC设计的验证方法,它的主要思想是通过使用形式证明的方式来验证一个设计的功能是否正确。形式验证可以分为三大类:等价性检查(Equivalence Checking)、形式模型检查(Formal Model Checking)(也被称作特性检查)和定理证明(Theory Prover) 。
等价性检查的验证用于验证RTL设计与门级网表、门级网表与门级网表是否一致。在进行扫描链重排、时钟树综合等过程中,都可以用等价性检查保证网表的一致性。等价性检查已经融入IC标准设计流程中。等价性检查在检查ECO时非常有用。例如,设计者在修改门级网表时,由于手误,错将一个或门写成或非门,等价性检查工具通过比较RTL设计与门级网表,可以很容易地发现这种错误。
模型检查用时态逻辑来描述规范,通过有效的搜索方法来检查给定的系统是否满足规范。模型检查是目前研究的热点,但其验证的电路规模受限制这一问题还没有得到很好的解决。
定理证明把系统与规范都表示成数学逻辑公式,从公理出发寻求描述。定理证明验证的电路模型不受限制,但需要使用者的人工干预和较多的背景知识。