一种基于AIG和SAT求解器的GSTE模型检测方法技术

技术编号:16079430 阅读:46 留言:0更新日期:2017-08-25 15:15
本发明专利技术提供了一种基于AIG和SAT求解器的GSTE模型检测方法,其特征在于包括以下步骤:步骤1,使用ABC工具建立AIG模型;将该AIG转化成FRAIG,同时使用逻辑综合算法化简该FRAIG,减小AIG规模;步骤2,计算每条边上的状态集不动点Ψ*,步骤3:将算得的每条边上的不动点和相应边上的cons做验证,若

【技术实现步骤摘要】
一种基于AIG和SAT求解器的GSTE模型检测方法
本专利技术属于硬件形式化验证
,特别针对形式化验证中状态迁移和状态集合表示方式的处理。提供了一种基于AIG和SAT求解器的GSTE模型检测方法。
技术介绍
在过去的几十年中,在社会各个领域中电子设备及其相关系统应用的研究不断深入开展,随着系统复杂化,如何保证设计的正确性成为了开发过程中主要的问题。对于芯片设计常用的验证方法总体上分为两种,仿真和形式化验证。仿真是将系统在计算机上进行模拟,通过给定一组输入,亦即测试向量,经过仿真计算,将得出的实际结果和系统应有性质,即应该得到的结果进行比较。每一步的仿真计算快,而且给定一个测试向量可以得到唯一的结果,可以精确地验证这一组结果是不是满足系统性质。但是仿真具有致命缺陷——覆盖率低。而且测试向量一般是人工设计,这也需要耗费大量时间精力。形式化验证通过将系统和状态表示成布尔表达式,克服了仿真中每一个变量都必须有一个确定的值从而造成测试向量过大的缺点,大大提高了覆盖率,完备的形式化方法可以达到全覆盖。模型检测是硬件的形式化验证中一种重要的方法。基本思想是将系统的行为抽象成一系列状态迁移规则,形成一个系统,多为有限自动机形式;同时将系统必须满足的性质也表示成模型,可以是模态逻辑公式,也可以是断言图等形式。模型检测可以对有穷的系统完成自动检测,判断该系统是否满足给出的所有性质,同时自动构造不满足性质的反例。同时模型检测可以实现自动化并且可以针对部分模型或者部分性质进行验证。目前常用的模型检测的技术有:CTL(计算树逻辑)模型检测、BMC(有界模型检测)、GSTE(扩展符号轨迹检测),此外等价性验证也已经应用于工业界。BDD(二叉判定图)作为模型检测中常用的一种表示系统迁移关系和状态集的数据结构,相比真值表具有很大优势,因此在过去的模型检测方法中都是以BDD为基础实现。但是BDD也是基于真值枚举的一种表现形式,对于一个稍大的系统或者状态集,会导致状态爆炸。为满足验证规模和效率的两方面需求,本专利技术提出同时将SAT(可满足性问题)求解器和AIG(与非图)应用于GSTE模型检测的方法。包括将系统迁移关系和状态集表示成FRAIG(功能简化与非图)结构,在Image(后像)计算中结合使用SAT和FRAIG/AIG完成存在量词的消去和性质验证等。同时在整个验证过程中使用基于BDD和基于AIG的逻辑综合算法对FRAIG/AIG进行化简,在验证的每一步骤减小AIG规模。本专利技术相比基于AIG的CTL模型检测,可以有效地提高效率;相比基于BDD的GSTE模型检测,可以有效地提高验证规模;相比BMC,可以提供更高的验证可靠性。与本专利技术相关的现有技术AIG简介AIG使用与门节点和非门节点表示一个布尔表达式,其中每个节点有两个输入,表示一个“与”关系,“非”关系表示在边上。图8是一个AIG示例:图8表示的布尔表达式是out=a+b。out对应的节点称为输出端口,a和b对应的节点称为输入端口。芯片设计中常使用寄存器,而寄存器的上一状态和下一状态往往是相关的,在AIG中,使用两个变量分别表示一个寄存器的上一状态和下一状态。基于AIG的CTL模型检测CTL模型检测的主要思想是给定一个状态集合,通过preimage计算,判断是否有存在能够到达这个给定的状态集的某个或者某些状态。对于不同的计算公式,使用不同的计算。例如EX(S),那么系统中的至少存在一条路径可以到达这个状态集S。其中preimage操作是给定一个状态,计算上一步有哪些状态可以迁移到该状态。该方法在计算到达不动点(即状态集不再增大)或者找到反例时停止。在实际使用中,当运行需要的系统资源不足时,也会停止。该方法的缺点是计算树逻辑公式难以读懂,设计困难,需要具有专门知识的人员进行设计。同时CTL公式表达能力有限,无法表示所有需要的性质,并且公式的计算开销大。所以基于CTL模型检测的工具大多存在耗时和耗资源的问题。基于AIG和SAT的BMCBMC和CTL模型检测方式正好相反,是从初始状态出发,根据模型中的路径是否不满足给定的性质进行判断。同样,BMC也需要根据验证的类型进行不同的计算。令I(S0)表示系统的初始输入,R(Si+1,Si+2)表示迁移关系,即模型上一状态Si+1和下一状态Si+2的状态迁移关系,P(Si)表示性质在第i步验证中的表达式。验证时,使用SAT求解器对展开的逻辑表达式求解。若能找到解,说明系统不满足给定的属性。同时,在BMC方法中加入了CT(完整性阈值),表示若Ω(k)满足CT,那么可以断定该次检测已经证明了模型时满足给定的性质,即使只验证了k步。但在实际使用中,CT的精确计算是很难的,因此经常计算精确CT的一个over-approximation(过近似),使该方法的缺点是:当BMC检测出错误路径时,模型必然存在错误;但是BMC的缺陷在于在给定的K次检测中,若不能发现错误,则不能断定模型没有错误。同时,由于迁移关系公式需要进行k次展开,使得公式中共有单个公式中变量数k倍变量,往往使公式规模很大,增加了SAT求解器的搜索空间。使用AIG表示迁移关系和状态集,可以简化模型,并且在每一步展开时进行化简,从而使得公式规模整体减小,但是仍然无法解决变量数快速增加的问题。基于BDD的GSTEGSTE是由STE(符号轨迹验证)推广而来,是一种基于符号仿真的模型检测方法。在GSTE中,性质使用断言图表示。断言图类似于一个有限自动机,表示该模型可以接收的语言。在断言图的每一条边上,存在两个属性ant和cons,任何一次迁移运算得到的结果若满足ant,那么必须满足cons,否则该模型不满足cons性质。图9是断言图的一部分的例子。算法使用post运算根据上一状态集得到下一状态集,同时进行验证。假设在V1计算出一个状态集S1,那么必须满足同理从V2计算出来的状态集也必须和V2的每条出边上的性质做验证。算法中主要的操作是post运算,亦即模型检测中的Image(后像)运算。在GSTE中描述为:其中Q是状态集,s、s’是单个状态,M是模型。Image运算表示为其中x是当前状态,y是下一状态,w是输入变量,P表示输入状态集,T表示迁移关系,即模型。算法首先计算每个点上的状态集的不动点,再通过cons进行验证;或者可以在每一次迁移运算后就进行验证,直到到达不动点或者发现反例。基于BDD的GSTE模型检测中,使用BDD完成post运算。GSTE和CTL模型检测相比,由于GSTE验证过程中使用了断言图边上ant对每次的状态集做了限制,因此整个过程中状态集相对较小,计算效率更高。但是使用BDD始终只能针对小规模电路。在基于BDD的GSTE模型检测中无法针对200个寄存器或者以上规模的模型完成验证。
技术实现思路
本专利技术的目的在于提供一种可以有效地加大验证规模和提高验证效率的一种基于AIG和SAT求解器的GSTE模型检测方法为了实现上述目的本专利技术采用以下技术方案:一种基于AIG和SAT求解器的GSTE模型检测方法,其特征在于包括以下步骤:第一步,使用ABC工具建立AIG模型;将该AIG转化成FRAIG,同时使用逻辑综合算法化简该FRAIG,减小AIG规模。建立AIG保存用于系统迁移关系和表示性质本文档来自技高网
...
一种基于AIG和SAT求解器的GSTE模型检测方法

【技术保护点】
一种基于AIG和SAT求解器的GSTE模型检测方法,其特征在于包括以下步骤:步骤1,使用ABC工具建立AIG模型;将该AIG转化成FRAIG,同时使用逻辑综合算法化简该FRAIG,减小AIG规模;步骤2,计算每条边上的状态集不动点Ψ*,在第一步中得到的AIG表示整个电路,也作为计算中使用的状态迁移函数,不动点计算公式如下:

【技术特征摘要】
1.一种基于AIG和SAT求解器的GSTE模型检测方法,其特征在于包括以下步骤:步骤1,使用ABC工具建立AIG模型;将该AIG转化成FRAIG,同时使用逻辑综合算法化简该FRAIG,减小AIG规模;步骤2,计算每条边上的状态集不动点Ψ*,在第一步中得到的AIG表示整个电路,也作为计算中使用的状态迁移函数,不动点计算公式如下:其中e表示边,e-表示e的入边,Ψ表示状态集,使用FRAIG表示,ψn(e)表示当前已经计算出的存于边上的状态集合,ψn+1(e)表示下一步计算的状态集合;post()是状态迁移函数,是给定一个状态集和一个迁移关系,经过迁移后得到的状态集;in(e)表示断言图中边e的入边,ant(e)表示边上的ant状态集,在下面出现的表示状态集不动点,cons(e)表示边上的cons状态集;步骤3:将算得的每条边上的不动点和相应边上的cons做验证,若则报错,并通过反向迁移找到反例;步骤4:判断每条边上的状态集是否到达不动点,若到达不动点,完成本次验证,否则返回步骤2,进行下一轮状态集的计算。2.根据权利要求1所述的一种基于AIG和SAT求解器的GSTE模型检测方法,其特征在于:所述步骤1中,建立AIG保存用于系统迁移关系和表示性质的断言图,断言图的一条边用一个AIG表示,这些AIG具有相同名称的输出端口,并保持与迁移关系AIG的输出端口不同名;步骤1中初始建立的迁移关系的AIG是用多个等式的形式表示迁移关系,使用下面方法改造AIG,使其使用一个等式的形式表示迁移关系:(1.1)一个AIG中每一个输出端口和AIG网络中的“与”节点表示一个等式关系,根据香农展开公式,改造当前AIG,将等式变成同或式,最终用一个输出端口表示这些同或关系式;(1.2)使用逻辑综合算法对(1.1)中得到网络化简;(1.3)使用ABC命令或者调用其内部函数,将(1.2)中得到的网络转化成FRAIG,同时对该FRAIG使用逻辑综合命令化简。3.根据权利要求1所述的一种基于AIG和SAT求解器的GSTE模型检测方法,其特征在于:所述步骤2中对于post()状态迁移函数的运算,我们需要消除计算式中的存在量词,即上一状态变量和输入变量,量词消去步骤如下:设置下面阈值:量词调度方法中AIG规模limit_sch_AIG不小于初始AIG规模、量词调度方法中AIG规模增长速度限制limit_sch_grow,量词调度方法中AIG规模limit_sch_AIG不大于1.5、使用BDDsweeping的AIG规模limit_sweep_AIG的初始值和初始AIG规模相关、BDDswe...

【专利技术属性】
技术研发人员:杨国武崔晓爽高毅康文涛牛伟纳张艳徐永生杨俊杨绪鹏周志慧
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1