CN101794324B - 用于使用下界距离来执行抽象-精化的方法和装置 - Google Patents
用于使用下界距离来执行抽象-精化的方法和装置 Download PDFInfo
- Publication number
- CN101794324B CN101794324B CN2009102076292A CN200910207629A CN101794324B CN 101794324 B CN101794324 B CN 101794324B CN 2009102076292 A CN2009102076292 A CN 2009102076292A CN 200910207629 A CN200910207629 A CN 200910207629A CN 101794324 B CN101794324 B CN 101794324B
- Authority
- CN
- China
- Prior art keywords
- distance
- character
- abstract model
- state variable
- bound
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
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)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明的实施方式提供用于验证电路的功能的方法和装置。系统可以确定下界距离(LBD)值,从而LBD值与CUV的不满足性质的LBD抽象模型关联。系统可以使用抽象-精化技术以确定CUV是否满足性质。系统可以为抽象-精化技术中所用抽象模型确定上界距离值并且可以确定LBD值是否大于或者等于上界距离值。如果是这样,则系统可以推断抽象模型不满足性质,因此系统可以判决不对抽象-精化技术中当前所用抽象模型执行可达性分析。
Description
技术领域
本公开一般地涉及电子设计自动化(EDA)。具体而言,本公开涉及用于通过使用抽象-精化技术来验证电路设计的功能的方法和装置。
背景技术
半导体制作技术的发展已经造成每半导体器件的晶体管数量的急剧增加。晶体管计数的这一增加使得计算机架构师能够创建具有急剧增加的设计复杂度的数字电路设计。因而,随着数字电路设计变得更复杂,也更多地涉及到为了验证它们的实施的正确性而需要的工作。
为了验证电路设计的功能,电路设计验证团队通常执行基于模拟的验证方法、形式验证方法或者这二者的组合。在基于模拟的验证期间,验证团队通常将随机输入激励施加到待验证的电路设计(CUV)以对CUV进行模拟并且对来自模拟的响应与预计的响应进行比较。按照随机输入激励对CUV进行模拟在性质上是概率性的并且依赖于大量输入向量以实现对CUV的行为的合理覆盖。然而随着电路设计变得更复杂,随机输入激励在覆盖CUV的重要拐角情况时变得不太有效。
在形式验证期间,验证团队通常尝试证实或者反证CUV的功能的正确性。形式验证通常涉及到构造对CUV的正确功能进行限定的形式规范和/或性质汇集、然后使用形式证据以确定CUV的实施是否满足形式规范和/或性质汇集。然而,如果没有使用具体技术以使验证更高效,则形式规范可能计算成本高。
抽象-精化是这样一种方式,该方式创建CUV的抽象数学模型并且展开抽象模型直至满足性质或者为CUV发现反例。具体而言,如果抽象-精化程序确定抽象模型满足性质,则它确定CUV也满足性质。另一方面,如果抽象模型在功能上变得等效于CUV并且形式验证技术发现反例,则抽象-精化程序确定CUV不满足性质。遗憾的是,抽象-精化方式甚至可能计算成本高。因此,希望对使用抽象-精化的形式验证技术的效率进行改进。
发明内容
一些实施方式提供用于验证电路设计的功能的方法和装置。具体而言,一些实施方式通过确定使用抽象-精化的形式验证工具何时可以避免执行可达性分析来提高该形式验证工具的性能。
可以使用状态变量集合来限定性质,从而各状态变量与CUV中的顺序要素相关联。在两个顺序要素之间的路径的长度可以至少部分地基于路径中的顺序要素数量,从而在两个状态变量之间的距离等于在与两个状态变量相关联的两个顺序要素之间的最短路径的长度。
抽象模型的下界距离(LBD)可以定义如下。如果抽象模型包含CUV中的与性质中的状态变量的距离为k或者更少的所有状态变量,则抽象模型的LBD等于k。换而言之,抽象模型的下界距离k是距离值,从而距离为k或者更少的所有状态变量在抽象模型中。
用于抽象模型的上界距离可以被定义为在抽象模型中的状态变量与性质中的状态变量之间的最大距离值。
在一些实施方式中,系统可以构造称为LBD抽象模型的如下抽象模型,该抽象模型包括CUV中的与性质中的状态变量的距离为k或者更少的所有状态变量。注意这一抽象模型的LBD为k。然后,系统可以通过使用LBD抽象模型来确定对于性质而言是否存在反例。如果存在反例,则系统可以存储值k,从而抽象-精化技术可以使用存储的LBD值以确定是否可以略过可达性分析。另一方面,如果不存在反例,则系统可以确定CUV满足性质。
具体而言,抽象-精化技术可以针对抽象模型计算上界距离并且确定当前LBD值是否大于或者等于上界距离。如果当前LBD值大于或者等于上界距离,则抽象-精化技术可以推断抽象模型不满足性质,并且抽象-精化技术可以决定不对抽象模型执行可达性分析。注意系统可以与抽象精化并行地执行LBD计算。
系统可以使用诸多技术来确定反例,这些技术包括但不限于基于二元决策图(BDD)的技术、基于自动测试图案生成器(APTG)的技术和基于可满足性(SAT)的技术。基于SAT的技术包括但不限于有界模型检验(BMC)、归纳和插值。
附图说明
图1图示了根据一个实施方式的在集成电路的设计和制作过程中的各种阶段;
图2图示了根据一个实施方式的验证环境;
图3图示了根据一个实施方式的用于与CUV相关联的多个抽象模型的示例性图示;
图4呈现了对根据一个实施方式的用于使用抽象-精化技术来验证用于电路设计的性质的过程进行图示的流程图;
图5呈现了对根据一个实施方式的用于确定性质的反例的过程进行图示的流程图;
图6呈现了对根据一个实施方式的用于为性质计算下界距离的迭代过程进行图示的流程图;
图7呈现了对根据一个实施方式的用于为电路设计验证性质的抽象-精化过程进行图示的流程图;
图8图示了根据一个实施方式的有助于验证CUV的功能的示例性计算机系统。
在附图中相似标号指代相同附图单元。
具体实施方式
呈现以下描述以使本领域技术人员能够实现和利用实施方式,并且在特定应用及其要求的背景下提供该描述。本领域技术人员将容易清楚对公开的实施方式的各种修改,并且这里限定的一般性原理可以适用于其它实施方式和应用而不脱离本发明的精神和范围。因此,本发明不限于所示实施方式而是将被赋予以与这里公开的原理和特征一致的最广范围。
在本具体实施方式中描述的数据结构和代码通常存储于计算机可读存储介质上,该介质可以是能够存储用于由计算机系统使用的代码和/或数据的任何设备或者介质。计算机可读存储介质包括但不限于易失性内存、非易失性内存、磁和光学存储设备(比如盘驱动、磁带、CD(压缩盘)、DVD(数字多功能盘或者数字视频盘)或者现在已知或者以后开发的能够存储计算机可读介质的其它介质。
可以将具体实施方式这一节中描述的方法和过程体现为能够存储于如上所述计算机可读存储介质中的代码和/或数据。当计算机系统读取和执行计算机可读存储介质上存储的代码和/或数据时,计算机系统执行体现为数据结构和代码并且存储于计算机可读存储介质内的方法和过程。
另外,可以在硬件模块中包括下文描述的方法和过程。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)和现在已知或者以后开发的其它可编程逻辑器件。当激活硬件模块时,硬件模块实现硬件模块中所包括的方法和过程。
集成电路(IC)设计流程
图1图示了根据本发明一个实施方式的在集成电路的设计和制作过程中的各种阶段。
IC设计过程通常从使用EDA过程(操作110)来实现的产品构思(操作100)开始。一旦设计完成,通常流片(tap-out)(事件140)该设计,这时该设计经过制作过程(操作150)以及封装和组装过程(操作160)以产生成品芯片(结果170)。
EDA过程(操作110)包括下文仅出于示例目的而描述的而且并非用来限制本发明的操作112-130。具体而言,实际集成电路设计可能要求设计者在与下文描述的序列不同的序列中进行设计操作。
系统设计(操作112):在这一阶段中,设计者描述实施产品构思的功能。他们也可以执行假设规划来精化功能、执行成本分析等。硬件-软件架构划分可以出现在这一阶段。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括Model Architect、System Studio和
逻辑设计和功能验证(操作114):在这一阶段,编写用于系统中的模块的VHDL或者Verilog代码,并且检验该设计的功能准确性。具体而言,检验该设计以保证它产生正确响应。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括 MagellanTM、ESP和
综合和用于测试的设计(操作116):VHDL/Verilog源码可以在这一阶段中被转译成网表。可以针对目标技术优化该网表,并且可以设计和实施测试以检验制造的微芯片。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括DesignPhysicalTest Compiler、Power CompilerTM、FPGACompiler、和
设计规划(操作120):在这一阶段中,构造和分析用于微芯片的整个布图规划以便进行定时和顶级布线。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括AstroTM和ICCompiler产品。
物理实施(操作122):在这一阶段出现布置(对电路元件的定位)和布线(对电路元件的连接)。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括AstroTM和IC Compiler产品。
分析和提取(操作124):在这一阶段,在晶体管级验证电路功能;这又允许假设的精化。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括AstroRailTM、PrimeRail、和Star-RCXTTM。
物理验证(操作126):在这一阶段中,检验设计以保证制造、电气问题、光刻问题和电路的正确性。HerculesTM是可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品。
解析度增强(操作128):这一阶段涉及到对布局的几何形状的操控以提高设计的可制造性。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括Proteus/Progen、ProteusAF和PSMGen。
概述
图2图示了根据一个实施方式的验证环境。验证环境200包括验证系统202和多个LBD计算引擎204-208。在这些实施方式的一些变形中,验证系统202可以包括LBD计算引擎204-208。LBD计算引擎204-208取得作为输入的CUV 210和性质212并且分别生成下界距离(LBD)216-220。验证系统202取得作为输入的CUV 210、性质212和LBD216-220并且为CUV 210生成验证报告222。在一些实施方式中,可以使用硬件描述语言(HDL)来实施CUV 210。在其它实施方式中,CUV 210可以实施为门级设计。
在一些实施方式中,使用状态变量集合来限定性质(例如性质212),从而各状态变量与CUV 210中的顺序要素相关联。性质可以是安全性质或者不可达性性质。安全性质指定CUV 210在正常操作条件期间必须满足的约束集合。因此,验证系统202可以在它确定CUV 210在正常操作条件期间不能满足针对给定性质的约束集合时确定CUV 210实施非法状态。反言之,不可达性性质指定CUV 210在正常操作条件期间绝不能满足的约束集合。因此,验证系统202可以在它确定CUV 210在正常操作条件期间可以满足来自给定的不可达性性质的约束时确定CUV 210实施非法状态。
在一些实施方式中,验证环境200通过先将性质212-214转换成不可达性性质来对CUV 210执行验证。
在一些实施方式中,在CUV 210中的两个顺序要素之间的路径的长度部分地基于路径中的顺序要素数量,从而在两个状态变量之间的距离等于在与两个状态变量相关联的两个顺序要素之间的最短路径的长度。基于这些定义,下界距离是如下数值,该数值标识CUV 210的如下状态变量的集合,这些状态变量代表CUV 210的用于满足性质的不足部分,从而CUV 210的这些标识的状态变量具有与性质中的状态变量之间的小于或者等于下界距离的距离。
在操作期间,LBD计算引擎204先通过生成LBD抽象模型来为性质212确定下界距离214。抽象模型是CUV 210的简化抽象解释的数学或者逻辑表示。在一些实施方式中,抽象模型可以包括来自CUV 210的多个状态变量并且可以包括与这些状态变量相关联的逻辑。LBD计算引擎204使用CUV 210的LBD抽象模型以确定反例对于性质212而言是否存在。如果反例存在,则LBD计算引擎204为LBD抽象模型计算下界距离并且将下界距离值发送到验证系统202。
另一方面,如果反例不存在,则LBD计算引擎204确定LBD抽象模型满足性质212。注意由于LBD抽象模型包括CUV 210的状态变量的子集,所以当LBD抽象模型满足性质212时,CUV 210满足性质212。因此,当反例对于性质212而言不存在时,LBD计算引擎204向验证系统202通知CUV 210满足性质212。
在一些实施方式中,LBD计算引擎204通过先为LBD抽象模型中的边界状态变量集合确定它们与性质中的状态变量的相应距离来为LBD抽象模型计算下界距离。然后,LBD计算引擎204从为边界状态变量集合确定的距离集合中识别最小距离并且将下界距离设置成所标识的最小距离。注意边界状态变量是LBD抽象模型中的最外状态变量,从而边界状态变量没有扇入变量、也就是状态变量。也注意边界状态变量可以具有如下扇入变量,这些扇入变量是主输入变量或者伪输入变量(即在CUV 210内部、但是并非状态变量的变量)。
在一些实施方式中,当LBD计算引擎204确定大于任何先前下界距离值的新下界距离值时,LBD计算引擎204可以将新下界距离值传达到LBD计算引擎206-208。类似地,LBD计算引擎204可以从LBD计算引擎206-208接收新下界距离值。这使得无论哪个LBD计算引擎去确定新下界距离值都允许LBD计算引擎204-208一直知晓最大下界距离值。
在一些实施方式中,边界距离是与LBD抽象模型中与性质的状态变量最远的边界状态变量的距离。在一些实施方式中,边界状态变量具有到性质的状态变量的如下距离,该距离是边界距离或者在边界距离以前的距离(即边界距离减1)。
在操作期间,验证系统202执行抽象-精化过程以确定CUV 210是否可以满足性质(例如性质212)。在这样做时,验证系统202可以通过使用CUV为性质生成第二抽象模型来开始。然后,验证系统202执行对第二抽象模型的可达性分析以确定第二抽象模型是否满足性质。如果是这样,则验证系统202确定CUV 210也满足性质。否则,验证系统202通过使用第二抽象模型来继续为性质生成反例。验证系统202然后通过用来自CUV 201的状态变量扩充第二抽象模型来精化第二抽象模型并且可以通过再次执行可达性分析来重复该过程。
在一些实施方式中,验证系统202可以通过先为第二抽象模型计算上界距离来确定它是否可以避免对第二抽象模型执行可达性分析,该上界距离指定在性质中的状态变量与第二抽象模型的边界状态变量之间的最大距离。然后,验证系统202可以比较下界距离与上界距离以确定下界距离是否大于或者等于上界距离。如果是这样,则验证系统202已经确定当前抽象模型不满足性质,因此无需对抽象模型执行可达性分析。
在一些实施方式中,验证系统202和LBD计算引擎204-208并行执行。例如,LBD计算引擎204可以通过运用基于二元决策图(BBD)的求解器作为基本算法来为性质212计算下界距离216。同时,LBD计算引擎206可以通过运用布尔可满足性(SAT)求解器作为基本算法来为性质212计算下界距离218,并且LBD计算引擎208可以通过运用自动测试图案生成(ATPG)作为基本求解器来为性质212计算下界距离220。这一并行计算基础结构是有益的,因为一个LBD求解器可以有利于分析第一类电路,而第二LBD求解器可以有利于分析第二类电路。
另外,在一些实施方式中,两个相应的LBD计算引擎可以通过用不同下界距离生成初始抽象模型来开始它们的下界距离计算。例如,LBD计算引擎204可以通过用初始下界距离LBD=3生成初始抽象模型来开始它的LBD计算,而LBD计算引擎206可以通过用初始下界距离LBD=6生成初始抽象模型来开始它的LBD计算。有利的是允许多个LBD计算引擎在不同下界距离值开始它们的下界距离计算,因为这样做使验证环境200能够部署用于为性质确定最大下界距离的多个计算资源而无须遍历所有可能距离值。
在一些实施方式中,这一并行计算基础结构允许验证系统202选择由任何LBD计算引擎204-208计算的最大下界距离值。也就是说,随着LBD计算引擎204-208计算和更新它们的相应下界距离值,验证系统202可以在它的执行中的任何点处从集合中选择最大下界距离值。注意通过向验证系统202提供最大可能下界距离值,LBD计算引擎204-208增加验证系统202将能够避免为抽象-精化过程的多次迭代执行可达性分析这一可能性。
图3图示了根据一个实施方式的用于与CUV相关联的多个抽象模型的示例性图示。CUV 300包括多个状态变量(例如状态变量310-314)和来自性质的一个或者多个状态变量(性质状态变量302所示)。注意来自CUV 300的相应状态变量和与性质状态变量302中的状态变量的距离相关联并且距离界限由虚线椭圆图示。例如,状态变量312具有与性质状态变量302中的状态变量的距离d=4,因此在用于距离界限d=3和d=4的椭圆之间图示状态变量312。
抽象模型304-308图示了用于验证过程的计算快照。LBD计算引擎可以在其用于为性质确定下界距离的程序期间生成LBD抽象模型308。另外,LBD抽象模型308包括CUV 300的与距离d≤3相关联的所有状态变量(即具有与性质状态变量302中的状态变量的距离d≤3)并且包括与距离d≤4相关联的状态变量312。注意状态变量312是去往状态变量310的扇入状态变量(虚线箭头所示);因此,用于LBD抽象模型308的边界状态变量集合包括除了状态变量310之外的与距离d=3相关联的所有状态变量,并且包括与距离d=4相关联的状态变量312。下界距离定义为从边界状态变量到性质中的状态变量的距离集合中的最小值;因此,用于LBD抽象模型308的下界距离为LBD=3。另外,由于抽象模型的边界距离D定义为从边界状态变量到性质中的状态变量的距离集合中的最大值,所以用于LBD抽象模型308的边界距离为D=4。
类似地,验证系统在其用于为CUV 300验证性质的抽象-精化程序期间生成抽象模型304-306。具体而言,验证系统可以在抽象-精化程序的第一迭代期间生成抽象模型304,并且可以通过用状态变量314扩充抽象模型304在抽象精化程序的后续迭代期间精化抽象模型304以生成抽象模型306。另外,由于上界距离定义为从边界状态变量到性质中的状态变量的距离集合中的最大值,所以用于抽象模型304的上界距离为UBD=3。
注意例如图3中所示,计算的下界距离大于或者等于计算的上界距离。因此,验证系统中的抽象-精化程序可以依赖于下界距离以确定抽象模型306不满足性质,由此避免需要对抽象模型306执行可达性分析。
图4呈现了对根据一个实施方式的用于使用抽象精化技术来为电路设计验证性质的过程进行图示的流程图。在一些实施方式中,该过程可以由计算机系统执行,该计算机系统包括存储指令的计算机可读存储介质,这些指令在由计算机系统执行时使计算机系统执行该过程。系统可以通过接收CUV和待验证的性质(操作402)来开始。接着,系统通过使用CUV的第一抽象模型来为性质确定第一反例(操作404),并且部分地基于第一抽象模型来更新下界距离值(操作406)。系统然后使用抽象-精化技术来验证性质(操作408)。
在使用抽象-精化技术来验证性质之时,系统为CUV的第二抽象模型确定上界距离(操作410)。然后响应于确定下界距离大于或者等于上界距离,系统为性质确定第二反例而不对第二抽象模型执行可达性分析(操作412)。
在一些实施方式中,在使用抽象-精化技术来验证性质之时并且响应于确定反例对于性质而言不存在,系统确定CUV满足性质(操作414)。
在一些实施方式中,在使用抽象-精化技术来验证性质之时并且响应于确定第一抽象模型在功能上等效于CUV,系统确定CUV不满足性质(操作416)。
图5呈现了对根据一个实施方式的用于为性质确定反例的过程进行图示的流程图。在一些实施方式中,该过程可以由实施LBD计算引擎的计算机系统执行。系统可以通过确定包括性质的一个或者多个状态变量的初始抽象模型(操作502)来开始。然后,系统用CUV的状态变量扩充初始抽象模型以生成第一抽象模型(操作504)。系统然后部分地基于第一抽象模型来更新下界距离值(操作506)并且使用第一抽象模型来为性质确定第一反例(操作508)。
图6呈现了对根据一个实施方式的用于为性质计算下界距离的迭代过程进行图示的流程图。在一些实施方式中,该过程可以由实施了LBD计算引擎的计算机系统执行。该系统可以通过接收CUV和性质(操作602)、生成初始抽象模型M1(操作604)并且使用抽象模型M1为性质确定反例(操作606)来开始。系统然后确定反例是否存在(操作608)。如果反例不存在,则系统确定CUV满足性质(操作610)。否则,系统继续确定抽象模型M1是否在功能上等效于CUV(操作612)。如果是这样,则系统确定CUV不满足性质(操作614)。否则系统继续部分地基于反例来为抽象模型M1更新下界距离(操作616)。系统然后通过用来自CUV的多个状态变量扩充抽象模型M1来精化M1(操作618)并且返回到操作606。
在一些实施方式中,当执行操作604时,系统可以生成抽象模型M1,从而它具有初始下界距离LBD=1。在其它实施方式中,系统可以生成抽象模型M1,从而它具有任意初始下界距离值LBD=N。
在一些实施方式中,系统可以通过使用二元决策图(BDD)来计算下界距离。在一些其它实施方式中,系统可以通过使用自动测试图案生成器(ATPG)来计算下界距离。在其它实施方式中,系统可以通过使用布尔可满足性(SAT)求解器来计算下界距离。用于SAT求解器的一些示例算法包括但不限于有界模型检验(BMC)、归纳和插值。
注意由于抽象模型单调增长,所以系统可以重用它在一次过程迭代期间收集的信息以优化它为后续迭代执行的计算。这样做允许系统避免执行多余计算。例如,当执行有界模型检验(BMC)计算时,系统可以使用先前过程迭代所使用的有界深度作为用于当前过程迭代的起始有界深度。类似地,当执行归纳计算时,系统可以使用先前过程迭代所使用的归纳深度作为用于当前过程迭代的起始归纳深度。另外,当执行插值计算时,系统可以使用先前过程迭代所使用的插值深度作为用于当前过程迭代的插值深度。
图7呈现了对根据一个实施方式的用于为电路设计验证性质的抽象-精化过程进行图示的流程图。系统可以通过接收CUV和性质(操作702)并且为性质生成初始抽象模型M2(操作704)来开始。接着,系统为M2计算上界距离(UBD)(操作710)并且从LBD计算引擎接收用于下界距离的更新(操作712)。
系统然后确定上界距离是否大于下界距离(操作714)。如果是这样,则系统对抽象模型M2执行可达性分析以确定M2是否可以满足性质(操作716)。接着,系统响应于可达性分析来确定抽象模型M2是否满足性质(操作718)。如果M2满足性质,则系统确定CUV满足性质(操作720)。否则,如果M2不满足性质,则系统继续使用M2为性质确定反例(操作722)。系统然后确定抽象模型M2是否在功能上等效于CUV(操作724)。如果是这样,则系统确定CUV不满足性质(操作726)。否则系统通过利用来自CUV的状态变量扩充抽象模型M2来精化M2(操作728),并且返回到操作710。在一些实施方式中,扩充到抽象模型M2上的状态变量与性质的状态变量具有小于或者等于上界距离+1的距离。
注意如果操作714确定下界距离大于或者等于上界距离,则系统继续操作722而不执行操作716的可达性分析计算,由此避免计算成本高的操作。
计算系统
图8图示了根据一个实施方式的有助于验证CUV的功能的示例计算机系统。计算机系统802包括处理器804、存储器806、和存储设备808。另外,计算机系统802可以耦合到显示设备810和输入设备812。
存储设备808存储操作系统814、电路验证系统816、LBD计算引擎820、CUV 824、性质826、验证报告828、上界距离830和下界距离832。电路验证系统816可以包括图形用户接口(GUI)818,而LBD计算引擎820可以包括GUI 822。
在操作期间,电路验证系统816从存储设备808加载到存储器806中并且由处理器804执行。在一些变形中,电路验证系统816可以实施于硬件模块如ASIC或者FPGA中。在一些实施方式中,电路验证系统816可以执行抽象-精化程序以验证CUV 824满足性质826。在这样做时,电路验证系统816为CUV 824生成抽象模型并且展开抽象模型直至抽象模型满足性质或者抽象模型在功能上变得等效于CUV 824。如果电路验证系统816确定抽象模型满足性质826,则它确定CUV 824也满足性质826。另一方面,如果抽象模型在功能上变得等效于CUV 824并且抽象模型不满足性质826,则电路验证系统816确定CUV 824不满足性质826。电路验证系统816然后生成验证报告828,该验证报告可以指定CUV 824是否满足性质826和/或可以向性质826提供反例。
电路验证系统816也为抽象模型确定上界距离830并且将它与下界距离832进行比较以确定下界距离832是否大于或者等于上界距离830。如果是这样,则电路验证系统816已经确定抽象模型不满足性质826因此可以避免对抽象模型执行可达性分析。
在操作期间,LBD计算引擎820从存储设备808加载到存储器806中并且由处理器804执行。在一些变形中,LBD计算引擎820可以实施于硬件模块如ASIC或者FPGA中。在一些实施方式中,LBD计算引擎820可以确定用于下界距离832的值。在这样做时,LBD计算引擎820生成包括CUV 824的具有与性质826的状态变量的距离为k的状态变量的第二抽象模型。然后,LBD计算引擎820通过使用CUV 824的第二抽象模型来确定对于性质826而言是否存在反例。如果存在反例,则LBD计算引擎820将用于下界距离832的值更新成k。否则,如果不存在反例,则LBD计算引擎820确定第二抽象模型满足性质826、因此CUV 824也满足性质826。
在一些实施方式中,电路验证系统816和LBD计算引擎820可以由计算机系统802并行执行。
仅出于示例和描述的目的已经呈现对各种实施方式的前文描述。本意并非让它们穷举本发明或者使本发明限于公开的形式。因而,本领域技术人员将清楚许多修改和变形。此外,并非意在让上述公开限制本发明。
Claims (12)
1.一种用于为电路设计验证性质的方法,其中使用状态变量集合来限定所述性质,其中各状态变量与所述电路设计中的顺序要素相关联,其中在两个顺序要素之间的路径的长度部分地基于所述路径中的顺序要素的数量,并且其中在两个状态变量之间的距离等于在与所述两个状态变量相关联的两个顺序要素之间的最短路径的长度,所述方法包括:
使用所述电路设计的第一抽象模型来为所述性质确定第一反例,其中所述第一抽象模型至少包括与所述状态变量集合中的状态变量的距离小于或者等于下界距离的所有状态变量,所述下界距离是标识状态变量的数值,所述状态变量代表所述电路设计的用于满足所述性质的不足部分;并且
使用抽象-精化技术来验证所述性质,所述抽象-精化技术包括:
为所述电路设计的第二抽象模型确定上界距离,其中所述上界距离等于距离集合中的最大距离,并且其中所述距离集合包括在所述状态变量集合中的第一状态变量与所述第二抽象模型中的第二状态变量之间的距离;并且
响应于确定所述下界距离大于或者等于所述上界距离,为所述性质确定第二反例而不对所述第二抽象模型执行可达性分析。
2.根据权利要求1所述的方法,其中所述抽象-精化技术还包括:
响应于确定对于所述性质而言不存在反例,确定所述电路设计满足所述性质。
3.根据权利要求1所述的方法,其中所述抽象-精化技术还包括:
响应于确定所述第一抽象模型在功能上等效于所述电路设计,确定所述电路设计不满足所述性质。
4.根据权利要求1所述的方法,其中在为所述性质确定所述第一反例之前,所述方法还包括通过以下操作来生成所述第一抽象模型:
确定包括来自所述性质的一个或者多个状态变量的初始抽象模型;
用所述电路设计的状态变量扩充所述初始抽象模型以生成所述第一抽象模型;并且
为所述第一抽象模型计算所述下界距离。
5.根据权利要求4所述的方法,其中为所述第一抽象模型计算所述下界距离包括使用二元决策图(BDD)、布尔可满足性(SAT)求解器和自动测试图案生成器(ATPG)中的至少一个。
6.根据权利要求1所述的方法,其中使用所述第一抽象模型来为所述性质确定所述第一反例与使用所述抽象-精化技术来验证所述性质并行执行。
7.一种用于为电路设计验证性质的装置,其中使用状态变量集合来限定所述性质,其中各状态变量与所述电路设计中的顺序要素相关联,其中在两个顺序要素之间的路径的长度部分地基于所述路径中的顺序要素的数量,并且其中在两个状态变量之间的距离等于在与所述两个状态变量相关联的两个顺序要素之间的最短路径的长度,所述装置包括:
LBD计算引擎,配置成使用所述电路设计的第一抽象模型来为所述性质确定第一反例,其中所述第一抽象模型至少包括与所述状态变量集合中的状态变量的距离小于或者等于下界距离的所有状态变量,所述下界距离是标识状态变量的数值,所述状态变量代表所述电路设计的用于满足所述性质的不足部分;以及
验证引擎,配置成使用抽象-精化技术来验证所述性质,其中所述验证引擎配置成:
为所述电路设计的第二抽象模型确定上界距离,其中所述上界距离等于距离集合中的最大距离,并且其中所述距离集合包括在所述状态变量集合中的第一状态变量与所述第二抽象模型中的第二状态变量之间的距离;并且
响应于确定所述下界距离大于或者等于所述上界距离,为所述性质确定第二反例而不对所述第二抽象模型执行可达性分析。
8.根据权利要求7所述的装置,其中所述验证引擎被配置成响应于确定对于所述性质而言不存在反例来确定所述电路设计满足所述性质。
9.根据权利要求7所述的装置,其中所述验证引擎被配置成响应于确定所述第一抽象模型在功能上等效于所述电路设计来确定所述电路设计不满足所述性质。
10.根据权利要求7所述的装置,其中在为所述性质确定所述第一反例之前,所述LBD计算引擎被配置成通过以下操作来生成所述第一抽象模型:
确定包括来自所述性质的一个或者多个状态变量的初始抽象模型;
用所述电路设计的状态变量扩充所述初始抽象模型以生成所述第一抽象模型;并且
为所述第一抽象模型计算所述下界距离。
11.根据权利要求10所述的装置,其中所述LBD计算引擎被配置成使用二元决策图(BDD)、布尔可满足性(SAT)求解器和自动测试图案生成器(ATPG)中的至少一个来为所述第一抽象模型计算所述下界距离。
12.根据权利要求7所述的装置,其中所述LBD计算引擎与所述验证引擎并行操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/362,084 US8032848B2 (en) | 2009-01-29 | 2009-01-29 | Performing abstraction-refinement using a lower-bound-distance to verify the functionality of a circuit design |
US12/362,084 | 2009-01-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101794324A CN101794324A (zh) | 2010-08-04 |
CN101794324B true CN101794324B (zh) | 2013-10-23 |
Family
ID=42355201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102076292A Active CN101794324B (zh) | 2009-01-29 | 2009-10-28 | 用于使用下界距离来执行抽象-精化的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8032848B2 (zh) |
EP (1) | EP2382571B1 (zh) |
CN (1) | CN101794324B (zh) |
TW (1) | TWI461945B (zh) |
WO (1) | WO2010088142A2 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968515B (zh) * | 2011-08-31 | 2016-03-30 | 国际商业机器公司 | 用于计算集成电路模型的验证覆盖率的方法和设备 |
US9395148B1 (en) * | 2015-06-12 | 2016-07-19 | George Huang | Recoil management system |
US9665682B1 (en) * | 2015-09-30 | 2017-05-30 | Cadence Design Systems, Inc. | Methods, systems, and articles of manufacture for enhancing formal verification with counter acceleration for electronic designs |
US10394699B1 (en) * | 2017-09-11 | 2019-08-27 | Cadence Design Systems, Inc. | Method and system for reusing a refinement file in coverage grading |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6678645B1 (en) * | 1999-10-28 | 2004-01-13 | Advantest Corp. | Method and apparatus for SoC design validation |
TW564313B (en) * | 2000-06-28 | 2003-12-01 | Cadence Design Systems Inc | Method and apparatus for testing an integrated circuit, probe card for testing a device under test, apparatus for generating test vectors, computer-readable medium having instructions for testing a device under test and generating test vectors and method |
US6665848B2 (en) * | 2001-01-12 | 2003-12-16 | International Business Machines Corporation | Time-memory tradeoff control in counterexample production |
US20020173942A1 (en) * | 2001-03-14 | 2002-11-21 | Rochit Rajsuman | Method and apparatus for design validation of complex IC without using logic simulation |
US6848088B1 (en) * | 2002-06-17 | 2005-01-25 | Mentor Graphics Corporation | Measure of analysis performed in property checking |
TWI240191B (en) * | 2002-10-24 | 2005-09-21 | Faraday Tech Corp | A method for EDA tools to bypass a plurality of clock branches in the EDA tools |
US6957404B2 (en) * | 2002-12-20 | 2005-10-18 | International Business Machines Corporation | Model checking with layered localization reduction |
TWI220486B (en) * | 2003-02-27 | 2004-08-21 | Faraday Tech Corp | Method for functional verification of hardware design |
US7353468B2 (en) * | 2003-09-26 | 2008-04-01 | Ferguson John G | Secure exchange of information in electronic design automation |
US20050114809A1 (en) * | 2003-11-21 | 2005-05-26 | Yuan Lu | Design verification using formal techniques |
WO2005111874A2 (en) * | 2004-05-07 | 2005-11-24 | Mentor Graphics Corporation | Integrated circuit layout design methodology with process variation bands |
US7469392B2 (en) * | 2004-12-09 | 2008-12-23 | Synopsys, Inc. | Abstraction refinement using controllability and cooperativeness analysis |
US7290230B2 (en) * | 2005-03-17 | 2007-10-30 | Fujitsu Limited | System and method for verifying a digital design using dynamic abstraction |
JP2007164231A (ja) * | 2005-12-09 | 2007-06-28 | Nec Electronics Corp | 半導体設計支援装置 |
US20090007038A1 (en) * | 2007-04-05 | 2009-01-01 | Nec Laboratories America, Inc. | Hybrid counterexample guided abstraction refinement |
-
2009
- 2009-01-29 US US12/362,084 patent/US8032848B2/en active Active
- 2009-10-28 CN CN2009102076292A patent/CN101794324B/zh active Active
-
2010
- 2010-01-14 TW TW099100934A patent/TWI461945B/zh active
- 2010-01-22 WO PCT/US2010/021717 patent/WO2010088142A2/en active Application Filing
- 2010-01-22 EP EP10736259.2A patent/EP2382571B1/en active Active
Non-Patent Citations (6)
Title |
---|
Counter-Example Based Predicate Discovery in Predicate Abstraction;Satyaki Das et al.;《FMCAD'02 Proceedings of the 4th International Conference on Formal Methods in Computer-Aided Design》;20021231;全文 * |
Gisli R.Hjaltason et al..Properties of Embedding Methods for Similarity Searching in Metric Spaces.《IEEE TRANSACTION ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE》.2003,第25卷(第5期),全文. |
Per Bjesse et al..Using Counter Example Guided Abstraction Refinement to Find Complex Bugs.《DATE'04 Proceedings of the conference on Design,automation and test in Europe》.2004,第1卷全文. |
Properties of Embedding Methods for Similarity Searching in Metric Spaces;Gisli R.Hjaltason et al.;《IEEE TRANSACTION ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE》;20030531;第25卷(第5期);全文 * |
Satyaki Das et al..Counter-Example Based Predicate Discovery in Predicate Abstraction.《FMCAD'02 Proceedings of the 4th International Conference on Formal Methods in Computer-Aided Design》.2002,全文. |
Using Counter Example Guided Abstraction Refinement to Find Complex Bugs;Per Bjesse et al.;《DATE'04 Proceedings of the conference on Design,automation and test in Europe》;20041231;第1卷;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US8032848B2 (en) | 2011-10-04 |
EP2382571A2 (en) | 2011-11-02 |
EP2382571B1 (en) | 2018-09-26 |
WO2010088142A2 (en) | 2010-08-05 |
TW201040768A (en) | 2010-11-16 |
CN101794324A (zh) | 2010-08-04 |
TWI461945B (zh) | 2014-11-21 |
US20100192114A1 (en) | 2010-07-29 |
EP2382571A4 (en) | 2013-11-20 |
WO2010088142A3 (en) | 2010-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9195790B2 (en) | Statistical formal activity analysis with consideration of temporal and spatial correlations | |
CN101789034B (zh) | 用于构造规范表示的方法和装置 | |
US8443316B1 (en) | Accelerating coverage convergence and debug using symbolic properties and local multi-path analysis | |
US10719646B2 (en) | Verification of hardware design for data transformation pipeline with equivalent data transformation element output constraint | |
US8386974B2 (en) | Accelerating coverage convergence using symbolic properties | |
US7926020B1 (en) | Methods for automatically generating assertions | |
CN101794324B (zh) | 用于使用下界距离来执行抽象-精化的方法和装置 | |
US20230097314A1 (en) | Verification of hardware design for component that evaluates an algebraic expression using decomposition and recombination | |
CN112632882A (zh) | 一种基于形式验证对仲裁器验证的装置以及方法 | |
CN101866372B (zh) | 用于形式特性验证的假设的自动近似 | |
Nalla et al. | The art of semi-formal bug hunting | |
US6983435B2 (en) | Integrated design verification and design simplification system | |
Dehbashi et al. | Debug automation for synchronization bugs at RTL | |
Mihal et al. | A constraint satisfaction approach for programmable logic detailed placement | |
CN104981806B (zh) | 自动时钟树综合例外生成 | |
TWI488063B (zh) | 最佳化並驗證第一電路的設備,方法及電腦可讀取儲存媒體 | |
US8201119B2 (en) | Formal equivalence checking between two models of a circuit design using checkpoints | |
Lv et al. | An observability branch coverage metric based on dynamic factored use-define chains | |
Yang et al. | Automating logic transformations with approximate spfds | |
Nabeel et al. | Technical report: CoPHEE: Co-processor forPartially Homomorphic Encrypted Execution | |
Manikandan et al. | An Innovative methodology for Complex System on Chip verification | |
Parikh | Abstraction Guided Semi-formal Verification | |
Chen et al. | Maximizing Formal ROI through Accelerated IP Verification Sign-off |
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 |