CN101789035B - 针对混合验证进行逻辑优化和状态空间精简 - Google Patents

针对混合验证进行逻辑优化和状态空间精简 Download PDF

Info

Publication number
CN101789035B
CN101789035B CN200910208099.3A CN200910208099A CN101789035B CN 101789035 B CN101789035 B CN 101789035B CN 200910208099 A CN200910208099 A CN 200910208099A CN 101789035 B CN101789035 B CN 101789035B
Authority
CN
China
Prior art keywords
circuit
hypothesis
stimulus generator
main input
input
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
Application number
CN200910208099.3A
Other languages
English (en)
Other versions
CN101789035A (zh
Inventor
A·M·德索扎
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 CN101789035A publication Critical patent/CN101789035A/zh
Application granted granted Critical
Publication of CN101789035B publication Critical patent/CN101789035B/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
    • 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)
  • Tests Of Electronic Circuits (AREA)

Abstract

本发明公开了一种针对混合验证进行逻辑优化和状态空间精简的方法。本发明的一个实施方式提供一种有助于优化和验证电路设计的系统。该系统可以接收与电路关联的假设集合。该假设集合可以指定对电路的至少主要输入集合的逻辑约束集合。注意,预期在正常电路操作期间满足假设集合。该系统可以部分地基于假设集合中的假设来生成刺激发生器。来自刺激发生器的输出值在赋值给电路的主要输入集合时,使得主要输入集合满足假设。接着,该系统可以通过将刺激发生器的输出与电路的主要输入集合进行耦合,来生成修改电路。该系统然后可以对修改电路进行逻辑优化以获得优化电路。

Description

针对混合验证进行逻辑优化和状态空间精简
技术领域
本发明主要地涉及电子设计自动化。具体而言,本发明涉及用于针对形式化电路验证来优化电路设计的技术和系统。
背景技术
使用高级硬件描述语言来描述电路允许硬件工程师限定电路的功能,并且在将高级描述转换成用于电路的具体物理布局之前优化电路的架构。
电路验证的目的在于确定:预期电路在正常操作条件之下是否如希望的那样表现。可以使用不同的技术来验证电路,这些技术包括形式化验证技术、基于仿真的验证技术以及将形式化验证技术和基于仿真的验证技术的要素进行组合的混合验证技术。
形式化验证技术尝试证明被验证电路(CUV)将在操作期间如希望的那样表现。形式化验证技术通常利用两类逻辑条件:假设和断言。假设是用来对运行时环境进行建模的逻辑条件,而断言是对CUV的所需表现进行限定的逻辑条件。遗憾的是,形式化验证大而复杂的电路在计算机上有时可能不切实际。
基于仿真的验证技术对CUV进行仿真以保证CUV如希望的那样表现。与形式化验证比较,仿真通常需要较少的计算资源。遗憾的是,基于仿真的验证技术通常不能确保CUV将如希望的那样表现,因为覆盖整个状态空间通常是不切实际的。
在一种混合验证技术中,验证工具可以对CUV进行仿真,并且当电路达到感兴趣的状态时,工具可以形式化地验证用于CUV的断言。混合验证技术可以提供两个领域的最佳方面:它们需要的计算资源比形式化验证技术更少,并且它们比基于仿真的验证技术更严格。
无论使用哪种电路验证技术,影响面市时间的一个重要部分通常耗费在验证电路上。因此,希望提高验证工具的性能,因为它可能对面市时间具有巨大影响。
发明内容
本发明的一个实施方式提供一种有助于优化和验证电路设计的系统。该系统可以接收与电路关联的假设集合。该假设集合可以指定对电路的至少主要输入集合的逻辑条件(例如逻辑约束)集合。注意,预期在正常电路操作期间满足假设集合。该系统可以部分基于假设集合中的假设来生成刺激发生器。来自刺激发生器的输出值在被赋值给第一电路的主要输入集合时使主要输入集合满足假设。接着,该系统可以通过将刺激发生器的输出与电路的主要输入集合耦合来生成修改电路。该系统然后可以修改电路进行逻辑优化以获得优化电路。
在一些实施方式中,该系统可以接收与第一电路关联的断言集合。注意断言集合指定对至少第一电路的输出集合的逻辑约束,并且断言集合对第一电路的所需行为进行建模。然后,该系统可以对已优化电路进行功能验证,以验证只要满足假设集合就满足断言集合。
在一些实施方式中,断言集合可以指定对第一电路的主要输入集合、第一电路的状态变量集合和第一电路的输出集合的逻辑约束。
在一些实施方式中,假设集合可以指定对第一电路的主要输入集合、第一电路的状态变量集合和第一电路的输出集合的逻辑约束。
在一些实施方式中,该系统可以通过首先将假设集合划分成假设组集合,使得假设组集合包括第一假设组和第二假设组来生成刺激发生器。注意,假设组中的任何两个假设可以共享至少一个共用主要输入,并且第一假设组的主要输入可以与第二假设组的主要输入不相交。该系统然后可以部分地基于第一假设组来生成刺激发生器的第一部分,并且可以部分地基于第二假设组来生成刺激发生器的第二部分。
在一些实施方式中,可以在创建刺激发生器时将多个主要输入作为状态变量来对待。因此,当两个假设仅共享这些主要输入的子集时,两个假设中的一个假设可以被置于第一假设组中,而另一假设可以被置于第二假设组中。
在一些实施方式中,该系统可以通过首先从假设集合中选择第一假设并且生成刺激发生器的第一部分,以满足针对第一假设的主要输入的逻辑约束,从而生成刺激发生器。然后,在假设保持于假设集合中之时,该系统可以从假设集合中选择第二假设并且可以生成刺激发生器的第二部分,该第二部分满足刺激发生器的第一部分未覆盖的针对第二假设的主要输入的逻辑约束。该系统然后可以将刺激发生器的第二部分附加到刺激发生器的第一部分,由此生成刺激发生器的新第一部分,该新第一部分可以满足针对第二假设的主要输入的逻辑约束。
在一些实施方式中,该系统可以通过首先处理第一假设以针对电路的相应合法状态枚举用于主要输入集合的多个合法值,来生成刺激发生器的第一部分,以满足针对第一假设的主要输入的逻辑约束。然后,系统可以生成可以包括第一输入信号集合、第一选择信号和第一输出信号的与电路的相应合法状态关联的输入复用器。为了生成输入复用器,该系统可以将第一输入信号集合中的输入信号耦合到用于电路的合法状态的对应合法主要输入值、可以将第一选择信号耦合到标识第一输入信号集合中的输入信号的随机变量并且可以配置第一输出信号以传播来自第一输入信号集合中的标识的输入信号的值。该系统也可以生成包括第二输入信号集合、第二选择信号和第二输出信号的输出复用器。为了生成输出复用器,该系统可以将第二输入信号集合中的输入信号耦合到对应输入复用器的第一输出信号并且将第二选择信号耦合到电路的状态变量以标识第二信号集合中的输入信号。另外,该系统可以配置第二输出信号以传播来自第二输入信号集合中的标识的输入信号的值。
附图说明
图1图示了根据本发明一个实施方式的在集成电路的设计和制作过程中的各种阶段。
图2图示了根据本发明一个实施方式的用于对CUV进行逻辑优化的示例过程。
图3图示了根据本发明一个实施方式的刺激发生器。
图4图示了根据本发明一个实施方式的通过将假设集合划分成等效类来生成多个刺激发生器部分的计算机制。
图5图示了根据本发明一个实施方式的通过根据多个刺激发生器部分创建顺序组合来根据假设集合生成刺激发生器的计算机制。
图6图示了根据本发明一个实施方式的用于对CUV进行逻辑优化的逻辑优化设置。
图7图示了根据本发明一个实施方式的对已优化的CUV进行形式化验证的验证设置。
图8呈现了根据本发明一个实施方式的对用于针对形式化验证来优化电路的过程进行图示的流程图。
图9呈现了根据本发明一个实施方式的对用于为假设集合生成不相交刺激发生器部分集合的过程进行图示的流程图。
图10呈现了根据本发明一个实施方式的对用于生成为假设集合生成刺激发生器的过程进行图示的流程图。
图11呈现了根据本发明一个实施方式的对用于实施刺激发生器一部分的过程进行图示的流程图。
图12图示了根据本发明一个实施方式的在逻辑设计阶段期间有助于电路设计以在布置和布线阶段期间减少布线拥塞的示例计算机系统。
具体实施方式
呈现以下描述以使本领域技术人员能够实现和利用本发明,并且在特定应用及其要求的背景下提供该描述。本领域技术人员将容易清楚对公开的实施方式的各种修改,并且这里限定的一般原理可以适用于其他实施方式和应用而不脱离本发明的精神实质和范围。因此,本发明不限于所示实施方式而是将被赋予以与这里公开的原理和特征一致的最广范围。
在本具体说明书中描述的数据结构和代码通常存储于计算机可读存储介质上,该介质可以是能够存储用于由计算机系统使用的代码和/或数据的任何设备或者介质。计算机可读存储介质包括但不限于易失性存储器、非易失性存储器、磁和光学存储设备(比如盘驱动、磁带、CD(光盘)、DVD(数字万用盘或者数字视频盘)或者现在已知或者以后开发的能够存储计算机可读介质的其他介质。
可以将具体说明书的章节中描述的方法和过程实施为能够存储于如上所述计算机可读存储介质中的代码和/或数据。当计算机系统读取和执行计算机可读存储介质上存储的代码和/或数据时,计算机系统实现作为数据结构和代码来体现的并且存储于计算机可读存储介质内的方法和过程。
另外,在硬件模块中可以包括下述方法和过程。例如,硬件模块可以包括但不限于专用集成电路(ASIC)芯片、现场可编程门阵列(FPGA)和现在已知或者将来开发的其他可编程逻辑器件。当激活硬件模块时,硬件模块实现硬件模块中包括的方法和过程。
集成电路(IC)设计流程
图1图示了根据本发明一个实施方式的在集成电路的设计和制作过程中的各种阶段。
IC设计过程通常从使用EDA工艺(操作110)来实现的产品想法(操作100)开始。一旦设计定稿,通常流片(tap-out)(事件140)该设计,这时该设计经过制作工艺(操作150)以及封装和组装工艺(操作160)以产生成品芯片(结果170)。
EDA工艺(操作110)包括下文仅出于示出目的而描述的、而且并非用来限制本发明的操作112-130。具体而言,实际集成电路设计可能要求设计者在与下述序列不同的序列中进行设计操作。
系统设计(操作112):在这一阶段中,设计者描述实施产品想法的功能。他们也可以进行假设分析(what-if)的规划以精化功能、检验成本等。硬件-软件架构划分可以出现在这一阶段。可以在这一阶段使用的来自Synopsys公司的示例EDA软件产品包括ModelArchitect、
Figure G2009102080993D00061
System Studio和Design
Figure G2009102080993D00062
逻辑设计和功能验证(操作114):在这一阶段,编写用于系统中的模块的VHDL或者Verilog代码,并且检验该设计的功能准确性。具体而言,检验该设计以保证它产生正确响应。可以在这一阶段使用的来自Synopsys公司的示例EDA软件产品包括
Figure G2009102080993D00063
Design
Figure G2009102080993D00064
MagellanTM
Figure G2009102080993D00065
ESP和
测试用合成和设计(操作116):VHDL/Verilog可以在这一阶段中转译成网表。可以针对目标技术优化网表,并且可以设计和实施测试以检验成品芯片。可以在这一阶段使用的来自Synopsys公司的示例EDA软件产品包括Design
Figure G2009102080993D00067
Physical
Figure G2009102080993D00068
Test Compiler、Power CompilerTM、FPGA Compiler、Tetra和Design
Figure G2009102080993D000610
网表验证(操作118):在这一阶段中,检验网表与时序约束的相符性和与VHDL/Verilog源码的对应性。可以在这一阶段使用的来自Synopsys公司的示例EDA软件产品包括
Figure G2009102080993D000611
Prime
Figure G2009102080993D000612
Figure G2009102080993D000613
设计规划(操作120):在这一阶段中,构造和分析用于芯片的整个布图规划以便进行定时和顶级布线。可以在这一阶段使用的来自Synopsys公司的示例EDA软件产品包括AstroTM和IC Compiler产品。
物理实施(操作122):在这一阶段出现布置(对电路元件的定位)和布线(对电路元件的连接)。可以在这一阶段使用的来自Synopsys公司的示例EDA软件产品包括AstroTM和IC Compiler产品。
分析和提取(操作124):在这一阶段,在晶体管级验证电路功能;这又允许假设分析的精化。可以在这一阶段使用的来自Synopsys公司的示例EDA软件产品包括AstroRailTM、PrimeRail、Prime和Star-RCXTTM
物理验证(操作126):在这一阶段中,检验设计以保证制造、电性问题、平板印刷问题和电路的正确性。HerculesTM是可以在这一阶段使用的来自Synopsys公司的示例EDA软件产品。
分辨率增强(操作128):这一阶段涉及到对布局的几何形状操控以提高设计的可制造性。可以在这一阶段使用的来自Synopsys公司的示例EDA软件产品包括Proteus/Progen、ProteusAF和PSMGen。
掩膜数据预备(操作130):这一阶段提供用于产生掩膜以产生成品芯片的“流片”数据。可以在这一阶段使用的来自Synopsys公司的示例EDA软件产品包括
Figure G2009102080993D00072
系列产品。
概述
图2图示了根据本发明一个实施方式的用于对CUV进行逻辑优化的示例过程。通过首先创建逻辑优化设置210来优化CUV 212,该逻辑优化设置210包括用于CUV 212的刺激发生器214。然后,逻辑优化机制220处理CUV 212以产生已优化的CUV 230。刺激发生器214将来自CUV 212的主要输出216和状态变量217作为输入,并且还将随机变量218作为输入;刺激发生器214使用这些输入以生成用于CUV 212的输入信号的合法输入219。刺激发生器214为CUV 212的各合法状态指定合法主要输入值集合,由此使逻辑优化机制220能够确定如何限制CUV 212的状态空间以生成已优化的CUV 230。
假设
在本发明的一些实施方式中,系统通过分析假设集合来生成刺激发生器。假设指定了如下逻辑条件(例如逻辑约束),该逻辑条件预期在电路的主要输入集合在正常电路操作期间得到满足,并且可以与电路的多个主要输入、状态变量和/或主要输出关联。当且仅当针对每个状态s由假设约束的主要输入值的数目n满足关系ns≤N,则认为该假设是N严密假设(N-tight assumption)。换而言之,如果假设满足以下性质,则该假设是N严密假设:
∀ s ( max s ( n s ) ≤ N ) .
使用符号表示U(s,i)来代表假设,其中s是来自CUV的状态变量矢量,而i是对于CUV的主要输入矢量。在一些实施方式中,合法主要输入值U合法的集合定义如下:
Figure G2009102080993D00082
用于U合法的表达式是用于CUV的每个状态的所有合法主要输入值的并集,并且用两个嵌套并集运算来代表。外并集运算使用变量j遍历CUV的每个状态,其中|s|代表CUV的所有状态变量使用的位数。内并集运算使用变量k来针对相应状态sj遍历数目为
Figure G2009102080993D00083
的合法主要输入值。另外,sj代表用于状态矢量s的第j个值,而
Figure G2009102080993D00084
代表用于状态sj的第k个合法主要输入值。
注意,对于不是合法状态的状态sj
Figure G2009102080993D00085
并且内并集运算没有遍历用于变量k的任何值。因此,变量j和k遍历用于CUV的每个状态的合法主要输入值集合,而
Figure G2009102080993D00086
表达式代表用于状态sj和主要输入值
Figure G2009102080993D00087
的合法配对。另外,当且仅当 U ( s j , i k s j ) = 1 , ( s j , i k s j ) ∈ U legal .
在一些实施方式中,系统可以使用SAT枚举来对假设计算U合法。在其他实施方式中,系统可以通过针对假设构造二元判决图(BDD)并且分析该BDD来为该假设计算U合法。在更多实施方式中,通过使用SAT枚举和BD分析的组合来为假设计算U合法
刺激发生器
使用符号表示f(s,r)来代表刺激发生器,其中s是CUV的状态变量,而r是其可能值范围满足0≤r<N的随机变量。在一些实施方式中,对于CUV的多个主要输入,可以将刺激发生器实现为合法随机值矢量ir s。在操作期间,可以按照CUV的当前状态和随机变量r来选择用于CUV的多个主要输入的合法随机值集合。为CUV的相应状态选择的合法随机值数目受参数N限制。在一些变型中,为CUV的相应状态选择的合法随机值数目受log(N)限制。
在一些实施方式中,刺激发生器实施函数f(s,r)如下:
Figure G2009102080993D00091
针对CUV的相应状态选择的合法主要输入值数目n可以随着状态而变化,从而ns≤N。在一些变型中,无论CUV的状态如何,为随机变量r赋值使得r满足0≤r<N。因此,当对于CUV的状态s而言变量r和n满足关系0≤r<ns时,函数f(s,r)返回默认输入矢量。用于状态s的默认输入矢量可以与r=0(即,i0 s)随机值关联。另一方面,当对于CUV的状态s而言变量r和n满足关系0≤r<ns时,函数f(s,r)可以返回输入矢量ir s
图3图示了根据本发明一个实施方式的刺激发生器。将刺激发生器300实施为包括多个一级复用器302-308和一个二级复用器310的两级复用器结构。一级复用器(例如复用器302)耦合到与CUV的对应状态(例如,状态s0)关联的多个主要输入矢量(例如,输入矢量302-308)。另外,一级复用器还耦合到随机变量312,该随机变量312用来选择用以朝向一级复用器的输出传播的对应主要输入矢量。
二级复用器310耦合到来自一级复用器302-308的复用器输出362-368,并且耦合到状态变量314,该状态变量用来选择用以朝向二级复用器输出370传播的一级复用器输出(例如复用器输出362)。另外,复用器输出370可以耦合到CUV的主要输入,以由合法主要输入值驱动CUV。
在对这些实施方式的一些变型中,对于CUV的状态s而言,当变量r和n满足关系r≥ns时,刺激发生器300的对应输入复用器被配置成选择默认输入矢量。在一些变型中,用于状态s的默认输入矢量可以与随机值r=0(即,i0 s)关联。换而言之,当对于CUV的状态s而言变量r和n满足关系0≤r<ns时,刺激发生器300的对应输入复用器被配置成选择输入矢量ir s
多个假设
通常使用多个假设对CUV的环境进行建模。在一些实施方式中,代表CUV的环境的假设集合可以用来创建多个刺激发生器部分,这些刺激发生器部分为CUV的主要输入生成输入矢量。在对这一实施方式的一种变型中,可以通过将假设集合划分成多个等效类来创建多个刺激发生器部分。在第二变型中,可以通过使用顺序组合技术来创建多个刺激发生器部分,该技术将假设序列转换成刺激发生器部分序列、然后链接所得刺激发生器部分序列,以形成包容刺激发生器。在第三变型中,可以通过首先将假设集合划分成多个不相交假设组,然后应用顺序组合技术以生成用于相应不相交假设组的刺激发生器部分,从而根据该假设集合来创建多个刺激发生器部分。在第四变型中,在创建刺激发生器部分时可以将多个主要输入作为状态变量来对待。因此,当两个假设仅共享这些主要输入的子集时,两个假设之一可以用来创建第一刺激发生器部分,而另一假设可以用来创建第二刺激发生器部分。另外,如果将用于假设的主要输入全集作为状态变量来对待,则该假设未用来创建刺激发生器部分。
图4图示了根据本发明一个实施方式的、通过将假设集合划分成等效类来生成多个刺激发生器部分的计算机制。计算机制400包括假设划分机制402和假设分析器404。假设划分机制402将假设410的集合作为输入,并且将假设410划分成多个不相交假设组412-416。不相交假设组内的假设形成等效类,从而它们共享至少一个共用主要输入变量,而第一假设组具有来自第二假设组的主要输入变量的不相交集合。假设分析器404将相应假设组(例如假设组412)作为输入,并且生成满足用于该假设组的假设集合的对应刺激发生器部分(例如刺激发生器部分422)。
图5图示了根据本发明一个实施方式的、通过从刺激发生器部分创建顺序组合来从假设集合生成刺激发生器的计算机制。在操作期间,计算机制500将多个假设512-516作为输入,并且在序列中创建相应数目的刺激发生器部分522-526,从而两个刺激发生器部分并不尝试为共用主要输入变量生成矢量。另外,来自相应刺激发生器部分的输出成为向该序列中的后续刺激发生器部分的输入。
在一些实施方式中,当两个假设共享多个主要输入变量时,计算机制500可以使用受约束变量以有助于为共享主要输入生成矢量。因此,当两个刺激发生器部分对应于具有一个或者多个共享主要输入变量的两个假设时,第一刺激发生器部分可以将多个受约束变量传播到第二刺激发生器部分,以便为共享主要输入变量生成矢量。注意,受约束变量可以在与随机变量相似的能力内服务,并且它们可以将共享主要输入的影响局限于假设之间。
出于示例目的,假设512指定对主要输入变量I1-I3的约束,假设514指定对主要输入I3-I6的约束,而假设516指定对输入变量I5-I10的约束。在第一迭代中,计算机制500为假设512创建刺激发生器部分522,以满足针对输入I1-I3的约束,并且为刺激发生器部分522提供作为输入的随机变量532、状态变量534和受约束变量538。注意,受约束变量538是刺激发生器部分522为了为共享主要输入I3生成矢量而需要的由计算机制500确定的附加变量。
在第二迭代中,计算机制500为假设514创建刺激发生器部分524,以满足针对主要输入I3-I6的约束,并且处理同样出现在假设512中的共享主要输入I3。计算机制500为刺激发生器524提供随机变量532、受约束变量539和状态变量534作为输入。注意,受约束变量539是刺激发生器部分524为了为共享主要输入I5-I6生成矢量而需要的由计算机制500确定的附加变量。另外,计算机制500配置刺激发生器部分524,以向刺激发生器部分522提供主要输入I4-I6和受约束变量538。刺激发生器部分522使用来自刺激发生器部分524的受约束变量548以满足针对假设512的主要输入I3的约束。
在第三迭代中,计算机制500为假设516类似地创建刺激发生器部分526,以满足针对主要输入I5-I10的约束,并且处理同样出现在假设514中的共享主要输入I5和I6。计算机制500为刺激发生器526提供随机变量532和状态变量534作为输入。另外,计算机制500配置刺激发生器部分526,以向刺激发生器部分524提供主要输入I7-I10和受约束变量539。刺激发生器部分524使用来自刺激发生器部分526的受约束变量539,以满足针对假设514的主要输入I5-I6的约束。
在对这一实施方式的一些变型中,计算机制500通过在增加N严密复杂性的序列中针对假设510进行迭代、并且根据假设512-516创建刺激发生器部分522-526,来实施刺激发生器520的顺序组合。也即,在顺序组合过程中的相应迭代,计算机制500从假设510的集合中选择主要输入变量的可能合法值数目最小的假设,并且为所选假设创建刺激发生器部分。
逻辑优化
图6图示了根据本发明一个实施方式的用于对CUV进行逻辑优化的逻辑优化设置。逻辑优化设置600包括CUV 602、刺激发生器604、假设606的集合和断言608的集合。CUV 602通过随机输入616耦合到刺激发生器604,这些随机输入为用于CUV 602的多个主要输入变量指定可能合法值集合。另外,刺激发生器604通过状态变量618和主要输出620耦合到CUV 602,这些主要输出指定来自CUV602的计算结果。在CUV 602与刺激发生器604之间的这一配置支持逻辑优化系统来针对CUV 602的合法主要输入和状态值而优化CUV 602。
在一些实施方式中,CUV 602将多个主要输入612和由刺激发生器604生成的多个随机输入614作为输入,并且将状态变量618和主要输出620传播到假设606和断言608。刺激发生器604将一个或者多个随机变量614作为输入,并且生成用于随机输入616的矢量集合,该矢量集合传播到CUV 602、假设606和断言608。另外,刺激发生器604为N严密,从而它存储用于CUV 602的相应状态的N个合法主要输入值中的最大值。
在一些实施方式中,假设606可以将主要输入612、随机输入616、状态变量618和主要输出620作为输入。另外,假设606可以生成向断言608传播的有效性变量622,并且标识CUV 602的操作环境是否满足假设606中的约束(即这些约束尚未由于主要输入612、随机输入616、状态变量618和/或主要输出620的非法组合而失效)。在对这些实施方式的一些变型中,假设606为M严密,从而M>N;因此,假设606可以代表比刺激发生器604更大的用于CUV602的合法环境。
在一些实施方式中,断言608可以将主要输入612、随机输入616、状态变量618、主要输出620和有效性变量622作为输入。另外,断言608可以确定是否满足针对CUV 602的多个约束,而断言608在有效性变量622指定CUV 602未在具有合法主要输入值的合法状态中操作(即,假设606中的至少一个假设已经失效)时未失效。
生成已优化的CUV作为来自CUV 602的修改电路,从而这些修改可以将多个信号引入到CUV 602中、从CUV 602去除多个信号和/或调整来自CUV 602内的多个信号的属性。在一些实施方式中,刺激发生器604用来在CUV 602与已优化的CUV之间映射信号。在这样做时,刺激发生器604用来将矢量序列驱动到优化CUV的主要输入中,相同矢量序列然后驱动到CUV 602中。然后,在已优化的CUV与CUV 602之间比较来自状态变量和主要输出的响应,以确定在CUV 602与已优化的CUV之间的信号映射。在一些实施方式中,在CUV 602与已优化的CUV之间的这一信号映射用来修改假设606和断言608,以反映对CUV 602的修改。
死端(Dead-End)检测器
可以让CUV的合法操作环境在CUV的有限状态机(FSM)中允许死端状态。也即,对于CUV的某一状态s,U(s,i)是尚未满足的。FSM中的死端状态的结果在于,假如合法输入值i对于CUV的死端状态而言不存在,则CUV没有产生有效状态或者主要输出值。因此,一旦CUV的FSM进入死端状态,则用于CUV的断言不应失效,这是因为向断言的输入值不是合法值,并且CUV的后续表现无效。
在一些实施方式中,死端检测器被配置成确定CUV的FSM何时在死端状态内操作。死端状态集合D由以下表达式定义:
D = { s | ∀ i . ( U ( s , i ) = 0 ) } .
在操作期间,死端检测器可以通过计算以下表达式来确定CUV的FSM何时在死端状态内操作:
d(s,r)=U(s,f(s,r))。
在一些实施方式中,死端状态检测器通过确定d(s,r)对于所有r∈[0,N>而言是否赋值成零,来确定CUV的FSM的状态s是否处于死端状态。
形式化验证
图7图示了根据本发明一个实施方式的用于对已优化的CUV进行形式化验证的验证设置。验证设置700包括已优化的CUV 702、已优化的假设704的集合、死端检测器706和已优化的断言708的集合。已优化的假设704和已优化的断言708是图6的假设606和断言608的修改版本,这些修改版本反映对图6的CUV 602进行的优化,以生成已优化的CUV 702。
已优化的CUV 702、已优化的假设704、死端检测器706和已优化的断言708将主要输入712和随机输入716作为输入。另外,已优化的CUV 702通过状态变量718和主要输出720耦合到已优化的假设704、死端检测器706和已优化的断言708,这些主要输出指定用于已优化的CUV 702的计算结果。这一配置使验证系统能够在验证已优化的CUV 702的功能时保证已优化的CUV 702在合法操作环境内操作。
死端检测器706将主要输入712、随机输入716、状态变量718和主要输出720作为输入。另外,死端检测器706可以生成向已优化的假设704和已优化的断言708传播的死端变量724,并且标识已优化的CUV 702是否在死端状态内操作。在对这些实施方式的一些变型中,根据用来创建图6的刺激发生器604的相同N严密假设集合来生成死端检测器706。
在一些实施方式中,已优化的假设704可以将主要输入712、随机输入716、状态变量718和主要输出720作为输入。另外,已优化的假设706可以生成向已优化的假设708传播的有效性变量722,并且标识已优化的CUV 702的操作环境是否满足已优化的假设704中的约束(即这些约束尚未由于主要输入712、随机输入716、状态变量718和/或主要输出720的非法组合而失效)。在对这些实施方式的一些变型中,已优化的假设704为M严密,从而M>N;因此,相比于死端检测器706,已优化的假设704能够代表更大的、用于已优化的CUV 702的合法环境。
在一些实施方式中,已优化的断言708可以将主要输入712、随机输入716、状态变量718、主要输出720、有效性变量722和死端变量724作为输入。另外,已优化的断言708在有效性变量722指定CUV 702未在具有合法主要输入值的合法状态中操作(即已优化的假设704中的至少一个假设已经失效),或者死端变量724指定已优化的CUV 702在死端状态中操作时未失效。用于已优化的断言708的所述配置使得形式化验证系统使用已优化的断言708,以确定针对优化的CUV 702的多个约束在已优化的CUV 702在合法操作环境内操作时是否未失效。
图8呈现了对根据本发明一个实施方式的、用于针对形式化验证来优化电路的过程进行图示的流程图。逻辑优化系统可以通过首先接收用于CUV的假设集合(操作802)来进行该过程。然后,系统可以基于假设集合来生成刺激发生器(操作804),并且通过将刺激发生器的输出与CUV的主要输入耦合来生成修改电路(操作806)。系统然后可以对修改电路进行逻辑优化以获得已优化的CUV(操作808)。注意系统对包括刺激发生器和CUV的修改电路进行优化。优化修改电路可以获得比仅优化CUV而将获得的电路更优化的电路。这是因为刺激发生器限制CUV的主要输入可以采用的值,因此优化过程可以发现比仅优化CUV时发现的机会更多的优化机会。
图9呈现了对根据本发明一个实施方式的用于基于假设集合来生成不相交刺激发生器部分集合的过程进行图示的流程图。用于生成刺激发生器的过程可以对应于图8中的操作804。计算机系统可以通过首先接收假设集合(操作902),并且将假设集合划分成具有不相交的主要输入变量的假设组集合(操作904)来进行该过程。然后,对于相应假设组(操作906),系统生成刺激发生器的部分(操作906)。
图10呈现了对根据本发明一个实施方式的、用于为假设集合生成刺激发生器的过程进行图示的流程图。计算机系统可以通过首先接收假设集合(操作1002),并且从假设集合中选择第一假设(操作1004)来进行该过程。在对所述实施方式的一些变型中,系统从假设集合中选择具有最低N严密复杂性的第一假设。接着,系统为第一假设生成第一刺激发生器部分,该部分满足针对第一假设的主要输入的逻辑约束(操作1006)。
然后,在假设保持于假设集合中之时(1008),系统进行以下操作。系统从假设集合中选择第二假设(操作1010),并且为第二假设生成第二刺激发生器部分,该部分满足刺激发生器部分未满足的针对第二假设的主要输入的逻辑约束(操作1012)。在对所述实施方式的一些变型中,系统从假设集合中选择具有最低N严密复杂性的第二假设。系统然后将第二刺激发生器部分附加到第一刺激发生器部分,以生成新第一刺激发生器部分(操作1014)。
图11呈现了对根据本发明一个实施方式的、与图10中的步骤1006对应的用于实施刺激发生器一部分的过程进行图示的流程图。计算机系统可以以如下方式进行该过程。对于CUV的相应合法状态(操作1102),系统为主要输入集合枚举至多N个合法值(操作1104),并且为CUV的合法状态生成输入复用器(操作1106)。输入复用器包括与用于CUV的相应合法状态的对应合法主要输入值集合耦合的多个输入信号,并且包括耦合至标识输入复用器输入信号的随机变量r的选择信号。另外,输入复用器也包括配置成传播来自已标识的输入信号的值的输出信号。在一些变型中,随机变量r满足表达式0≤r<N。
然后,系统生成配置用于传播来自相应输入复用器的输出信号的输出复用器(操作1108)。输出复用器包括耦合到来自输入复用器集合的对应输出信号集合的多个输入信号,并且包括耦合至CUV的标识输出复用器输入信号的状态变量s的选择信号。输出复用器也包括配置成传播来自标识的输入信号的值的输出信号。
计算机系统
图12图示了根据本发明一个实施方式的有助于在逻辑设计阶段期间优化电路设计以在布置和布线阶段期间减少布线拥塞的示例计算机系统。计算机系统1202包括:处理器1204、存储器1206和存储设备1208。另外,计算机系统1202可以耦合到显示设备1210和输入设备1212。
存储设备1208存储操作系统1214、逻辑分析系统1216、CUV1220、假设1222、断言1224、刺激发生器1226和死端检测器1228。逻辑分析系统1216可以包括图形用户接口(GUI)1218。在操作期间,逻辑分析系统1216从存储设备1208加载到存储器1206中,并且由处理器1204执行。在一些变型中,逻辑分析系统1216可以实施于硬件模块如ASIC中。
逻辑分析系统1216将假设1222作为输入,以生成用于CUV1220的刺激发生器1226和死端检测器1228。逻辑分析系统1216然后可以生成逻辑优化设置1230,该设置包括CUV 1220、假设1222、断言1224和刺激发生器1226。逻辑优化设置1230可以由逻辑优化系统处理,以生成用于CUV 1220的优化CUV。逻辑分析系统1216也可以生成验证设置1232,该验证设置包括已优化的CUV、假设1222、断言1224和死端检测器1228。验证设置1232可以由电路验证系统用来对已优化的CUV进行混合或者形式化验证。
仅出于示例和描述的目的已经呈现对本发明实施方式的前文描述。本意并非旨在使其穷举本发明或者使本发明限于公开的形式。因而,本领域技术人员将清楚许多修改和变化。此外,本意并非让上述公开内容限制本发明。本发明的范围由所附权利要求限定。

Claims (16)

1.一种用以优化和验证第一电路的方法,所述方法包括:
接收所述第一电路和与所述第一电路关联的假设集合,其中所述假设集合指定对所述第一电路的至少主要输入集合的第一逻辑约束集合,并且其中预期在正常电路操作期间满足所述假设集合;
部分地基于所述假设集合中的假设来生成刺激发生器,其中来自所述刺激发生器的输出值在赋值给所述第一电路的所述主要输入集合时使得所述主要输入集合满足所述假设;
通过将所述刺激发生器的所述输出与所述第一电路的主要输入集合进行耦合,来生成修改电路;以及
对所述修改电路进行逻辑优化以获得优化电路。
2.根据权利要求1所述的方法,其中所述方法还包括:
接收与所述第一电路关联的断言集合,其中所述断言集合指定对所述第一电路的至少输出集合的逻辑约束,其中所述断言集合对所述第一电路的期望行为进行建模;以及
对所述优化电路进行功能验证,以验证只要满足所述假设集合就满足所述断言集合。
3.根据权利要求2所述的方法,其中所述断言集合指定对所述第一电路的所述主要输入集合、所述第一电路的状态变量集合和所述第一电路的输出集合的逻辑约束。
4.根据权利要求1所述的方法,其中所述假设集合指定对所述第一电路的所述主要输入集合、所述第一电路的状态变量集合和所述第一电路的输出集合的逻辑约束。
5.根据权利要求1所述的方法,其中生成所述刺激发生器包括:
将所述假设集合划分成假设组集合,其中假设组中的任何两个假设共享至少一个共用主要输入,其中所述假设组集合包括第一假设组和第二假设组,并且其中所述第一假设组的主要输入与所述第二假设组的主要输入不相交;
部分地基于所述第一假设组来生成所述刺激发生器的第一部分;以及
部分地基于所述第二假设组来生成所述刺激发生器的第二部分。
6.根据权利要求5所述的方法,其中在将所述假设集合划分成假设组集合之前,生成所述刺激发生器还包括:至少针对所述划分操作的持续时间,将假设的多个主要输入重新分类为状态变量。
7.根据权利要求1所述的方法,其中生成所述刺激发生器包括通过以下操作来生成第二电路:
从所述假设集合中选择第一假设,并且生成所述刺激发生器的第一部分,以满足针对所述第一假设的所述主要输入的所述逻辑约束;以及
在假设保持于所述假设集合中之时:
从所述假设集合中选择第二假设;
生成所述刺激发生器的第二部分,所述第二部分满足所述刺激发生器的所述第一部分未覆盖的、针对所述第二假设的所述主要输入的所述逻辑约束;以及
将所述刺激发生器的所述第二部分附加到所述刺激发生器的所述第一部分,由此生成所述刺激发生器的新的第一部分,所述新的第一部分满足针对所述第二假设的所述主要输入的所述逻辑约束。
8.根据权利要求7所述的方法,其中生成所述刺激发生器的所述第一部分以满足针对所述第一假设的所述主要输入的所述逻辑约束包括:
处理所述第一假设,以针对所述电路的相应合法状态来枚举用于主要输入集合的多个合法值;
通过以下操作来生成包括第一输入信号集合、第一选择信号和第一输出信号的、与所述电路的相应合法状态关联的输入复用器:
将所述第一输入信号集合中的输入信号耦合到用于所述电路的所述合法状态的对应合法主要输入值;
将所述第一选择信号耦合到标识所述第一输入信号集合中的输入信号的随机变量;以及
配置所述第一输出信号,以传播来自所述第一输入信号集合中的所述标识的输入信号的值;以及
通过以下操作来生成包括第二输入信号集合、第二选择信号和第二输出信号的输出复用器:
将所述第二输入信号集合中的输入信号耦合到对应输入复用器的所述第一输出信号;
将所述第二选择信号耦合到所述电路的状态变量,以标识所述第二信号集合中的输入信号;以及
配置所述第二输出信号,以传播来自所述第二输入信号集合中的所述标识的输入信号的值。
9.一种优化和验证第一电路的装置,包括:
接收机构,配置成接收所述第一电路和与所述第一电路关联的假设集合,其中所述假设集合指定对所述第一电路的至少主要输入集合的第一逻辑约束集合,并且其中预期在正常电路操作期间满足所述假设集合;
计算机构,配置成:
部分地基于所述假设集合中的假设来生成刺激发生器,其中来自所述刺激发生器的输出值在赋值给所述第一电路的所述主要输入集合时,使得所述主要输入集合满足所述假设;以及
通过将所述刺激发生器的所述输出与所述第一电路的主要输入集合进行耦合,来生成修改电路;以及
逻辑优化机构,配置成对所述修改电路进行逻辑优化以生成优化电路。
10.根据权利要求9所述的装置,其中所述接收机构还被配置成接收与所述第一电路关联的断言集合,其中所述断言集合指定对所述第一电路的至少输出集合的逻辑约束,并且其中所述断言集合对所述第一电路的所需行为进行建模;以及
其中所述装置还包括:功能验证机构,配置成对所述优化电路进行功能验证,以验证只要满足所述假设集合就满足所述断言集合。
11.根据权利要求10所述的装置,其中所述断言集合指定对所述第一电路的所述主要输入集合、所述第一电路的状态变量集合和所述第一电路的输出集合的逻辑约束。
12.根据权利要求9所述的装置,其中所述假设集合指定对所述第一电路的所述主要输入集合、所述第一电路的状态变量集合和所述第一电路的输出集合的逻辑约束。
13.根据权利要求9所述的装置,其中生成所述刺激发生器包括:
将所述假设集合划分成假设组集合,其中假设组中的任何两个假设共享至少一个共用主要输入,其中所述假设组集合包括第一假设组和第二假设组,并且其中所述第一假设组的主要输入与所述第二假设组的主要输入不相交;
部分地基于所述第一假设组来生成所述刺激发生器的第一部分;以及
部分地基于所述第二假设组来生成所述刺激发生器的第二部分。
14.根据权利要求13所述的装置,其中在将所述假设集合划分成假设组集合之前,生成所述刺激发生器还包括:至少针对所述划分操作的持续时间将假设的多个主要输入重新分类为状态变量。
15.根据权利要求9所述的装置,其中生成所述刺激发生器包括通过以下操作来生成第二电路:
从所述假设集合中选择第一假设,并且生成所述刺激发生器的第一部分,以满足针对所述第一假设的所述主要输入的所述逻辑约束;以及
在假设保持于所述假设集合中之时:
从所述假设集合中选择第二假设;
生成所述刺激发生器的第二部分,所述第二部分满足所述刺激发生器的所述第一部分未覆盖的、针对所述第二假设的所述主要输入的所述逻辑约束;以及
将所述刺激发生器的所述第二部分附加到所述刺激发生器的所述第一部分,由此生成所述刺激发生器的新的第一部分,所述新的第一部分满足针对所述第二假设的所述主要输入的所述逻辑约束。
16.根据权利要求15所述的装置,其中生成所述刺激发生器的所述第一部分,以满足针对所述第一假设的所述主要输入的所述逻辑约束包括:
处理所述第一假,设以针对所述电路的相应合法状态枚举用于主要输入集合的多个合法值;
通过以下操作来生成包括第一输入信号集合、第一选择信号和第一输出信号的、与所述电路的相应合法状态关联的输入复用器:
将所述第一输入信号集合中的输入信号耦合到用于所述电路的所述合法状态的对应合法主要输入值;
将所述第一选择信号耦合到标识所述第一输入信号集合中的输入信号的随机变量;以及
配置所述第一输出信号,以传播来自所述第一输入信号集合中的所述标识的输入信号的值;以及
通过以下操作来生成包括第二输入信号集合、第二选择信号和第二输出信号的输出复用器:
将所述第二输入信号集合中的输入信号耦合到对应输入复用器的所述第一输出信号;
将所述第二选择信号耦合到所述电路的状态变量,以标识所述第二信号集合中的输入信号;以及
配置所述第二输出信号以传播来自所述第二输入信号集合中的所述标识的输入信号的值。
CN200910208099.3A 2009-01-28 2009-10-27 针对混合验证进行逻辑优化和状态空间精简 Active CN101789035B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/361,282 US8104002B2 (en) 2009-01-28 2009-01-28 Performing logic optimization and state-space reduction for hybrid verification
US12/361,282 2009-01-28

Publications (2)

Publication Number Publication Date
CN101789035A CN101789035A (zh) 2010-07-28
CN101789035B true CN101789035B (zh) 2014-01-15

Family

ID=42355198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910208099.3A Active CN101789035B (zh) 2009-01-28 2009-10-27 针对混合验证进行逻辑优化和状态空间精简

Country Status (5)

Country Link
US (1) US8104002B2 (zh)
EP (1) EP2382570A4 (zh)
CN (1) CN101789035B (zh)
TW (1) TWI488063B (zh)
WO (1) WO2010088102A2 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569574B1 (en) * 2014-03-07 2017-02-14 Altera Corporation Method and apparatus for performing fast incremental physical design optimization
CN109753714B (zh) * 2018-12-28 2023-03-21 中国人民解放军国防科技大学 基于知识库的覆盖数据通路边界情况的测试向量生成方法及系统
CN110688821B (zh) * 2019-09-27 2023-10-13 北京中电华大电子设计有限责任公司 一种复杂算法的测试激励生成器及其控制方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182258B1 (en) * 1997-06-03 2001-01-30 Verisity Ltd. Method and apparatus for test generation during circuit design
AU3754100A (en) * 1999-03-19 2000-10-09 Moscape, Inc. System and method for performing assertion-based analysis of circuit designs
US6975976B1 (en) 2000-03-20 2005-12-13 Nec Corporation Property specific testbench generation framework for circuit design validation by guided simulation
US6931611B2 (en) * 2001-12-19 2005-08-16 Freescale Semiconductor, Inc. Design verification system for avoiding false failures and method therefor
US6567971B1 (en) * 2001-12-20 2003-05-20 Logicvision, Inc. Circuit synthesis method using technology parameters extracting circuit
US20070299648A1 (en) * 2003-01-10 2007-12-27 Levitt Jeremy R Reuse of learned information to simplify functional verification of a digital circuit
US7711536B2 (en) * 2005-12-30 2010-05-04 Cadence Design Systems, Inc. System and method for verification aware synthesis
US7882473B2 (en) * 2007-11-27 2011-02-01 International Business Machines Corporation Sequential equivalence checking for asynchronous verification

Also Published As

Publication number Publication date
EP2382570A2 (en) 2011-11-02
US8104002B2 (en) 2012-01-24
US20100192111A1 (en) 2010-07-29
EP2382570A4 (en) 2013-11-27
TW201040766A (en) 2010-11-16
WO2010088102A3 (en) 2010-11-25
CN101789035A (zh) 2010-07-28
TWI488063B (zh) 2015-06-11
WO2010088102A2 (en) 2010-08-05

Similar Documents

Publication Publication Date Title
JP6363297B2 (ja) シミュレータ、半導体回路装置の設計支援システムおよび方法
US7243322B1 (en) Metastability injector for a circuit description
US7818700B2 (en) System and method for verification and generation of timing exceptions
US7743352B2 (en) Computer implemented method of high-level synthesis for the efficient verification of computer software
US8589837B1 (en) Constructing inductive counterexamples in a multi-algorithm verification framework
CN101789034B (zh) 用于构造规范表示的方法和装置
CN101872369A (zh) 规范化表示中的自适应状态-符号转换
CN101866372B (zh) 用于形式特性验证的假设的自动近似
JP4654203B2 (ja) デジタルシステムのhdl記述ファイルを作成する方法、および得られるシステム
CN101789035B (zh) 针对混合验证进行逻辑优化和状态空间精简
Eggersglüß et al. MONSOON: SAT-based ATPG for path delay faults using multiple-valued logics
CN101794324B (zh) 用于使用下界距离来执行抽象-精化的方法和装置
CN104981806B (zh) 自动时钟树综合例外生成
US8443314B1 (en) Abstraction level-preserving conversion of flip-flop-inferred hardware description language (HDL) to instantiated HDL
Ciesielski et al. Arithmetic bit-level verification using network flow model
Chatterjee et al. On resolution proofs for combinational equivalence
US8438518B2 (en) Apparatus for designing semiconductor integrated circuit, method of designing semiconductor integrated circuit, and program for designing semiconductor integrated circuit
Ubar et al. Synthesis of high-level decision diagrams for functional test pattern generation
Maximenko et al. Design Methodology for Embedded Systems with Built-in Self-Recovery
WO2024148502A1 (en) Circuitry for staggering capture clocks in testing electronic circuits with multiple clock domains
Hamad et al. Identification of soft error glitch-propagation paths: Leveraging sat solvers
Viilukas et al. Identifying untestable faults in sequential circuits using test path constraints
Lin et al. Generating concise assertions with complete coverage
Hamad et al. Towards formal abstraction, modeling, and analysis of Single Event Transients at RTL
Yuan Sequential Equivalence Checking of Circuits with Different State Encodings by Pruning Simulation-based Multi-Node Invariants

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