电路验证的制作方法

文档序号:11627771阅读:275来源:国知局
电路验证的制造方法与工艺

要求在先申请的权益

本申请为2016年1月22日提交的题为“tai-chicouplingoptimizationmethod:couplingreverseengineeringandsattotacklenp-completearithmeticcircuitryverification”的美国临时专利申请62/281,735声明权益,其内容通过引用整体并入本文。

概括的说,本项发明是关于电路运算的算法与设备。



背景技术:

在过去的几十年里,集成电路(ic)例如算术电路的复杂性有了显著的发展。在一个标准的电路设计过程中,60%以上的时间常常花在了验证上。因为集成电路通常含有数百万微小的电路原件,例如电路门或晶体管,所以不可能由人工手动去完成验证。因此通常需要借助计算机硬件以及相应的电子设计自动化(eda)软件工具来完成验证。

验证方法基本上分为两类:模拟验证和形式验证。模拟验证并不是一个完全的验证方法,它仅仅是形势验证无法执行时才用作最后的选择。只有形式验证才可以保证完整正确的验证结果。然而形式验证问题已知为np完全问题,它的运行时间是指数级复杂度。特别是用在算术电路部分的验证中。因此,传统的形式验证方法只能用于较小的电路。

因此在电路设计工业和验证技术上,对可以满足更高端技术标准和工业应用的算法或设备的需求非常迫切。



技术实现要素:

示例性实施例是一种全新的针对算术电路电路的形式验证算法。示例性实施例耦合(或者说组合)可满足性(sat)求解器和逆向工程(re);该逆向工程算法利用运算逻辑电路的结构特征(例如1位加法器结构,进位树结构),从而使得该算法可以不用在乎验证电路的规模大小。

示例性实施例怎样优化传统的算术电路验证方法的运行复杂度的基本思路如下。假设有两个算术电路f和g;要验证他们是否相等需要首先生成他们的合取范式(cnf)编码,然后由sat(satisfiability)工具判断他们的编码是否相等。如果可以在生成cnf编码之前尽可能减小f和g之间结构上的差异,那么就很可能在多项式时间内完成算术电路的验证而不是指数级时间。

示例性实施例以耦合逆向工程(re)技术和sat求解器的互补方式(或互补贪婪耦合(cgc)方法或太极耦合)一起有效地作用于等价性验证。电路验证的效率显着提高,使得完成验证需要短得多的时间。通过示例性实施例,可以快速解出不能单独由sat求解器验证的电路验证(诸如算术电路)。

本文将讨论更多示例性实施例。

附图说明

图1a是一个4x4的布思(booth)乘法器的结构图。

图1b是一个非布思的华莱士树(wallacetree)乘法器的结构图。

图2a描述了一个数学模块(a+b)*c的结构图。

图2b描述了一个数学模块a*c+b*c的结构图。

图3用一个示例性实施例描述了等价性验证。

图4描述了示例性实施例的流程图。

图5a描述了待验证的两个电路在标准化之前。

图5b描述了待验证的两个电路在标准化之后。

图6描述了算法流程图。

图7a举例了一个数学模块结构。

图7b举例了一个数学模块结构。

图8中的表格描述了测试用例的特征。

图9描述了示例性实施例与其他算法的比较结果。

图10中的表格展示了示例性实施例与另外两个工业界商业工具的比较结果。

图11描述了计算机系统结构。

具体实施方式

示例性实施例是关于改进算术电路验证的算法或设备。

电路验证是ic设计和制造业中非常必要的一步。验证过程大约要占整个设计周期60%以上的时间。现代集成电路通常含有数百万微小的电路原件,例如电路门或晶体管,所以不可能由手动的用纸和笔去完成验证。因此通常需要借助计算机硬件以及相应的电子设计自动化(eda)软件工具来完成验证。

电路验证的效果和效率对芯片工业有极大的影响。未检测到的错误会使整个芯片失去价值。低效率的验证(例如运行时间太长或复杂度太高)会延长整个设计周期,从而推迟产品上市时间使得利益受损。另外,过低的效率或过高的运行复杂度会消耗更多的资源(例如内存)并要求更高性能的硬件(例如性能更高的处理器)。因此,不够优秀的电路验证算法不但在技术上和经济上不利于芯片工业,也会导致硬件成本的上升。

传统的验证算术电路的算法在多个方面存在缺陷。例如,当变量顺序固定时,有序二叉判定图(obdd)可以用唯一的形式表示一个布尔表达式。然而当表示一个乘法器的时候,无论变量顺序如何,obdd都需要指数级的存储空间。binarymomentdiagrams(bmds)和multiplicativepowerhybriddecisiondiagrams(phdds)仅仅在文字级别有效,却不能有效的表示布尔逻辑。另外,sat求解器非常依赖被比较逻辑之间的内部等价点。如果找不到足够的内部等价点,即使是规模很小的电路,在最坏的情况下,例如比较设计风格不同的两个乘法器(booth和非booth乘法器),sat求解器也会需要指数级的运行时间。因此sat求解器在严重算术电路的时候通常都很无力。其他一些算法则需要事先知道数学模块的输入和输出边界;然而在实际工业中,数学模块通常是嵌在展开的电路当中,无法事先知道他们的边界,导致此类算法不能实用。

如本文所使用的,逆向工程(re)是从门级网表中提取设计信息的过程。在示例性实施例中,应用逆向工程来提取诸如加法器,乘法器,多路选择器(mux)或用于验证诸如(a+b)×c的公式的数学模块。以示例的方式,逆向工程技术与sat技术被耦合(或者说组合)在一起以进行等价性验证。

数学模块或者说算术电路是实现特定逻辑功能的一组电路部件,例如加法器,乘法器,多路选择器或者诸如(a+b)×c的复杂表达式。

数学模块,尤其是乘法器,通常会给验证工具带来巨大挑战。图片1a-1b和图片2a-2b通过示例说明。

例如,当被验证的两个电路设计在结构上高度相似时(可以找到相当多的内部等价点),现有的等价性验证工具的表现就会很好;但是,如果找不到足够的内部等价点(例如结构差异比较大或相似度很低),那么即使是验证规模很小的电路,现有工具也很可能会验证不了。例如,验证有n个输入的异或基本单元(xor树),如果没有内部等价点,它的验证复杂度就是o(2n)。这里大o表示法描述的是当问题的规模变得极大时,运行复杂度或处理时间如果跟着变化。

图片1a-1b用一个示例作了进一步描述。图片1a描述了一个4x4的布思(booth)乘法器(110);图片1b描述了一个4x4的非布思的华莱士树(wallacetree)结构的乘法器120。图片中,fa代表全加法器,ha代表半加法器。布思乘法器110和非布思的华莱士树乘法器在逻辑功能上是一样的,但是它们的结构有明显的差异。

公式1描述了布思乘法器的位乘积,公式2描述了非布思乘法器的位乘积(ai和bj是乘法操作数)。如果直接使用sat求解器去验证,则无法在可接受的时间内完成验证。当验证分别用布思和非布思的两个不同m×n乘法器的时候,则需要指数级的时间去完成。这非常没有效率,并且无法被实际工业界接受。示例性实施例则解决了这个问题。

ppi,j=aibj(2)

图片2a-2b用两张图说明了一个例子。图片2a的210中,212是一个加法器,a和b是加法器的输入;加法器212的输出和另一个变量c则构成乘法器214的输入。414的输出是信号o。这样,整个210实现的功能就是(a+b)×c。

图片2b中的220包含两个乘法器。乘法器222的输入是a和c,乘法器224的输入是b和c。还有一个加法器226,它的输入是两个乘法器的输出,它的输出是信号o。220实现的功能就是a×c+b×c。

如上所述,图片2a和2b中的模块,他们实现的功能是一样的,但是他们的表达式是不一样的因此结构差异就很大。在这种情况下直接用sat求解器去验证则需要指数级的时间去完成。这非常没有效率,并且无法被实际工业界接受。示例性实施例则解决了这个问题。

示例性实施例可以用新的算法和设备改进或帮助数学算术电路的验证以解决上述问题。示例性实施例可以有效且高效的解救电路验证问题,从而可以促进电路设计技术的发展,提高芯片(applicationspecificintegratedcircuit(asic)或者field-programmablegatearray(fpga)等等)的产量,从而对整个芯片工业都极有益。更进一步说,示例性实施例对真个计算机技术都很有益,因为它可以有效减少诸如内存或处理器资源的消耗。示例性实施例可以在计算机设备或系统上运行来验证电路,并且只需要很少的计算机资源。因此可以减少对具有昂贵的芯片,存储器和其他内部电子部件的昂贵的计算机的需求。

示例性实施例包括安装了指定软件的计算机设备。示例设备通过运行文中介绍的示例性实施例来解决ic工业中的技术问题。示例性实施例通过减少对计算机资源诸如内存和网络等的需求提高了硬件性能。

以示例的方式,示例性实施例通过耦合逆向工程(re)和sat技术的新方法解决了上述的难题并且克服了其他现有算法在算术电路验证问题上的短板。

示例逆向工程在验证等价的电路中证明表现良好,而示例sat技术在验证不等价中证明表现良好。把re技术和sat技术耦合起来可以同时取他们的强项从而得到一个全新的强化了的技术,可以有效减少运行复杂度并且提高处理np完全芯片的能力,从而改进验证技术。

示例性实施例可以解决上述问题并且克服了其他现存方法在验证算术电路时,必须预先知道数学模块输入输出边界的弱点。通过耦合re和sat技术,当验证算术电路时,可以由re技术去验证等价的电路,而由sat技术来验证不等价的电路。这样可以避免验证陷入指数级复杂度的过程。相比较其他sat技术,在处理乘法器等数学模块的时候通常会陷入指数级复杂过程;示例性实施例通过避免用sat处理超过其能力范畴的等价验证从而改进了验证的有效性。示例性实施例证明了其运行复杂度为多项式时间甚至为线性时间,从而改进了验证效率。一项实验结果表明,示例性实施例只需5秒就可以验证两个32位的乘法器(分别为布思和非布思乘法器),而在相同的硬件条件下,如果只用sat技术,则理论上甚至需要花100个世纪还要多。另一个实验结果表明,在和两款工业界的商业验证工具比较时,示例性实施例分别要快上400倍和1400倍,并且可以分别多解决32%和45的案例(示例性实施例可以解决93%的案例,商业工具分别可以解决61%和48%)。

图片3通过示例说明了示例性实施例的等价性验证。图片300包含310和320两部分。举例来说,f代表一个乘法器,g代表另一个乘法器。图片310代表了f=g的场景,而图片320则代表f≠g的场景。

当f≠g的时候,sat求解器可以在多项式时间内完成等价性验证;然而当f=g时,最坏情况下sat求解器很可能需要检查所有的输入模式,这本质上就是一个指数级复杂度的过程,从而需要指数级时间去完成验证。

当f=g的时候,如果使用基于结构分析的逆向工程算法,那么就有可能在多项式时间内完成等价性验证。因为在芯片设计中,数学模块的结构已经被充分研究过,并且在实际设计中,只会采用几种固定模式中的一种。每一种运算符(例如乘法器)都有自己独特的不同于其他运算符(例如加法器)的结构特征。示例性实施例利用数学模块这个性质可以很快找到它输入和输出的边界,因此可以迅速完成验证(线性时间或接近线性时间)。但是在证明不相等(例如f≠g)的时候,这个特性就起不到太大的作用。

示例性实施例通过耦合逆向工程技术和sat技术来降低电路验证的运行复杂度。例如,在等价性验证的过程中,示例性实施例让sat求解器处理不相等(例如f≠g)的情况,因为sat求解器在这种场景非常有效可以在多项式时间完成;在相等的情况(例如f=g)下,则由re技术来处理。因此,sat求解器可以避免陷入指数级复杂度的无止境的过程。

当等价性验证的时候,示例性实施例通过一种互补方式(或称作互补贪婪耦合(cgc)或者太极耦合)来有效完成。通过大大减少运行时间,验证的有效性得到了显著的改进。对于无法用sat求解器单独解决的电路(例如np完全电路),示例性实施例也可以很快的解决。另外,因为示例性实施例可以利用“结构dna”有效的找到数学模块的输入输出边界,所以并不要求事先给出边界。

在示例性实施例中,算术电路验证的运行复杂度与电路f和g含有电路门的数量呈线性关系。

示例性实施例提供了技术解决方案。假设两个电路分别含有不同的数学模块,当验证这两个电路是否等价的时侯,如果在生成cnf编码之前先尽可能减小两者之间结构上的差异,然后再把生成的cnf编码交给sat去验证,那么运行复杂度就会大幅降低,可以在多项式时间内完成验证。

图片4描述了示例性实施例的流程图。流程图400描述的示例性实施例可以在安装了相关软件的计算机设备上运行。

示例性实施例通过改进电路验证的效果和效率可以解决多个如上所述的芯片工业界的技术难题。通过减少对诸如内存,处理器等计算机资源的需求,示例性实施例也可以改进计算机系统的性能。

框图402说明提供第一个算术电路f(或第一个网表)和第二个算术电路g(或第二个网表)。

在某些例子中,第一个算术电路或网表f包含了一个算术子电路,并且第二个算术电路或网表g包含另一个算术子电路。例如,第一个子电路的数学表达式为(4a+3b)×c,而第二个子电路的数学表达式为4a×c+3b×c。

框图404陈述执行逆向工程以在产生由sat求解器解决的合取范式(cnf)编码之前,最小化f和g之间的结构差异。逆向工程的步骤包括运算符宏模块映射,操作数映射,以及将在后面讨论的数学表达式等价性验证和标准化。

作为示例,从网表f和网表g提取多个提取的运算符宏,并或者算术子电路的数学表达式。然后验证第一个算术子电路和第二个算术子电路的数学表达式的等价。如果他们等价,那么他们就会被替换成结构相同的逻辑综合实现。表达式等价性验证通过现有的词级检查算法实现,相等的公式会以标准范式表示。

框图406表明对生成或创建了cnf编码,并且通过sat求解器来求解cnf编码,其中表示网表f和g的异或运算。最后,通过调用sat求解器来验证h的可满足性从而验证网表f和网表g之间的等价性。

在示例性实施例中,由于两个网表中的算术子电路已经被标准化为相同的结构模式,所以对sat求解器来说,求解h的cnf编码是非常简单的,它不会像通常那样陷入到指数级复杂度过程中,并且可以在几秒内完成求解。

作为示例,具有相同结构的两个等价逻辑网表,sat求解器可以在多项式时间中解出。例如,sat求解器遍历两个等价网表并按拓扑顺序生成cnf子句。由于两个等价网表完全处于相同的实现形式,sat求解器合并具有相同输入和子函数的每对cnf子句。验证结果可以通过在多项式时间中遍历一次就获得。

图5a-5b示出了根据示例性实施例的标准化处理的两个图。图片510示出两个网表,网表512和网表514。网表512包含一个非布思乘法器,网表514包含一个布思乘法器。

作为示例,在等价性验证时,首先要识别出两个乘法器。然后,网表514中的布思乘法器被替换成一个非布思乘法器,其结果如图片5b中的网表514所示。这样两个网表之间的结构差异得以减小到最小(即最大化内部等价)。在示例实施例中,将5b中的新网表转换为要由sat求解器求解的cnf子句,使得验证过程得以加速。

示例性方法通过避免sat求解器陷入指数时间并且通过降低算术电路验证的运行时间复杂性,使得存储器使用和处理器能力的需求可以降低,从而提高计算机性能。在示例性实施例中,验证的运行时复杂度与网表f和网表g中电路门的数目是呈线性关系的。作为示例,cnf编码或cnf子句中,可以找到大量的内部等价点,因此sat求解器可以运行很快。例如,当将非布思乘法器与布思乘法器(均为32位乘法器)进行比较时,平均只需要五秒就可以完成整个过程。

作为示例,示例方法可以在o(n2)复杂度界限下,提取由一位加法器(半加法器和全加器)为基本单元构成的多种乘法器(例如数组/加法器,进位加法器(csa),华莱士,改进或常规布思乘法器)。其中n是乘法器的输入位宽度,也就是说运行时间复杂度和用于乘法器的电路门的数目是线性的或几乎线性的。作为示例,示例方法从网表有效地提取具有各种设计变体(例如cla加法器,ripple加法器等)的其他常见数学模块(诸如多路选择器,加法器,大xor树)。

图6示出了示例方法中使用的逆向工程的流程图。作为示例,图6是图4中的框图404的详细流程。

在流程图600中示出了示例方法中的逆向工程的流程。

框图602表示进行运算符宏模块映射。作为示例,示例方法比较第一个电路的网表f和第二个电路的网表g。网表f包含一个算术子电路,并且网表g包含另一个算术子电路。运算符宏模块映射可以识别两个算术子电路的功能。

在示例性实施例中,非布思乘法器和布思乘法器都被视为由1位半加器或全加器为基本单元构成的结构。每个1位加法器的输入信号是另一个1位加法器的输出(进位或和)或者是乘法器的部分乘积。因此,作为示例,映射加法器,乘法器及其组合的过程可以从1位加法器来完成和构造。

在示例性实施例中,遍历网表以识别所有1位半加法器和1位全加器。然后,1位半加器和1位全加器被连接起来形成一个或多个1位加法器树。作为示例,每个1位加法器树表示具有相同位权重的信号的相加。进位信号也以树结构连接。借助进位信号,1位加法器树然后被连接以形成1位加法器森林。然后根据1位加法器森林的边界确定算术模块输出位和输入位的权重。作为示例,森林的输出边界由每个加法器树的输出构成。森林的输入边界由乘法器的部分乘积或加法器的输入位构成。

在示例性实施例中,构建加法器树和森林的复杂性和数学模块中的电路门数目是呈线性关系的。因此,逆向工程可以在线性时间中识别出每个位权重的部分乘积。

在示例性实施例中,确定n位乘法器(诸如布思和非布思)的输入边界的复杂度是o(n2)同时也是o(电路大小)。作为示例,n位非布思乘法器的部分乘积的数目是n×n,而n位布思乘法器的部分乘积的数目是在构造加法器树和森林之后,获得每个位权重的部分乘积。然后通过按照它们相应的位权重的顺序访问部分乘积来确定乘数的输入边界。因此,输入边界发现的复杂性与部分乘积的数量是线性的,或者是相对于乘法器的位宽度的o(n2)。

1位加法器树的结构(例如1位加法器树的数量,每个1位加法器树的大小,1位加法器树连接的方式,以及位于其上的信号类型边界)可以用来确定数学模块的表达式。因此,一旦构造了1位加法器森林,就可以立刻计算出数学模块的表达式的类型。

在示例性实施例中,使用示例方法映射基于1位加法器的乘法器(诸如阵列,非布思和布思)的复杂度随着电路大小(诸如电路中的门的数目)线性增长。在示例性实施例中,在实际电路中使用的算术公式相对简单,表达式的验证和操作数映射的复杂度可以被认为是常数,因此数学模块标准化的复杂度与电路规模是线性的。因此,示例方法的总体复杂性是线性的。

框图604统计进行操作数映射,使得识别算术子电路的数学表达式。例如,当比较其数学表达式分别为(a+b)×c和e×(f+g)的两个数学模块时,首先要确定表达式中的变量之间的关系。

在示例性实施例中,为了进行操作数映射,首先对所有主输入进行编码。例如,四个主输入a,b,c和d可以被编码为4位数序列0000-1111。然后对需要映射的操作数的信号,通过驱动该信号的主输入的编码值来计算该信号的映射值。例如,如果信号由主输入b和d驱动,其映射值则为0101。例如,对于加法器,应当根据其排序的映射值来映射所有权重的操作数信号,而对于乘法器,只有操作数需要被映射。

作为示例,对于具有n位信号的m个操作数的数学模块,加法器和乘法器映射的复杂度分别为o(nmlogm)和o(mlogm)。由于m通常相当小,所以成本是恒定的或接近常数或接近o(n)。

框图606表示进行数学表达式等价性验证和标准化。例如,如果网表f和网表g中的数学模块的功能相同,那么他们将被重新实现为具有相同的结构的逻辑电路。表达式等价性验证通过现有的词级检查算法实现,相等的数学表达式可以表示为标准范式。

通过上面步骤,网表f和网表g之间的结构差异被最小化。如果在数学模块之外没有更多的其他逻辑,那么到此就已经完成整个验证过程。

在示例性实施例中,为了有效执行数学模块标准化,预定义每个常见表达式类型的标准实现形式,并且将每个所识别的数学模块变换为其预定义的标准形式。例如,非布思乘法器被选择作为标准乘法器形式以替代所有识别的乘法器,如图5a-5b所示。然后,通过sat求解器快速求解新网表的cnf编码。

在示例性实施例中,示例方法还可以处理其它类型的表达式验证,例如mux(s,(a×b):(c×d))=mux(s,(a:c))×mux(s,(b:d)),如图7a-7b所示。

图7a-7b示出了根据示例性实施例的由选择器和乘法器形成的模块。图7a中的710示出了包括乘法器712,乘法器714和选择器716。图7b中的720示出了包括复用器722,复用器724和乘法器726。

图710中模块的表达式为mux(s,(a×b):(c×d)),而图720中模块的表达式为mux(s,(a:c))×mux(s,(b:d))。两者在功能上是等价的,但具有完全不同的结构模式。

图8中的表格示出了用于测试示例性实施例的测试用例的特性。在表800中,在“乘法器种类”栏中,b表示布思乘数,nb表示非布思乘数。如图所示,除了乘法之外,测试用例中还有一些更复杂的算术函数(参见表800中的“表达式”栏)。

作为示例,每个测试用例都是门级单输出组合电路。测试用例分为24组。每组包括三个采样电路,和十个同样风格的测试电路。同一组中的所有电路都包含类似的算术电路,仅在它们的操作数的位宽度上不同。

图9示出了示例性实施例的示例方法和其他方法之间的比较的结果。如图9所示,将由easy-lec表示的示例方法与另外十四种方法进行比较。

在图9中,“成本”表示总共120个电路(12组测试用例,每组十个测试电路)的求解成本(即加权的cnf编码时间加上sat求解时间)的总和。“解出数目”表示每种方法成功验证的电路的数量。

图9中左侧纵轴上的数字表示成本(单位:秒),右侧纵轴上的数字表示成功验证出来的电路数。如图所示,示例方法(easy-lec)排在第一位。例如,示例方法的成本仅为排名第二的方法的1/8。此外,示例方法解成功验证了更多的测试电路(116对57,数量97%对49%)。

图10中的表格示出了根据示例性实施例的示例方法和两个现有商业工具之间的比较结果。

表1000将由easy-lec表示的示例方法与两个商业逻辑等价性验证工具x和y进行比较。4组对外公开的测试用例(ut1-ut41)被用来测试比较。对每组测试用例,测试组内所有13个电路,包括三个采样电路和十个测试电路。对于每个电路,每个工具要么成功求解出验证结果,要么达到时间限制后终止。两个商业工具x和y在运行几千秒后中止。

在表1000中,列“解出数目”表示成功的电路的数目。列“平均时间”列出每个电路的平均运行时间,不管它是否被解决。如表1000所示,对于除了未能提取算术逻辑的ut36之外的所有测试套件,示例方法在几秒钟内解决了大多数测试电路。相反,商业工具x和y都只能成功验证不是复杂算术逻辑的情况(例如对于x的ut1,ut2,ut5和ut7,对于x,ut1,ut5,ut7和ut8)。

对于表1000中所示的这182个测试电路的情况,当sat时间限制为3秒时,示例性方法可以成功验证93%的电路,而两种商业工具即使sat时间限制为5000秒表现也要差得多(x验证61%,y验证48%)。示例方法比商业工具x快至少381倍,比y快1358倍。

图11示出了根据示例性实施例的计算机系统或电子系统。计算机系统1100包括一个或多个计算机或电子设备(例如一个或多个服务器)1110,其包括处理器或处理单元1112(诸如一个或多个处理器,微处理器和/或微控制器),一个或多个计算机可读介质(crm)或存储器1114的组件,以及电路验证增强器1118。

存储器1114存储在被执行时使处理器1112执行本文所讨论的方法和/或本文所讨论的一个或多个框的指令。电路验证增强器1118是辅助改进计算机的性能和/或执行本文所讨论的方法和/或本文所讨论的一个或多个框的专用硬件和/或软件的示例。结合图4和图6讨论电路验证增强器的示例功能。

在示例实施例中,计算机系统1100包括存储器或存储器1130,通过一个或多个网络1120通信的便携式电子设备或ped1140。

存储器1130可以包括存储一个或多个图像文件,音频文件,视频文件,软件应用和本文所讨论的其它信息的一个或多个存储器或数据库。作为示例,存储器1130存储由服务器1110通过网络1120检索的图像,指令或软件应用,使得执行本文讨论的方法和/或这里讨论的一个或多个框。

ped1140包括处理器或处理单元1142(诸如一个或多个处理器,微处理器和/或微控制器),计算机可读介质(crm)或存储器1144的一个或多个组件,一个或多个显示器1146,以及电路验证增强器1148。

ped1140可以执行本文所讨论的方法和/或本文所讨论的一个或多个框,并显示图像或文件(例如网表)以供查看。可选地或附加地,ped1140可以通过网络1120从存储器1130检索诸如图像和文件以及软件指令之类的文件,并且执行本文讨论的方法和/或本文讨论的一个或多个块。

在示例实施例中,计算机系统1100包括ped1150,其包括处理器或处理单元1152(诸如一个或多个处理器,微处理器和/或微控制器),计算机可读介质(crm)或存储器的一个或多个组件1154,以及一个或多个显示器1156。

作为示例,ped1150通过网络1120与服务器1110和/或存储1130通信,使得本文讨论的方法和/或本文所讨论的一个或多个框由服务器1110执行,并且结果被发回到ped1150用于输出,存储和复查。

网络1120可以包括以下各项中的一个或多个:蜂窝网络,公共交换电话网络,因特网,局域网(lan),广域网(wan),城域网(man),个人区域网络(pan),归属区域网络(ham)和其他公共和/或专用网络。另外,电子设备不需要通过网络彼此通信。作为一个示例,电子设备可以经由一个或多个线(例如直接有线连接)耦合在一起。作为另一示例,电子设备可以通过诸如蓝牙,近场通信(nfc)或其它无线通信协议的无线协议直接通信。

在一些示例实施例中,本文所示的方法和与其相关联的数据和指令被存储在实现为非暂时性计算机可读和/或机器可读存储介质,物理或有形介质的相应存储设备中,和/或非暂时性存储介质。这些存储介质包括不同形式的存储器,包括半导体存储器设备,例如dram或sram,可擦除和可编程只读存储器(eprom),电可擦除和可编程只读存储器(eeprom)和闪存;磁盘如固定和可移动磁盘;其他磁介质包括磁带;光学介质,诸如紧凑盘(cd)或数字通用盘(dvd)。注意,上述软件的指令可以在计算机可读或机器可读存储介质上提供,或者可以在多个计算机可读或机器可读存储介质上提供,这些介质分布在具有可能多个节点。这种计算机可读或机器可读介质被认为是制品(或制品)的一部分。制品或制品可以指制造的单个部件或多个部件。

在此讨论的方法可以在本文讨论的处理器,控制器和其他硬件上执行。此外,本文讨论的方法可以在有或者没有用户的指令的情况下自动执行。

提供根据示例性实施例的方法作为示例,并且来自一种方法的示例不应被解释为限制来自另一种方法的示例。图和其他信息显示示例数据和示例结构;其他数据和其他数据库结构可以用示例实施例来实现。此外,在不同附图中讨论的方法可以添加到其他图中的方法或与其交换。此外,具体的数值数据值(例如具体数量,数量,类别等)或其他具体信息应当被解释为用于讨论示例实施例的说明。没有提供这样的特定信息来限制示例性实施例。

如本文所使用的,术语“算术电路”是指实现算术表达式的电路,例如加法器,乘法器及其组合。

如本文所使用的,术语“指数时间”是指算法或方法的运行时间的上限为2n,其中n是算法的输入的大小。

如本文所使用的,术语“多项式时间”是指算法或方法的运行时间的上限可以由算法输入大小的多项式表达式来表示。

如本文所使用的,术语“线性时间”是指算法或方法的运行时间随着算法的输入的大小线性增加。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1