CN101404045A - 为组合验证生成自动化假设的方法、系统和计算机程序产品 - Google Patents

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

Info

Publication number
CN101404045A
CN101404045A CNA2008102154047A CN200810215404A CN101404045A CN 101404045 A CN101404045 A CN 101404045A CN A2008102154047 A CNA2008102154047 A CN A2008102154047A CN 200810215404 A CN200810215404 A CN 200810215404A CN 101404045 A CN101404045 A CN 101404045A
Authority
CN
China
Prior art keywords
idfa
minimum
state
counter
tree
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2008102154047A
Other languages
English (en)
Other versions
CN101404045B (zh
Inventor
A·格普塔
K·L·麦克米伦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cadence Design Systems Inc
Original Assignee
Cadence Design Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cadence Design Systems Inc filed Critical Cadence Design Systems Inc
Publication of CN101404045A publication Critical patent/CN101404045A/zh
Application granted granted Critical
Publication of CN101404045B publication Critical patent/CN101404045B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Abstract

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

Description

为组合验证生成自动化假设的方法、系统和计算机程序产品
背景技术
在硬件和软件系统的环境下,软件测试已经被广泛用于调试系统或演示出系统展现某些特性。但是,软件测试自身经常无法证明系统没有特定类型的缺陷。而且其自身也无法演示出系统展现特定特性。另一方面,形式验证能够通过使用数学方法充分证明或反驳软件和硬件系统的正确性,并由此证明感兴趣的系统不具有特定缺陷,或展现特定特性。
更具体地,通过使用抽象的数学模型,形式验证试图证明感兴趣的系统满足特定要求,或者所述系统能够展现特定特性或行为。也就是说,对这样的系统的形式验证是通过提供对这些系统的抽象数学模型的形式证明来执行的。经常被用来对系统进行建模的数学对象的一些典型示例是有限状态机和各种自动机。
通常有两种方法来进行形式验证处理。一种方法通常被称作模型检验。模型检验通常包括有限数学模型的系统限举探索,并且通过探索模型的所有状态和转换对感兴趣的系统进行验证。模型检验通常还借助一些抽象技术以避免不得不考虑系统中的每个单独状态,从而减少计算时间。
另一种方法是逻辑推理,其包括涉及特定定理证明过程的、与系统相关的数学推理的形式版本。所要验证的项目通常以某些形式的时序逻辑表示,诸如线性时序逻辑或计算树逻辑。后面的这种逻辑推理方法的缺点在于逻辑推理方法通常是部分自动化的,并且其效率和生存力可能取决于用户对感兴趣的系统的认识。
由于逻辑推理方法的各种局限和缺陷,模型检验已经成为被广泛接受的、用于对硬件和软件系统的正确性进行形式验证的技术。该技术的广泛应用的一个主要障碍是由于现实世界的系统的复杂度增加而引起的状态爆炸(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 > M 1 < A >
< A > M 2 < P > < true > M 1 | | M 2 < P > - - - ( 1 )
以上推理规则规定可以通过识别假设A在M上验证P以使得:在所有情况下A在M1上成立,并且在满足A的任意情况下M2满足P。在语言-理论框架中,通过有限自动机对作为正则语言的处理进行建模、指定。处理组合是语言的交集,并且在处理与L(:P)的交集为空时,处理满足特性P。由此,以上推理规则可被写为:
L ( M 1 ) &SubsetEqual; L ( A )
L ( A ) &cap; L ( M 2 ) &cap; L ( &Not; P ) = &phi; L ( M 1 ) &cap; L ( M 2 &prime; ) &cap; L ( &Not; P ) = &phi; - - - ( 2 )
所述方法和系统然后指定L(M2)和L(:P)的交集为M2′。于是,构建假设-保证中项(argument)的问题被归结为寻找分离L(M1)和L(M2′)的自动机A,其中L(A)接受L(M1)中的所有串,但是拒绝L(M2′)中的所有串。
清楚的是,一个目标是寻找具有尽可能少的状态的自动机A以使检验假设-保证规则的前项(antecedent)时的状态爆炸问题最小化。
对于确定性自动机,寻找最小状态分离自动机的问题是NP完全问题。可简化为显示为NP完全的、寻找不完全确定性有限自动机(IDFA)的最小状态实施方式的问题。为了避免这种复杂度,提出了一种基于主动学习正则语言的L*方法的变型的多项式时间近似方法。这种方法的主要缺陷在于没有近似边界;在最差情况下,该方法会返回平凡解L(M1)作为分离语言,并且由此没有在状态空间减小方面提供好处,这种好处通过简单地使M1最小化是无法得到的。实际上,在本发明一些实施例中已考虑的针对硬件验证问题的一些实验中,该方法对于任意基准(benchmark)问题无法得到状态减少。
所公开的数学模型正好解决了最小分离自动机问题。由于在M1和M2′被符号化表示时,整体验证问题是PSPACE完全问题,所以没有理由要求在多项式时间中解决寻找中间断言这一子问题。此外,假设-保证推理的目的是得到具有与|M1|+|M2′|而不是|M1|×|M2′|成比例的复杂度的验证过程。如果实现了这一点,倘若A小的话,则整体复杂度为|A|的指数级就不会有问题。
考虑到这一基本原理,本发明的一些实施例提出了针对最小分离自动机问题的精确方法,其适于硬件验证的假设-保证推理。本发明的一些实施例对于IDFA最小化问题采用基于采样的方法。这种方法反复生成L(M1)和L(M2′)中的样本串,在每个步骤计算与样本集相一致的最小自动机。寻找与标注串的集合相一致的最小自动机本身是一个NP完全问题。于是,本发明的一些实施例通过使用布尔可满足性(SAT)解算器来解决该问题。使用采样方法是因为用于解决IDFA最小化问题的标准技术要求明确的状态表示,这对于硬件验证是不实际的。
对于硬件应用而言,还必须考虑字母表是连接M1和M2的布尔信号的数目的指数级这一事实。在基于L*的方法中也观察到了这种困难,其中查询的数目与字母表的大小成比例。本发明的一些实施例通过在部分字母表上学习自动机并且使用决策树学习方法对全字母表进行概括来解决这一问题。
使用一组合成硬件基准,本发明的一些实施例示出了这种方法在近似L*方法没有产生减少的情况下产生精确的最小中间断言是有效的。在一些情况下,与使用最新技术水平的方法的直接模型检验相比,这明显减少了整体验证时间。
A.确定性有限自动机(DFA)
定义1确定性有限自动机(DFA)M是一个五元组(S,∑,s0,δ,F),其中:(1)S是有限状态集,(2)∑是有限字母表,(3)δ:S×∑→S是转换函数,(4)s0∈S是初始状态,以及(5) F &SubsetEqual; S 是接受状态集或最终状态集。注意,F可以为空集。
定义2不完全确定性有限自动机(IDFA)M是一个六元组(S,∑,s0,δ,F,R),其中:(1)S是有限状态集,(2)∑是有限字母表,(3)δ:S×∑→S是部分转换函数,(4)s0∈S是初始状态,(5) F &SubsetEqual; S 是接受状态集,以及(6) R &SubsetEqual; S 是拒绝状态集。
直观地,IDFA是不完全的,因为一些状态可能不具有对于完全字母表的外出转换,并且一些状态既不接受也不拒绝。如果没有始自状态s的在符号a上的转换,则δ(s,a)=⊥。对于DFA和IDFA二者而言,转换函数δ可以以通常方式扩展以应用于串。也就是说,如果π∈∑*且a∈∑,则在δ(s,a)≠⊥时δ(s,πa)=δ(δ(s,π),a),否则δ(s,πa)=⊥。
如果δ(s0,s)∈F,则DFAM接受串s,否则s被M拒绝。如果δ(q0,s)∈F,则IDFA接受串s。如果δ(q0,s)∈R,则串s被IDFAM拒绝。
给定两种语言 L 1 , L 2 &SubsetEqual; &Sigma; * , DFA或IDFA在接受L1中的所有串并拒绝L2中的所有串时将L1和L2分离。用于L1和L2的最小分离自动机(MSA)是分离L1和L2的具有最小数量的状态的自动机。
B.L*方法
出于比较的目的,首先描述用于学习分离自动机的基于L*的近似方法。在L*方法中,学习者通过向教师提出查询来推断未知的正则语言L的最小DFAA。在成员关系查询中,学习者提供串π,并且如果π∈L则教师回复是,否则回复否。在等价查询中,学习者提出自动机A,并且如果L(A)=L则教师回复是,否则提供反例。该反例可以为正(即,L\L(A)中的串)或者为负(即L(A)\L中的串)。学习者保证在多个大小为A的查询多项式中发现A的方法对于本领域技术人员是已知的。
Cobleigh方法对该过程略微进行了修改以学习用于两种语言L1和L2的分离自动机。这与L*方法的区别仅在于教师所提供的响应。在等价查询的情况下,如果A是用于L1和L2的分离自动机,则教师回复是。否则,教师提供作为L1\L(A)中的串的正的反例或者作为L2∩L(A)中的串的负的反例。对于关于串π的成员关系查询,如果π∈L1则教师回复是,并且如果π∈L2则回复否。如果π即不在L1中也不在L2中,则选择是任意的。由于教师并不知晓最小分离自动机,它不能够提供正确的答案,所以简单地回答否。因此,实际上,教师请求学习者学习L1,但是愿意接受分离L1和L2的任意猜测。使用用于学习者的Angluin方法,能够示出所学习的分离自动机A没有较用于L1的最小自动机更多的状态。然而,这会任意大于最小分离自动机。
在Angluin的原始方法中,查询的数目是大小为A的多项式,并且具体地,等价查询的数目最多为A中的状态的数目。在假设-保证应用中,L1=L(M1)且L2=L(M2 ′)。对于硬件验证而言,M1和M2 ′是符号化表示的非确定性有限自动机(NFA)(非确定性是由隐藏的输入以及用于:P的自动机的构建引起的)。因此答复成员关系查询是NP完全问题,其实质上是有界的模型检验问题,而答复等价查询是PSPACE完全问题,其是符号化模型检验问题。这样,所述方法的执行时间实际上是简单指数级的。
C.精确求解最小分离自动机问题
为了找到两种语言L1和L2的精确MSA,在一些实施例中将遵循一般的用于使IDFA最小化的Pena和Oliveira方法。这是仅使用等价查询的学习方法。这依赖于能够计算将串的两个有限集进行分离的最小DFA的子程序。虽然Pena和Oliveira方法局限于有限状态机,但是该技术能够被应用于具有正则分离算子(regular separator)的任何语言L1和L2,即使L1和L2本身并不是正则的。
处理1中示出了所述过程的整体流程。保持样本串的两个集合S1∈L1和S2∈L2。通过(使用下述过程)计算分离S1和S2的最小DFAA开始主循环。接着学习者对A执行等价查询。如果A分离L1和L2,则该过程终止。否则,从教师处获得反例串π。如果π∈L1并且因此 &pi; &NotElement; L ( A ) , 则π被添加到S1,否则π被添加到S2。重复该过程,直至等价查询成功。在以下的方法中,首先测试负反例,然后测试正反例。但是该顺序是任意的,并且实际上可以对于每个查询随机选择该顺序以避免使结果偏向于一种语言。
可以使用模型检验器来实现该过程中的教师。也就是说,检验L1∈L(A)和L(A)∩L2=φ是模型检验问题。在该应用中,L1和L2是符号化表示的NFA的语言,并且将使用符号化模型检验方法来执行所述检验。要注意,L(A)中的测试包容性(containment)要求对A进行补足,但是由于A是确定性的,所以这是简单的。
定理1对于有限的∑,令 L 1 , L 2 &SubsetEqual; &Sigma; * . 如果L1和L2具有正则分离算子,则处理1终止并输出L1和L2的最小分离自动机。
证明令A′为具有k个状态的、L1和L2的最小状态分离自动机。由于S1∈L1且S2∈L2,得出A′也是S1和S2的分离自动机。因此,A具有不多于k个状态(因为它是S1和S2的最小分离自动机)。因此,如果所述过程终止,则A是L1和L2的最小分离自动机。此外,在具有k个状态的限的∑上具有有限的多个DFA。在每次重复中,一个这样的自动机作为S1和S2的分离算子而被排除。因此,所述过程必然终止。
现在所剩下的仅仅是找到一种计算有限语言S1和S2的最小分离自动机的方法。该问题已经被广泛研究,并且已知是NP完全问题。
定义3当关系 { ( s 1 , s 2 ) &Element; S 2 | &Exists; a , &delta; ( s 1 , a ) = s 2 } 是以s0为根的有向树时,IDFAM=(S,∑,s0,δ,F,R)是树状的。
给定任意两个不相交的串集S1和S2,构建接受S1并拒绝S2的树状IDFA并将其称为TREESEP(S1,S2)。
定义4令 S 1 , S 2 &SubsetEqual; &Sigma; * 是不相交的有限语言。用于S1和S2的树状分离算子TREESEP(S1,S2)是树状DFA(S,∑,s0,δ,F,R),其中S是S1∪S2的前缀的集合,s0是空串,F=S1且R=S2,并且如果πa∈S则δ(π,a)=πa,否则为⊥。
Oliveira和Silva方法示出,分离S1和S2的每个IDFAA与TREESEP(S1,S2)是同态的,并且该方法将在后面的部分中进行定义。因此,要寻找k个状态的分离自动机A,本发明的一些实施例仅需猜测从TREESEP(S1,S2)的状态到A的状态的映射并且据此构建A。该处理被称作折叠(folding)。
定义5令M=(S,∑,s0,δ,F,R)和M′=(S′,∑,s0′,δ′,F′,R′)为字母表∑上的两个IDFA。在以下情况下,映射φ:s1→S’是M到M′上的折叠:
a.φ(s0)=s0
b.对于所有s∈S,a∈∑,如果δ(s,a)≠⊥,则δ′(φ(s),a)=φ(δ(s,a)),
c.对于所有s∈F,φ(s)∈F′以及
d.对于所有s∈R,φ(s)∈R′。
以下定理说明了S1和S2的每个分离IDFA能作为树状自动机TREESEP(S1,S2)而获得。通过对树的归纳,容易获得所述映射。
定理2(OLIVEIRA和SILVA)令T=(S,∑,s0,δ,F,R)为树状IDFA,其接受集合S1并拒绝集合S2。于是,当且仅当存在从T到A的折叠∑时,∑上的IDFAA是S1和S2的分离自动机。
接下来所示出的是如何通过划分树T的状态来构建树T的折叠。如果Γ是集合S的划分,则包含S的元素s的Γ的元素将被表示为[s]Γ
定义6令M=(S,∑,s0,δ,F,R)为∑上的IDFA。M的相容划分是S的划分Γ,从而
a.对于所有s,t∈S,a∈∑,如果δ(s,a)≠⊥且δ(t,a)≠⊥且[s]Γ=[t]Γ,则[δ(s,a)]Γ=[δ(t,a)]Γ,以及
b.对于所有状态s∈F且t∈R,[s]Γ≠[t]Γ
定义7令M=(S,∑,s0,δ,F,R)为IDFA并且令Γ为S的相容划分。商M/Γ是IDFA(Γ,∑,s0′,δ′,A′,R′),以使得
a.s0′=[s0]Γ
c.F′={[s]Γ|s∈F},以及
d.R′={[s]Γ|s∈R}。
在上面,
Figure A20081021540400122
表示包含⊥、T以及S的元素的格子中的最小上界。相容性保证了所述最小上界决不会为T。
定理3令T为接受集合S1并拒绝集合S2的树状IDFA。在T具有基数(cardinality)为k的相容划分Γ时,存在精确分离S1和S2的、k个状态的IDFA。此外,T/Γ分离S1和S2
证明设Γ为S(T)的相容划分。可得出将s映射到[s]Γ的函数φ是T到T/Γ上的折叠。这样,通过定理2,T/Γ分离S1和S2,并且此外其具有k个状态。相反,设A是分离S1和S2的具有k个状态的IDFA。通过定理2,存在从T到A的折叠φ。根据折叠的定义,由φ所归纳的划分是相容的,并且具有(最多)k个状态。
根据该定理,要为两个不相交的有限集S1和S2寻找最小分离自动机,仅需要首先构建相应的树状自动机T,并且接着可获得S(T)的最小相容划分Γ。于是,最小自动机A是T/Γ。
在一些实施例中,使用存在k个状态的相容划分的问题的以下编码,可以使用SAT解算器来寻找最小划分。令
Figure A20081021540400123
这是枚举划分所需的位数。对于每个状态s∈S(T),引入布尔变量的矢量 v s &OverBar; = ( v s 0 . . . v s n - 1 ) . 这表示对其指定了s的划分的数目以及商自动机的相应状态。接着构建一组保证所述划分相容的布尔约束。首先,对于每个s,必须存在vs<k(表示为多于vs的位数)。接着,对于具有符号a上的外出转换的每对状态s和t,存在约束 v s &OverBar; &DoubleRightArrow; v t &OverBar; &DoubleRightArrow; v &OverBar; &delta; ( s , a ) = v &OverBar; &delta; ( t , a ) . 也就是说,所述划分必须遵循转换关系。最后,对于每对状态s∈F和t∈R,可获得约束vs≠vt。也就是说,拒绝和接受状态不能被放在相同划分中。该组约束被称作SatEnc(T)。当划分Γ={Γ0,...,Γk-1}是T的相容划分时,其中Γi={s∈S|vs=i},真值指派(truth assignment)ψ正好满足SatEnc(T)。因此,可从满足的分配中提取相容划分。
能够通过处理2来找到有限集S1和S2的最小分离自动机。要注意,商自动机T/Γ是IDFA。T/Γ可以通过以任意选择方式(例如通过使所有错过的转换转到拒绝状态)完成部分转换函数δ,产生分离S1和S2的DFA而被转换为DFA。这完成了本发明一些实施例中的用于计算两种语言L1和L2的MSA的过程。
使用SAT编码SAMPLEMSA(S1,S2),计算有限语言的MSA的处理2
1.令T=TREESEP(S1,S2);
2.令k=1;
3.while(1)do
4. if SATENC(T)可满足then
5.          令ψ为SatEnc(T)的满足指派;
6.          令Γ={{s∈S(T)|vs=i}|i∈0...k-1};
7.          令A=T/Γ;
8.          以某方式将δ(A)扩展成全函数;
9.          return DFAA
10.  令k=k+1;
要找到假设-保证推理的中间断言,仅需使用处理1计算L(M1)和L(M2′)的MSA。
处理1全过程
a.AsGr(L1,L2)
1. S1={};S2={};
2.    while(1)do
3.     令A为S1和S2的MSA;
4.  if L1∈L(A)then
5.     if L(A)∩L2=φthen
6.        return true;(A分离L1和L2,特性成立)
7.    else
8.        令 &pi; &SubsetEqual; L 2 &pi; &SubsetEqual; L ( A ) ; (负反例)
9.        if &pi; &SubsetEqual; L 1 then
10.           return false;(L1和L2不相交,特性不成立)
11.       else
12.            S1=S1∪{π};
13.    else
14.        令 &pi; &SubsetEqual; L 1 &pi; &NotElement; A ; (正反例)
15.        ifπ∈L2then
16.          return false;(L1和L2不相交,特性不成立)
17.        else
18.             S2=S2∪{π};
本发明的一些实施例中的方法现在考虑该过程的整体复杂度。可假设M1和M2′分别被符号化表示为具有文本大小|M1|和|M2′|的布尔电路。于是,这些机器的状态的数目分别为O(2|M1|)和
Figure A20081021540400146
令|A|为MSA的文本大小。要注意,这与状态的数目以及∑的大小都成比例。主循环的每次反复包括求解SAT问题SATENC(T)和求解两个模型检验问题。在最差情况下,能够通过枚举给定大小的所有可能的DFA来求解SAT问题,由此SAT问题为O(2|A|)。所述模型检验问题为O(|A|×2|M1|)和
Figure A20081021540400147
由于每次反复排除一个自动机,所以反复的数量最多为2|A|,即可能的自动机的数目。因此,总运行时间为 O ( 2 | A | ( 2 | A | + | A | &times; ( 2 | M 1 | + 2 | M 2 &prime; | ) ) ) 。这是|A|、|M1|和|M2′|的简单指数级,但是显然,不需要产生计算M1和M2的积的成本。固定A的大小,可示出该方法所导致的运行时间为O(2|M1|+2|M2′|)。
不幸的是,由于最差情况下L(A)=L(M1),所以|A|在最差情况下为|M1|的指数级。这意味着整体复杂度是输入大小的双倍指数级。对于PSPACE完全问题应用双倍指数级的方法似乎是不合逻辑的。然而,实际中可以观察到,如果存在小的中间断言,则该方法会比简单指数级的方法更高效。然而,在字母表很大的情况下,可能需要找到一些对转换函数进行紧凑编码的方式。
D.利用决策树学习的概括
如之前所提及的,在硬件验证中,字母表的大小为在M1和M2之间传递的布尔信号的数目的指数级。这意味着实际上所获得的L(M1)和L(M2 ′)的样本仅能够包含字母表符号的小写部分。这样,所学到的IDFAA也将包含仅对于∑的一小部分的转换。因此,可能需要找到以合理的方式在全字母表上从该IDFA到DFA进行概括的一些方式。这不是一个良好定义的问题。在某种意义下,可以执行应用奥卡姆剃刀(Occam’s razor),推断与IDFA的划分转换函数相一致的“最简单的”总转换函数。可能有许多种这样做的方式。例如,如果从符号a上的给定状态开始的转换在IDFA中未定义,则根据一些距离测定,该转换可以被映射至最接近的被定义符号的下一状态。
这里所采用的方法是使用决策树学习方法来试图找到作为决策树的部分转换函数的最简概括。给定字母表符号,决策树基于定义所述字母表的布尔变量的值而分支,并且在其叶子处给出自动机的下一状态。在一些实施例中,可能希望找到表示与IDFA的部分转换函数相一致的总转换函数的最简决策树。换一种方式说,任意状态的转换函数可以被视为分类器,根据它们所转换到的状态对字母表符号进行分类。部分转换函数可被认为是提供该分类的“样本”,并且在一些实施例中可能希望找到与这些样本相一致的最简决策树。直观地,可能期望中间断言仅取决于M1和M2之间交换的信号的最小集合,因此在一些实施例中可能希望使所述过程偏向于取决于少数信号的转换函数。为了实现这一点,在一些实施例中,可以使用ID3方法从示例中学习决策树。
这使我们可以在处理2的第8行基于迄今为止所看到的字母表的样本将IDFA概括为符号化表示的DFA,该DFA表示完全分离的语言应该是什么样的猜测。如果该猜测不正确,则教师会产生反驳它的反例,并且由此改进下一个猜测。
II.本发明的说明性实施例
参见图1B,其例示了本发明一些实施例中所实现的用于为电子电路的组合验证生成自动化假设的系统和方法的一般流程的框图。在本发明的一些实施例中,在102,所述方法首先识别两个样本集S1和S2。在本发明的另一些实施例中还识别要验证的特性。在104,所述方法和系统接着反复计算最小分离不完全确定性有限自动机(IDFA)。在112,所述方法和系统对之前计算出的IDFA进行概括并且输出完全DFA,并进行至108。在一个实施例中,所述方法和系统在108进行确定所述不完全确定性有限自动机A是否分离了L1和L2
如果在108确定了所述不完全确定性有限自动机A分离了L1和L2,则反复过程终止并进行至114。否则,所述方法和系统重复操作104-108,直至所述不完全确定性有限自动机A被确定为精确分离L1和L2。在确定了A是否分离L1和L2的操作之后,在114,所述方法和系统然后在有形的计算机可读介质上存储所述概括操作的结果。
参见图2,其例示了关于反复计算最小分离的不完全确定性有限自动机(IDFA)的操作的更多细节。在202,所述方法和系统构建树状的不完全确定性有限自动机(IDFA)T。所述方法和系统然后在204构建IDFA T的折叠。在206,所述方法和系统然后确定表示不完全确定性有限自动机T的状态数的基数k的相容划分Γ。同时,所述方法和系统确定商T/Γ。根据上述数学模型,商T/Γ精确分离两个样本集S1和S2
参见图3,其例示了在108确定A是否分离了L1和L2的操作的进一步细节。在不完全确定性有限自动机A被确定为分离了L1和L2的情况下,反复过程终止,并且所述方法和系统在310进行至操作110。在不完全确定性有限自动机A被确定为未分离L1和L2的情况下,所述方法和系统在302获得反例π。在一个实施例中,所述方法和系统例如从教师处获得反例π。在获得反例π之后,所述方法和系统然后在304确定反例π是否属于L1。在308,在反例π被确定属于L1的情况下,所述方法和系统于是将所述反例π添加到第一示例本集S1。在306,在反例π被确定不属于L1的情况下,所述方法和系统于是将所述反例π添加到第二示例集S2
参见图4,其例示了206的确定相容划分Γ的操作的进一步细节。在402,所述方法和系统首先定义枚举划分所需的位数m。在一个实施例中,Γ具有基数k,其表示S1和S2上的树状IDFA的状态数。在另一个实施例中,m=log2k。在404,所述方法和系统定义布尔变量的矢量,所述布尔变量表示分配了状态s的划分的数量。在406,所述方法和系统构建保证所述划分相容的一组布尔约束。
参见图5,其例示了保证划分相容的布尔约束的进一步细节。首先,502示出了对于每个状态s,当以vs个位表示时必然存在vs<k。此外,504示出了对于具有符号a上的外出转换的每对状态(s,t),存在约束vs=v1=vδ(s,a)=vδ(t,a)。也就是说,划分必须遵循转换关系。此外,506示出了对于每对状态s∈F,t∈R,存在约束vs≠vt。换句话说,约束506要求拒绝和接受状态不能够被置于同一划分内。
这些约束502、504和506然后被用于求解矢量布尔变量 v s = ( v s 0 . . . , v s m - 1 ) . 真值指派ψ在划分Γ={Γ0,...,Γk-1}为T的相容划分时精确满足这些约束,其中Γ1={s∈S|vs=i}。因此,可以从满足的指派中提取相容划分。
参见图6,其例示了从之前计算出的IDFA概括完全DFA的操作的进一步细节。在将计算出的不完全确定性有限自动机(IDFA)A概括为完全确定性有限自动机(DFA)的操作112终止之后,在本发明的一些实施例中,所述方法和系统可进行至602以通过完成部分转换函数δ来将之前计算出的IDFA概括为DFA。另选地,在604,在本发明的一些实施例中,所述方法和系统可进行至604以确定最简决策树,该最简决策树表示与之前计算出的IDFA的部分转换函数相一致的总转换函数。
在本发明的一些实施例中,任意状态的转换函数由此可被视为根据字母表符号要转换到的状态而对字母表符号进行分类的分类器(606)。在本发明的一些实施例中,所述部分转换函数可被视为提供这种特定类型的分类的“样本”以帮助找到与所提供的这些样本相一致的最简决策树(608)。此外,给定字母表符号,所述决策树基于改进所述字母表的布尔变量的值而分支(610),并且在其叶子处给出自动机的下一状态(612)。由于直观上期望中间断言仅依赖于在软件和硬件系统的两个组件M1和M2之间交互的一个小的信号集,所以该过程可偏向于依赖于少数信号的转换函数。在本发明的一些实施例中,可以使用ID3方法从所提供的示例中学习决策树以以实现该目标(614)。
参见图7,其例示了上面在处理1中示出的整体过程的框图。在702,所述方法和系统首先识别两个样本集S1和S2。在704,所述方法和系统进一步识别用于这两个样本集S1和S2的最小分离自动机A。在706,所述方法和系统然后确定是否 L 1 &SubsetEqual; L ( A ) . 在708,在确定了 L 1 &SubsetEqual; L ( A ) 的情况下,所述方法进一步确定是否L(A)∩L2=φ。在718,在确定了L(A)∩L2=φ的情况下,所述方法和系统返回真(true)。也就是说,最小分离自动机A分离了L1和L2,并且特性p成立。如果确定了L(A)∩L2≠φ,则所述方法和系统在710识别反例π,其中π∈L2&π∈L(A)。所述方法然后在712确定是否反例π∈L1。如果反例π∈L1,则所述方法和系统在714返回假(false)。也就是说,L1和L2并非不相交并且p不成立。如果确定了 &pi; &NotElement; L 1 , 则所述方法和系统在716将反例π添加到S1
如果在706确定了 L 1 &SubsetEqual; L ( A ) 为假,则所述方法和系统然后在720识别满足π∈L1 &pi; &NotElement; A 的反例π。所述方法和系统然后在722确定是否π∈L2。如果确定了π∈L2,则所述方法和系统然后在726返回假。也就是说,L1和L2并非不相交并且p不成立。另一方面,如果确定了 &pi; &NotElement; L 2 , 则所述方法和系统然后在724将π添加到S2。在操作714、716、718、724和726之后,所述方法和系统然后在728确定等价查询是否成功,并且如果等价查询成功则在730终止该反复处理。另选地,在728确定了等价查询失败的情况下,在732,所述方法和系统返回702。
参见图8,其例示了本发明的另一实施例。在802,所述方法和系统开始于反复生成的样本集。在804,所述方法和系统调用学习方法来生成完全的DFAA(806)。在808,所述方法和系统确定是否 M 2 &SubsetEqual; A . 在另一实施例中, M 2 &SubsetEqual; A 的确定构成模型检验调用。
在确定了 M 2 &SubsetEqual; A 的确定失败时,在810,所述方法和系统进一步确定是否 s &Element; M 1 &cap; &Not; P . 在另一实施例中, s &Element; M 1 &cap; &Not; P 的确定构成有界的模型检验调用。如果 s &Element; M 1 &cap; &Not; P 的确定返回假,则在812报告有缺陷(bug)。另选地,如果 s &Element; M 1 &cap; &Not; P 的确定返回真,则所述方法和系统然后在820返回并将正样本添加到首先识别的样本集中。
在确定了 M 2 &SubsetEqual; A 的确定成立时,在814,所述方法和系统进一步确定是否 M 1 &cap; &Not; P &cap; A = &phi; . 在另一实施例中, M 1 &cap; &Not; P &cap; A = &phi; 的确定构成模型检验调用。如果 M 1 &cap; &Not; P &cap; A = &phi; 的确定在814返回真,则在820特性p成立。如果 M 1 &cap; &Not; P &cap; A = &phi; 的确定在814返回假,则所述方法和系统在816进一步确定是否样本s∈M2。在另一实施例中,是否s∈M2的确定构成有界的模型检验调用。在816确定了s∈M2的情况下,所述方法和系统报告有缺陷或者特性p不成立(818)。在816确定了s∈M2失败的情况下,所述方法和系统在820返回并将负样本添加到首先识别的样本集中。
参见图9,其例示了包括2位移位寄存器的示例性硬件电路。数据从x1_1、x2_1移位成x1_8,x2_8。xJ1和xJ2代表自由输入。仅当xJ1为1时,更新x1_7的值。类似地,仅当xJ2为1时,更新x2_7的值。最初,所有寄存器被设置为0。要证明的特性规定:仅在x1_1和x2_1过去曾经为1的情况下,x1_8和x2_8为1。对于假设保证的应用而言,根据本发明的一个实施例,该设计可被分解为M1和M2
参见图10,其例示了本发明一个实施例的方法在图9所示的电路上生成的假设自动机。应用本发明的一个实施例中的方法,学习三状态自动机,其是能够对所述特性进行验证的最小假设自动机。
本发明的一些实施例能够在Cadence SMV(符号化模型验证器)或其它符号化模型验证器上实施。在本发明的一个实施例中,用户指定将软件和硬件系统分解为两个组件。Cadence SMV可被用作基于BDD的模型检验器来验证假设,并且还被用作增量式BMC引擎来检验反例。SAT解算器也被用于以上实施方式中。还开发了ID3方法来生成决策树。还可以使用R.L.Rivest和R.E.Schapire在“Inference of Finite Automata Using Homing Sequences”,STOC’89:Proceedings of the Twenty-First Annual ACM symposium on Theory ofComputing,pp.411-420所提出的优化版本来实现Cobleigh所提出的基于L*的方法。
本领域普通技术人员将理解,本发明的一些实施例可以以其它特定形式来实现而不会背离其精神和实质特征。因此,这里所公开的实施例在所有方面被认为是说明性而非限制性的。本发明一些实施例的范围由所附权利要求而不是以上描述来指定,并且在其等同物的范围和意义内所进行的所有改变均包含于其中。
系统体系结构概述
图11是适于实现本发明实施例的说明性计算系统1400的框图。计算机系统1400包括总线1402或用于传输信息的其它通信机制,其将诸如处理器1404、系统内存1406(例如,RAM)、静态存储设备1408(例如,ROM)、盘驱动器1410(例如,磁或光的盘驱动器)、通信接口1412(例如,调制解调器或以太网卡)、显示器1414(例如,CRT或LCD)、输入设备1416(例如,键盘)和光标控制器1418(例如,鼠标或轨迹球)的设备和子系统互连。
根据本发明的一个实施例,计算机系统1400通过处理器1404执行系统存储器1406中所包含的一个或多个指令的一个或多个序列来执行特定操作。这些指令可从另一个计算机可读/可用介质(诸如静态存储设备1408或盘驱动器1410)读入系统内存1406中。在另选实施例中,可以使用硬接线电路替代用于实现本发明的一些实施例的软件指令或与其结合使用。
这里所使用的术语“计算机可读介质”或“计算机可用介质”是指参与向处理器1404提供用于执行的指令的任意介质。这样的介质可采用许多形式,包括但不限于非易失性介质和易失性介质。例如,非易失性介质包括光盘或磁盘,诸如盘驱动器1410。易失性介质包括动态存储器,诸如系统内存1406。
例如,计算机可读介质的一般形式包括软盘、硬盘、磁带、任意其它磁介质、CD-ROM、任意其它光介质、穿孔卡、纸带、具有孔图案的任意其它物理介质、RAM、PROM、EPROM、FLASH-EPROM、任意其它存储器芯片或卡带、或者计算机能够读取的任意其它介质。
在本发明的实施例中,用以实现本发明的指令序列是由单个计算机系统1400执行的。根据本发明的其它实施例,通过通信链路1420(例如,LAN、PSTN或无线网络)耦合的两个或更多个计算机系统1400可以彼此协同地执行用于实现本发明的指令序列。
计算机系统1400可通过通信链路1420和通信接口1412发送和接收消息、数据和指令,包括程序,即应用代码。所接收的程序代码可在被接收时由处理器1404执行和/或存储在盘驱动器1410或其它非易失性存储器中供以后执行。
在以上说明书中,已经参照本发明的具体实施例对本发明进行了描述。然而,显然可以在不背离本发明的较宽的精神和范围的情况下对其进行各种修改和变化。例如,以上处理流程是参照特定顺序的处理操作进行描述的。然而,所描述的许多处理操作的顺序可以有所变化而并不影响本发明的范围或操作。因此,说明书和附图应被认为是说明性而不是限制性的。

Claims (19)

1.一种用于为电子电路设计的组合验证生成自动化假设的方法,包括:
识别所述电子电路设计的行为的第一集合和第二集合;
基于行为的第一集合和第二集合,反复计算最小不完全确定性有限自动机(IDFA);
通过从所述最小IDFA进行概括而确定确定性有限自动机(DFA);和
在有形的计算机可读介质上存储确定DFA操作的结果。
2.如权利要求1所述的方法,其中,行为的第一集合S1满足 S 1 &SubsetEqual; L 1 , 并且行为的第二集合S2满足 S 2 &SubsetEqual; L 2 , 其中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与所述第一集合和第二集合上的所述树状IDFA是同态的,或者其中通过估计从所述第一集合和第二集合上的所述树状IDFA的多个状态到分离所述第一集合和第二集合的最小IDFA的其它多个状态的映射来执行构建折叠的操作。
12.如权利要求10所述的方法,其中,确定相容划分的操作包括:
定义枚举k个状态的划分所需的位的第一数目m;
定义布尔变量的矢量 v s &OverBar; = ( v s . . . 0 v s m - 1 ) , 其表示被分配了状态的划分的第二数目;和
构建保证所述划分相容的一个或多个布尔约束的一个集合。
13.如权利要求12所述的方法,其中m等于log2k,对于每个状态s,所述一个或多个布尔约束的集合包括vs<k,其中所述一个或多个布尔约束的集合包括按照划分观察转换关系,或者其中所述一个或多个布尔约束的集合包括在不同的划分中放置拒绝状态和拒绝。
14.如权利要求1所述的方法,其中,所述第一集合和第二集合是有限的。
15.如权利要求1所述的方法,其中,所述第一集合或第二集合中的样本构成所述电子电路设计中的电路组件的行为。
16.如权利要求1所述的方法,其中,通过从最小IDFA进行概括而确定DFA的操作包括:
确定最简决策树,所述最简决策树表示与所述最小IDFA的部分转换函数相一致的总转换函数。
17.如权利要求16所述的方法,其中所述总转换函数根据字母表符号所转换到的状态对字母表符号进行分类,所述总转换函数提供分类的样本来确定与所述样本相一致的最简决策树,确定最简决策树的操作通过使用ID3方法来执行,确定最简决策树的操作通过使用决策树学习方法来执行,所述最简决策树在用于定义所述DFA的字母表的布尔变量上分支,或者其中所述最简决策树的叶子指示所述DFA的下一状态。
18.一种包括计算机可用存储介质的计算机程序产品,所述计算机可用存储介质具有用来执行权利要求1至17中任一项的方法的可执行代码。
19.一种用于为电子组合验证生成自动化假设的系统,包括用于执行权利要求1至17中任一项的方法的装置。
CN200810215404.7A 2007-07-02 2008-07-02 为组合验证生成自动化假设的方法、系统和计算机程序产品 Expired - Fee Related CN101404045B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/772,792 2007-07-02
US11/772,792 US7685547B1 (en) 2007-07-02 2007-07-02 Method, system, and computer program product for generating automated assumption for compositional verification

Publications (2)

Publication Number Publication Date
CN101404045A true CN101404045A (zh) 2009-04-08
CN101404045B CN101404045B (zh) 2014-06-18

Family

ID=39811514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810215404.7A Expired - Fee Related CN101404045B (zh) 2007-07-02 2008-07-02 为组合验证生成自动化假设的方法、系统和计算机程序产品

Country Status (5)

Country Link
US (1) US7685547B1 (zh)
EP (1) EP2012245A1 (zh)
JP (1) JP5269511B2 (zh)
CN (1) CN101404045B (zh)
TW (1) TWI448914B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866372A (zh) * 2009-04-17 2010-10-20 新思科技有限公司 用于形式特性验证的假设的自动近似
CN102708223A (zh) * 2011-03-22 2012-10-03 通用汽车环球科技运作有限责任公司 定时自动机轨迹中的不可行的识别的有效源
CN103036739A (zh) * 2012-12-11 2013-04-10 首都师范大学 一种用于高可靠通信系统验证与性能分析的形式化方法
CN109791575A (zh) * 2016-05-24 2019-05-21 科特罗尔有限责任公司 一种应用于机电系统的自动化设计系统及方法
CN113075537A (zh) * 2019-07-01 2021-07-06 成都奥卡思微电科技有限公司 一种迭代式的形式验证断言空泛性强度的测试方法、存储介质和终端

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9372949B1 (en) * 2011-05-25 2016-06-21 Cadence Design Systems, Inc. Guided exploration of circuit design states
US8863292B2 (en) * 2011-12-07 2014-10-14 International Business Machines Corporation Interactive analysis of a security specification
US8881075B2 (en) 2013-03-04 2014-11-04 Atrenta, Inc. Method for measuring assertion density in a system of verifying integrated circuit design
CN103778051A (zh) * 2014-01-09 2014-05-07 安徽理工大学 基于l*算法的业务流程增量挖掘方法
US20150371140A1 (en) * 2014-06-24 2015-12-24 Microsoft Technology Licensing, Llc Minimizing Symbolic Finite Automata
US10169217B2 (en) 2016-04-06 2019-01-01 General Electric Company System and method for test generation from software specification models that contain nonlinear arithmetic constraints over real number ranges
US10929764B2 (en) * 2016-10-20 2021-02-23 Micron Technology, Inc. Boolean satisfiability
US10970449B2 (en) * 2017-09-20 2021-04-06 International Business Machines Corporation Learning framework for software-hardware model generation and verification

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446243B1 (en) * 1999-04-23 2002-09-03 Novas Software, Inc. Method for functional verification of VLSI circuit designs utilizing reusable functional blocks or intellectual property cores
US20020188916A1 (en) * 2001-06-06 2002-12-12 Hitachi, Ltd. Integrated circuit, integrated circuit design method and hardware description generation method to generate hardware behavior description of integrated circuit
US6687662B1 (en) * 1997-08-07 2004-02-03 Verisity Design, Inc. System and method for automated design verification
US20070028203A1 (en) * 2005-07-28 2007-02-01 Fujitsu Limited Apparatus and method for creating function verification description, and computer-readable recording medium in which program for creating function verification description is recorded

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04158480A (ja) * 1990-10-23 1992-06-01 Nec Corp 不完全指定順序回路最小化方法
JP3302218B2 (ja) * 1995-05-19 2002-07-15 富士通株式会社 プライム・コンパチブルによる有限状態機械の状態数最小化装置および方法
JP3600420B2 (ja) * 1997-02-28 2004-12-15 富士通株式会社 論理検証装置
US7711525B2 (en) * 2002-05-30 2010-05-04 Nec Corporation Efficient approaches for bounded model checking
US7685637B2 (en) * 2004-06-14 2010-03-23 Lionic Corporation System security approaches using sub-expression automata
US7216364B2 (en) * 2004-06-14 2007-05-08 Lionic Corporation System security approaches using state tables
US8392590B2 (en) * 2004-09-10 2013-03-05 Cavium, Inc. Deterministic finite automata (DFA) processing
US8301788B2 (en) * 2004-09-10 2012-10-30 Cavium, Inc. Deterministic finite automata (DFA) instruction

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687662B1 (en) * 1997-08-07 2004-02-03 Verisity Design, Inc. System and method for automated design verification
US6446243B1 (en) * 1999-04-23 2002-09-03 Novas Software, Inc. Method for functional verification of VLSI circuit designs utilizing reusable functional blocks or intellectual property cores
US20020188916A1 (en) * 2001-06-06 2002-12-12 Hitachi, Ltd. Integrated circuit, integrated circuit design method and hardware description generation method to generate hardware behavior description of integrated circuit
US20070028203A1 (en) * 2005-07-28 2007-02-01 Fujitsu Limited Apparatus and method for creating function verification description, and computer-readable recording medium in which program for creating function verification description is recorded

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JORGE M. PENA ET AL.: "A New Algorithm for Exact Reduction of Incompletely Specified Finite State Machines", 《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866372A (zh) * 2009-04-17 2010-10-20 新思科技有限公司 用于形式特性验证的假设的自动近似
CN101866372B (zh) * 2009-04-17 2014-07-02 新思科技有限公司 用于形式特性验证的假设的自动近似
CN102708223A (zh) * 2011-03-22 2012-10-03 通用汽车环球科技运作有限责任公司 定时自动机轨迹中的不可行的识别的有效源
CN102708223B (zh) * 2011-03-22 2015-01-14 通用汽车环球科技运作有限责任公司 定时自动机轨迹中的不可行的识别的有效源
CN103036739A (zh) * 2012-12-11 2013-04-10 首都师范大学 一种用于高可靠通信系统验证与性能分析的形式化方法
CN103036739B (zh) * 2012-12-11 2015-06-17 首都师范大学 一种用于高可靠通信系统验证与性能分析的形式化方法
CN109791575A (zh) * 2016-05-24 2019-05-21 科特罗尔有限责任公司 一种应用于机电系统的自动化设计系统及方法
CN113075537A (zh) * 2019-07-01 2021-07-06 成都奥卡思微电科技有限公司 一种迭代式的形式验证断言空泛性强度的测试方法、存储介质和终端

Also Published As

Publication number Publication date
US7685547B1 (en) 2010-03-23
TW200907735A (en) 2009-02-16
CN101404045B (zh) 2014-06-18
TWI448914B (zh) 2014-08-11
JP2009054147A (ja) 2009-03-12
EP2012245A1 (en) 2009-01-07
JP5269511B2 (ja) 2013-08-21

Similar Documents

Publication Publication Date Title
CN101404045B (zh) 为组合验证生成自动化假设的方法、系统和计算机程序产品
Liffiton et al. Fast, flexible MUS enumeration
Katoen Concepts, algorithms, and tools for model checking
Kim et al. HIVE: Evaluating the human interpretability of visual explanations
Parra et al. A methodology for the classification of quality of requirements using machine learning techniques
US7685082B1 (en) System and method for identifying, prioritizing and encapsulating errors in accounting data
Tappler et al. Time to learn–learning timed automata from tests
CN102609406B (zh) 学习装置、判断装置、学习方法和判断方法
Candaş et al. Automated identification of vagueness in the FIDIC silver book conditions of contract
CN112199913A (zh) 一种基于Coq的超大规模集成电路RTL漏洞形式化分析方法
Westhofen et al. Benchmarking software model checkers on automotive code
Sohier et al. Improving simulation specification with MBSE for better simulation validation and reuse
Samosir et al. Identifying Requirements Association Based on Class Diagram Using Semantic Similarity
Ipate Complete deterministic stream X-machine testing
US20210397545A1 (en) Method and System for Crowdsourced Proactive Testing of Log Classification Models
Benzmüller et al. Designing normative theories of ethical reasoning: Formal framework, methodology, and tool support
Braylan et al. A General Model for Aggregating Annotations Across Simple, Complex, and Multi-Object Annotation Tasks
EP3608786B1 (en) Systems and methods of requirements chaining and applications thereof
Singh et al. Detecting mistakes in a domain model
Creus et al. Automatic evaluation of context-free grammars (system description)
Sinha et al. An experimental evaluation of a higher-ordered-typed-functional specification-based test-generation technique
Reger et al. Testing a saturation-based theorem prover: Experiences and challenges
Baheri Exploring the role of simulator fidelity in the safety validation of learning‐enabled autonomous systems
Hagal et al. A framework for improving the process of discovering potential errors at the requirements engineering stage
Westergaard et al. Grade/CPN: A tool and temporal logic for testing colored Petri net models in teaching

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140618

Termination date: 20150702

EXPY Termination of patent right or utility model