为组合验证生成自动化假设的方法、系统和计算机程序产品技术方案

技术编号:2916326 阅读:334 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及为组合验证生成自动化假设的方法、系统和计算机程序产品。公开了一种用于计算精确的最小自动机以担当假设-保证推理中的中间断言的方法、系统和计算机程序产品。在一个实施例中,通过使用采样方法和布尔可满足性来执行对精确最小自动机的计算。这里所描述的方法可以被用作形式验证工具的一部分。

【技术实现步骤摘要】

技术介绍
在硬件和软件系统的环境下,软件测试已经被广泛用于调试系统或演示出系统展现某些特性。但是,软件测试自身经常无法证明系统没有特定类型的缺陷。而且其自身也无法演示出系统展现特定特性。另一方面,形式验证能够通过使用数学方法充分证明或反驳软件和硬件系统的正确性,并由此证明感兴趣的系统不具有特定缺陷,或展现特定特性。更具体地,通过使用抽象的数学模型,形式验证试图证明感兴趣的系统满足特定要求,或者所述系统能够展现特定特性或行为。也就是说,对这样的系统的形式验证是通过提供对这些系统的抽象数学模型的形式证明来执行的。经常被用来对系统进行建模的数学对象的一些典型示例是有限状态机和各种自动机。通常有两种方法来进行形式验证处理。一种方法通常被称作模型检验。模型检验通常包括有限数学模型的系统限举探索,并且通过探索模型的所有状态和转换对感兴趣的系统进行验证。模型检验通常还借助一些抽象技术以避免不得不考虑系统中的每个单独状态,从而减少计算时间。另一种方法是逻辑推理,其包括涉及特定定理证明过程的、与系统相关的数学推理的形式版本。所要验证的项目通常以某些形式的时序逻辑表示,诸如线性时序逻辑或计算树逻辑。后面的这种逻辑推理方法的缺点在于逻辑推理方法通常是部分自动化的,并且其效率和生存力可能取决于用户对感兴趣的系统的认识。由于逻辑推理方法的各种局限和缺陷,模型检验已经成为被广泛接受的、用于对硬件和软件系统的正确性进行形式验证的技术。该技术的广泛应用的一个主要障碍是由于现实世界的系统的复杂度增加而引起的状态爆炸(state-explosion)问题。组合验证是一种用于缓解状态爆炸问题的方法。组合验证将软件和硬件系统的验证任务分解为针对所述系统的个体组件的较简单的验证问题。例如,考虑由两组件M1和M2构成的系统M,并且需要在M上验-->证的特性P。组合验证的假设-保证(assume-guarantee)方式使用推理规则,该推理规则规定:可通过识别假设A,以使得在所有情况下A在M1上成立,并且在满足A的任意情况下M2满足P,从而在M上验证P。成功应用该推理规则的关键在于简洁假设A的自动识别。传统上,一些现有方法已经提出了用于计算分离的自动机的多项式时间近似方法。这些方法基于用于主动学习正则语言的Angluin的L*方法的修改。一些现有技术方法已经给出了该基于L*的方法的符号化实现方式。但是,这种方法的主要缺陷在于没有近似边界。也就是说,在最差情况下,L*方法会返回平凡解M1作为分离语言,并且由此没有在状态空间减小方面提供好处,这种好处通过简单地使M1最小化是无法得到的。这样,需要缓解状态爆炸问题在组合验证中的影响。
技术实现思路
公开了一种用于计算将两种语言分离的最小确定性有限自动机的方法、系统和计算机程序产品。在本专利技术的一些实施例中,所述方法使用采样方法和布尔可满足性解算器。另外在本专利技术的一些实施例中,所述方法可被应用于使用假设-保证推理为形式验证生成中间断言。以下在详细说明、附图和权利要求中描述了本专利技术的其它方面的细节、目的和优点。之前的一般性描述和以下的详细描述均为示例性和解释性的,并非意在对本专利技术的范围进行限制。附图说明所包括的附图用于提供对于本专利技术进一步的理解,并且其连同具体实施方式一起用于解释本专利技术的原理。图1A例示了本专利技术一些实施例中所实现的用于为电子电路的组合验证生成自动化假设的系统和方法一般流程的框图。图1B例示了本专利技术一些实施例中所实现的用于为电子电路的细合验证生成自动化假设的系统和方法的一般流程的更多细节的框图。图2例示了关于反复计算最小分离的不完全确定性有限自动机(IDFA)的操作的更多细节。-->图3例示了确定A是否分离两种语言的操作的进一步细节。图4例示了确定相容划分Γ的操作的进一步细节。图5例示了保证划分相容的布尔约束的进一步细节。图6例示了从之前计算出的IDFA概括完整的DFA的操作的进一步细节。图7例示了上面在处理1中所示的整体过程的框图。图8例示了根据本专利技术另一实施例的自动生成假设的方法。图9例示了包括两位移位寄存器的示例性硬件电路。图10例示了由本专利技术一个实施例的方法在图9所示的电路上生成的假设自动机。图11描述了其上可执行利用并发处理模型对闭包(closure)进行计时的方法的计算机化系统。具体实施方式本专利技术的若干实施例提供了用于为组合验证生成自动化假设的方法、系统和计算机程序产品。参见图1A,在152,通过识别电子电路设计的第一组和第二组行为开始处理。所识别的数据将被用于刻画作为“有限自动机”的系统设计的特征(是电子硬件、软件,还是硬件和软件的组合),其中有限自动机(也被称作有限状态机)是由有限数量的状态、这些状态之间的转换以及操作所构成的行为的模型。接着,在154,所述处理基于对所述第一组和第二组行为的采样,反复计算最小的“不完全确定性有限自动机”(IDFA)。确定性有限状态机是对于每个状态和输入符号的对,有一个且仅有一个到下一状态的转换的有限状态机。在一些情况下,有限状态自动机可以是不完全的,原因在于它不包含被用来对特定行为进行建模的一些信息。在156,基于所述IDFA,所述处理通过从所述最小IDFA进行概括来确定确定性有限自动机(DFA)。这实质上是通过执行学习处理以从IDFA收集足够的信息来确定DFA而完成的。在进行了确定之后,在158,DFA可以被存储在有形的计算机可读介质上。由于本专利技术的各个实施例涉及用于为组合验证生成自动化假设的方法和系统,所以以下首先描述用于细合验证的数学模型,以提供本专利技术的一些实施例-->的基础。I.用于组合验证的数学模型这部分所公开的是在本专利技术的一些实施例中用来对软件和硬件系统的正确性进行形式证明的数学模型。组合验证将对于软件和硬件系统的验证任务分解为对于所述系统的个体组件的较为简单的验证问题。首先考虑包括两个组件M1和M2的系统M以及需要在M上进行验证的特性P。组合验证的假设-保证方式使用以下推理规则:<true>M1<A>]]><A>M2<P><true>M1||M2<P>---(1)]]>以上推理规则规定可以通过识别假设A在M上验证P以使得:在所有情况下A在M1上成立,并且在满足A的任意情况下M2满足P。在语言-理论框架中,通过有限自动机对作为正则语言的处理进行建模、指定。处理组合是语言<本文档来自技高网
...

【技术保护点】
一种用于为电子电路设计的组合验证生成自动化假设的方法,包括: 识别所述电子电路设计的行为的第一集合和第二集合; 基于行为的第一集合和第二集合,反复计算最小不完全确定性有限自动机(IDFA); 通过从所述最小IDFA进行概括 而确定确定性有限自动机(DFA);和 在有形的计算机可读介质上存储确定DFA操作的结果。

【技术特征摘要】
US 2007-7-2 11/772,7921.一种用于为电子电路设计的组合验证生成自动化假设的方法,包括:
识别所述电子电路设计的行为的第一集合和第二集合;
基于行为的第一集合和第二集合,反复计算最小不完全确定性有限自动机
(IDFA);
通过从所述最小IDFA进行概括而确定确定性有限自动机(DFA);和
在有形的计算机可读介质上存储确定DFA操作的结果。
2.如权利要求1所述的方法,其中,行为的第一集合S1满足S1⊆L1,]]>并且
行为的第二集合S2满足S2⊆L2,]]>其中L1是第一语言并且L2是第二语言。
3.如权利要求2所述的方法,还包括:
确定所述最小IDFA是否分离了L1和L2。
4.如权利要求3所述的方法,其中,确定所述最小IDFA是否分离了L1和L2的操作包括:
获得反例,其中所述最小IDFA被确定为未分离L1和L2;和
确定所述反例是否属于L1。
5.如权利要求4所述的方法,还包括将所述反例添加到所述第一集合,其
中所述反例被确定为属于L1,或者将所述反例添加到所述第二集合,其中所述
反例被确定为不属于L1。
6.如权利要求4所述的方法,其中,从模型检验中获得所述反例。
7.如权利要求1所述的方法,其中,所述IDFA分离所述第一集合和第二
集合。
8.如权利要求1所述的方法,其中,行为的第一集合和第二集合最初为空。
9.如权利要求1所述的方法,还包括或执行对所述最小IDFA的查询。
10.如权利要求1所述的方法,其中,反复计算最小IDFA的操作包括:
在所述第一集合和第二集合上构建树状IDFA的折叠;
确定所述树状IDFA的相容划分;和
确定精确分离所述第一和第二集合的自动机。
11.如权利要求10所述的方法,其中所述相容划分具有基数k,所述基数k
是所述树状IDFA的状态的数目,分离所述第一集合和第二集合的每个IDFA
与所述第一集合和第二集合上的所述树状ID...

【专利技术属性】
技术研发人员:A格普塔KL麦克米伦
申请(专利权)人:韵律设计系统公司
类型:发明
国别省市:US[美国]

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

1