一种基于属性指导可达性的增强限界模型检查方法和系统

文档序号:37297529发布日期:2024-03-13 20:45阅读:8来源:国知局
一种基于属性指导可达性的增强限界模型检查方法和系统

本发明涉及模型检测领域,具体为一种基于属性指导可达性的增强限界模型检查方法和系统。


背景技术:

1、作为二十世纪八十年代以来最成功的形式验证技术之一,模型检测技术能够自动检测某个系统的模拟运行结果是否满足特定的属性或规范,用清晰简洁和自动化程度高的方法来保证计算机软硬件系统的正确性和可靠性。经过数十年的发展,它已被应用于计算机硬件、通信协议、控制系统、安全认证协议等方面的分析与验证中,取得了令人瞩目的成功。模型检测已经从学术界辐射到了产业界,引发了重大的关注。提高模型检测效率也成为了国内诸多高校和研究所想重点突破的一个方向,属于卡脖子的国家需求,也是很重要的产业方向。

2、二十一世纪以来,互联网应用更加广泛,复杂的计算机系统产生了更多的不确定是否安全和准确的系统应用,需要模型检测算法对其安全性和准确性进行验证。此时传统的模型检测有序二叉决策图技术开始显露出不足,出现了状态数目过多,存储困难,难以适用于求解大规模电路等问题。为了解决这些问题,学者提出将状态的存储转化为命题逻辑的查询问题,提出了基于布尔逻辑可满足性问题(简称sat)的模型检测算法,起到了不错的效果,这些算法包括但不限于有界模型检测算法(bounded model checking,简称bmc)与属性指导可达性算法(property directed reachability,简称pdr)等。bmc和pdr算法是两类常用的基于sat的模型检测算法,用于验证包含有限状态的时序系统的性质,一般常用于验证安全性(safety)属性,即是否坏态不可达(或者某属性p恒成立)。pdr和bmc算法在求解能力上有一定的互补性。

3、sat是判定给定的合取范式是否具有可满足性的问题,而电路的状态和状态间的转移关系可以自然的用sat公式表示。因此bmc和pdr算法均可依赖sat求解器的算力引擎来辅助验证,在处理状态爆炸问题上效果明显,并且模型检测的准确率与运行时间相比于传统的模型检测方法提高幅度明显。目前,用于解决sat问题的方法主要分为冲突驱动的子句学习算法(简称cdcl)和局部搜索算法(简称sls)两类。现今最顶尖的sat求解器多为两类算法的混合算法,代表求解器有kissat、relaxed、cryptominisat等。

4、bmc是一种简单但高效的模型检测方法。首先,bmc会判断初始状态是否满足属性p,如果不满足则返回。否则会从初始状态开始进行k(初始为1)步转移关系的展开,并判断第k步是否可以转移到如果无法找到,说明该模型在k步转移范围内,满足安全性质;否则,说明算法说明至少存在一条从初始状态开始的反例路径,算法终止。接着,bmc增大步数k,调用sat求解器来判断模型是否可以k步转移到不安全的状态。bmc算法不断迭代增加步数,直到算法在某深度找到反例、验证成功预期的深度或者资源耗尽后终止。作为一种非完备算法,bmc算法的纠错能力强,能高效地检测出给定模型违背某一安全性质的反例状态,但无法证明给定模型的安全性质。该方法严重依赖sat求解的算力,sat求解器的性能直接决定了bmc算法的能力。

5、pdr是一种较为复杂的模型检测算法,它维持了一个满足安全性质p的状态集合序列f,通过检查状态序列的转移来证明模型满足安全性质。其中,f0表示初始状态集合i,fi(i>0)表示从初始状态出发,i步转移可以达到的状态的集合的超集。pdr算法不断地寻找fi中一步转移到的状态s,若fi中存在一步转移到的状态s,则递归地向前寻找fi-1中是否存在两步转移到的状态s′,直到f0。如果通过这种方式发现f0中存在多步转移到的状态s,则表明算法找到了从初始状态开始的反例路径,算法终止;否则,算法证明了一步转移到的状态s并不在fi中,模型在i步转移内满足安全性质,因此将s从fi及fi之前的集合中删除。当fi中的所有一步可达的状态均被检查完成之后,pdr则会对fi+1进行考察。通过这种方式,如果发现存在某两个相邻的状态集合fi=fi+1,则说明找到了一个不变式,证明安全性质在给定模型中始终成立。作为一种完备算法,pdr算法既可以找出系统中违背性质的反例,也可以通过构造归纳不变式的方式证明系统满足特定的安全性质。bmc和pdr有一定的求解能力的互补性,且pdr有可能找到一条更深路径的反例。相对地,pdr算法在时间与空间上的开销一般高于bmc算法。工业应用中,由于bmc易实现,且可在深度受限的前提下满足实际的大部分应用场景,相对pdr来说使用频率更高。


技术实现思路

1、为了克服现有的bmc算法对sat求解能力的严重依赖,且pdr算法难以适配大规模样例的不足,本发明实现了一种新型的模型检测系统(pdr-enhanced bmc,简称pebmc),该系统内部融合了一套以bmc为主体引擎,pdr为辅助的模型检测算法。它将pdr过程中学习到的归纳相关不变式用于增强bmc系统。pebmc系统可以自动化地验证计算机系统、软件程序或其他系统是否符合给定的规范或性质。该系统结合了bmc和pdr两者各自的优势,来增强有界模型检测算法的求解能力,提高了模型检测的效率和可靠性。

2、本发明解决其技术问题所采用的技术方案如下:

3、一种基于属性指导可达性的增强限界模型检查方法,包括以下步骤:

4、以寄存器传输级电路作为输入,通过预处理器模块对电路进行逻辑综合;

5、通过模型检测模块结合bmc算法和pdr算法对电路性质进行验证。

6、进一步地,在模型检测模块中,首先采用pdr算法对电路进行k步验证,若找到反例或成功证明性质安全,则程序终止;否则进行不变式信息采集,应用bmc算法检查模型k步转移内的安全性,若性质安全,则转移步数加一,再次执行模型检测模块;否则bmc算法找到反例路径,程序终止。

7、具体来说,本发明的上述方法包括以下步骤:

8、1)程序输入为verilog格式的寄存器传输级电路描述文件。作为一种硬件描述语言(hdl),verilog语言常用于数字电路和芯片设计,来描述数字电路和系统的行为、结构和功能。电路文件需要逻辑门、寄存器、数据通路等元件来描述一个完整的带有比特输入与输出的电路。同时,电路文件中需定义一个以上的不变式条件,表示电路模型需要满足的安全性质,以便后续验证。

9、2)采用逻辑综合工具对电路进行综合,得到用aig格式(与非图)表示的电路。aig格式采用有向无环图的数据结构来表示电路,且电路中的与门只有二输入和零输入两类。第一步是识别电路中的逻辑元素,包括逻辑门、寄存器等;第二步开始对电路进行优化,以最小化门延迟、功耗等;第三步将识别出的逻辑元素转化为aig格式,使用与门和反相器来表示电路中的逻辑函数;第四步将原电路映射到aig网络结构上,得到一个仅用二输入与门和输入输出端口表示的原电路。生成的aig格式电路通常用二进制文件表示,作为后续步骤的输入用于电路验证。

10、3)在当前已经完成验证帧数(即状态转移步数)k=n的前提下,在一步转移内应用属性指导可达性(pdr)算法。pdr算法维持了一个满足安全性质p的状态集合序列f={f0,f1,…,fn}。其中f0表示初始状态集合i;fi(i>0)表示从初始状态出发,i步转移可以达到的状态集合的超集。

11、第一步,算法拟对状态集合序列f进行扩充,在序列末尾插入fn+1,表示该模型从初始状态出发,在n+1步转移内可以达到的状态集合的超集,开始验证模型在n+1步转移内的安全性。算法首先遍历可达状态集合fn中的所有状态,并通过sat求解器判断该状态是否可以通过一步转移之后仍然存在于fn+1。如果发现存在fn=fn+1,因为fn所有的状态均满足安全性质,且一步转移状态之后的状态集合仍为自身,所以后续所有状态集合fp,p>n均可以满足安全性质,因此可以证明安全性质在给定模型中始终成立,程序终止。

12、第二步,进一步判断fn+1的不安全性质。算法尝试寻找状态集合fn+1中会一步转移到的状态s,其中表示电路的不安全性质,若fn+1中存在一步转移到的状态s,则递归地寻找fn中是否存在两步转移到的状态s′。如果通过这种方式一直递归到初始状态,发现f0中存在多步转移到的状态s0,则表明算法找到了从初始状态开始的反例路径,算法终止;否则,算法证明了一步转移到的状态s并不在fn+1中,因此将s从fn+1及fn+1之前的状态集合中删除。该步会一直对fn+1进行考察,直至状态集合fn+1中不存在一步转移到的状态s为止,则说明系统在n+1步转移内满足安全性质。

13、4)从pdr中采集子句信息并传递子句至bmc。pdr中的状态集合f中实际存储的为系统k步内不可达的状态(学习子句的非)。这些约束可以以布尔公式的形式传递到bmc模型检查器中,通过对bmc的n+1步可达状态的缩减来提高验证效率。对于不在集合fi中的任一状态x1∧x2∧…∧xn,其中x1,x2,…xn表示bmc中的状态变量,构造约束子句c如下:

14、

15、其中,表示在bmc中第i步的状态变量xn,∧表示逻辑与,∨表示逻辑或,表示逻辑非。

16、5)采用bmc算法验证模型在当前步数的安全性。假设当前已验证了电路模型在k=n步转移内安全,则使用限界模型检测算法验证模型n+1步转移后的安全性。首先,将逻辑综合得到的aig格式电路进行n+1步展开,得到表示原电路n+1步转移的组合电路;其次,将组合电路及n+1步转移产生的安全性质约束编码为比特级布尔公式,以便sat求解器调用;最后,调用增量式sat求解器,来判断模型在n+1步转移后是否满足安全性质,求解公式如下:

17、

18、其中,xi表示在bmc中第i步的状态变量x,x′+1表示在bmc中第i+1步的状态变量x,r表示电路模型的转移关系。如果布尔公式无解,说明模型在n+1步转移内满足安全性质,则令当前已验证步数增加为k=n+1,返回3);否则,说明至少存在一条从初始状态开始的反例路径,算法终止。

19、值得一提的是,bmc和pdr可以通过并行的方式独立运行,减少等待时间的开销。

20、本发明还提供一种基于属性指导可达性的增强限界模型检查系统,其是基于pdr增强的bmc模型检查系统,包括预处理器模块和模型检测模块;

21、所述预处理器模块,用于对寄存器传输级电路进行逻辑综合;

22、所述模型检测模块,用于结合bmc算法和pdr算法对电路性质进行验证。

23、进一步地,所述预处理器模块,用于对verilog格式的寄存器传输级电路进行高层综合和逻辑综合,得到门级网表aig格式的电路;

24、进一步地,所述模型检测模块,用于对特定的aig电路进行安全性验证。该模块利用pdr算法的子句学习能力,来增强bmc算法的求解能力。首先采用pdr算法,维持一个满足安全性质p的状态集合序列f,寻找并删除状态集合中会一步转移到的状态。将被删除的状态以布尔公式的形式传递到bmc检查器中,使用bmc算法验证模型在限定步数的安全性。

25、本发明还提供一种计算机设备,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。

26、本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

27、与现有技术相比,本发明的有益效果如下:

28、1.综合利用bmc和pdr的优点:本发明结合有界模型检测算法和增量式归纳子句构造算法,可以综合利用两者的优点。bmc算法在验证早期阶段更高效,而pdr算法在验证后续阶段可能更有优势。因此,本发明所采用的融合算法可以根据验证问题的性质和状态空间的复杂性,在不同阶段利用方法各自的优势,以提高效率。且本发明可以更进一步地提高模型检测的自动化程度。

29、2.状态空间的有效管理:本发明可以采用多种策略来管理状态空间,包括状态抽象、状态缩减和增量验证等。这有助于应对传统模型检测方法的状态空间爆炸问题,提高验证效率。

30、3.适用性广泛:本发明可以应用于各种不同类型的系统和性质验证,包括硬件、软件和嵌入式系统等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1