CN101794324A - 用于使用下界距离来执行抽象-精化的方法和装置 - Google Patents

用于使用下界距离来执行抽象-精化的方法和装置 Download PDF

Info

Publication number
CN101794324A
CN101794324A CN200910207629A CN200910207629A CN101794324A CN 101794324 A CN101794324 A CN 101794324A CN 200910207629 A CN200910207629 A CN 200910207629A CN 200910207629 A CN200910207629 A CN 200910207629A CN 101794324 A CN101794324 A CN 101794324A
Authority
CN
China
Prior art keywords
distance
character
abstract model
abstract
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.)
Granted
Application number
CN200910207629A
Other languages
English (en)
Other versions
CN101794324B (zh
Inventor
I-H·穆恩
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.)
Synopsys Inc
Original Assignee
Synopsys 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 Synopsys Inc filed Critical Synopsys Inc
Publication of CN101794324A publication Critical patent/CN101794324A/zh
Application granted granted Critical
Publication of CN101794324B publication Critical patent/CN101794324B/zh
Active 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

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (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、
Figure G2009102076292D0000051
System Studio和
Figure G2009102076292D0000052
逻辑设计和功能验证(操作114):在这一阶段,编写用于***中的模块的VHDL或者Verilog代码,并且检验该设计的功能准确性。具体而言,检验该设计以保证它产生正确响应。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括
Figure G2009102076292D0000053
Figure G2009102076292D0000054
MagellanTM
Figure G2009102076292D0000055
ESP和
Figure G2009102076292D0000056
综合和用于测试的设计(操作116):VHDL/Verilog源码可以在这一阶段中被转译成网表。可以针对目标技术优化该网表,并且可以设计和实施测试以检验制造的微芯片。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括Design
Figure G2009102076292D0000057
Physical
Figure G2009102076292D0000058
Test Compiler、Power CompilerTM、FPGACompiler、
Figure G2009102076292D0000059
网表验证(操作118):在这一阶段中,检验网表与时序约束的相符性和与VHDL/Verilog源码的对应性。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括
Figure G2009102076292D00000511
Figure G2009102076292D00000513
设计规划(操作120):在这一阶段中,构造和分析用于微芯片的整个布图规划以便进行定时和顶级布线。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括AstroTM和ICCompiler产品。
物理实施(操作122):在这一阶段出现布置(对电路元件的定位)和布线(对电路元件的连接)。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括AstroTM和IC Compiler产品。
分析和提取(操作124):在这一阶段,在晶体管级验证电路功能;这又允许假设的精化。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括AstroRailTM、PrimeRail、
Figure G2009102076292D0000061
和Star-RCXTTM
物理验证(操作126):在这一阶段中,检验设计以保证制造、电气问题、光刻问题和电路的正确性。HerculesTM是可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品。
解析度增强(操作128):这一阶段涉及到对布局的几何形状的操控以提高设计的可制造性。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括Proteus/Progen、ProteusAF和PSMGen。
掩模数据预备(操作130):这一阶段提供用于产生掩模以产生成品芯片的“流片”数据。可以在这一阶段使用的来自Synopsys公司的示例性EDA软件产品包括
Figure G2009102076292D0000062
系列产品。
概述
图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计算引擎与所述验证引擎并行操作。
CN2009102076292A 2009-01-29 2009-10-28 用于使用下界距离来执行抽象-精化的方法和装置 Active CN101794324B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/362,084 2009-01-29
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

Publications (2)

Publication Number Publication Date
CN101794324A true CN101794324A (zh) 2010-08-04
CN101794324B 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
EP1747520B1 (en) * 2004-05-07 2018-10-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

Also Published As

Publication number Publication date
EP2382571A2 (en) 2011-11-02
TW201040768A (en) 2010-11-16
TWI461945B (zh) 2014-11-21
US8032848B2 (en) 2011-10-04
EP2382571B1 (en) 2018-09-26
EP2382571A4 (en) 2013-11-20
WO2010088142A2 (en) 2010-08-05
US20100192114A1 (en) 2010-07-29
WO2010088142A3 (en) 2010-11-04
CN101794324B (zh) 2013-10-23

Similar Documents

Publication Publication Date Title
CN101789034B (zh) 用于构造规范表示的方法和装置
US8386974B2 (en) Accelerating coverage convergence using symbolic properties
US10984162B2 (en) Verification of hardware design for data transformation pipeline with equivalent data transformation element output constraint
CN101794324B (zh) 用于使用下界距离来执行抽象-精化的方法和装置
US20230097314A1 (en) Verification of hardware design for component that evaluates an algebraic expression using decomposition and recombination
CN101866372B (zh) 用于形式特性验证的假设的自动近似
CN112632882A (zh) 一种基于形式验证对仲裁器验证的装置以及方法
Chen et al. A two-variable model for SAT-based ATPG
Dehbashi et al. Debug automation for synchronization bugs at RTL
US6983435B2 (en) Integrated design verification and design simplification system
Nalla et al. The art of semi-formal bug hunting
US10970444B1 (en) Methods and systems to verify correctness of bug fixes in integrated circuits
Mihal et al. A constraint satisfaction approach for programmable logic detailed placement
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
Weissenbacher et al. Post-silicon fault localization with satisfiability solvers
Yang et al. Automating logic transformations with approximate spfds
Manikandan et al. An Innovative methodology for Complex System on Chip verification
Jääskeläinen et al. Verification of Safety-Critical Systems: A Case Study Report on Using Modern Model Checking Tools
Chen et al. Maximizing Formal ROI through Accelerated IP Verification Sign-off
Shahhoseini et al. Semi-Algorithmic Test Pattern Generation
Nagubadi Extraction Based Verification Method for off the Shelf Integrated 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