CN116050311B - 一种基于完备仿真的组合运算电路等价性验证方法及系统 - Google Patents
一种基于完备仿真的组合运算电路等价性验证方法及系统 Download PDFInfo
- Publication number
- CN116050311B CN116050311B CN202310068006.1A CN202310068006A CN116050311B CN 116050311 B CN116050311 B CN 116050311B CN 202310068006 A CN202310068006 A CN 202310068006A CN 116050311 B CN116050311 B CN 116050311B
- Authority
- CN
- China
- Prior art keywords
- circuit
- equivalent
- gate
- simulation
- node
- 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
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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- 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/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
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)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种基于完备仿真的组合运算电路等价性验证方法及系统。本发明深度结合电路仿真和SAT求解的LEC验证方法,利用现代计算机SIMD的功能特性,设计了一种非常高效的完备仿真算法来处理SAT求解器难以求解的运算子电路。为了充分利用SAT和完备仿真各自的优点,本发明还设计了一种预先判断证明子电路使用完备仿真还是SAT求解器进行证明的启发式算法,通过结合SAT和完备仿真算法,在运算电路上具有显著优势。
Description
技术领域
本发明涉及EDA中组合电路等价性验证方法,特别是一种基于完备仿真的组合运算电路等价性验证方法及系统。
背景技术
数字电路中的逻辑等价性验证(LEC)是EDA验证流程中十分重要的一个工作,其中高位宽复杂运算电路如乘法电路、乘加混合电路的验证一直是非常困难的问题。在这样的运算电路中,门电路连接关系复杂且存在大量异或门级联,对于形式化验证方法提出了巨大的挑战。
布尔可满足性问题(SAT)是判断给定的合取范式(CNF)是否可满足的判定问题,在EDA领域有很重要的应用价值,电路的等价性检测问题可以直接规约到SAT问题求解。用于求解SAT的方法可以分为冲突驱动的子句学习技术(CDCL)和局部搜索算法(LS),目前顶尖的SAT求解器(如Kissat、Relaxed、CryptoMinisat等)均为两者的深度混合算法。
目前在学术界和工业界用于求解LEC问题的方法主要有如下两种:直接编码为CNF使用SAT求解器求解(SAT方法),或者对电路进行静态或者动态的分析,添加额外约束子句再利用SAT求解器求解;使用代数方法验证乘法器等规范运算电路。此外也有基于BDD、ATPG、定理证明等技术的方法。对于复杂的运算电路,目前还没有一个特别高效的办法。
现有的运算电路验证算法来求解运算电路存在以下几个局限:
1)所有主要基于SAT求解器进行求解的算法,求解具有复杂连接关系和异或门级联这样的运算电路时,SAT求解器的求解能力非常容易退化到接近穷举的水平,因此SAT求解一般只能求解12bit或13bit乘法器的验证。对于16bit以上的乘法器,没有办法在可以接受的时间内求解出。
2)基于代数方法的等价性验证,需要电路具有特别规范的结构,并且不能破坏原始数据通路,电路的功能要可以简洁的使用基本数学表达式表示,此外电路中也不能存在控制逻辑。因此代数方法基本上只能用来验证乘法器电路原始设计,和逻辑综合后的电路进行等价性验证会导致符号运算计算量过大,不能用于通用情况的等价性验证。
3)对于基于BDD、ATPG等技术的方法,目前实用性,泛用性,时间内存占用相比基于SAT的方法都不占优势。
发明内容
针对现有技术的缺陷,本发明的目的在于提供一种基于完备仿真的组合运算电路等价性验证方法及系统。本发明是一种深度结合电路仿真和SAT求解的LEC验证方法,主要内容是利用了现代计算机SIMD的功能特性,设计了一种非常高效的完备仿真算法来处理SAT求解器难以求解的运算子电路。为了充分利用SAT和完备仿真各自的优点,本发明还设计了一种预先判断证明子电路使用完备仿真还是SAT求解器进行证明的启发式算法,通过结合SAT和完备仿真算法,在运算电路上具有显著优势。
本发明采用以下技术方案:
一种基于完备仿真的组合运算电路等价性验证方法,其流程如图1所示,包括以下步骤:
1)程序输入为AIG格式的miter电路描述文件,下文简称为miter电路。若输入文件为两个待检测的原始AIG电路描述文件,在这种情况下将两个待定AIG格式的组合电路描述文件合并为miter电路再进行求解。
进一步地,电路的PI指原始输入,电路的PO指原始输出,在本专利中没有对PI和PO进行改动,因此电路的输入可以称为PI,电路的输出可以称为PO。
进一步地,miter电路的PI定义为电路描述文件中的输入,miter电路的输出只有一根引线,功能特性为:若指定PI的一个赋值,电路等价输出0,电路不等价输出1。
进一步地,我们内部采用基于有向无环图的数据结构来表示电路,因此下文中的节点,代之内部图数据结构中的节点,和逻辑门是一一对应关系,因此也同时表示miter电路中的逻辑门。
2)对电路进行化简和逆向,识别出异或门,基于异或门的性质去减少非门的数量。第一步是对电路进行初步化简,由于无扇出的门电路对电路输出没有影响,因此删除这部分无扇出的门电路,得到初步化简的电路。在删除无扇出门电路后,第二步开始对初步化简的电路进行逆向,对其中的异或门进行识别,为后面的完备仿真算法和评分算法做准备,逆向后可以得到包含异或门的电路描述。在前两步完成的基础上,第三步进一步对包含异或门的电路描述进行化简,利用异或门逻辑等价变换的性质,将异或门输入引线的非门删除,并且将该异或门的输出取反的方式去减少非门的数量。在后续的算法中,非门会带来多余的运算,因此这一步化简是必要的。通过三步的化简和逆向处理,得到了一个更精简和易分析的电路描述,并且和原始电路是逻辑等价的。
3)多次随机仿真:每次仿真随机设定PI的值,在步骤2化简和逆向后的电路基础上,按照拓扑序依次确定电路中每一个门电路输出的赋值,如果发现PO为1,则说明两待测电路不等价,验证流程结束。在仿真开始前,维护一个全局门等价类,包含所有节点,此时我们认为所有门电路的输出都是等价的。每次仿真结束后,依据本轮仿真的值对于维护的全局门等价类进行进一步的划分,即在同一个等价类中若有节点在本次仿真的值不一致,由于只有0和1两种取值情况,将这些点进一步分割成两个等价类,保证处于同一等价类的所有节点在目前所有随机仿真中的赋值完全相同。最终得到的候选等价类节点集合中每一个等价类的节点,在所有仿真中的取值都一致,可以认为是候选等价类,需要进一步证明,等价节点的效果如图2。
具体的仿真方法为:仿真时,依据的电路为识别出异或门并且化简过的高层电路,通过按照设定位宽分组压缩来大幅度减少随机仿真的次数。每次随机仿真时,电路中每一个节点都使用一个bitset来存储该节点通过电路传播得到的值。gcc编译器需要开启SIMD指令相关编译参数,bitset的大小需要接近CPU的二级缓存以获得最高效率。维护一个内存池来动态的为每根引线分配bitset数组以存储当前状态时,由于仿真算法只关心最后PO的值,可以将中间计算的节点用完后释放掉分配给后面的引线。利用上述技术,从PI按照拓扑序一直计算到PO,即可得到PO的赋值。N次仿真压缩后,PO值是一个N位数。
4)将从步骤3得到的候选等价类节点集合中的每个节点和其他节点严格证明等价性。使用启发式算法挑选一种合适的方法进行逻辑证明。若节点对不等价,则将对应PI的赋值作为反例重新仿真,进一步在候选等价节点集合中剔除掉其他不等价节点,若点对等价则记录该信息,在后续sat求解中直接将该额外信息编码并提供给sat求解器来加速求解其他点对的证明。具体地,首先将两个等价节点涉及到的扇入锥这部分子电路提取出来,然后将两个等价节点使用异或门连接,将异或门视作子电路的PO,将子电路涉及到原电路的PI视为子电路的PI。至此,我们得到了一个规模较小的子问题,最后选择一种合适的点对证明算法对点对进行等价性证明。我们有两种可以启发式选择的方法,一种是通过SAT求解器证明,一种是通过完备仿真的方法进行证明。
进一步地,求解点对是否等价的时候,不要修改原始电路,而是提取电路中需要的部分创建一个新的临时电路去进行求解。得到是否等价的结果后删除临时电路。
进一步地,扇入锥的定义为:从指定门电路集开始,向PI方向传播所有能够到达的节点组成的集合。
进一步地,SAT证明点对等价性的方法为:将点对和其扇入锥这部分电路编码为CNF格式文件,然后使用SAT求解器进行求解,SAT求解器的结果为UNSAT,则点对等价,求解器的结果为SAT,则点对不等价。
进一步地,完备仿真证明点对等价性的方法为:利用步骤3)中提到的仿真方法,穷举PI的所有可能赋值,将这些所有赋值拆分成多组适配于CPU二级缓存大小的bitset,然后调用点对逻辑证明算法进行证明,如果所有仿真中PO的值都为0,则电路涉及到的两个门的输出等价,反之如果PO取到1,则电路涉及到的两个门的输出不等价。
5)如果在步骤4的证明中,存在两个点对等价,则需要对电路进行重写,合并这样的等价点对,将一个节点用另一个节点等价替换,并且删掉多余的结构,对电路进行简化。
6)若一个节点对已经被证明等价,则后面遇到相同结构的节点对时不需要证明,只需要证明和之前的节点对一样,就可以严格认定是等价的。运算电路结构上具有较大的重复性,该方法可以显著减少证明重复结构的时间。图3给出了一个结构化简的例子,其中x,y是已经证明的等价点对,x和nx结构等价,y和ny结构等价,因此nx和ny同样等价。
7)当所有等价点已经证明完毕,则使用SAT求解器对整个通过以上步骤处理过的最终电路进行判断,若求解得出UNSAT,则原始miter电路等价,若求解得出SAT,则原始miter电路不等价。至此得到了最终的结果。
本发明还提供一种基于完备仿真的组合运算电路等价性验证系统,其特征在于,包括数据准备模块、问题建模模块和验证模块;
所述数据准备模块,用于将两个待等价性验证电路的AIG格式描述文件进行合并,得到一miter电路描述文件,记为miter电路;所述miter电路的输入记为PI,输出记为PO;
所述问题建模模块,用于对所述miter电路进行初步化简,删除无扇出的门电路,得到初步化简的电路并识别其中的异或门,得到包含异或门的电路描述;然后对所述包含异或门的电路描述进行化简,利用异或门逻辑等价变换的性质将异或门输入引线的非门删除,并且将对应异或门的输出取反,得到一等价简化电路;然后对是等价简化电路进行多轮随机仿真:每轮仿真从所述miter电路描述文件的输入信息中随机选取一输入信息作为本轮仿真的PI值,按照所述等价简化电路的拓扑序依次确定所述等价简化电路中每一个门电路输出值,如果PO为1,则判断两待等价性验证电路不等价,验证流程结束;否则进行下一轮仿真;其中仿真过程中维护一个包含所有节点的全局门等价类,每一节点对应所述等价简化电路中的一门电路,每轮仿真结束后,依据本轮仿真的值对所述全局门等价类进行划分,当达到设定仿真次数,仿真结束后得到一候选等价类节点集合;所述候选等价类节点集合中每一节点在所有仿真中的取值都一致;
所述验证模块,用于对所述候选等价类节点集合中的任意两节点进行等价性证明,若当前的节点对x,y不等价,则将对应PI的赋值作为反例重新仿真,根据重新仿真结果删除所述候选等价类节点集合中不等价节点;若当前的节点对x,y等价则对所述等价简化电路中对应的门电路进行合并更新所述等价简化电路;然后使用SAT求解器对最终更新后的等价简化电路进行求解,根据求解结果确定两个待等价性验证电路是否等价。
本发明还提供一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述方法中各步骤的指令。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述方法的步骤。
与现有技术相比,本发明的积极效果为:
深度结合了电路完备仿真验证和基于SAT求解器的验证方法。设计了高度优化的仿真算法和优秀的启发式策略,充分利用了两种方法的优点,此外也设计了高层仿真、结构识别和节省等优化技术。综合以上技术使得本发明在高位宽复杂运算电路如乘法电路、乘加混合电路的验证上相比于现有方法存在显著优势。
附图说明
图1是本发明的算法流程图。
图2是电路中等价节点的示意图。
图3是电路中结构等价的示意图。
具体实施方式
为使本发明的上述特征和优点能更明显易懂,下文特举实施例:
本发明系统包括数据准备模块,问题建模模块和验证模块,验证模块,具体步骤如下:
问题建模模块:
本发明将两个待测电路仿真获得候选等价节点集合,并且将问题转换为对等价节点的证明,将两个等价点涉及到的扇入锥这部分子电路提取出来,然后将两个等价节点使用异或门连接进行miter,将异或门视作子电路的PO,将子电路涉及到原电路的PI视为子电路的PI。至此,得到了多个规模较小的子问题,最后选择一种合适的点对证明算法进行证明。
数据准备模块:
两个待检测等价性的组合电路。由于电路的描述方式比较多,每一种方式都有不同的数据格式,因此所有电路需要转换成AIG格式。无论电路为寄存器传输级(RTL)或者是门电路级的设计,都需要使用逻辑综合工具转换成AIG格式作为本算法和程序的输入。
验证模块:
用于对所述候选等价类节点集合中的任意两节点进行等价性证明,若当前的节点对x,y不等价,则将对应PI的赋值作为反例重新仿真,根据重新仿真结果删除所述候选等价类节点集合中不等价节点;若当前的节点对x,y等价则对所述等价简化电路中对应的门电路进行合并更新所述等价简化电路;然后使用SAT求解器对最终更新后的等价简化电路进行求解,根据求解结果确定两个待等价性验证电路是否等价。
目前求解LEC问题的方法比较丰富,但是能够有能力求解高位宽运算电路验证的算法比较少,很多具有不少的局限性,不具备实用价值。本发明设计了一个基于完备仿真和SAT求解混合的算法流程,能够很好的处理算术电路场景下的验证问题,并且在常规电路的验证中,也具有不错的效果。下面介绍具体算法设计:
1)miter电路合并:两个组合电路分别具有相对应的PI(原始输入),和PO(原始输出)。此时需要将对应的PI相互连接,作为miter电路的PI。将两个电路的PO两两对应连接到两输入异或门上,再将所有异或门连接到一个多输入的或门上,该或门的输出作为miter电路的唯一PO。如果可以通过设定PI使得PO取值为1说明电路不等价,否则说明电路等价。
2)电路识别及化简:识别出异或门,基于异或门的性质去减少非门的数量。
进一步地,电路化简的方法为:使用广度优先算法(BFS),从miter电路的输出节点出发,向PI的方向进行遍历和搜索,把所有经过的节点标记为有用节点。当算法结束后,将所有没有标记成有用节点的门电路全部从电路图中删去。
进一步地,识别异或门的方法为:枚举电路中每一个门电路的输出,判断该门是否为某两个节点的异或结果,在AIG中,原始设计中的异或门表现形式一般只有两种:设则两种AIG子结构为/>或因此只需要向前检测是否为这两种结构即可。
进一步地,减少非门数量的算法为:从PI出发,按照拓扑序遍历节点,若当前异或门的输入存在非门,则将非门删除,将异或门的输出取反。
3)划分等价节点:在仿真算法的基础上,把中间节点bitset的状态进行哈希后进行存储。待仿真结束后,将哈希值一致的门视为等价,由此通过多轮仿真,可以划分出待确定的等价节点。
4)等价节点证明:按照拓扑修依次证明每一对待检测点对,具体证明方法如下:
首先,启发式算法选择SAT求解还是完备仿真求解,主要依靠异或分数(scorexor)和连接分数(scoreconnected)来综合考虑,其中异或分数主要是判断电路中异或级联的程度,我们认为级联程度越高,对于SAT方法是特别不利的,应该优先采用完备仿真方法。而连接分数主要考虑PI的相互连接的紧密程度,若紧密程度比较高,我们认为对于SAT方法也是不利的。具体的,异或分数和连接分数的计算如下:
a.首先设G为两个待检测等价性节点x和y的扇入锥组成的子电路,G的PI数量为N,定义异或块为通过异或门直接连接的最大子图,显然G中可以存在多个异或块。我们通过并查集不断的合并G中的异或门,可以在线性时间内高效的获得G中所有的异或块,定义为X1,X2,X3…Xk,并设|Xi|代表指定异或块的大小(包含门的数量)。异或分数(scorexor)的求解公式为:
b.对于G中的任意两个PIx和y,若存在一个AND门的输入恰好是x,y,则定义(x,y)为connected pair。设G中共有s对connected pair,连接分数(scoreconnected)的求解公式为(其中C为组合数):
进一步地,若异或分数和连接分数均>0.5,则采用完备仿真方法去求解,否则采用SAT方法进行求解。
5)电路重写:若验证了x和y等价,不妨设x的拓扑序小于y,那么可以将电路中的y全部替换成x,并将电路中冗余的门(没有扇出的所有门)依次清除;将两个输入相同或相反的门进行化简。不停重复上述过程,直到电路结构收敛。
6)基于结构匹配的等价点证明技术:若门节点x和y已经被证明等价,则将他们对应的扇入锥的大小记录下来,如果遇到新的点对nx和ny对应的扇入锥的大小和x、y一致,那么大概率他们的结构是一样的,因此我们分别检测(nx、x)和(y、ny)两对点是否真的结构等价。
具体地,我们定义SE(a,b)表示点a和b是否结构等价。若a,b不为PI,则设a对应门的两个输入为a0,a1,设b的两个输入为b0,b1,SE函数的计算方法如下:
其中S(a)表示a的扇入锥的大小,SN(a)表示a的扇入锥中NOT门的数量。故要计算SE(nx,x)及SE(ny,y),只需从nx,x(ny,y)出发,按照逆拓扑序,迭代的处理所有节点一直到PI,如果算法过程中发现SE的值为0,则说明结构不等价,反之说明结构等价。
若检测发现(nx、x)和(y、ny)两对点结构等价,则可以认为(nx、ny)是等价的,不需要再调用SAT或完备仿真方法求解。
7)最终问题证明:调用SAT求解器来求解整个miter电路是否等价,由于所有等价点已经证明完毕,包括PO的等价性,SAT求解器可以直接根据所有的等价性节点这些额外信息直接高效推导出电路是否等价的最终结果。
虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域的普通技术人员对本发明的技术方案进行的适当修改或者等同替换,均应涵盖于本发明的保护范围内,本发明的保护范围以权利要求所限定者为准。
Claims (7)
1.一种基于完备仿真的组合运算电路等价性验证方法,其步骤包括:
1)将两个待等价性验证电路的AIG格式描述文件进行合并,得到一miter电路描述文件,记为miter电路;所述miter电路的输入记为PI,输出记为PO;
2)对所述miter电路进行初步化简,删除无扇出的门电路,得到初步化简的电路并识别其中的异或门,得到包含异或门的电路描述;然后对所述包含异或门的电路描述进行化简,利用异或门逻辑等价变换的性质将异或门输入引线的非门删除,并且将对应异或门的输出取反,得到一等价简化电路;
3)多轮随机仿真:每轮仿真从所述miter电路描述文件的输入信息中随机选取一输入信息作为本轮仿真的PI值,按照所述等价简化电路的拓扑序依次确定所述等价简化电路中每一个门电路输出值,如果PO为1,则判断两待等价性验证电路不等价,验证流程结束;否则进行下一轮仿真;其中仿真过程中维护一个包含所有节点的全局门等价类,每一节点对应所述等价简化电路中的一门电路,每轮仿真结束后,依据本轮仿真的值对所述全局门等价类进行划分,当达到设定仿真次数,仿真结束后得到一候选等价类节点集合;所述候选等价类节点集合中每一节点在所有仿真中的取值都一致;
4)对所述候选等价类节点集合中的任意两节点进行等价性证明,若当前的节点对x,y不等价,则将对应PI的赋值作为反例重新仿真,根据重新仿真结果删除所述候选等价类节点集合中不等价节点;若当前的节点对x,y等价则对所述等价简化电路中对应的门电路进行合并更新所述等价简化电路;其中,所述等价性证明方法为:首先从所述等价简化电路中提取节点对x,y涉及到的扇入锥,将节点对x,y及其对应的扇入锥构成的电路记为节点对x,y的子电路;然后将节点对x,y使用异或门连接,将异或门视作所述子电路的输出,将所述子电路涉及到原电路的输入视为所述子电路的输入;然后将节点对x,y和所述扇入锥子电路编码为CNF格式文件并输入SAT求解器进行求解,根据求解结果判定节点对x,y是否等价;或者所述等价性证明方法为:首先从所述等价简化电路中提取节点对x,y涉及到的扇入锥,将节点对x,y及其对应的扇入锥构成的电路记为节点对x,y的子电路;然后将节点对x,y使用异或门连接,将异或门视作所述子电路的输出,将所述子电路涉及到原电路的输入视为所述子电路的输入;然后利用仿真方法穷举PI的所有赋值,将所有赋值拆分成多组适配于CPU二级缓存大小的bitset数组,然后调用点对逻辑证明算法进行证明,如果所有仿真中PO的值都为0,则判定节点对x,y等价;
5)使用SAT求解器对步骤4)最终更新后的等价简化电路进行求解,根据求解结果确定两个待等价性验证电路是否等价。
2.根据权利要求1所述的方法,其特征在于,所述扇入锥为:从指定门电路集开始,向PI方向传播所有能够到达的节点组成的集合。
3.根据权利要求1所述的方法,其特征在于,如果节点对x,y为等价节点对,节点x与节点nx结构等价,节点y和节点ny结构等价,则判定节点nx和节点ny同样等价。
4.根据权利要求1所述的方法,其特征在于,多轮随机仿真方法为:将若干次随机仿真通过位并行压缩为一次随机仿真,所述等价简化电路中每一门电路的引线使用一个bitset数组来存储对应门电路的输出值。
5.一种基于完备仿真的组合运算电路等价性验证系统,其特征在于,包括数据准备模块、问题建模模块和验证模块;
所述数据准备模块,用于将两个待等价性验证电路的AIG格式描述文件进行合并,得到一miter电路描述文件,记为miter电路;所述miter电路的输入记为PI,输出记为PO;
所述问题建模模块,用于对所述miter电路进行初步化简,删除无扇出的门电路,得到初步化简的电路并识别其中的异或门,得到包含异或门的电路描述;然后对所述包含异或门的电路描述进行化简,利用异或门逻辑等价变换的性质将异或门输入引线的非门删除,并且将对应异或门的输出取反,得到一等价简化电路;然后对等价简化电路进行多轮随机仿真:每轮仿真从所述miter电路描述文件的输入信息中随机选取一输入信息作为本轮仿真的PI值,按照所述等价简化电路的拓扑序依次确定所述等价简化电路中每一个门电路输出值,如果PO为1,则判断两待等价性验证电路不等价,验证流程结束;否则进行下一轮仿真;其中仿真过程中维护一个包含所有节点的全局门等价类,每一节点对应所述等价简化电路中的一门电路,每轮仿真结束后,依据本轮仿真的值对所述全局门等价类进行划分,当达到设定仿真次数,仿真结束后得到一候选等价类节点集合;所述候选等价类节点集合中每一节点在所有仿真中的取值都一致;
所述验证模块,用于对所述候选等价类节点集合中的任意两节点进行等价性证明,若当前的节点对x,y不等价,则将对应PI的赋值作为反例重新仿真,根据重新仿真结果删除所述候选等价类节点集合中不等价节点;若当前的节点对x,y等价则对所述等价简化电路中对应的门电路进行合并更新所述等价简化电路;然后使用SAT求解器对最终更新后的等价简化电路进行求解,根据求解结果确定两个待等价性验证电路是否等价;
其中,所述等价性证明方法为:首先从所述等价简化电路中提取节点对x,y涉及到的扇入锥,将节点对x,y及其对应的扇入锥构成的电路记为节点对x,y的子电路;然后将节点对x,y使用异或门连接,将异或门视作所述子电路的输出,将所述子电路涉及到原电路的输入视为所述子电路的输入;然后将节点对x,y和所述扇入锥子电路编码为CNF格式文件并输入SAT求解器进行求解,根据求解结果判定节点对x,y是否等价;
或者所述等价性证明方法为:首先从所述等价简化电路中提取节点对x,y涉及到的扇入锥,将节点对x,y及其对应的扇入锥构成的电路记为节点对x,y的子电路;然后将节点对x,y使用异或门连接,将异或门视作所述子电路的输出,将所述子电路涉及到原电路的输入视为所述子电路的输入;然后利用仿真方法穷举PI的所有赋值,将所有赋值拆分成多组适配于CPU二级缓存大小的bitset数组,然后调用点对逻辑证明算法进行证明,如果所有仿真中PO的值都为0,则判定节点对x,y等价。
6.一种服务器,其特征在于,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行权利要求1至4任一所述方法中各步骤的指令。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310068006.1A CN116050311B (zh) | 2023-02-06 | 2023-02-06 | 一种基于完备仿真的组合运算电路等价性验证方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310068006.1A CN116050311B (zh) | 2023-02-06 | 2023-02-06 | 一种基于完备仿真的组合运算电路等价性验证方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116050311A CN116050311A (zh) | 2023-05-02 |
CN116050311B true CN116050311B (zh) | 2023-08-08 |
Family
ID=86129306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310068006.1A Active CN116050311B (zh) | 2023-02-06 | 2023-02-06 | 一种基于完备仿真的组合运算电路等价性验证方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116050311B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573556B (zh) * | 2023-12-05 | 2024-06-21 | 中国科学院软件研究所 | 基于增量smt问题求解的软件断言验证方法、系统及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257366A (zh) * | 2020-10-13 | 2021-01-22 | 国微集团(深圳)有限公司 | 一种用于等价性验证的cnf生成方法及系统 |
CN113919256A (zh) * | 2021-09-28 | 2022-01-11 | 深圳国微福芯技术有限公司 | 一种布尔可满足性验证方法、系统、cnf生成方法及存储装置 |
-
2023
- 2023-02-06 CN CN202310068006.1A patent/CN116050311B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112257366A (zh) * | 2020-10-13 | 2021-01-22 | 国微集团(深圳)有限公司 | 一种用于等价性验证的cnf生成方法及系统 |
CN113919256A (zh) * | 2021-09-28 | 2022-01-11 | 深圳国微福芯技术有限公司 | 一种布尔可满足性验证方法、系统、cnf生成方法及存储装置 |
Non-Patent Citations (1)
Title |
---|
基于拓扑结构分析的等价性验证方法;李光辉等;《第五届中国测试学术会议论文集》;208-284 * |
Also Published As
Publication number | Publication date |
---|---|
CN116050311A (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3858000B2 (ja) | フィルタリング型アプローチを使用する組合せ回路の検証方法 | |
Mishchenko et al. | FRAIGs: A unifying representation for logic synthesis and verification | |
Yeh et al. | OBDD-based evaluation of k-terminal network reliability | |
JP4028107B2 (ja) | 分解及び分割によるハードウェアの検証並びに表現方法 | |
JP4790816B2 (ja) | 並列マルチレート回路シミュレーション | |
Nordström | On the interplay between proof complexity and SAT solving | |
Ciesielski et al. | Understanding algebraic rewriting for arithmetic circuit verification: a bit-flow model | |
JP2009505227A (ja) | 順序システムのための離接イメージ計算 | |
Mishchenko et al. | A new enhanced constructive decomposition and mapping algorithm | |
US11468218B2 (en) | Information theoretic subgraph caching | |
CN116050311B (zh) | 一种基于完备仿真的组合运算电路等价性验证方法及系统 | |
US7908575B2 (en) | Enhanced verification through binary decision diagram-based target decomposition using state analysis extraction | |
US9965575B2 (en) | Methods and systems for correcting X-pessimism in gate-level simulation or emulation | |
US20030105785A1 (en) | Method and apparatus for verification of digital arithmetic circuits by means of an equivalence comparison | |
US7350169B2 (en) | Method and system for enhanced verification through structural target decomposition | |
US10628543B1 (en) | Systems and methods for estimating a power consumption of a register-transfer level circuit design | |
Van Eijk et al. | Exploiting functional dependencies in finite state machine verification | |
US8914758B1 (en) | Equivalence checking using structural analysis on data flow graphs | |
Malik et al. | Symbolic minimization of multilevel logic and the input encoding problem | |
Zhou et al. | Fast adjustable NPN classification using generalized symmetries | |
Houngninou et al. | Implementation of switching circuit models as transfer functions | |
Swamy et al. | Incremental methods for FSM traversal | |
Tran et al. | Groebner bases computation in boolean rings for symbolic model checking | |
Ho et al. | WolFEx: Word-Level Function Extraction and Simplification from Gate-Level Arithmetic Circuits | |
CN117764129B (zh) | 一种无乘法神经网络自动设计的边缘设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |