CN100421116C - 通过迭代过度逼近和再编码策略进行增量设计缩减的方法和系统 - Google Patents

通过迭代过度逼近和再编码策略进行增量设计缩减的方法和系统 Download PDF

Info

Publication number
CN100421116C
CN100421116C CNB2005101246885A CN200510124688A CN100421116C CN 100421116 C CN100421116 C CN 100421116C CN B2005101246885 A CNB2005101246885 A CN B2005101246885A CN 200510124688 A CN200510124688 A CN 200510124688A CN 100421116 C CN100421116 C CN 100421116C
Authority
CN
China
Prior art keywords
circuit design
described circuit
design
reduction
logic
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
CNB2005101246885A
Other languages
English (en)
Other versions
CN1790353A (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.)
Core Usa Second LLC
GlobalFoundries Inc
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 CN1790353A publication Critical patent/CN1790353A/zh
Application granted granted Critical
Publication of CN100421116C publication Critical patent/CN100421116C/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本发明公开了一种以增量方式缩减设计的方法。逻辑验证工具接收设计以及要相对于所述设计进行验证的特性,然后选择用于缩减所述设计的多种不同技术中的一种或多种。所述逻辑验证工具然后利用所述一种或多种技术缩减所述设计,以创建缩减的设计,并尝试为所述缩减的设计上的特性生成有效的解决方案。所述逻辑验证工具确定所述有效的解决方案是否已生成,如果没有,则使用所述缩减的设计取代所述设计。在生成所述有效的解决方案之前,所述逻辑验证工具执行所述选择、缩减、确定以及取代步骤。

Description

通过迭代过度逼近和再编码策略进行增量设计缩减的方法和系统
相关申请的交叉引用
本申请涉及如下与本申请在同一日期提出的共同未决的美国专利申请,它们的全部内容在此结合作为参考:
序列号10/____,____(AUS920040649US1),题为“METHOD FORVERIFICATION USING REACHABILITY APPROXIMATION”。
技术领域
本发明一般涉及测试和验证,尤其涉及数字设计的验证。更特别的是,本发明涉及一种用于通过迭代过度逼近和再编码对数字设计进行增量缩减的系统、方法和计算机程序产品。
背景技术
随着基于处理器的系统在人类活动的每个方面的日益渗透,对处理器、专用集成电路(ASIC)开发以及生产没有设计缺陷的系统的开发团体的需求日益增长。包括微处理器、数字信号和其他特殊目的处理器以及ASIC的电路产品已经与大批关键功能的性能密切相关,并且微处理器与日常生活的重要任务相关提高了人们对无误差的和无缺陷设计的期望。无论设计中的错误是通过对人类生活的影响还是仅仅通过对经济利益方面的影响来衡量,电路产品的消费者已失去了对设计错误所产生的结果的容忍。消费者将不会容忍例如在证券交易场所中、维持人的生命的医疗设备中或操控其交通工具的计算机中的计算错误。所有的这些活动代表了这样的一些领域:在这些领域中,对可靠电路结果的需求已上升为一个关键任务问题。
为了响应对可靠、无误差设计的日益增长的需求,处理器和ASIC设计以及开发团队已经开发出用于测试和验证的严格(即使是难以置信的昂贵)的方法。功能硬件验证已经成为用于验证诸如处理器芯片这种复杂设计的传统方法。因为用于设计的功能硬件验证时间的增长与逻辑元件的数量有关,所以复杂系统的功能硬件验证是现今最花费时间的计算任务之一。因此,以很少漏掉设计中的错误并减少开发时间作为目标,有效地使用功能硬件验证周期非常重要。
如上所述,功能硬件验证是一个计算上昂贵的过程;对于连续设计而言,功能硬件验证是一个完全PSPACE问题(通过算法的复杂性分析),因此一般需要与所验证设计的大小成指数关系的资源。多个现有技术的功能硬件验证证明算法依赖于可达性分析,它需要列举出所测试设计的可达状态以评定该设计是否与它的技术要求相符,不幸的是它是一个大小受限的过程。
可达性分析是一个强大的验证框架;它能够确定设计是否满足技术要求(即,如果设计的所有可达状态都满足被验证的特性,那么就完成了正确性的验证),也能够确定设计是否不满足其技术要求(如果设计的任一可达状态不满足被验证的特性)。可达性算法的操作是通过分配R_0作为所验证的设计的预定初始状态集合,然后分配R_{i+1}(i逐渐增加)作为从R_I进行一次设计转换就可到达的所有状态的集合。最后,R_{i+1}将为所有先前在R_0......R_i中遇到的状态的一个子集,此后这个过程将终止。这个最终的可达状态集合表示为R。为了部分地减轻某些用于计算可达状态精确集合这一昂贵过程的计算费用,已经有多个“过度逼近”可达状态集合的建议。例如,一些作者已经建议使用“归纳的”(inductive)方法。现有技术过度逼近方法的缺点是它们常常是不确定的,由于它们的过度逼近特性导致了“伪失效”(spurious failure)。
尽管在改进可达性分析性能方面研究了几十年,这种技术仍然局限于应用于有几百个或更少的状态元件的设计中,并且还受到其他设计尺寸的阻碍。由于可达性分析的尺寸限制,已在过度逼近可达状态集合以能够简化计算的方式上进行了一些研究。例如,归纳证明从R_0作为自身不违反特性的所有状态开始(在确保设计的实际初始状态是这个已过度逼近的R_0的一个子集之后),然后计算从这个已过度逼近的初始状态集合开始的过度逼近集合R’。这种方法的好处包括大幅度减少完成分析所需要的步骤数。这种归纳方法的主要缺点是它常常导致一个不确定的结果。特别是,如果过度逼近集合R’包含一些违反正被验证的特性的状态S’,那么不能立即辨明这个违反是仅仅由初始状态集合(即,S’是R’-R的一个子集)的过度逼近引起的,还是S’包含R中某些实际可达的状态。前一种情况是所验证特性的伪失效。
切割点插入是指用随机门取代连线表中的门的过程。通过切割点插入修改的设计称为是“过度逼近的”设计,因为它可以“模拟”原设计-随机门可以展现其取代的门可展现的任何行为,但反过来不一定正确。这种过度逼近技术增大了设计中的随机门的数量,有时候甚至非常显著;某些算法(尤其是那些基于二进制决策图的算法)由于随机门的这种增长可能遭受计算瓶颈。
存在多个用于再编码设计以获得设计的功能等效的缩减的现有技术。给定要测试的设计的组合驱动切割(即,不包含状态元件的切割的“源”侧),再编码工具能计算在这些切割门可以产生的值的集合。更一般地,给定包含0个或多个状态元件以及0个或多个随机门的要测试的设计的切割,再编码工具能计算在这些切割门可以产生的值的集合作为状态元件的值的函数。再编码工具然后能创建一个新的逻辑,该逻辑产生与切割的“源”侧完全相同的行为作为状态元件的函数,并且用该新的逻辑取代切割门。注意,不能仅仅将切割点注入切割门,因为那通常会构成过度逼近变换,而再编码的目的则是进行特性保留的变换。
通常,再编码工具创建一条比正被取代的逻辑大为简单的逻辑的能力依赖于切割的“源”侧(在其“组合扇入锥体”中包含大量随机门,即,通过扇入遍历而不用遍历寄存器便可到达的门的集合)。由于再编码依赖于选择那些在切割的“源”侧包含随机门的切割点,再编码的常规方法在切割点能被注入的设计的深度方面将遭受严重的限制。换言之,再编码常常对于距离随机门很深的逻辑不实用(例如由状态元件专门驱动的逻辑)。这种深度限制在传统上限制了再编码技术的有用性。
常规的再编码系统和现有技术的过度逼近系统的局限性是已知的。所需要的是一种利用减轻了过度逼近的已知限制和再编码的深度限制的方法来验证数字设计的更为有效的方法。
发明内容
本发明公开了一种用于以增量方式(incrementally)缩减设计的方法。逻辑验证工具接收设计和与该设计相关的要验证的特性,然后选择多种不同技术中的一种或多种以用于缩减(reduce)设计。逻辑验证工具然后缩减该设计以利用上述一种或多种技术创建一种缩减的设计,并尝试为上述缩减后的设计上的特性生成一个有效的解决方案。逻辑验证工具确定是否生成了该一个有效的解决方案,如果没有生成,则用缩减的设计替代原设计。在生成一个有效的解决方案之前,逻辑验证工具迭代地执行选择、缩减、确定以及替代步骤。
在本发明中,在所采用的过度逼近方法和所采用的再编码方法之间的特定协作(synergy)带来几个优点。本发明所使用的结构过度逼近技术将顺序驱动的逻辑转变为组合驱动的逻辑,并且更一般地将随机门更深地注入到设计的锥体(cone)中。这对于本发明的再编码技术有帮助,因为本发明的基本方面是擅长缩减在随机门附近的逻辑,而不是消除纯顺序逻辑。
附图说明
在所附权利要求书中阐明了认为是新颖的本发明的特征。然而,结合附图,通过参考下面的示例性实施例的详细描述将更好地理解发明本身、优选的使用模式以及其进一步的目标和优点。其中:
图1描绘了根据本发明的一个优选实施例,装备了用于通过迭代过度逼近和再编码用于数字设计的增量缩减的计算机程序产品的数据处理系统的框图。以及
图2是根据本发明的一个优选实施例,用于通过迭代过度逼近和再编码用于数字设计的增量缩减的过程的高级逻辑流程图。
具体实施方式
本发明提供一种用于降低验证复杂度的新颖的协作变换(transformation)技术。本发明尤其便于促进结构过度逼近技术的使用(以缩减顺序设计的尺寸)与再编码技术的使用(用以提供附加的特性保留的缩减)的协同作用。这种协同作用方案的好处是它使得设计缩减大大超过现有技术中能实现的缩减。本发明的结果是极大地节省了验证过程的计算资源,使得能够将设计缺陷暴露出来并且完成证明,这在其它情况下是不可行的。
本发明依赖于两种技术的协同应用以产生在要测试的设计的逐渐增加的缩减。首先,逻辑再编码技术在保留(preserve)其行为的同时简化了要测试的设计。这种再编码技术计算可在进行测试的设计的切割(cut)处产生的值的集合,作为其状态元件的函数,然后通过创建产生完全相同的值集合作为其状态元件的函数的逻辑来对该切割进行再编码。由于设计再编码技术时具有创建一个全新的但行为又一致(相对于切割门)的逻辑这样的自由度,这种技术通常使用冗余门消除技术提供可能的缩减的超集。这种技术并不明确寻求缩减设计的顺序逻辑(sequential logic),而是尝试缩减切割中的组合逻辑(以及随机门)的量,并且简化切割的扇出(fan-out)侧与切割的扇入(fan-in)侧的状态元件之间的从属/相关性。
其次,采用结构过度逼近技术,作为简化要测试的设计、同时可能对其行为增加随机性的方式。在上述交叉引用的申请中详细描述了这种技术,其全部内容在此结合作为参考。该技术常常寻求通过注入切割点(从随机门形成)以取代设计中的其它门来明确消除设计中的顺序逻辑。
现在参考附图,尤其是参考图1,图1描绘了根据本发明的一个优选实施例,装备了用于通过迭代过度逼近和再编码用于数字设计的增量缩减的计算机程序产品的数据处理系统的框图。数据处理系统100包含处理存储器单元(例如,RAM 102)和处理器104。数据处理系统100还包括诸如硬盘驱动器或其他直接访问存储装置的非易失存储器106。输入/输出(I/O)控制器108通过诸如网络电缆112的有线或无线链接提供到网络110的连接。I/O控制器108也通过诸如电缆或射频连接的有线或无线链接116连接到诸如键盘、显示设备、鼠标或打印机这样的用户I/O装置114。系统内部连接118连接处理器104、RAM 102、存储器106和I/O控制器108。
在RAM 102中,当根据本发明的优选实施例操作时,数据处理系统100存储了几项数据和指令。这几项包括设计(D)120、用于与逻辑验证工具124交互的输出表格122,以及二进制决策图(binarydecision diagram:BDD)生成器(builder)126。其他应用128和逻辑验证工具124通过操作系统130与处理器104、RAM 102、I/O控制器108以及存储器106连接。数据处理技术领域的技术人员将很快认识到,在不偏离本发明的范围的情况下,可以添加数据处理系统100的附加组件到所显示的那些组件或替代所显示的那些组件。
在执行本发明的过程中,处理器104执行来自于程序(通常存储在RAM 102中)的指令。在本发明的优选实施例中,处理器104执行逻辑验证工具124。逻辑验证工具124以增量方式缩减设计包含在设计(D)120中的数字设计,以通过迭代过度逼近和再编码并结合二进制决策图生成器126、再编码工具138以及过度逼近工具136的操作,创建修改的设计(D’)142。逻辑验证工具另外验证设计(D)120之上的特性(P)134。一般来讲,逻辑验证工具124包含用于预测硬件的逻辑建模项的行为的基于规则的指令。二进制决策图生成器126将设计(D)120中的结构表示转换为结构BDD 131中的功能规范(canonical)形式。然后,逻辑验证工具124依据包含在其自身的指令内的一系列规则、结合设计(D)120和相关的二进制决策图(BDD)131进行操作。
设计(D)120可以构建多个不同种类的逻辑硬件(例如微处理器和专用集成电路(ASIC))的模型。设计(D)120在结构上被表示为一个连线表(netlist),包含一个定向图表,图表中每个节点都是某一类型的门,例如与门、反向器、主输入(或随机门)或一个状态元件。BDD生成器126将设计(D)120转换为BDD 131,以和逻辑验证工具124一起使用,以及在适当的时候与再编码工具138和过度逼近工具136一起使用。设计(D)120的连线表是以语义跟踪(semantic trace)来定义的,其随时间的过去将门映射为BDD 131中的0,1值。设计(D)120中的每一个状态元件都与下一状态函数(定义在未来一个时间步长中将取什么值)以及初始值(定义在时刻0将取什么值)相关,下一状态函数和初始值都表示为一个门。设计(D)120被表示为一个定向图表,具有代表各个功能的门的节点(例如,以下称之为随机门的主输入,诸如与门、反向器以及状态元件的组合功能),以及代表这些门之间的互连的边缘。互连被定向,将数据从“源”路由到“宿”。
RAM 102中存储的其他数据项包括特性(P)134、切割点140以及修改的设计(D’)142。特性(P)134包含要在设计(D)120上进行验证的行为。切割点140包含用于插入到修改的设计(D’)142的一组随机门插入指令,其包含应用到设计(D)120的本发明的最当前结果。
切割点140代表将设计(D)120的连线表分为两个图表,其中从“源”图表中的门到“宿”图表的唯一定向路径流过包括该切割的门。“注入切割点”是指用随机门取代连线表中的门的过程。随机门被评估为验证过程中的随机比特流的不受限的源。
逻辑验证工具124将结果记录到输出表格122中。逻辑验证工具124也可以向用户I/O 114或应用128报告输出表格122的内容或设计(D)120的状态的所选指示器。另外,逻辑验证工具124、操作系统130、设计(D)120、输出表格122、再编码工具138和过度逼近工具136有时可以全部或部分地存储在存储器106中。再编码工具138和过度逼近工具136还可使用本技术领域公知的其它数据结构,但为简化说明在此没有显示。
在本发明的方法中,逻辑验证工具124依赖于由过度逼近工具136利用切割点插入,以消除(可能是顺序的)逻辑,然后使用再编码工具138和过度逼近工具136所提供的再编码方法缩减该过度逼近的设计(D)120的尺寸,导致产生修改的设计(D’)142。逻辑验证工具124然后再将过度逼近工具136应用于消除(可能是顺序的)逻辑,随后通过由再编码工具138和过度逼近工具136提供的再编码方法缩减修改的设计(D’)142的尺寸,从而产生逐渐增大的缩减。由过度逼近工具136所产生的过度逼近协同作用使得能通过再编码工具138得到更大的缩减。类似的,由再编码工具138产生的再编码协同作用,使得通过使保留设计(D)120的功能性行为的门的最小集合更容易被识别(由于顺序元件之间的相关性减小),经由过度逼近工具136的试探性过度逼近得到更大可能的缩减。在对抗导致伪反例的任意选择的切割点注入方面,本发明比现有技术更为健壮。另外,再编码工具138所产生的再编码对于抵消由过度逼近工具136创建的过度逼近设计的随机门数量的增加有用。
本发明的一种特别有用的效果是本发明有效地使得再编码工具138能够只通过利用“组合”算法来对设计(D)120深处的“顺序”逻辑进行再编码。过度逼近工具136的过度逼近将某个顺序逻辑安全地转换为组合逻辑,再编码工具138的再编码对此尤为有效。这种组合又使得能通过再编码工具138“深入”缩减设计(D)120,从而最终得到相对于特性(P)134的确定性验证结果,即使对于现有技术仍无法解决的那些大而复杂的问题也不例外。虽然本发明的技术可应用于提供设计(D)120的顺序缩减,但也可以将本发明的方法应用于产生组合设计的缩减。
广义的说,如将在图2中所示意的那样,本发明的这种总体过程可以描述为几个步骤。首先,逻辑验证工具124导入设计(D)120以及特性(P)134和要对该设计验证的特性。接着,以几个子步骤执行过度逼近步骤。逻辑验证工具124利用BDD生成器126生成BDD 131。逻辑验证工具124计算一组用于切割点插入的候选门,并将它们保存作为切割点140。过度逼近工具136然后通过将切割点(随机门)插入到这些候选门以消除设计(D)120中较大的部分(可包括消除顺序逻辑)来过度逼近设计(D)120。在一个实施例中,切割点140选择过程可以利用任何种类的分析算法(例如局部化精练,以下将简单说明)来执行,以确保由设计(D)120中的切割点140插入带来的过度逼近不会产生设计(D)120的伪失效。
第三,逻辑验证工具124计算连线表图的切割并将其保存作为切割点140。逻辑验证工具124然后利用再编码工具138以在切割点140应用设计(D)120的再编码,以尝试从该设计中去除逻辑。该第三步骤的目的是在缩减设计(D)120的尺寸(尤其是组合门和随机门)的同时保留其行为。然后将缩减后的设计保存作为修改的设计(D’)142。下面将讨论,可以根据关于图2所讨论的选择准则以不同顺序执行本发明的方法的第二和第三步骤。
第四,逻辑验证工具124尝试利用任何可用的算法对在修改的设计(D’)142上的特性(P)120尝试验证工作。如果验证问题还没有得到解决,则逻辑验证工具124返回第二步骤进行额外的缩减。
现在参考图2,图2描绘了用于通过迭代过度逼近和再编码进行增量设计缩减的过程的高级逻辑流程图。该过程从步骤200开始。该过程接着移动到步骤201,步骤201描绘了逻辑验证工具124接收设计(D)120和特性(P)134。该过程然后转入步骤202。步骤202示意了逻辑验证工具124选择用于确定对设计(D)采用可用变换方法中的哪些方法的准则。可用于逻辑验证工具124的这些准则的例子包括选择最近执行的变换的可选方法。可用准则的例子还包括变换类型之间的迭代,这在一个实施例中包括迭代增加在每个变换类型中使用的资源。如果设计(D)120的输入超过一个阈值,则逻辑验证工具124能够自动选择再编码。类似的,如果设计(D)120具有多个状态元件,或者用于验证的特性(P)134从输入顺续深入,则切割点140插入可以被自动执行以生成过度逼近。
该处理接着转入步骤204,步骤204描绘了逻辑验证工具124应用在步骤202中所选择的准则以决定该应用哪个变换。虽然关于图2所描绘的本发明的方法反映了变换方法的串行使用,本领域的技术人员将很快确定在本优选实施例中可用的变换方法也可以并行执行(通过计算结果的比较)。如果逻辑验证124选择了对设计(D)120再编码,则该处理移动到步骤206。在步骤206,逻辑验证工具124利用再编码工具138识别设计(D)120的切割以进行再编码,从而利用尺寸最小的功能等同逻辑取代每个切割的扇入侧以创建修改的设计(D’)142。该再编码技术协同地增强了过度逼近技术通过缩减设计(D)120中的状态变量的相关性去除顺序逻辑的能力,促进了过度逼近工具136中的启发式算法使要保留的足够多个门的“最小集合”更小的能力。换句话说,通过去除顺序元件之间的一些连接,再编码工具138增大了将来自切割点140中的某个切割点注入到任意选择的门仍将导致产生过度逼近的修改的设计(D’)142的可能性,这满足它的规范要求。如果没有这种再编码工具138,则从切割点140中任意选择的切割点插入将产生伪反例的机会增大。
再编码工具138尝试如下进行缩减。给定设计(D)120的切割点140内的切割,再编码工具138计算在那些切割门可产生的值集合作为该切割的状态元件函数。再编码工具138然后创建产生与切割点140中的切割的“源”侧行为完全相同的新逻辑作为状态元件的函数,并利用该新逻辑取代切割门。注意,不能仅仅将切割点注入到切割门中,因为这通常将构成过度逼近变换,而本发明中的再编码工具的这种变换的目的是导致保留特性的变换。具体来说,一组N个切割点140可以随着时间的过去产生任何可能的2^N个值的流,而原始切割门的行为可能被局限为只产生这些可能的值的一个子集。
这种使用再编码工具138产生缩减的好处是创建一种更为简单但是功能上等效的替换逻辑,从而相对于设计(D)120缩减修改的设计(D’)142的总体尺寸。还应注意,这种实现方法主要目的是缩减组合逻辑和随机门,因为其在对顺序切割再编码时直接地再用了状态变量。在步骤206之后,该过程转入步骤210,在讨论了步骤208之后讨论步骤210。
返回步骤204,如果逻辑验证工具124确定通过过度逼近变换设计(D)120,则该过程移动到步骤208。在步骤208,逻辑验证工具124通过注入切割点利用过度逼近工具136过度逼近设计(D)120,由此理想地确保它们不产生特性(P)134的伪判断,以创建修改的设计(D’)142。实际上,在过度逼近工具136中使用的结构过度逼近算法经常是启发性的,尝试确定设计(D)120的最小门集合(尤其是状态元件),该最小门集合中的门是确保要验证的特性将通过并将切割点注入到其它门所需要的。“过度逼近变换”是可以向设计(D)120的行为增加随机性的变换。例如,如果将一组切割点140注入到设计中,则结果一般是过度逼近的,因为切割点140充当完全随机的源,因此能够‘模拟’被取代的原始门的任何可能的行为。但是这些原始门无法必定产生随机门能够产生的一些行为。伪失效是指设计(D)120的过度逼近引起如果没有过度逼近就不可能的失效的状况。
如同在过度逼近工具136中所使用的,结构过度逼近技术通过注入切割点140来工作,在一个实施例中,过度逼近工具136通过有效地将设计(D)120的切割隔离并将切割点140(即,随机门)注入到这些切割门中,来消除设计(D)120的绝大部分,切割门的源侧然后退出影响锥形(cone of influence)。这种方法也可以以明确地寻求去除设计(D)120中的顺序逻辑的方式部署。在一个实施例中,这种切割点选择过程利用某种形式的设计(D)120的分析以确保切割点140被插入,其过度逼近了要测试的设计的行为,而不会导致伪失效。一个实施例将利用称为‘局部化精练’的方案。这种局部化精练包括注入切割点140,运行某个(可能是过低逼近的)验证以尝试评估切割点140是否引起伪失效,如果是,则通过去除它们并可能进一步将其重新插入到先前的切割点140的扇入锥体中以尝试去除对应的伪失效,来“精练”切割点140。然而,用于确定在什么地方注入切割点140的特定方法则会根据各种不同的实施例而不同。
然后,过程从步骤206或步骤208移动到步骤210,步骤210描绘了逻辑验证工具尝试解决(solve)修改的设计(D’)142上的特性(P)134和/或应用可选变换。该过程然后移动到步骤212,步骤212示意了逻辑验证工具124确定是否已经相对于修改的设计(D’)142解决了特性(P)134。如果已经相对于修改的设计(D’)142解决了特性(P),则该过程在步骤214结束。如果在步骤212,尚未相对于修改的设计(D’)142解决特性(P),则该过程转入步骤216。步骤216描绘了逻辑验证工具用修改的设计(D’)120的内容替代设计(D)120。该过程然后返回步骤202,下面将对此进行说明。
通过以协同方式利用上述的过度逼近工具136和再编码工具138,与现有技术中可能得到的设计缩减相比,本发明能够得到显著增多的设计缩减,导致除了证明能力之外的更强的故障查寻能力。过度逼近工具136和再编码工具138之间的特定协同作用可以获得多种好处。过度逼近工具136所使用的结构过度逼近技术将顺序驱动逻辑变为组合驱动逻辑,并且更一般地将随机门注入到设计(D)120锥体的更深处。这有助于再编码工具138的再编码技术,因为再编码工具138的基本方面是缩减随机门附近的逻辑,而不是去除纯顺序逻辑。
此外,再编码工具138的再编码技术降低了在切割的扇入侧和切割的扇出侧中的状态变量之间的相关性。在一些情况下,某些状态变量可以通过再编码从问题中彻底去除(例如,如果切割上的门为主输入和状态元件的XOR,则XOR门可在任何时间点取任何值而与状态元件的值无关,而且再编码可能能够通过切割点安全地取代XOR门)。更一般的说,前述相关性降低使得切割的扇入侧和切割的扇出侧中状态元件之间的连接数量最小。
本发明的一个特别有用的好处是,其仅仅通过利用“组合”算法,就有效地使得再编码工具138能够对设计深处的“顺序”逻辑再编码。现有技术的顺序再编码通常是完全PSPACE问题,而本发明后面的组合分析则仅是较为简单的完全NP问题。
尽管在上述的实施例中,本发明被用于简化顺序设计,但这些技术同样可很好地被用于组合设计中。总之,本发明的组合方法相对于将引起伪反例的随意选择的切割点注入更为健壮。另外,通过再编码工具138的再编码对于抵消由过度逼近工具136产生的过度逼近设计的随机门的数量增加非常有用。
尽管如参考优选实施例的描述已经特别示出了本发明,本领域的技术人员将理解,可在形式和细节上对其做各种改变,而不偏离本发明的精神和范围。同样重要的是应注意,尽管已经在全功能计算机系统的上下文中描述了本发明,本领域的技术人员将理解的是,本发明的机制能够作为各种形式的程序产品而发布,不管携带用于实际执行发布的介质的信号的特殊类型如何,本发明都一样适用。携带介质的信号的例子包括但不局限于诸如软盘或CD ROM的可记录类型介质以及诸如模拟或数字通信链路的传输类型介质。

Claims (18)

1. 一种在数据处理系统中以增量方式缩减电路设计的方法,所述方法包括:
接收电路设计以及要相对于所述电路设计进行逻辑验证的特性;
选择用于缩减所述电路设计的多种不同的再编码或逼近技术中的一种或多种;
利用所述一种或多种再编码或逼近技术缩减所述电路设计,以创建缩减的电路设计;
尝试为所述缩减的电路设计上的所述特性生成有效的解决方案;以及
确定所述有效的解决方案是否已生成;
使用所述缩减的电路设计取代所述电路设计以得到经取代的电路设计;
其中,针对所述经取代的电路设计而重复执行选择、缩减、确定以及取代步骤直到生成所述有效的解决方案。
2. 权利要求1的方法,其中所述选择用于缩减所述电路设计的多种不同的再编码或逼近技术中的其中一种的步骤进一步包括选择以下集合中的一种方式,所述集合包括:通过用与缩减尺寸等同的逻辑取代切割的扇入侧来对所述电路设计的一部分再编码,和通过注入切割点过度逼近所述电路设计。
3. 权利要求2的方法,其中所述选择用于缩减所述电路设计的多种不同的再编码或逼近技术中的其中一种的步骤进一步包括:如果所述电路设计具有多个输入,则选择通过用与缩减尺寸等同的逻辑取代切割的扇入侧来对所述电路设计的一部分再编码。
4. 权利要求2的方法,其中所述选择用于缩减所述电路设计的多种不同的再编码或逼近技术中的其中一种的步骤进一步包括:如果所述电路设计具有多个状态元件,则选择通过注入切割点来过度逼近所述电路设计。
5. 权利要求1的方法,其中所述利用所述一种或多种技术缩减所述电路设计以创建缩减的电路设计的步骤进一步包括:并行地通过用与缩减尺寸等同的逻辑取代切割的扇入侧来对所述电路设计的一部分再编码和通过注入切割点过度逼近所述电路设计。
6. 权利要求1的方法,其中所述利用所述技术缩减所述电路设计以创建缩减的电路设计的步骤进一步包括利用以下集合中的一种方式来缩减所述电路设计,所述方式包括:通过用与缩减尺寸等同的逻辑取代切割的扇入侧来对所述电路设计的一部分再编码,和通过注入切割点过度逼近所述电路设计。
7. 权利要求1的方法,其中所述接收电路设计的步骤进一步包括接收所述电路设计的结构表示。
8. 权利要求1的方法,其中所述选择用于缩减所述电路设计的所述多种不同的再编码或逼近技术的一种或多种的步骤进一步包括:在所述多种不同的再编码或逼近技术之间交替。
9. 权利要求1的方法,其中所述在生成所述有效的解决方案之前执行所述选择、缩减、确定以及取代步骤的步骤进一步包括:提高分配给所述缩减、确定以及取代步骤的资源等级。
10. 一种在数据处理系统中用于以增量方式缩减电路设计的系统,所述系统包括:
用于接收电路设计以及要相对于所述电路设计进行逻辑验证的特性的装置;
用于选择用于缩减所述电路设计的多种不同的再编码或逼近技术中的一种或多种的装置;
用于利用所述一种或多种再编码或逼近技术缩减所述电路设计以创建缩减的电路设计的装置;
用于尝试为所述缩减的电路设计上的所述特性生成有效的解决方案的装置;以及
用于确定所述有效的解决方案是否已生成的装置;以及
用于使用所述缩减的电路设计取代所述电路设计以得到经取代的电路设计的装置;
其中,所述选择、缩减、确定以及取代装置重复对所述经取代的电路设计进行相应的处理直到生成所述有效的解决方案。
11. 权利要求10的系统,其中所述用于选择用于缩减所述电路设计的多种不同的再编码或逼近技术中的其中一种的装置进一步包括用于选择以下集合中的一种方式的装置,所述集合包括:通过用与缩减尺寸等同的逻辑取代切割的扇入侧来对所述电路设计的一部分再编码,和通过注入切割点过度逼近所述电路设计。
12. 权利要求11的系统,其中所述用于选择用于缩减所述电路设计的多种不同的再编码或逼近技术中的其中一种的装置进一步包括:用于如果所述电路设计具有多个输入,则通过用与缩减尺寸等同的逻辑取代切割的扇入侧来选择对所述电路设计的一部分再编码的装置。
13. 权利要求11的系统,其中所述用于选择用于缩减所述电路设计的多种不同的再编码或逼近技术中的其中一种的装置进一步包括:用于如果所述电路设计具有多个状态元件,则通过注入切割点选择过度逼近所述电路设计的装置。
14. 权利要求10的系统,其中所述用于利用所述一种或多种技术缩减所述电路设计以创建缩减的电路设计的装置进一步包括:用于并行地通过用与缩减尺寸等同的逻辑取代切割的扇入侧来对所述电路设计的一部分再编码和通过注入切割点过度逼近所述电路设计的装置。
15. 权利要求10的系统,其中所述用于利用所述电路技术缩减所述电路设计以创建缩减的电路设计的装置进一步包括利用下述集合中的一种方式来缩减所述电路设计的装置,所述集合包括:用于通过用与缩减尺寸等同的逻辑取代切割的扇入侧来对所述电路设计的一部分再编码并通过注入切割点过度逼近所述电路设计。
16. 权利要求10的系统,其中所述用于接收电路设计的装置进一步包括用于接收所述电路设计的结构表示的装置。
17. 权利要求10的系统,其中所述用于选择用于缩减所述电路设计的所述多种不同的再编码或逼近技术的一种或多种的装置进一步包括,用于在所述多种不同的再编码或逼近技术之间交替的装置。
18. 权利要求10的系统,还包括用于在所述选择、缩减、确定以及取代装置重复对所述经取代的电路设计进行相应的处理直到生成所述有效的解决方案的情况下,提高分配给所述缩减、确定以及取代装置的资源等级的装置。
CNB2005101246885A 2004-12-14 2005-11-14 通过迭代过度逼近和再编码策略进行增量设计缩减的方法和系统 Expired - Fee Related CN100421116C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/011,246 US7370292B2 (en) 2004-12-14 2004-12-14 Method for incremental design reduction via iterative overapproximation and re-encoding strategies
US11/011,246 2004-12-14

Publications (2)

Publication Number Publication Date
CN1790353A CN1790353A (zh) 2006-06-21
CN100421116C true CN100421116C (zh) 2008-09-24

Family

ID=36585518

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101246885A Expired - Fee Related CN100421116C (zh) 2004-12-14 2005-11-14 通过迭代过度逼近和再编码策略进行增量设计缩减的方法和系统

Country Status (2)

Country Link
US (2) US7370292B2 (zh)
CN (1) CN100421116C (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370292B2 (en) * 2004-12-14 2008-05-06 International Business Machines Corporation Method for incremental design reduction via iterative overapproximation and re-encoding strategies
US7322016B2 (en) * 2005-01-11 2008-01-22 International Business Machines Corporation Impact checking technique
US7302656B2 (en) * 2005-06-21 2007-11-27 International Business Machines Corporation Method and system for performing functional verification of logic circuits
US7380222B2 (en) * 2005-09-13 2008-05-27 International Business Machines Corporation Method and system for performing minimization of input count during structural netlist overapproximation
US8756557B2 (en) * 2007-05-09 2014-06-17 Synopsys, Inc. Techniques for use with automated circuit design and simulations
US7853907B2 (en) * 2007-08-09 2010-12-14 International Business Machines Corporation Over approximation of integrated circuit based clock gating logic
US20100218150A1 (en) * 2009-02-26 2010-08-26 International Business Machines Corporation Logic Design Verification Techniques for Liveness Checking
US8255848B2 (en) * 2009-02-27 2012-08-28 International Business Machines Corporation Logic design verification techniques for liveness checking with retiming
US8327302B2 (en) * 2009-10-16 2012-12-04 International Business Machines Corporation Techniques for analysis of logic designs with transient logic
US8245166B2 (en) 2010-08-31 2012-08-14 International Business Machines Corporation Optimal correlated array abstraction
US8418106B2 (en) 2010-08-31 2013-04-09 International Business Machines Corporation Techniques for employing retiming and transient simplification on netlists that include memory arrays
JP5718166B2 (ja) * 2011-06-10 2015-05-13 富士通株式会社 設計検証方法及びプログラム
US8978001B1 (en) * 2013-09-11 2015-03-10 International Business Machines Corporation Enhanced case-splitting based property checking
US10909302B1 (en) * 2019-09-12 2021-02-02 Cadence Design Systems, Inc. Method, system, and computer program product for characterizing electronic designs with electronic design simplification techniques
US11150298B1 (en) * 2020-12-11 2021-10-19 International Business Machines Corporation Converting formal verification testbench drivers with nondeterministic inputs to simulation monitors

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030208730A1 (en) * 2002-05-03 2003-11-06 Tempus Fugit Inc. Method for verifying properties of a circuit model
US20040093571A1 (en) * 2002-11-13 2004-05-13 Jawahar Jain Circuit verification
CN1511285A (zh) * 2001-05-23 2004-07-07 �Ҵ���˾ 用于芯片内系统的设计的分级内置自测试
US20040153983A1 (en) * 2003-02-03 2004-08-05 Mcmillan Kenneth L. Method and system for design verification using proof-partitioning

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US684088A (en) * 1900-09-13 1901-10-08 Benjamin Bates Newman Separator.
US6026220A (en) * 1996-11-19 2000-02-15 Unisys Corporation Method and apparatus for incremntally optimizing a circuit design
DE69838441T2 (de) 1997-02-28 2008-02-14 Fujitsu Ltd., Kawasaki Verfahren und Anordnung zur Verifizierung logischer Geräte
US6286128B1 (en) * 1998-02-11 2001-09-04 Monterey Design Systems, Inc. Method for design optimization using logical and physical information
US6192505B1 (en) 1998-07-29 2001-02-20 International Business Machines Corporation Method and system for reducing state space variables prior to symbolic model checking
US6425110B1 (en) * 1998-12-17 2002-07-23 International Business Machines Corporation Incremental design tuning and decision mediator
US7047139B2 (en) 2000-12-22 2006-05-16 International Business Machines Corporation Sharing information between instances of a propositional satisfiability (SAT) problem
US6848088B1 (en) 2002-06-17 2005-01-25 Mentor Graphics Corporation Measure of analysis performed in property checking
US7111268B1 (en) * 2002-08-26 2006-09-19 Xilinx, Inc. Post-layout optimization in integrated circuit design
US7146589B1 (en) * 2004-08-23 2006-12-05 Synplicity, Inc. Reducing equivalence checking complexity using inverse function
US7469392B2 (en) 2004-12-09 2008-12-23 Synopsys, Inc. Abstraction refinement using controllability and cooperativeness analysis
US7370292B2 (en) 2004-12-14 2008-05-06 International Business Machines Corporation Method for incremental design reduction via iterative overapproximation and re-encoding strategies

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1511285A (zh) * 2001-05-23 2004-07-07 �Ҵ���˾ 用于芯片内系统的设计的分级内置自测试
US20030208730A1 (en) * 2002-05-03 2003-11-06 Tempus Fugit Inc. Method for verifying properties of a circuit model
US20040093571A1 (en) * 2002-11-13 2004-05-13 Jawahar Jain Circuit verification
US20040153983A1 (en) * 2003-02-03 2004-08-05 Mcmillan Kenneth L. Method and system for design verification using proof-partitioning

Also Published As

Publication number Publication date
US7930672B2 (en) 2011-04-19
CN1790353A (zh) 2006-06-21
US7370292B2 (en) 2008-05-06
US20060129952A1 (en) 2006-06-15
US20080127002A1 (en) 2008-05-29

Similar Documents

Publication Publication Date Title
CN100421116C (zh) 通过迭代过度逼近和再编码策略进行增量设计缩减的方法和系统
CN100504888C (zh) 使用可达性过度逼近进行验证的方法和系统
Marques-Silva et al. Conflict-driven clause learning SAT solvers
Clarke et al. Introduction to model checking
Shukla et al. A survey on applications of quantified Boolean formulas
Biere et al. Preprocessing in SAT solving
Rabe et al. CAQE: a certifying QBF solver
Limnios Fault trees
JP3119646B2 (ja) 再コンフュギュレーション可能なハードウェアシステムの評価装置及び演算処理方法
CN102598001B (zh) 用于执行对逻辑设计的分析的方法和系统
Mishchenko et al. A new enhanced constructive decomposition and mapping algorithm
Fernandez-Amoros et al. A scalable approach to exact model and commonality counting for extended feature models
Jussila et al. A first step towards a unified proof checker for QBF
Zhan et al. The state problem for test generation in simulink
Niemetz et al. Precise and complete propagation based local search for satisfiability modulo theories
Abate et al. Arch-comp21 category report: Stochastic models
Marin et al. Verification of partial designs using incremental QBF solving
Liu et al. Cama: A multi-valued satisfiability solver
Becker et al. ALLQBF solving by computational learning
Calder et al. A modal logic for full LOTOS based on symbolic transition systems
Rodríguez et al. Realizability modulo theories
Kacprzak et al. From bounded to unbounded model checking for temporal epistemic logic
Baumeister et al. Explainable reactive synthesis
Smith et al. Proving temporal properties of Z specifications using abstraction
Penttinen et al. An open modelling approach for availability and reliability of systems-OpenMARS

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
TR01 Transfer of patent right

Effective date of registration: 20171122

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171122

Address after: American New York

Patentee after: Core USA second LLC

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080924

Termination date: 20191114

CF01 Termination of patent right due to non-payment of annual fee