一种布尔可满足性验证方法、系统、CNF生成方法及存储装置与流程

文档序号:28423124发布日期:2022-01-11 23:15阅读:209来源:国知局
一种布尔可满足性验证方法、系统、CNF生成方法及存储装置与流程
一种布尔可满足性验证方法、系统、cnf生成方法及存储装置
技术领域
1.本发明涉及组合电路的等价性验证技术领域,尤其涉及一种布尔可满足性验证方法、系统、验证过程中的cnf生成方法及存储装置。


背景技术:

2.等价性验证技术常用于验证寄存器传输级设计(rtl)与门级网表之间、门级网表与门级网表之间是否一致。在进行扫描链插入、时钟树综合等过程中,都可以用等价性验证技术保证网表功能的一致性。等价性验证技术已经融入集成电路标准设计流程中,在验证eco时非常有用。例如,设计者在修改门级网表时,由于手误,错将一个或门写成或非门,等价性检查工具通过比较寄存器传输级设计与门级网表,可以非常容易地发现这种错误。
3.布尔可满足性验证工具是实现等价性验证的主要引擎之一,使用布尔可满足性验证工具的等价性验证的主要流程包括待验证设计的解析,比较点匹配,cnf(conjunctive normal form,合取范式)生成,布尔满足性验证。其中,待验证设计的cnf生成过程中,在迭代的同时会产生大量的缓存数据,在等价性验证过程中的体现就是内存占用大。
4.高品质的等价性验证工具,必须具备低内存占用和高运行速度。因此,解决待验证设计的cnf生成过程中产生的大量缓存数据,降低等价性验证的内存占用是非常有价值的。


技术实现要素:

5.本发明的目的是针对现有技术中等价性验证过程中内存占用大的缺陷,提供一种布尔可满足性验证方法、系统、验证过程中的cnf生成方法及存储装置。
6.本发明实施例中,提出了一种布尔可满足性验证方法,其包括:步骤s1:读取待验证的参考电路和实现电路;步骤s2:对参考电路和实现电路进行比较点匹配;步骤s3:对于比较点匹配后形成的逻辑锥进行miter电路构建;步骤s4:将miter电路转换生成cnf;步骤s5:将miter电路末端节点对应的cnf导入布尔可满足性验证工具进行布尔可满足性验证;步骤s4中,在将miter电路的每个节点转换为cnf的过程中,释放后续节点无需调用的cnf的占用内存。
7.本发明实施例中,当前节点的cnf生成之后,释放上一级节点对应的cnf的占用内存。
8.本发明实施例中,当miter电路的末端节点对应的cnf生成完毕后,释放该末端节点前面的所有节点对应的cnf的占用内存。
9.本发明实施例中,若miter电路中存在一个节点对应多个负载的情况,则统计每个节点的负载个数,并标记到每个节点上;在生成cnf的过程中,当某个节点对应的cnf每被调用1次,将该节点的负载个数减
1;当某个节点对应的负载个数为0时,释放该节点的对应的cnf占用的内存。
10.本发明实施例中,还提供了一种布尔可满足性验证系统,其进行布尔可满足性验证时,采用上述的布尔可满足性验证方法。
11.本发明实施例中,还提供了一种布尔可满足性验证过程中的cnf生成方法,其包括:在将miter电路的每个节点转换为cnf的过程中,释放后续节点无需调用的cnf的占用内存。
12.本发明实施例中,当前节点的cnf生成之后,释放上一级节点对应的cnf的占用内存。
13.本发明实施例中,当miter电路的末端节点对应的cnf生成完毕后,释放该末端节点前面的所有节点对应的cnf的占用内存。
14.本发明实施例中,若miter电路中存在一个节点对应多个负载的情况,则统计每个节点的负载个数,并标记到每个节点上;在生成cnf的过程中,当某个节点对应的cnf每被调用1次,将该节点的负载个数减1;当某个节点对应的负载个数为0时,释放该节点的对应的cnf占用的内存。
15.本发明实施例中,还提供了一种存储装置,所述存储装置中存储有计算机程序,当所述计算机程序被运行时,执行上述的布尔可满足性验证过程中的cnf生成方法。
16.与现有技术相比,本发明的技术方案中,在将miter电路的每个节点转换为cnf的过程中,释放后续节点无需调用的cnf的占用内存,可以快速的释放大量的内存,减少了迭代时产生的大量缓存数据,降低了cnf的占用内存。
附图说明
17.图1是本发明实施例的布尔可满足性验证方法的流程图。
18.图2(a)和图2(b)分别是参考电路cref和实现电路cimp的示意图。
19.图3 是miter电路的示意图。
20.图4是 miter电路转换cnf过程中节点标记示意图。
21.图5是miter电路中存在多负载节点时的cnf释放流程图。
具体实施方式
22.如图1所示,本发明实施例中,提出了一种布尔可满足性验证方法,其包括步骤s1-s5。下面分别进行说明。
23.步骤s1:读取待验证的参考电路cref和实现电路cimp。
24.如图2所示,方框代表存储元件,例如寄存器、锁存器等,存储元件作为第二步进行比较的比较点。三角形代表连接到存储元件输入端的逻辑锥,逻辑锥的锥顶是寄存器的输入端,锥底是主输入或者下级存储元件的输出端(图2中示意是代表主输入端)。
25.步骤s2:对参考电路和实现电路进行比较点匹配。
26.比较点是图2(a)中参考电路cref的m1和图2(b)中实现电路cimp的m1,因为比较点
的名字是一致的,因此,图2中的两个比较点是匹配的。
27.步骤s3:对于比较点匹配后形成的逻辑锥进行miter构建。
28.假设图2(a)中参考电路的逻辑锥是一个与门,图2(b)中实现电路的逻辑锥是一个或门,构建miter电路的过程就是将与门的对应输入端绑定,输出端作为输入连接到异或门,如图3所示。
29.步骤s4:将miter电路转换生成cnf。
30.假设输入端不存在恒为0/1的情况,从输入端开始遍历到输出端,并从1开始编号,每个节点的编号对应相应的cnf表示。
31.以图4为例:节点1对应的cnf为(1 0),节点2对应的cnf为(2 0),节点3对应的cnf为(1 0)(2 0)(1
ꢀ‑
3 0)(2
ꢀ‑
3 0)(-1
ꢀ‑
2 3 0),节点4对应的cnf为(1 0)(2 0)(-1 4 0)(-2 4 0)(1 2
ꢀ‑
4 0),节点5对应的cnf为(1 0)(2 0)(1
ꢀ‑
3 0)(2
ꢀ‑
3 0)(-1
ꢀ‑
2 3 0)(-1 4 0)(-2 4 0)(1 2
ꢀ‑
4 0)(-5 3 4 0)(-5
ꢀ‑3ꢀ‑
4 0)(5
ꢀ‑
3 4 0)(5 3
ꢀ‑
4 0)(5 0)。
32.步骤s5:将miter电路末端节点对应的cnf导入布尔可满足性验证工具进行布尔可满足性验证。
33.具体地,将节点5对应的cnf导入布尔可满足性验证工具,例如minisat,得到验证结果。如果输出结果是satisfiable,说明待验证的参考电路和实现电路是不等价的,如果输出结果是unsatisfiable,说明待验证的参考电路和实现电路是等价的。图3中的电路很明显是不等价的。
34.步骤s4中,为降低等价性验证过程中内存占用,在将miter电路的每个节点转换为cnf的过程中,释放后续节点无需调用的cnf的占用内存。具体地,有以下几种实施方案。
35.第一种实施方案:当前节点的cnf生成之后,释放上级节点的cnf占用的内存。
36.以图4对应的cnf为例,传统方法中,需要保存所有节点的cnf,但实际上要用的是输出端,也就是节点5的cnf进行布尔可满足性验证。
37.即图4中,在节点3和节点4的cnf生成后,释放节点1和节点2的cnf的占用内存;在节点5的cnf生成后,释放节点3和节点4的cnf的占用内存。这样,在生成节点5的cnf之后,cnf总共包含11个子句,而不是传统的25个子句,cnf的占用内存可以降低60%。
38.第二种实施方案:等所有节点的cnf生成之后,再一次性释放除输出节点对应的cnf之外的其他cnf占用的内存。
39.即图4中,在节点1,节点2,节点3,节点4,节点5的对应cnf生成后,再释放节点1,节点2,节点3,节点4的cnf的占用内存。
40.第一种实施方案虽然是占用内存最小的,但是仅适应不存在一个节点对应多负载情况的电路,如果存在一个节点对应多负载,释放掉上级cnf后,对应的当前cnf生成需要重新迭代,会增加验证时间。一个节点对应多负载的情况,以图4中的输入端节点1为例,对应节点3和节点4两个负载,如果在生成节点3的cnf之后,释放掉节点1的cnf,那么节点4的cnf生成时,对应节点1的cnf需要再次迭代生成。图4比较简单,如果节点1存在多层上级的情况下,上级的层数越多,二次迭代需要耗费的时间就越长,会降低整体等价性验证的效果。
41.因此,如图5所示,对于miter电路中存在一个节点对应多个负载的情况,采用第三种实施方案:统计每个节点的负载个数,并标记到每个节点上;当节点对应的cnf每被调用1次,将该节点的负载个数减1;当节点对应的负载个数为0时,释放该节点的cnf的占用内存。
42.还是以图4为例:节点1有两个负载,节点3和节点4,那么节点1需要的负载计数为2, 当节点3对应的cnf生成后,节点1的负载计数减1,当节点4对应的cnf生成后,节点1的负载计数再减1,即为0,这时,可以释放节点1对应的cnf占用的内存。
43.综上所述,本发明的技术方案中,在将miter电路的每个节点转换为cnf的过程中,释放后续节点无需调用的cnf的占用内存,可以快速的释放大量的内存,减少了迭代时产生的大量缓存数据,降低了cnf的占用内存。
44.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1