多输出实例的CNF生成方法、等价性验证方法、存储介质技术

技术编号:33242060 阅读:13 留言:0更新日期:2022-04-27 17:46
本发明专利技术公开了一种多输出实例的CNF生成方法、等价性验证方法、存储介质。其中多输出实例的CNF生成方法,包括:遍历时,在存储结构中查找当前的端口net的输入端口net对应的CNF;如果没找到,则计算当前的端口net的引用次数,遍历当前的端口net连接的电路生成对应的CNF,将该CNF以及引用次数绑定后存入所述存储结构;如果找到,则直接从所述存储结构中调用所述CNF,并将引用次数减1,并在引用次数为0时,从所述存储结构中删除对应的CNF及其关联数据。本发明专利技术可以减少CNF的存储内存,并且缩短CNF的计算时间。计算时间。计算时间。

【技术实现步骤摘要】
多输出实例的CNF生成方法、等价性验证方法、存储介质


[0001]本专利技术涉及数字电路的等价性验证
,尤其涉及一种多输出实例的CNF生成方法、基于SAT的等价性验证方法。

技术介绍

[0002]在数字电路的等价性检查中,基于SAT(satisfiability,布尔可满足性问题)的等价性验证方法被经常使用,一般布尔可满足性问题的布尔公式都表示成合取范式(conjunctive normal from,CNF)的形式。在电路的等价性检查中,可以将两个设计电路的结构用合取范式的形式表现,再利用高效的SAT求解器对CNF进行求解,得到电路是否等价的结论。
[0003]现有技术中求得单输出的实例CNF的方法较多,但电路中存在多输出实例,现有求得CNF的方法存在耗时久,内存大的问题。由于多输出实例有多个输出端口,则同一个多输出实例根据输出端口的不同会得到多个不同的CNF,而同一个实例所连接的电路是一样的,对不同的端口进行迭代会重复迭代同一电路,从而导致耗时久,生成CNF多,内存增大。

技术实现思路

[0004]为了解决现有技术中多输出实例的CNF生成时太过于耗时、占用内存大的技术问题,本专利技术提出了多输出实例的CNF生成方法、等价性验证方法、存储介质。
[0005]本专利技术提出的多输出实例的CNF生成方法,包括:遍历时,在存储结构中查找当前的端口net的输入端口net对应的CNF;如果没找到,则计算当前的端口net的引用次数,遍历当前的端口net连接的电路生成对应的CNF,若引用次数大于1,将该CNF以及引用次数绑定后存入所述存储结构;否则将该CNF与其他端口的CNF组合;如果找到,则直接从所述存储结构中调用所述CNF与其他端口的CNF组合,并将引用次数减1,并在引用次数为0时,从所述存储结构中删除对应的CNF及其关联数据。
[0006]进一步,所述存储结构为哈希表。
[0007]进一步,当引用次数为0时,从所述哈希表中删除所述CNF及其对应的节点。
[0008]进一步,所述当前的端口net的引用次数为该端口net连接的实例的输出端口数量的总和。
[0009]本专利技术提出的基于SAT的等价性验证方法,采用上述技术方案所述的多输出实例的CNF生成方法生成对应的CNF。
[0010]本专利技术提出的计算机可读存储介质,用于存储计算机程序,其特征在于,所述计算机程序运行时执行上述技术方案所述的多输出实例的CNF生成方法。
[0011]进一步,所述计算机可读存储介质包括堆栈,所述CNF存储在堆栈上。
[0012]本专利技术提出的针对多输出实例CNF的生成方法是通过实例的net的引用次数对迭代实例的次数进行控制,生成CNF后将net与CNF绑定,并在实例的net引用次数减为0后,将
该实例所对应的CNF删除以减少内存占用。本专利技术对多输出的实例的输入端口net(与端口连接的线)的引用进行计算,对其连接的所有实例的输出端口数量和顶层模块的输出端口数量进行判断,进而计算引用次数,并将CNF与引用次数绑定。当每次迭代到同一条端口net后,从哈希表中取出第一次迭代完后的存入哈希表的CNF,并可利用其计算多输出实例的CNF,然后将其引用次数减1,直至引用次数为0后,将对应的CNF删除。本专利技术利用实例的端口net的引用次数与CNF绑定和存储重复引用CNF的哈希表来减少迭代重复次数,从而减小内存占用和缩短求得CNF时间的方法。
附图说明
[0013]下面结合实施例和附图对本专利技术进行详细说明,其中:图1是本专利技术一实施例的方法流程图;图2是本专利技术一实施例的电路图;图3是本专利技术另一实施例的电路图。
具体实施方式
[0014]为了使本专利技术所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。
[0015]由此,本说明书中所指出的一个特征将用于说明本专利技术的一个实施方式的其中一个特征,而不是暗示本专利技术的每个实施方式必须具有所说明的特征。此外,应当注意的是本说明书描述了许多特征。尽管某些特征可以组合在一起以示出可能的系统设计,但是这些特征也可用于其他的未明确说明的组合。由此,除非另有说明,所说明的组合并非旨在限制。
[0016]如图1所示,本专利技术的多输出实例的CNF生成方法在遍历时,若遍历到一个端口net,则在存储结构中查找当前的端口net的输入端口net对应的CNF。例如,当前的端口net作为输出端口net连接着实例1,那么就查找该实例1的输入端口net对应的CNF。
[0017]如果在存储结构中没找到该实例1的输入端口net对应的CNF,则计算当前的端口net的引用次数,也就是计算实例1的输出端口net的引用次数。接着遍历当前的端口net连接的电路,并生成对应的CNF,如果当前的端口net的引用次数大于1,将该CNF以及引用次数绑定后存入对应的存储结构。否则将该CNF与其他端口的CNF组合。
[0018]在一个具体实施例中,存储结构为哈希表。
[0019]如果在存储结构中找到该实例1的输入端口net对应的CNF,则直接从存储结构中调用该CNF与其他端口的CNF组合,并将该CNF对应的引用次数减1,并在引用次数为0时,从存储结构中删除对应的CNF及其关联数据。
[0020]如图2所示,下面以一个具体的例子来说明CNF的引用次数的计算方法。
[0021]实例inst的输出端口net对应的CNF的引用次数为实例inst1的两个输出端口、inst2的三个输出端口、inst3的2个输出端口以及直接输出端口port的总和,则引用次数为2+3+2+1=8。
[0022]如图3所示,下面以一个具体的例子来说明本专利技术的CNF生成过程。
[0023]当遍历到inst的输出端口net1时,在存储结构中查找inst的输入端口net是否有对应的CNF,如果没有找到,则基于端口net1所连接的电路生成对应的CNF,并计算该端口net1的引用次数,此时端口net1的引用次数为3,将net1对应的CNF以及引用次数存储到哈希表中,端口net2、端口net3的CNF也是如此遍历和计算。
[0024]当迭代到端口net4时,查找FADD的输入端口net1是否存在对应的CNF,在哈希表中能够找到,则直接调用对应的CNF,同时该CNF的引用次数减1,变为2。当迭代到端口net5或者端口net6时,该CNF的引用次数均会减1,迭代完端口net4至端口net6之后,该CNF的引用次数变为0,此时从哈希表中删除对应的节点以及对应的CNF。
[0025]在上述过程中,迭代端口net4至端口net6时,均可以通过哈希表直接获得端口net1,端口net2,端口net3的CNF,只需直接利用其计算,并将它们的引用次数

1。当端口net1对应的CNF的引用次数为0,这时没有任何电路需要它了,便可将其CNF从CN本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多输出实例的CNF生成方法,其特征在于,包括:遍历时,在存储结构中查找当前的端口net的输入端口net对应的CNF;如果没找到,则计算当前的端口net的引用次数,遍历当前的端口net连接的电路生成对应的CNF,若引用次数大于1,将该CNF以及引用次数绑定后存入所述存储结构;否则将该CNF与其他端口的CNF组合;如果找到,则直接从所述存储结构中调用所述CNF与其他端口的CNF组合,并将引用次数减1,并在引用次数为0时,从所述存储结构中删除对应的CNF及其关联数据。2.如权利要求1所述的多输出实例的CNF生成方法,其特征在于,所述存储结构为哈希表。3.如权利要求2所述的多输出实例的CNF生成方法,其特征在于,...

【专利技术属性】
技术研发人员:熊繁华刘美华张岩黄国勇金玉丰白耿
申请(专利权)人:国微集团深圳有限公司
类型:发明
国别省市:

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

1