电路验证制造技术

技术编号:15910868 阅读:48 留言:0更新日期:2017-08-01 22:32
一种全新的针对算术电路电路的形式验证算法。示例性实施例耦合(或者说组合)可满足性(SAT)求解器和逆向工程(RE);该逆向工程算法利用运算逻辑电路的结构特征(例如1位加法器结构,进位树结构),从而使得该算法可以不用在乎验证电路的规模大小。示例性实施例怎样优化传统的算术电路验证方法的运行复杂度的基本思路如下。假设有两个算术电路f和g;要验证他们是否相等需要首先生成他们的合取范式(CNF)编码,然后由SAT(satisfiability)工具判断他们的编码是否相等。如果可以在生成CNF编码之前尽可能减小f和g之间结构上的差异,那么就很可能在多项式时间内完成算术电路的验证而不是指数级时间。

Circuit verification

A new formal verification algorithm for arithmetic circuit. An exemplary embodiment of the coupling (or combination) satisfiability (SAT) solver and reverse engineering (RE); arithmetic logic circuit structure algorithm using the reverse engineering (for example, 1 bit adder, binary tree structure), so that the algorithm can do not care about the size of circuit verification. The basic ideas for how to optimize the operational complexity of traditional arithmetic circuit verification methods in example embodiments are as follows. Suppose there are two arithmetic circuits F and G; to verify whether they need to first generate equal their conjunctive normal form (CNF) encoding, and then by the SAT (satisfiability) tool to judge their encoding are equal. If it is possible to minimize the structural differences between F and g before generating CNF encoding, it is possible to perform arithmetic circuit verification in polynomial time rather than exponential time.

【技术实现步骤摘要】
电路验证要求在先申请的权益本申请为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实现的功能本文档来自技高网...
电路验证

【技术保护点】
一种由计算机系统执行的用于使得能够以改进的运行时间复杂度来实现算术电路验证的方法,所述方法包括:提供第一个算术电路的网表f和第二个算术电路的网表g;和所述计算机系统通过如下步骤来改进所述运行时间复杂度:在网表f和网表g之间进行等价性验证,使得在生成由可满足性SAT求解器求解的合取范式CNF编码之前,通过逆向工程(RE)最小化网表f和网表g之间的结构差异,从而使得所述算术电路验证能在多项式时间内而不是在指数时间内完成。

【技术特征摘要】
2016.01.22 US 62/281,7351.一种由计算机系统执行的用于使得能够以改进的运行时间复杂度来实现算术电路验证的方法,所述方法包括:提供第一个算术电路的网表f和第二个算术电路的网表g;和所述计算机系统通过如下步骤来改进所述运行时间复杂度:在网表f和网表g之间进行等价性验证,使得在生成由可满足性SAT求解器求解的合取范式CNF编码之前,通过逆向工程(RE)最小化网表f和网表g之间的结构差异,从而使得所述算术电路验证能在多项式时间内而不是在指数时间内完成。2.根据权利要求1所述的方法,其中,所述算术电路验证的运行时间复杂度与所述网表f和所述网表g中的电路门的数量呈线性关系。3.根据权利要求1所述的方法,其中,所述网表f包含实现第一个数学表达式的子电路;并且所述网表g包含实现第二个数学表达式的另一个子电路,其中所述方法通过逆向工程改进所述算术电路验证,包括:由所述计算机系统执行运算符宏映射,使得识别所述第一个子电路的功能和所述第二个子电路的功能;由所述计算机系统执行操作数映射,使得识别所述第一个子电路数学表达式和所述第二个子电路数学表达式;和由所述计算机系统通过如下步骤最小化所述网表f和所述网表g之间的结构差异:进行数学公式等价性验证和标准化,使得在所述第一个子电路的功能和所述第二个子电路的功能相同时,将所述第一个子电路和所述第二个子电路重新综合成具有相同结构。4.根据权利要求1所述的方法,其中,网表f包含非布思乘法器,并且网表g包含布思乘法器,其中所述方法通过逆向工程改进所述算术电路验证,包括:由所述计算机系统识别网表f中的非布思乘法器和网表g中的布思乘法器;将网表g中的布思乘法器转换成非布思乘法器以获得经转换的非布思乘法器;和由所述计算机系统通过将网表f中的非布思乘法器和网表g中经转换的非布思乘法器重新综合以最小化网表f和网表g之间的结构差异,使得等价性验证的过程得以加速,从而改进等价性验证。5.根据权利要求3所述的方法,其中,执行逆向工程中的运算符宏映射包括:由所述计算机系统执行运算符宏映射以获得包括乘法器的经提取的运算符宏,其中所述乘法器的实现是非布思华莱士树和布思乘法器之一。6.根据权利要求5所述的方法,其中,对所述网表f和所述网表g中的任一个执行运算符宏映射包括:由所述计算机系统遍历网表以识别多个1位半加器和多个1位全加器;由所述计算机系统通过1位半加器和1位全加器的多个和信号将所述1位半加器和所述1位全加器连接以形成一个或多个1位加法器树,其中进位信号也连接成树结构;由所述计算机系统连接所述一个或多个1位加法器树和进位树以形成1位加法器森林;和由所述计算机系统基于1位加法器森林的边界确定宏输入位和输出位的权重。7.根据权利要求3所述的方法,其中执行所述操作数映射包括:由所述计算机系统编码多个主输入;和由所述计算机系统通过驱动位的主输入的编码值来计算所述位的映射签名值以获得多个映射签名值。8.根据权利要求7所述的方法,其中根据排序后的所述多个映射签名值来映射操作数的权重位。9.一种改进算术电路验证以具有减小的运行时间复杂度的计算机系统,所述计算机系统包括:处理器;非暂时性计算机可读介质,其上存储有指令,所述指令在被执行时,使所述处理器:接收第一个算术电路的网表f和第二个算术电路的网表g;和在网表f和网表g之间进行等价性验证,使得在生成由可满足性SAT求解器求解的合取范式CNF编码之前,通过逆向工程RE最小化网表f和网表g之间的结构差异,使得所述算术电路验证能在多项式时间内而不是在指数时间内完成,由此减小所述运行时间复杂度。10.根据权利要求9所述的计算机系统,其中所述算术电路验证的运行时间复杂度与所述网表f和所述网表g中的电路门的数量呈线性关系。11.根据权利要求9所述的计算机系统,其中,网表f包含实现第一个数学表达式的子电路;并且网表g包含实现第二个数学表达式的另一个子电路,其中所述指令在被执行时使所述处理器:执行运算符宏映射,使得识别所述第一个子电路的功能和所述第二个子电路的功能;执行操作数映射,使得识...

【专利技术属性】
技术研发人员:刁屹魏星吴有亮
申请(专利权)人:奇捷科技股份有限公司
类型:发明
国别省市:中国香港,81

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1