CN100527137C - 扩展电路设计的递增验证以包含验证约束的方法和系统 - Google Patents

扩展电路设计的递增验证以包含验证约束的方法和系统 Download PDF

Info

Publication number
CN100527137C
CN100527137C CNB2006101603834A CN200610160383A CN100527137C CN 100527137 C CN100527137 C CN 100527137C CN B2006101603834 A CNB2006101603834 A CN B2006101603834A CN 200610160383 A CN200610160383 A CN 200610160383A CN 100527137 C CN100527137 C CN 100527137C
Authority
CN
China
Prior art keywords
net
constraint
checking
target
complex network
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.)
Expired - Fee Related
Application number
CNB2006101603834A
Other languages
English (en)
Other versions
CN1983289A (zh
Inventor
贾森·R·鲍姆加特纳
维里什·帕鲁西
哈里·莫尼
罗伯特·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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1983289A publication Critical patent/CN1983289A/zh
Application granted granted Critical
Publication of CN100527137C publication Critical patent/CN100527137C/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

扩展电路设计的递增验证以包含验证约束的方法和系统
技术领域
本发明涉及集成电路设计领域,具体来说涉及集成电路设计验证系统领域。
背景技术
在集成电路设计领域中,形式验证(formal verification)指的是严格证明设计满足其规范的处理。通常,验证问题的规范包括设计的基于网表(netlist)的表示和在指定条件下的指定网的一组预期值。作为示例,验证问题可以包括确定是否存在其中断言CHECKSTOP(检查停止)网(net)的状态,其中,断言的CHECKSTOP指示故障。使用形式验证,人们或者找到反例跟踪,或者证明不存在这样的跟踪,所述反例跟踪描述相对时间的网的一系列值,类似于仿真跟踪,导致断言CHECKSTOP网。
经常使用状态空间搜索算法来执行形式验证。这样的算法包括无界的和有界的穷举搜索。有界的穷举搜索试图找到可以从设计的初始状态起在N个时间步长中发生的CHECKSTOP的断言。无界的穷举算法增加N,直到没有遇到对于较小的N值未曾遇到的状态(被称为“定点”的条件)。如果在达到定点之前没有遇到从初始状态到冲突(violate)状态(其中断言CHECKSTOP的状态)的路径,则可以推断正确。
执行穷举状态空间搜索所需要的验证周期的数量随着状态保持元件或寄存器的数量而指数地增加。这个指数关系使得形式验证对于包含很大数量的状态保持元件的设计不实用。结果,设计验证工程师已经开发了用于简化形式验证任务的创新技术。两种这样的技术是递增验证和基于约束的验证。
递增验证是当修改现有的设计(旧设计)以建立新的设计时可应用的验证技术。递增验证是由重新使用对于旧设计执行的验证的结果的愿望推动的。在集成电路的设计中很普通的是,旧设计的网表与新设计的网表共享大致的相似性,因为设计改变经常影响在设计中相对小的百分比的网,特别是在设计周期的后期。当情况是这样时,通常验证新设计和旧设计共享共同的行为比“从零开始”验证新设计更容易。递增验证通过下述方式来利用这个事实:建立复合网表,所述复合网表包括旧的和新的设计的网表;建立一组目标,用于指示在旧和新设计之间在行为上的差别;并且验证这些复合目标没有一个可被断言。可以在下文中找到递增验证的另外的详细情况:共同待审和共同转让的美国专利申请Baumgartner et al.entitled Incremental,Assertion-BasedDesign Verification,U.S.patent application 10/782,673,filed February 19,2004,Publication No.20050188337,published August 25,2005(Baumgartner等,题目为“递增的、基于断言的设计验证”,美国专利申请10/782,673,2004年2月19日提交,公布号20050188337,2005年8月25日公布),其通过引用被并入在此(称为递增验证申请)。
基于约束的验证是这样的验证技术,其中,将约束施加到设计的一个或多个网,以将验证覆盖范围限制到设计的总的状态空间的子集。被施加到设计的约束通常反映不能或不允许在现场的设计的操作期间发生的条件。例如,可以仅仅对其中所述设计的数据输入表现出奇或偶的奇偶性的那些情况约束设计的验证。通过建立和监视用于指示指定约束的约束网而在验证期间强制约束。在一种实现中,仅仅对于其中所有的约束网为真(评估为“1”)的状态/周期执行验证。基于约束的验证反映这样的现实:在设计中的许多理论上可实现的状态不必形式验证,因为在操作中,那些状态被禁止发生。在下文中描述了基于约束的验证的实现:共同待审和共同转让的美国专利申请:Baumgartner et al.entitled Using Constraints In Design Verification,U.S.patentapplication No.11/236451,filed September 27,2005(Baumgartner等,题目为“在设计验证中使用约束”,美国专利申请号11/236451,2005年9月27日提交)。
不幸的是,在存在约束的情况下使用递增验证范例是一个难题,因为在设计之一(例如新设计)中的约束可能限制其他设计的评估。因为不正确地限制设计之一可能导致不正确的结果,诸如得出旧设计的验证结果可应用到新设计,在存在设计约束的情况下递增验证技术不是直接可转移的。将可期望实现用于组合递增和基于约束的验证的益处的方法、系统和软件。更具体地讲,将可期望对于已经使用约束验证的设计实现递增设计验证原理。
发明内容
通过如下方法,来实现上述目的:使用递增验证,向其中至少一个网表包括验证约束的设计的第二网表,应用使用设计的第一网表而获得的验证结果。所述方法包括:通过从所述第一网表解除一个或多个验证约束,建立修改的第一网表。所述修改的第一网表用于建立没有约束并且适合于确定在第一和第二网表之间的等效的复合网表。修改第一网表可以包括将修改的约束网加到第一网表,其中,在对应于所述验证约束的约束网为FALSE(假)的周期后发生的任何周期期间,被修改的约束网是FALSE。所修改的约束网控制验证目标的断言,以便防止当修改的约束网是FALSE时断言验证目标。第一网表可以包括多个验证约束和对应的多个约束网,在这种情况下,在其中任何约束网是FALSE的周期后发生的任何周期期间,所述修改的约束网是FALSE。所述方法还可以包括:在解除验证约束之前确定所述验证结果是这样的验证结果,其中,目标不被断言,并且在第二网表中的一组约束的任何一个的FALSE值暗示第一网表的一组约束的至少一个的FALSE值。作为响应,所述方法可以包括:通过从第二网表向复合网表中引入所有的约束组来建立复合网表。相反,所述方法还可以包括:在解除验证约束之前,确定验证结果是这样的验证结果,其中,目标被断言,并且在第一网表中的一组约束的任何一个的FALSE值暗示第二网表的一组约束的至少一个的FALSE值,在这种情况下,可通过从第一网表向复合网表中引入所有的约束组来建立复合网表。
附图说明
在阅读下面的详细说明并且参照附图时,本发明的其他目的和优点将会变得清楚,在附图中:
图1是用于实现设计验证方法的数据处理系统的方框图;
图2图解了用于确定在设计的第一和第二网表之间的等同的递增验证技术;
图3是用于面对验证约束强调递增验证的设计验证方法的流程图;
图4描述了包括验证目标和验证约束的网表;
图5描述了修改的网表,其中建立修改的验证约束,这是如下情形:如果验证约束曾经为FALSE(假),则修改的约束变为FALSE(假),并且保持FALSE(假);并且
图6描述了涵盖多个约束和多个目标的图5的网表的一般形式。
尽管本发明容易受到各种修改和替代形式的影响,但是其具体实施例通过举例而在附图中被示出,并且将在此详细被说明。然而,应当明白,在此提供的附图和详细说明不意欲将本发明限制于所公开的特定实施例,而是相反,本发明要涵盖落入如由权利要求所限定的本发明的精神和范围内的所有修改、等效和替代。
具体实施方式
描述一种用于扩展递增验证技术以包含受到验证约束的验证结果的方法。验证约束是在设计验证应用中使用的构造。验证约束是在设计的网表或其他模型中的特殊标注的门(gate)。如其名称所提示的那样,验证约束表示为了探索设计的状态空间而对验证工具集的自由度的限制。更具体地讲,验证约束防止验证应用探索任何“j”时间步长跟踪,其中,任何的一个或多个约束在所述“j”个时间步长的任何一个期间评估为“0”。约束的一个说明性示例如下:“如果特定电路的设计包括缓冲器并且所述缓冲器是满的,则设计的输入被约束以防止数据的新传送”。
验证系统和方法操作于集成电路设计的模型。在本公开中图解的模型是包括门(gate)和边沿(edge)的网表。边沿表示在门之间的互连,使得例如一条边沿将信源门(source gate)连接到信宿门(sink gate)。在本公开中的所涉及的实施例中,门落入四个宽功能类别之一,即恒定门、随机门、组合门和序列门。恒定门产生不随着时间而改变的逻辑电平。随机门(也被称为初始输入)可以独立于所有的其他门而在任何时间步长假定任意的逻辑电平。组合门是诸如与门之类的逻辑元件,序列门也被称为寄存器门或简称为寄存器。寄存器具有与其相关联的两个分量,即初始值函数和下一个状态函数。时间0的寄存器的值是初始值函数在时间0的值,而在时间“i+1”的寄存器的值等于在其下一个状态函数在时间“i”的值。
在一些实施例中,本发明被实现为具有设计验证功能的数据处理系统。参照图1,描述了按照本发明的适合于发现验证约束的数据处理系统100的所选择的元件(如参照图2-6在下文描述的那样)。在所描述的实施例中,系统100包括通用处理器102-1和102-2(在此一般地称为或统称为处理器102)。处理器的数量依实现而定,并且其他实施例可以具有更多或更少的处理器102。
处理器102共享对于高速系统总线104的访问。总线桥108在系统总线104和共享的外围总线110之间提供接口。如图1中所示的总线桥108还包括存储器控制功能,并且在系统总线104和系统存储器106之间提供接口。系统存储器106很可能是易失性存储介质,诸如相对大的DRAM元件阵列。外围总线110可以被实现为工业标准的外围总线,诸如PCI(外围组件接口)或PCI-X总线。
连接到外围总线110的盘控制器112提供了到硬盘114的接口。盘114可以存储由处理器102使用的数据和指令。在所描述的实施例中,在盘114上存储的指令包括按照本发明的操作系统130和验证应用120。操作系统130可以是市场上经销的操作系统,诸如基于Unix的操作系统、Linux操作系统或来自微软公司的Windows
Figure C200610160383D0010095414QIETU
系列操作系统。所描述的系统100的实施例可以包括由外围116表示的一个或多个附加的外围设备,外围116可以表示将系统100耦合到网络的网络通信设备(例如网络接口卡)、向系统100提供图形显示能力的图形适配器或若干其他公知的外围设备。
如在前面的段落中所提示的那样,验证应用120可以被实现为在计算机可读介质上存储的一组或一系列计算机可执行指令,用于验证设计满足其规范。所述指令可以被存储在永久存储介质上,诸如硬盘114、CD ROM(未描述)、软盘(未描述)、磁带(未描述)等。所述指令还可以被存储在易失性存储介质上,诸如数据处理系统100的高速缓冲存储器(未描述)或系统存储器106。
便利在基于约束的验证的环境中使用递增设计验证技术的设计验证方法的一个实施例被公开。如上所述,当新的设计是第一设计的修订版本时,使用递增验证来验证第二设计,第二设计通常被称为新设计,第一设计通常被称为旧设计。
在递增验证应用中公开的实现递增验证的方法是,将来自旧设计的网和来自新设计的对应网路由到异或门的输入。仅仅当旧的设计网或新的设计网不同时,断言异或门的输出。扩展这种概念,复合网表将包括旧的设计网表、新的设计网表和一组异或门。每个异或门将从在旧设计中的目标接收第一输入,并且从在新设计中的对应目标接收其第二输入。
通过建立复合目标(即异或门的输出)中没有一个可断言,可以结论性地证明可应用到旧设计的结果同等地可应用到新设计。通过识别在多数递增验证应用中不要求“完全”的异或等效的证明,如上所述的递增验证应用细化了这种概念。如果试图重新使用对于其中例如断言了特定目标的旧设计执行的验证结果,则出于重新在新的设计上使用验证结果的目的,足以证明在旧和新设计之间修改的等效,具体来说,足以证明不存在这样一种状态,其中目标在旧设计中被断言而目标在新设计中不被断言。换句话说,证明逻辑表达式(Old.Target AND NOT(New.Target))从不为真(TRUE)。相反,如果试图重新使用对于其中特定目标未被断言的旧设计执行的验证结果,则出于重新使用对新设计的验证结果的目的,足以证明不存在其中目标在旧设计中不被断言而在新设计中被断言的状态。换句话说,证明逻辑表达式(NOT(Old.Target)AND(New.Target))从不为真(TRUE)。递增验证应用使用这些概念来简化在复合网表中实现的等效逻辑,
参照图2,描述了在递增验证申请中公开的等效逻辑的一个示例。在这个示例中,通过建立包括旧设计202的网表和新设计212的网表的表示的复合设计201,实现等效检查。复合网表201的建立包括确定对应的或并行的网。在所描述的实施例中,在新的设计212中的网214被确定为在功能上对应于在旧设计202中的网204,并且在新设计212中的网216被确定为在功能上对应于在旧设计202中的网206。进一步假定先前的验证效果、即在至少这样一种状态所显示的对于旧设计202(或对于在功能上等效的旧设计202的前身(predecessor))执行的验证效果,在该状态中,在先前的验证效果显示没有网206被断言的状态的同时,网204被断言。按照本发明的对应性检查包括建立第一复合网209和第二复合网219。第一复合网209使用第一类型的等效逻辑208,确认在旧设计202的网204和新设计212的网214之间的功能对应性。第二复合网219使用第二类型的等效逻辑218,确认在旧设计202的网206和新设计212的网216之间的功能对应性。
证明作为等效逻辑208的输出的第一复合网209不能被断言,指示不存在其中来自旧设计202的网204被断言(真),而来自新设计212的其被建议的等效网214不被断言(假)的状态。因为对于旧设计202执行的先前功能验证工作证明存在其中网204被断言的状态,所以肯定的等效结果暗示在新设计212中存在其中网214还可以被断言(真)的状态。类似地,证明作为第二类型的等效逻辑218的输出的第二复合网219不能被断言,指示不存在其中网216为真而网206为假的复合设计201的状态。因为对于旧设计202执行的先前的验证效果发现没有其中网206被断言的状态,所以在这种情况下的肯定对应结果暗示:如果要对于新设计212执行等效验证,则将不会发现其中网216被断言的状态。以这种方式,通过允许重用来自先前的从旧设计202到新设计212的验证工作的结果(包括证明网可以被断言、网决不可被断言、或在N个时间步长中网不可被断言的结果),证明复合网(例如209或219)不能被断言节省了整个验证时间。
当验证约束被引入到旧设计、新设计或两者中时,必须修改现有的递增验证方法,以确保对旧设计或新设计的约束不妨碍递增等效冲突的发现。作为一个示例,旧的网表可以包括导致所有的旧目标不可达到的约束。新的网表可以大致与旧的网表相同,但是新的网表可以没有任何约束。如果通过建立包括旧的约束的复合网表来尝试递增验证,则旧的约束可能“屏蔽”其中新的目标被断言的状态。作为另一个示例,想象具有两个输入I1和I2的简单设计。在新设计中的约束是I1(即为了验证目的而忽略其中I1为假的状态),而在旧设计中的约束是I2。进一步假定,对于两种设计,感兴趣的目标是NOT(I2)。所述目标在旧的设计中明显不可达到,因为I2被约束为真,但是在新的设计中所述目标明显可达到。因此,正确的递增验证应当解释约束的差别,并且发现在旧和新的目标之间缺少等效。但是,如果将旧的约束简单地并入到复合网表中,则旧的约束将以与新网表不一致的方式限制I2,因此屏蔽了在新网表中的目标的有效断言,由此错误地得出在旧和新的目标之间的等效。
为了处理如上所述的问题,相对于在图3中所示的流程图,公开和说明一种在验证约束环境中使用递增验证的方法。一般来说,所述的验证方法包括:确定对于旧设计的任何约束(旧约束)和对于新设计的任何约束(新约束)是否有效地等效。如果发现等效,则可以将来自旧和新的网表的所有约束引入复合网表中。像在递增验证申请中所述的过程那样,约束等效检查最好被分支为验证结果指示目标为可达到的情形和验证结果指示目标为不可达到的情形。如果约束的等效检查指示缺少等效,则从网表系统地去除所述约束。更具体来说,通过增加使得可能去除与约束网相关联的语义条件的电路系统,并且由此将修改的约束网当作在网表中的所有其他网,从而修改所述约束网。
现在转向图3,流程图图解了约束兼容的递增验证方法300的一个实施例,所述方法用于将使用表示设计的第一版本的第一网表而获得的验证结果,应用到表示所述设计的第二版本的第二网表,其中,第二版本与第一版本递增地不同。开始,通过使用旧的约束来验证(块302)旧的设计而产生验证结果。在所描述的实施例中,方法300然后包括304和306,其中,建立第一和第二网。第一网Constraint.Old表示在旧网表中的所有约束(即Constraint.Old.1到Constraint.Old.n,其中,n是在旧网表中的约束的数量)的逻辑与。第二网Constraint.New表示在新网表中的所有约束(即Constraint.New.1到Constraint.New.m,其中,m是在旧网表中的约束的数量)的逻辑与。这两个网的构造有助于确定在旧约束和新约束之间的等效。
感兴趣的约束等效被称为有效等效,因为不要求严格的等效(例如A暗示B,并且B暗示A)。具体来说,当存在约束时,出于执行递增验证的目的,是否可允许向复合网表中并入所有的旧和新的约束,取决于提出递增验证的验证结果的类型。如果旧的设计的验证结果(或旧的验证)得出旧的目标没有被断言或不会被断言,则递增验证试图确定是否存在其中在新的网表中的对应目标(新的目标)被断言而旧的目标不被断言的任何状态。
对于目标不被断言的结果,如果可以证明Constraint.New的真值暗示Constraint.Old的真值,则可以将新的约束并入复合网表中。记住仅仅对于其中所有约束为真的状态评估目标,逻辑表达式Constraint.New ANDNOT(Constraint.Old)指示是否旧的和新的约束可以被并入到复合网表中。如果不存在其中Constraint.New AND NOT(Constraint.Old)为真的状态,则将所有的新的和旧的约束并入复合网表是适当的。这种检查保证当Constraint.New=TRUE(真)时,Constraint.Old=TRUE(真)也为真。定性地看,这种检查验证新的约束是旧的约束的超集,因此,将新的约束并入到复合网表中,将仅仅以不关心重新使用目标未被断言的验证结果的方式,来限制旧目标的行为。
对于目标被断言的结果,如果可以证明不存在其中新的约束屏蔽新的目标、而旧的约束不屏蔽旧目标的复合设计的状态,则可以将旧的约束并入复合网表。逻辑表达式Constraint.Old AND NOT(Constraint.New)指示是否可以将旧的和新的约束并入复合网表中。如果不存在其中Constraint.Old ANDNOT(Constraint.New)为真的状态,则将所有的旧的和新的约束并入复合网表中是适当的。这种检查保证了当Constraint.Old=TRUE(真)时,Constraint.New=TRUE(真)也为真。定性地看,这种检查验证旧约束是新的约束的超集,因此,将旧的约束并入复合网表将仅仅以不关心目标被断言的验证结果的重新使用的方式,来限制新目标的行为。
所述的方法300因此确定(块312)是否在块302中产生的验证结果是目标被断言的结果或目标未被断言的结果。如果验证结果是目标未被断言的结果,则方法300定义(块314)被识别为CHECK的网,其中,CHECK等于NOT(Constraint.New AND NOT(Constraint.Old))。方法300然后确定(块316)是否CHECK对于所有的状态为TRUE。如果CHECK为真,则可以通过将所有的新约束引入网表中来构造复合网表(块318)。类似地,如果旧的验证结果是目标被断言的结果,则方法300将CHECK定义(块320)为等于NOT(Constraint.Old AND NOT(Constraint.New)),并且确定(块322)是否该CHECK是真。如果是,则可以通过将所有的旧约束并入复合网表而构造复合网表。如果在块316或块322中证明CHECK是NOT TRUE(非真),则方法300进行到递增验证的约束解除阶段(块330),以有效地从复合网表解除约束。约束解除方法330通过从第一网表、第二网表或两者解除验证约束,从第一网表、第二网表或两者建立修改的网表。然后结果产生的修改的网表在较少约束或者根本没有约束的情况下,被用作建立复合网表的基础(在图3的块332中)。
图4、图5和图6提供了图3的方法300的概念图示,所述方法300用于从网表有效地解除约束,以便当已经将验证约束施加到旧网表、新网表或两者时,便利递增验证。通常来说,约束网具有独特的行为特性,验证引擎必须识别该独特的行为特性,并且该独特的行为特性对于其中旧约束和新约束不同的情况,使递增验证变得复杂。在所描述的实施例中,通过将约束合成到目标中,使得约束的效果在所述目标的状态中被反映,从而解除约束。
在图4中,网表401被示出为包括目标T和约束C。验证引擎将诸如网C之类的约束网识别为用于控制验证引擎的行为的特别指定的网。具体来说,验证引擎检查目标T的断言,但是仅仅在当约束C被断言的周期期间。验证引擎在约束C是FALSE(假)的周期期间屏蔽或忽略目标T的状态,并且终止C是FALSE的任何状态之后的状态空间搜索。作为一个示例,如果验证引擎正在执行随机模拟并且遇到其中约束网C是FALSE的状态,则终止在其中所述约束是假的状态之外的进一步的状态空间探索。
在图5中,将电路系统加到网表401上,以建立其中将约束C用于合成修改的网C’的修改的网表411,所述修改的网C’可以被包括在没有作为约束分类的所述网表中,但是它具有与原始约束相同的效果。具体来说,所述修改的约束网在其中原始约束网是FALSE的周期后发生的任何周期期间被设计为FALSE。在所描述的实施例中,修改的网表411包括第一与门402和寄存器或锁存器404。与门402接收作为一个输入的约束C和作为其第二输入的锁存器404的输出。第一与门402的输出(表示修改的约束网C’)提供到锁存器404和第二与门406的输入。目标T被路由到到第二与门406的输入之一。
在任何周期期间的约束C的FALSE值将第一与门402(C’)的输出驱动为FALSE。在所述FALSE值将在C’上传播另一个FALSE值的下一周期期间,C’的FALSE值接着将从第一与门402的输出、通过锁存器404被反馈到与门402的输入。以这种方式,约束C的单个FALSE周期将使得C’变为和保持在FALSE,直到锁存器404被清除或复位。在其中约束网C是FALSE的第一周期后的C’的永久FALSE状态,确保在约束C是FALSE的任何周期之后修改的目标T’不能被断言。防止在约束C的任何断言后T’变得被断言,在功能上等效于使用约束节点C约束原始目标T。因此通过引入不具有与原始网表相关联的语义约束的在功能上等效的网表,被修改的网表411有效地解除原始约束。
图6描述了包含多个目标T1到Tj和多个约束C1到Ck的修改网表411的一般形式。在所描述的实施例中,与门402从原始网表的每个约束C1到Ck接收输入。与门402的输出(C’)连接到锁存器404的输入。锁存器404的输出提供了到与门402的输入。C’信号还提供了到一组与门406-1到406-j的每个的输入,每个与门406从目标T1到Tj的对应的一个接收第二输入。与门406-1到406-j的输出是修改的目标T1’到Tj’。
在所描述的实现中,在任何周期期间的任何约束C1到Ck的FALSE值将C’驱动为对于所有随后的周期所维持的FALSE值。C’的FALSE值防止任何修改的目标T1’到Tj’被断言。以这种方式,在任何周期期间的任何约束的断言防止任何目标在任何随后的周期期间被达到(变为被断言),这在功能上等效于对应的受到约束C1到Ck的未修改的网表(即没有元件402、404和406的网表)。但是,因为图6的修改的网表411不要求在任何网上强加约束规则,因此它适合于与递增验证技术结合使用。返回图3,在块330的约束之后,修改的网表用于建立(块332)用于递增验证目的的复合网表。如上参照图2所述,复合网表适合于检测在第一网表的目标和第二网表中的类似目标之间在状态上的差别。
如图3中所述,块330的约束解除仅仅作为最后的手段(resort)被执行。具体来说,在旧的验证结果是目标不被断言的结果的情况下,只有不能通过仅仅引入所有的新约束来建立复合模型(块318),才执行约束解除330,并且在旧的验证结果是目标被断言的结果的情况下,只有不能通过仅仅引入所有的旧约束来建立复合模型时,才执行约束解除330。但是,在一些应用中,即使当引入所有的旧或新约束可能时,也可能期望执行约束解除。一种这样的应用涉及重新使用目标被断言的结果。
在目标被断言的结果的情况下,当旧的约束是新的约束的超集时,可以如在块324中那样执行引入所有的旧约束。但是,当旧的约束不是新的约束的一部分时,将旧的约束施加到复合网表可能导致错误的结论:目标不可达到,诸如当所述目标可达到时,而对在新的设计上对旧约束的断言。虽然在这种情况下递增验证不是不正确的,因为唯一的结果是当传播旧的验证结果本来可接受时却没有传播旧的验证结果,但是在先前执行的验证必须不必要地被丢弃的意义上,这种情况代表了“浪费”。由于此原因,一些实施例可以在块312确定旧的验证结果是目标被断言的结果后,选择直接进行到约束解除块330。更一般来说,因为约束解除330可应用到所有类型的验证结果,所以其他实施例可以直接从块302进行到约束解除。
受益于本公开的本领域内的技术人员将明白,本发明考虑用于验证集成电路的设计的方法和系统。要理解,在详细说明和附图中示出和描述的本发明的形式仅仅要被当作当前的优选示例。意图在于,权利要求被广义地解释为涵盖所公开的优选实施例的所有变化。

Claims (28)

1.一种方法,用于使用递增验证将使用表示设计的第一版本的第一网表而获得的验证结果应用到表示设计的第二版本的第二网表,所述方法包括:
通过从自所述第一和第二网表选择的网表解除验证约束来建立修改的网表;并且
使用修改的网表来建立适合于确定在第一和第二网表之间的等效的复合网表。
2.按照权利要求1的方法,还包括:通过从自第一和第二网表选择的剩余网表解除验证约束来建立随后的修改的网表,其中所述使用修改的网表来建立适合于确定在第一和第二网表之间的等效的复合网表的步骤包括使用两个修改的网表来建立复合网表的步骤。
3.按照权利要求1的方法,其中所述建立修改的网表的步骤包括将修改的约束网加到所述网表的步骤,其中,修改的约束网在对应于所述验证约束的约束网是假的周期后发生的任何周期期间是假。
4.按照权利要求3的方法,其中,修改的约束网控制验证目标的断言,其中,防止所述验证目标在修改的约束网是假时被断言。
5.按照权利要求4的方法,其中,所述修改的网表包括多个验证约束和对应的多个约束网,并且其中,被修改的约束网在任何约束网是假的周期后发生的任何周期期间内是假。
6.按照权利要求5的方法,其中,第一网表包括多个验证目标,并且其中,所述验证目标的每个的断言被所述修改的约束网控制。
7.按照权利要求1的方法,还包括:
在所述解除验证约束之前确定:所述验证结果是目标不被断言的验证结果,以及在第二网表中的一组约束的任何一个的假值暗示第一网表的一组约束的至少一个的假值;并且
响应于所述确定的步骤,通过从第二网表向复合网表中引入所有的约束组来建立复合网表。
8.按照权利要求1的方法,还包括:
在所述解除验证约束之前确定:验证结果是目标被断言的验证结果,以及在第一网表中的一组约束的任何一个的假值暗示第二网表的一组约束的至少一个的假值;并且
响应于所述确定的步骤,通过从第一网表向复合网表中引入所有的约束组来建立复合网表。
9.一种将使用设计的第一网表而获得的验证结果应用到设计的第二网表的方法,其中,所述第一和第二网表的至少一个包括验证约束,所述方法包括:
构造第一网表和第二网表的复合网表,其中,所述复合网表适合于检测在第一网表中的目标和在第二网表中的类似目标之间在状态上的差别;并且
其中,构造所述复合网表包括从以下组选择的步骤,该组包括:(a)修改对应于所述验证约束的网,其中,所述复合网表没有类似的验证约束,以及(b)向所述复合网表中引入每个约束。
10.按照权利要求9的方法,其中,修改对应于所述验证约束的网包括建立修改的网,其中,在约束网是假的周期期间和对于所有其后的周期,所述修改的网是假。
11.按照权利要求10的方法,还包括控制具有修改的网的复合网表中的目标的状态,其中,在约束网是假的周期期间和对于所有其后的周期,防止所述复合网表中的目标具有真状态。
12.按照权利要求10的方法,其中,建立修改的网包括:将第一与门和锁存器加到复合网表,其中,所述约束网提供到所述第一与门的第一输入,所述锁存器的输出提供到所述第一与门的第二输入,而且其中,所述第一与门的输出提供到锁存器的输入。
13.按照权利要求12的方法,其中,构造所述复合网表包括:建立修改的目标,包括加上第二与门,其中,第一目标提供到第二与门的第一输入,而且其中,修改的约束网提供到第二与门的第二输入。
14.按照权利要求9的方法,其中,如果第一验证结果是其中目标不被断言、并且在第一网表中的一组验证约束是在第二网表中的一组验证约束的子集的验证结果,或第一验证结果是其中目标被断言、并且在第二网表中的一组验证约束是在第一网表中的一组验证约束的子集的结果,则发生将所述验证约束引入到复合网表中。
15.一种系统,用于使用递增验证将使用表示设计的第一版本的第一网表而获得的验证结果应用到表示设计的第二版本的第二网表,所述系统包括:
修改的网表建立装置,通过从自所述第一和第二网表选择的网表解除验证约束来建立修改的网表;以及
复合网表建立装置,使用修改的网表来建立适合于确定在第一和第二网表之间的等效的复合网表。
16.按照权利要求15所述的系统,还包括:通过从自第一和第二网表选择的剩余网表解除验证约束来建立随后的修改的网表的装置,其中所述复合网表建立装置使用两个修改的网表来建立复合网表。
17.按照权利要求15的系统,其中所述修改的网表建立装置包括将修改的约束网加到所述网表的装置,其中,修改的约束网在对应于所述验证约束的约束网是假的周期后发生的任何周期期间是假。
18.按照权利要求17的系统,其中,修改的约束网控制验证目标的断言,其中,防止所述验证目标在修改的约束网是假时被断言。
19.按照权利要求18的系统,其中,所述修改的网表包括多个验证约束和对应的多个约束网,并且其中,被修改的约束网在任何约束网是假的周期后发生的任何周期期间内是假。
20.按照权利要求19的系统,其中,第一网表包括多个验证目标,并且其中,所述验证目标的每个的断言被所述修改的约束网控制。
21.按照权利要求15的系统,还包括:
第一确定装置,在所述解除验证约束之前确定:所述验证结果是目标不被断言的验证结果,以及在第二网表中的一组约束的任何一个的假值暗示第一网表的一组约束的至少一个的假值;并且
响应于所述第一确定装置的确定结果,通过从第二网表向复合网表中引入所有的约束组来建立复合网表。
22.按照权利要求15的系统,还包括:
第二确定装置,在所述解除验证约束之前确定:验证结果是目标被断言的验证结果,以及在第一网表中的一组约束的任何一个的假值暗示第二网表的一组约束的至少一个的假值;并且
响应于所述第二确定装置的确定结果,通过从第一网表向复合网表中引入所有的约束组来建立复合网表。
23.一种将使用设计的第一网表而获得的验证结果应用到设计的第二网表的系统,其中,所述第一和第二网表的至少一个包括验证约束,所述系统包括:
构造第一网表和第二网表的复合网表的装置,其中,所述复合网表适合于检测在第一网表中的目标和在第二网表中的类似目标之间在状态上的差别;并且
其中,构造所述复合网表的装置包括从以下中选择的装置:(a)修改对应于所述验证约束的网的装置,其中,所述复合网表没有类似的验证约束,以及(b)向所述复合网表中引入每个约束的装置。
24.按照权利要求23的系统,其中,所述修改对应于所述验证约束的网的装置包括建立修改的网的装置,其中,在约束网是假的周期期间和对于所有其后的周期,所述修改的网是假。
25.按照权利要求24的系统,还包括控制具有修改的网的复合网表中的目标的状态的装置,其中,在约束网是假的周期期间和对于所有其后的周期,防止所述复合网表中的目标具有真状态。
26.按照权利要求24的系统,其中,所述建立修改的网的装置包括:将第一与门和锁存器加到复合网表的装置,其中,所述约束网提供到所述第一与门的第一输入,所述锁存器的输出提供到所述第一与门的第二输入,而且其中,所述第一与门的输出提供到锁存器的输入。
27.按照权利要求26的系统,其中,构造所述复合网表的装置包括:建立修改的目标的装置,建立修改的目标包括加上第二与门,其中,第一目标提供到第二与门的第一输入,而且其中,修改的约束网提供到第二与门的第二输入。
28.按照权利要求23的系统,其中,如果第一验证结果是其中目标不被断言、并且在第一网表中的一组验证约束是在第二网表中的一组验证约束的子集的验证结果,或第一验证结果是其中目标被断言、并且在第二网表中的一组验证约束是在第一网表中的一组验证约束的子集的结果,则发生将所述验证约束引入到复合网表中。
CNB2006101603834A 2005-12-12 2006-11-15 扩展电路设计的递增验证以包含验证约束的方法和系统 Expired - Fee Related CN100527137C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/301,112 US7509605B2 (en) 2005-12-12 2005-12-12 Extending incremental verification of circuit design to encompass verification restraints
US11/301,112 2005-12-12

Publications (2)

Publication Number Publication Date
CN1983289A CN1983289A (zh) 2007-06-20
CN100527137C true CN100527137C (zh) 2009-08-12

Family

ID=38140950

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101603834A Expired - Fee Related CN100527137C (zh) 2005-12-12 2006-11-15 扩展电路设计的递增验证以包含验证约束的方法和系统

Country Status (2)

Country Link
US (2) US7509605B2 (zh)
CN (1) CN100527137C (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2870000B1 (fr) * 2004-05-05 2006-08-11 Hispano Suiza Sa Controle de la robustesse d'une modelisation d'un systeme physique
US7802222B2 (en) * 2006-09-25 2010-09-21 Cadence Design Systems, Inc. Generalized constraint collection management method
US7607115B1 (en) * 2006-10-04 2009-10-20 Calypto Design Systems, Inc. System, method and computer program product for timing-independent sequential equivalence verification
US7913208B2 (en) * 2007-10-11 2011-03-22 International Business Machines Corporation Optimal simplification of constraint-based testbenches
US8418093B2 (en) * 2009-05-15 2013-04-09 International Business Machines Corporation Method and system for design simplification through implication-based analysis
US20120187522A1 (en) * 2011-01-20 2012-07-26 International Business Machines Corporation Structure and method for reduction of vt-w effect in high-k metal gate devices
US8429581B2 (en) 2011-08-23 2013-04-23 Apple Inc. Method for verifying functional equivalence between a reference IC design and a modified version of the reference IC design
US8996339B2 (en) 2011-09-07 2015-03-31 International Business Machines Corporation Incremental formal verification
US8448109B1 (en) * 2012-01-31 2013-05-21 Synopsys, Inc. Vector evaluation of assertions
US9720792B2 (en) 2012-08-28 2017-08-01 Synopsys, Inc. Information theoretic caching for dynamic problem generation in constraint solving
US11468218B2 (en) 2012-08-28 2022-10-11 Synopsys, Inc. Information theoretic subgraph caching
US8904320B2 (en) 2013-03-13 2014-12-02 Synopsys, Inc. Solving multiplication constraints by factorization
US8990746B1 (en) * 2014-03-26 2015-03-24 Cadence Design Systems, Inc. Method for mutation coverage during formal verification
US10387605B2 (en) 2015-07-23 2019-08-20 Synopsys, Inc. System and method for managing and composing verification engines
US9715564B2 (en) * 2015-10-28 2017-07-25 International Business Machines Corporation Scalable and automated identification of unobservability causality in logic optimization flows
US10073938B2 (en) * 2016-06-29 2018-09-11 International Business Machines Corporation Integrated circuit design verification

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69533567T2 (de) * 1994-08-09 2005-11-24 Sun Microsystems, Inc., Mountain View Vorrichtung und Verfahren zum Auffinden von False-Timing-Paths in digitalen Schaltkreisen
US5995425A (en) * 1997-07-23 1999-11-30 International Business Machines Corporation Design of provably correct storage arrays
US7149110B2 (en) * 1999-01-14 2006-12-12 Silicon Storage Technology, Inc. Seek window verify program system and method for a multilevel non-volatile memory integrated circuit system
US6678645B1 (en) 1999-10-28 2004-01-13 Advantest Corp. Method and apparatus for SoC design validation
US6883163B1 (en) * 2000-04-28 2005-04-19 Sun Microsystems, Inc. Populating resource-constrained devices with content verified using API definitions
US7100133B1 (en) 2000-06-23 2006-08-29 Koninklijke Philips Electronics N.V Computer system and method to dynamically generate system on a chip description files and verification information
EP1202141B1 (en) * 2000-10-30 2007-12-12 Siemens Aktiengesellschaft Method of reducing finite controlling automata and corresponding computer-readable medium
US20020173942A1 (en) 2001-03-14 2002-11-21 Rochit Rajsuman Method and apparatus for design validation of complex IC without using logic simulation
US6651235B2 (en) * 2001-10-30 2003-11-18 Cadence Design Systems, Inc. Scalable, partitioning integrated circuit layout system
US6957178B2 (en) * 2001-10-29 2005-10-18 Honeywell International Inc. Incremental automata verification
US7003743B2 (en) * 2002-02-01 2006-02-21 Freescale Semiconductor, Inc. Method and system of data processor design by sensitizing logical difference
US6910194B2 (en) * 2002-07-19 2005-06-21 Agilent Technologies, Inc. Systems and methods for timing a linear data path element during signal-timing verification of an integrated circuit design
US6993734B2 (en) * 2003-02-20 2006-01-31 International Business Machines Corporatioin Use of time step information in a design verification system
US7257712B2 (en) * 2003-05-30 2007-08-14 Microsoft Corporation Runtime digital signatures
US7107559B2 (en) * 2003-10-29 2006-09-12 Lsi Logic Corporation Method of partitioning an integrated circuit design for physical design verification
US7093218B2 (en) * 2004-02-19 2006-08-15 International Business Machines Corporation Incremental, assertion-based design verification
US20050256485A1 (en) * 2004-05-14 2005-11-17 Samuel Carasso Method of using intravaginal device with fluid transport plates
US7322017B2 (en) * 2004-12-14 2008-01-22 International Business Machines Corporation Method for verification using reachability overapproximation
US7315996B2 (en) * 2005-09-22 2008-01-01 International Business Machines Corporation Method and system for performing heuristic constraint simplification
US7437690B2 (en) * 2005-10-13 2008-10-14 International Business Machines Corporation Method for predicate-based compositional minimization in a verification environment
US7356792B2 (en) * 2006-01-26 2008-04-08 International Business Machines Corporation Method and system for enhanced verification by closely coupling a structural overapproximation algorithm and a structural satisfiability solver
US7398488B2 (en) * 2006-05-17 2008-07-08 International Business Machines Corporation Trace equivalence identification through structural isomorphism detection with on the fly logic writing

Also Published As

Publication number Publication date
US20090049416A1 (en) 2009-02-19
US20070136701A1 (en) 2007-06-14
US7779378B2 (en) 2010-08-17
CN1983289A (zh) 2007-06-20
US7509605B2 (en) 2009-03-24

Similar Documents

Publication Publication Date Title
CN100527137C (zh) 扩展电路设计的递增验证以包含验证约束的方法和系统
Foster et al. Assertion-based design
US6035107A (en) Method for performing functional comparison of combinational circuits
US7302417B2 (en) Method and apparatus for improving efficiency of constraint solving
US8327302B2 (en) Techniques for analysis of logic designs with transient logic
US8181134B2 (en) Techniques for performing conditional sequential equivalence checking of an integrated circuit logic design
US7996800B2 (en) Computer program product for design verification using sequential and combinational transformations
US7743352B2 (en) Computer implemented method of high-level synthesis for the efficient verification of computer software
US7484192B2 (en) Method for modeling metastability decay through latches in an integrated circuit model
US8578311B1 (en) Method and system for optimal diameter bounding of designs with complex feed-forward components
US8589837B1 (en) Constructing inductive counterexamples in a multi-algorithm verification framework
US10372856B2 (en) Optimizing constraint solving by rewriting at least one bit-slice constraint
US5966306A (en) Method for verifying protocol conformance of an electrical interface
US10067183B2 (en) Portion isolation architecture for chip isolation test
US20110010680A1 (en) Apparatus and Method of Delay Optimization
US20070005533A1 (en) Method and apparatus for improving efficiency of constraint solving
TWI471748B (zh) 形式性質驗證之假設的自動近似
US7203631B2 (en) System and method to analyze VLSI designs
US8484591B2 (en) Enhancing redundancy removal with early merging
US9378000B1 (en) Determination of unreachable elements in a design
Carmona et al. Synthesis of asynchronous controllers using integer linear programming
Abarbanel-Vinov et al. On the effective deployment of functional formal verification
US11023357B1 (en) Method and system for sequential equivalence checking
Plassan et al. Mining missing assumptions from counter-examples
Beerel et al. Checking combinational equivalence of speed-independent circuits

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090812

Termination date: 20091215