一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

二元决策图的构造方法、等价性验证方法、存储介质与流程

2022-02-22 08:28:03 来源:中国专利 TAG:


1.本发明涉及数字电路的等价性验证技术领域,尤其涉及一种二元决策图的构造方法。


背景技术:

2.目前的组合电路的逻辑验证技术中最广泛的验证方法之一是基于bdd(binary decision diagram,二元决策图)的方法,其原理是证明两个设计电路产生的robdd(reduced ordered binary decision diagram,规约有序二元决策图)是否同构,如果同构则说明两个设计电路是等价的。
3.bdd本身也是一种数据结构,能够用来描述大的布尔函数,也可以同时描述所有的选择情况,但是由于存在不可预料的存储器需求量,因此在处理特殊电路(如乘法电路)以及大规模集成电路时会遇到难以克服的困难。
4.对组合电路的逻辑验证的另一个验证方法是sat(布尔可满足性验证),目前sat的求解已经取得长足进步,可对很大的问题事例进行逻辑推理。因此基于布尔可满足性的建模在等价性验证中得到了更加广泛的应用。相较于bdd而言,sat对的大规模集成电路支持更好,可以使用更少的内存得出等价的结果。
5.因而在需要使用bdd表述对应的电路时,如何生成bdd,避免生成bdd时内存占用多大,产生的节点过多的问题是业界亟待解决的技术问题。


技术实现要素:

6.为了解决现有技术中生成bdd时占用内存较大的技术问题,本发明提出了二元决策图的构造方法、等价性验证方法、存储介质。
7.本发明提出的二元决策图的构造方法,包括:步骤1,确定电路的锥顶和锥底;步骤2,从锥顶的输入端口开始可生成二元决策图的迭代过程;步骤3,当迭代过程进行到连线网部分时,若当前的连线网不是多驱动并且该连线网连接的端口数量大于等于3,则查找哈希表;步骤4,如果没有在哈希表中找到当前的连线网,则继续可生成二元决策图的迭代过程以生成该连线网对应的局部二元决策图,并以连线网为索引将该局部二元决策图存入哈希表中;步骤5,如果在哈希表中找到当前的连线网,则取出该连线网对应的局部二元决策图,添加到当前的二元决策图中,并基于更新后的二元决策图继续可生成二元决策图的迭代过程,直至当前的锥顶对应的所有锥底全部遍历完成;步骤6,重复步骤2至5,直至所有锥顶遍历完成。
8.进一步去,将所述电路中的时序单元的输入作为锥顶,输出作为锥底;或者,将所述电路中的输入作为锥底,时序单元的输入作为锥顶;或者,将电路的输出作为锥顶,时序
单元的输出作为锥底。
9.进一步,在确定当前的连线网是不是多驱动之前,先确定当前的连线网是不是为空,如果是,则确定该连线网为空锥底,结束可生成二元决策图的迭代过程;如果否,则执行确定连线网是不是多驱动的步骤。
10.进一步,如果确定当前的连线网为多驱动时,上报多驱动错误,并结束可生成二元决策图的迭代过程。
11.进一步,所述步骤4中,若当前的连线网的输入端口连接的是时序单元的输出端口时,则该连线网的输出端口连接的是锥底,则该连线网对应的局部二元决策图为锥底。
12.进一步,所述步骤4中,若当前的连线网连接的不是锥底,即连线网的输入端口连接的是逻辑单元的输出端口时,可生成二元决策图的迭代过程从此连线网所连接的逻辑单元继续向下遍历, 遍历所有连接的逻辑单元,直到遍历完该连线网对应的所有锥底时生成该连线网对应的局部二元决策图。
13.本发明提出的数字电路的等价性验证方法,采用了上述技术方案所述的二元决策图的构造方法。
14.本发明提出的计算机可读存储介质,用于存储计算机程序,所述计算机程序运行时执行上述技术方案所述的二元决策图的构造方法。
15.本发明生成bdd时,采用了哈希表配合bdd的生成过程,避免了现有技术中多次迭代同一个电路实例(如迭代同一部分逻辑单元)所造成的多余开销。由于现有技术中,电路和bdd节点之间没有对应关系,所以当bdd图的节点建立时,在不做等价性判断和化简时,并不能确定节点是否和之前建立的有重复。即使是对bdd图进行化简,其时间复杂度也远远大于哈希查找的o(1)。而本发明通过和部分bdd节点以及部分电路实例建立映射关系,在迭代电路时通过哈希表查找减少了处理bdd图的所消耗的时间和内存。
附图说明
16.下面结合实施例和附图对本发明进行详细说明,其中:图1是本发明的二元决策图的构造流程图。
具体实施方式
17.为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
18.由此,本说明书中所指出的一个特征将用于说明本发明的一个实施方式的其中一个特征,而不是暗示本发明的每个实施方式必须具有所说明的特征。此外,应当注意的是本说明书描述了许多特征。尽管某些特征可以组合在一起以示出可能的系统设计,但是这些特征也可用于其他的未明确说明的组合。由此,除非另有说明,所说明的组合并非旨在限制。
19.下面结合附图以及实施例对本发明的原理进行详细说明。
20.如图1所示,本发明的二元决策图的构造方法,需要先确定电路的锥顶和锥底,在具体实施例中,可以将电路中的时序单元的输入作为锥顶,输出作为锥底。或者将电路的输
入作为锥底,时序单元的输入作为锥顶。或者将电路的输出作为锥顶,时序单元的输出作为锥底。
21.确定了锥顶以后,从一个锥顶的输入端口开始可生成二元决策图的迭代过程。这个可生成二元决策图的迭代过程与现有的生成二元决策图的迭代过程相同,但是本发明指定了锥顶和锥底。
22.当现有的可生成二元决策图的迭代过程进行到连线网部分时,即进行到net部分时,判断当前的连线网是不是多驱动,如果是多驱动,则上报多驱动错误,可生成二元决策图的迭代过程结束。
23.如果当前的连线网不是多驱动,判断这个连线网是不是多负载,也就是说改连线网连接的端口数量需要大于等于3,一个输入,至少两个输出,如果该连线网是多负载,则查找哈希表。
24.在该连线网第一次在可生成二元决策图的迭代过程中被遍历到时,在哈希表中找不到当前的连线网,则继续可生成二元决策图的迭代过程,以生成该连线网对应的局部二元决策图,局部二元决策图并不是单独生成的,而是在可生成二元决策图的迭代过程中生成电路对应的二元决策图时,会包含连线网对应的局部二元决策图,以连线网为索引,将该局部二元决策图存入到哈希表中。
25.在生成连线网对应的局部二元决策图时,分为两种情况。如果当前的连线网的输入端口连接的是时序单元的输出端口时,则该连线网的输出端口连接的是锥底,则该连线网对应的局部二元决策图为锥底。如果当前的连线网连接的不是锥底,即连线网的输入端口连接的是逻辑单元的输出端口时,可生成二元决策图的迭代过程从此连线网所连接的逻辑单元继续向下遍历, 遍历所有连接的逻辑单元,直到遍历完该连线网对应的所有锥底时生成该连线网对应的局部二元决策图,也就是在可生成二元决策图的迭代过程在生成整个二元决策图时,所生成的与该连线网对应的一个局部,本发明称之为局部二元决策图,局部二元决策图并非单独通过其他方式生成的,局部二元决策图就是对整个二元决策图的一个局部进行命名,并将对应的信息存入到哈希表中,以便在下次需要生成局部二元决策图时,直接从哈希表中读取,从而使得可生成二元决策图的迭代过程可以跳出这部分重复的迭代,直接继续之后的迭代,节约二元决策图的生成时间。
26.在可生成二元决策图的迭代过程中,如果该连线网不是第一次被遍历到,则当遍历到该连线网时,查找哈希表,可以在哈希表中找到该连线网对应的局部二元决策图,此时,直接从哈希表中取出该局部二元决策图,对当前的二元决策图进行更新,由于局部二元决策图是连线网连接的逻辑单元直至锥底的部分,因而可生成二元决策图的迭代过程会跳出连线网对应的部分的迭代过程,基于更新后的二元决策图继续其他没有被遍历的单元、连线的迭代过程,直到当前的锥顶对应的所有锥底都被遍历完成时,结束当前的锥顶的遍历。
27.重复上述步骤继续从下一个锥顶开始遍历,直到所有的锥顶开始的遍历过程完成。
28.上述过程中,在确定当前的连线网是不是多驱动之前,先确定当前的连线网是不是为空,如果是,则确定该连线网为空锥底,结束可生成二元决策图的迭代过程;如果否,则执行确定连线网是不是多驱动的步骤。
29.本发明还保护数字电路的等价性验证方法,该等价性验证方法采用了上述技术方案中的二元决策图的构造方法。同样的,本发明还保护计算机可读存储介质,该计算机可读存储介质所存储的计算机程序运行时执行上述技术方案的二元决策图的构造方法。
30.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献