1.本发明公开一种嵌入式的逻辑优化验证流程框架及验证方法,属于芯片验证的技术领域。
背景技术:2.在芯片设计的技术领域,逻辑优化是逻辑综合、逻辑仿真、形式验证等工具研发流程中的重要步骤,根据优化的方向和目标,实现对用户设计综合结果的改进,以满足用户的综合要求。逻辑优化分为组合逻辑优化、存储器优化、数据通路优化等,每种优化又可以细分为常数优化、表达式优化、功耗优化、面积优化等等。
3.对于上述逻辑优化中的每一个优化,都需要对优化前后的设计进行验证,保证优化的正确执行,验证方式分为逻辑仿真、形式验证两种,现有的逻辑验证工具有仿真工具和形式验证工具,如synopsys的vcs工具、cadence的lec工具等,其都需要逻辑优化流程将优化前后的设计以verilog形式输出到文件,并将输出的文件作为vcs或lec等验证工具的输入,通过检查验证工具的输出结果判断逻辑优化是否是正确的。
4.现有技术中,所述验证的框架分别介绍如下:
5.首先是逻辑仿真,首先根据设计构造测试激励文件,将优化前的设计和激励文件通过仿真工具生成波形数据,再将优化后的设计和激励文件通过仿真工具生成波形数据,对比两个波形数据,若一致则认为验证通过,否则验证失败。如图1所示。
6.其次是形式验证,区别于上述逻辑仿真,本验证不需要编写测试激励文件,其将优化前的设计作为golden文件,也就是标准文件,优化后的设计作为被测文件,形式验证工具通过读取两个文件,梳理出两个文件中的所有关键节点,通常将输出端口及内部的时序器件作为关键节点,检查两个文件中的关键节点是否一一对应,以及每对关键点逻辑功能是否一致,若检查通过则验证成功,否则验证失败。如图2所述。
7.通过上述分析,逻辑优化是逻辑综合等工具开发过程中的流程步骤,验证工具如逻辑仿真、形式验证等都是独立于综合工具的第三方工具,若需要对逻辑优化接口的正确性进行验证,需要将逻辑优化前后的设计数据输出成verilog/vhdl等形式的设计网表,再通过上述验证工具读取设计网表并测试两个设计是否功能一致。
8.对于逻辑优化的验证,需要将优化前的设计网表作为golden标准,优化后的设计网表作为待测设计,通过第三方工具验证优化前后设计功能是否一致。传统逻辑优化流程的验证示意图如图3所示。
9.现有逻辑的优化流程本身不具备验证的功能,而逻辑优化本身包含的优化点又非常多,每个点优化完都需要相应的功能验证,因此存在大量的输出及验证操作,带来的问题是逻辑优化流程开发过程中的验证效率是非常低的,同时由于验证和逻辑优化相互分离,一旦验证不通过需要调试时,很难快速定位出问题的关键点,可见,现有技术通过借助第三方工具进行功能验证具有执行效率低,debug困难的问题。
10.所述执行效率低的原因是:验证前需要将逻辑优化过程的中间结果输出到文件,
再通过第三方验证工具读取文件才能进行验证,并且验证需要对整个设计进行对比才能确保功能正确。
11.所述debug困难包括:一是因为当逻辑优化流程出现问题时,需要定位是优化过程中哪一步出现问题,因此需要重复执行附图3记载的流程,直到找到导致问题的步骤,过程繁琐;二是因为当第三方工具报出存在功能不一致或不等价的点时,需要分析复杂的逻辑电路查找具体问题,由于逻辑电路的结构复杂、数据量大等,通常难以直观的确定导致问题发生的关键点,查找问题的时间较长,实际问题点的定位比较困难。
12.综上,基于现有技术所述逻辑优化流程的痛点,本技术领域亟需一种提高逻辑优化流程开发及调试验证的效率、快速定位问题关键点的流程框架及流程方法。
技术实现要素:13.针对现有技术的不足,本发明公开一种嵌入式的逻辑优化验证流程框架。
14.本发明还公开一种实现上述流程框架的验证方法。
15.本发明整体解决逻辑优化流程开发及调试过程中验证效率低、debug调试困难的问题,提高逻辑优化流程开发及调试的便利性、增强工具的可靠性。
16.本发明详细的技术方案如下:
17.一种嵌入式的逻辑优化验证流程框架,其特征在于,包括:逻辑优化框架和验证框架;
18.在所述逻辑优化框架中包括:保存逻辑优化前网表数据节点、保存逻辑优化后网表数据节点、标记优化关键点的节点,在附图中成为标记优化点;所述优化关键点是指在逻辑优化过程中优化修改过的关键点,在附图中也称为优化点;还包括所述优化前网表数据节点、优化后网表数据节点和优化关键点在并联后作为所述验证框架的输入;
19.所述验证框架包括:优化关键点拓扑排序模块、优化前后数据对比模块;
20.所述优化关键点拓扑排序模块,用于按照逻辑连接关系,使距离逻辑优化框架的输入端口近的优化关键点靠前,距离输入端口远的优化关键点靠后的排序规则,排序完成后将排序结果存储在顺序容器中;
21.所述优化前后数据对比模块,用于按照所述排序规则依次取出优化关键点,基于优化前网表和优化后网表分别构建每个优化关键点对应功能的对比数据,根据数据对比结果执行:
22.优化前后网表中的关键点是不变的,即关键点一一对应,但是关键点的功能不是对比得出的,每个关键点的功能依赖于所在的网表,需要基于优化前后的网表分别单独分析,举例如下:
23.优化前关键点对应功能数据的表达:关键点a=a+b+c-b;
24.优化后关键点对应功能数据的表达:关键点a=a+c;
25.由上可知,优化前后关键点a一一对应,但是,表面上虽然优化前后所述关键点功能表达式发生变化:优化前的功能数据为a+b+c-b,优化后的功能为a+c,但是优化前后所述关键点功能数据的表达都是相同的,即a+b+c-b=a+c,即为数据对比一致,因此,在数据对比时,需要基于优化前后的网表分别构建出关键点a的功能数据(可以为表达式、真值表、bdd数据等),以此进行对比;
26.另一种结果:
27.优化前关键点对应功能数据的表达:关键点a=a+b+c-b;
28.优化后关键点对应功能数据的表达:关键点a=a+b;
29.即,优化前的功能数据对比不一致;
30.当对比数据一致时:进一步判断是否对所有优化关键点进行了对比,如全部对比完成,则清除所有优化关键点标记,本轮优化完成,直接退出;如未全部对比完成,则返回继续按照所述排序规则依次取出优化关键点进行对比,直至对所有优化关键点对比完成;
31.当对比数据不一致时:输出优化关键点名称、输出对比数据信息,结束退出。输出优化关键点名称是用户设计中的信号名,因此通过输出优化关键点名称以确定设计中哪里不等价,所述对比数据信息包括:优化前后的网表,表示关键点功能所采用的逻辑表达式、真值表等信息。
32.根据本发明优选的,所述构建关键点对应的功能对比数据,包括但不限于构建逻辑表达式数据、真值表数据、bdd二分决策树数据。
33.根据本发明优选的,在单次优化完成后,判断是否还有下一步的优化步骤:如果有,则直接返回至逻辑优化框架中和验证框架中,直至所有优化步骤全部完成,结束退出。
34.一种实现上述流程框架的验证方法,其特征在于:包括:
35.根据完成逻辑优化流程,准备验证流程的基础;
36.所述验证流程的基础包括:优化前备份的网表数据、优化后产生的网表数据和逻辑优化流程中所对应改动的关键点,该关键点为优化关键点;
37.基于上述验证流程的基础,每轮优化的启动验证流程具体为:
38.1)对所述优化关键点进行拓扑排序:根据逻辑连接关系,使距离逻辑优化框架的输入端口近的优化关键点靠前,距离输入端口远的优化关键点靠后的排序规则,排序完成后将排序结果存储在顺序容器中;
39.2)按照拓扑排序的结果,依次取出优化关键点,基于优化前网表和优化后网表分别构建每个优化关键点对应功能的对比数据;
40.3)依次对比优化前后的关键点的功能数据
41.当对比数据一致时:进一步判断是否对所有优化关键点进行了对比,如全部对比完成,则清除所有优化关键点标记,本轮优化完成,直接退出;如未全部对比完成,则返回继续按照所述排序规则依次取出优化关键点进行对比,直至对所有优化关键点对比完成;清除所有优化关键点标记是用于避免与后面优化流程标记的关键点造成混淆;
42.当对比数据不一致时:输出优化关键点名称、输出对比数据信息,结束退出。输出优化关键点名称是用户设计中的信号名,因此通过输出优化关键点名称以确定设计中哪里不等价,所述对比数据信息包括:优化前后的网表,表示关键点功能所采用的逻辑表达式、真值表等信息。
43.根据本发明优选的,所述准备验证流程的基础包括:
44.所述优化前备份的网表数据,为逻辑优化前复制网表数据,作为验证对比的golden数据,并被保存在内存中,不需要对外输出;
45.所述逻辑优化流程中所对应改动的关键点,即为优化关键点,执行逻辑优化的过程中标记优化修改过的关键点,如时序器件、memory器件等非组合逻辑器件。
46.根据本发明优选的,所述验证方法还包括:按步骤3)完成单轮优化验证后,继续启动下一轮优化验证:再次准备验证流程的基础、重复步骤1)-3)。
47.本发明按照上述流程,既完成了逻辑优化的操作,又高效的验证了优化操作的正确性,同时在出现问题时能够输出问题的关键点,以方便查找并确定问题原因,整个框架并不限定拓扑排序的方法,不限定功能对比数据的方式方法,强调整个逻辑优化及验证框架的创新。
48.发明的有益效果:
49.1、本发明适用于逻辑优化流程的验证开发及调试流程的问题定位,验证过程仅针对优化过程中修改过的关键点,避免了冗余的对比验证。现有技术通过第三方工具需要对整个设计中的关键点进行验证,相比,本发明所述验证的关键点远远小于通过第三方工具验证的点,并且不需要输出中间网表,可以内嵌在逻辑综合、逻辑仿真等工具的优化流程中,验证的效率大大提升。
50.2、本发明在验证时通过对优化关键点进行拓扑排序,首先对比距离输入端近的优化关键点,若通过则依次向输出端延申验证,因此第一个验证不通过的点即是问题的关键点,方便在调试过程中快速定位问题。
附图说明
51.图1是现有技术的逻辑仿真验证框图;
52.图2是现有技术的形式验证框图;
53.图3是现有技术逻辑优化验证示意图;
54.图4是本发明可验证的逻辑综合优化验证框架示意图。
具体实施方式
55.下面结合实施例和说明书附图对本发明做详细的说明,但不限于此。
56.由于数字eda工具开发流程中的逻辑优化都类似,因此,本发明在逻辑仿真、形式验证等在逻辑优化上都是通用的,普适性上是否可以说适用于具有逻辑优化流程的eda工具开发,不提具体逻辑仿真还是形式验证,其他工具也可能会适用。
57.实施例1、
58.如图4所示,一种嵌入式的逻辑优化验证流程框架,包括:逻辑优化框架和验证框架;
59.在所述逻辑优化框架中包括:保存逻辑优化前网表数据节点、保存逻辑优化后网表数据节点、标记优化关键点的节点,在附图中成为标记优化点;所述优化关键点是指在逻辑优化过程中优化修改过的关键点,在附图中也称为优化点;还包括所述优化前网表数据节点、优化后网表数据节点和优化关键点在并联后作为所述验证框架的输入;
60.所述验证框架包括:优化关键点拓扑排序模块、优化前后数据对比模块;
61.所述优化关键点拓扑排序模块,用于按照逻辑连接关系,使距离逻辑优化框架的输入端口近的优化关键点靠前,距离输入端口远的优化关键点靠后的排序规则,排序完成后将排序结果存储在顺序容器中;
62.所述优化前后数据对比模块,用于按照所述排序规则依次取出优化关键点,基于
优化前网表和优化后网表分别构建每个优化关键点对应功能的对比数据,根据数据对比结果执行:
63.当对比数据一致时:进一步判断是否对所有优化关键点进行了对比,如全部对比完成,则清除所有优化关键点标记,本轮优化完成,直接退出;如未全部对比完成,则返回继续按照所述排序规则依次取出优化关键点进行对比,直至对所有优化关键点对比完成;
64.当对比数据不一致时:输出优化关键点名称、输出对比数据信息,结束退出。
65.所述构建关键点对应的功能对比数据,包括但不限于构建逻辑表达式数据、真值表数据、bdd二分决策树数据。
66.在单次优化完成后,判断是否还有下一步的优化步骤:如果有,则直接返回至逻辑优化框架中和验证框架中,直至所有优化步骤全部完成,结束退出。
67.实施例2、
68.一种实现如实施例1所述流程框架的验证方法,包括:
69.根据完成逻辑优化流程,准备验证流程的基础;
70.所述验证流程的基础包括:优化前备份的网表数据、优化后产生的网表数据和逻辑优化流程中所对应改动的关键点,该关键点为优化关键点;
71.基于上述验证流程的基础,每轮优化的启动验证流程具体为:
72.1)对所述优化关键点进行拓扑排序:根据逻辑连接关系,使距离逻辑优化框架的输入端口近的优化关键点靠前,距离输入端口远的优化关键点靠后的排序规则,排序完成后将排序结果存储在顺序容器中;
73.2)按照拓扑排序的结果,依次取出优化关键点,基于优化前网表和优化后网表分别构建每个优化关键点对应功能的对比数据;
74.3)依次对比优化前后的关键点的功能数据
75.当对比数据一致时:进一步判断是否对所有优化关键点进行了对比,如全部对比完成,则清除所有优化关键点标记,本轮优化完成,直接退出;如未全部对比完成,则返回继续按照所述排序规则依次取出优化关键点进行对比,直至对所有优化关键点对比完成;清除所有优化关键点标记是用于避免与后面优化流程标记的关键点造成混淆;
76.当对比数据不一致时:输出优化关键点名称、输出对比数据信息,结束退出。输出优化关键点名称是用户设计中的信号名,因此通过输出优化关键点名称以确定设计中哪里不等价,所述对比数据信息包括:优化前后的网表,表示关键点功能所采用的逻辑表达式、真值表等信息。
77.所述准备验证流程的基础包括:
78.所述优化前备份的网表数据,为逻辑优化前复制网表数据,作为验证对比的go1den数据,并被保存在内存中,不需要对外输出;
79.所述逻辑优化流程中所对应改动的关键点,即为优化关键点,执行逻辑优化的过程中标记优化修改过的关键点,如时序器件、memory器件等非组合逻辑器件。
80.在本实例中以与门逻辑化简优化流程为例介绍:
81.启动与门逻辑化简流程前备份网表。
82.优化流程,遍历网表中的与门以及级联结构的与门链,分析与门的输入信号是否存在互斥等可优化的情况:若存在,则优化与门结构,同时标记当前跟与门有逻辑关系的关
键点为优化关键点。所谓有逻辑关系即该与门驱动了关键点,如a=b&c,b&c会形成一个与门,而该与门驱动了关键点a。
83.优化后汇总所有标记过的关键点,即优化关键点,对优化关键点进行拓扑排序,基于备份的网表和当前优化后的网表,针对每一个关键点构建相对应的功能数据,对比备份网表和优化后网表对应的功能数据是否一致,一致则该关键点验证通过。所有优化过的关键点数据对比完成后,清除所有优化关键点标记,完成当前优化流程。
84.其中,所述清除所有优化关键点标记过程包括:
85.有a,b,c,d共4个关键点;
86.优化步骤一,优化了关键点b,此时关键点b有标记,对比优化前后的关键点时只需要验证关键点b点就可以了,因为a、c、d没有优化即没有修改,不需要验证,对比完成后将关键点b的标记清除,因为下次优化不一定再优化关键点b了。
87.优化步骤二,优化了关键点c,此时只有关键点c标记,仅对比优化前后的关键点c,若步骤一不清除关键点b的标记,此时需要验证关键点b和关键点c两个点,对完再清除关键点c的标记。
88.优化步骤三,优化了关键点a和关键点b,此时又不需要验证关键点c了。
89.同理,清除标记是为了保证每次优化对比的关键点都是当前优化修改过的,不受前面优化的影响。
90.实施例3、
91.如实施例2所述验证方法还包括:按步骤3)完成单轮优化验证后,继续启动下一轮优化验证:再次准备验证流程的基础、重复步骤1)-3)。
92.基于上述实施例可以对本发明做更加深入的解释和理解:
93.基于拓扑排序后的优化关键点顺序:
94.若数据对比不一致,则当前优化关键点就是导致问题的地方,因此输出当前验证不过的优化关键点及优化前后网表(本发明所述的输出对比数据信息),即可以分析该优化关键点的逻辑变化。而通常定位困难是因为关键点难以确定,而且不清楚到底哪个才是导致出现问题的根本原因,但是本发明中,遇到某一优化关键点对比数据失败时,随即输出优化关键点名称、输出对比数据信息,并结束验证及优化流程,基于当前输出的关键点可以快速定位问题,结束退出。
95.以6个关键点为例,f点依赖e点,e点依赖d点,以此类推,b点依赖a点,因此若c点出错会导致d点,e点,f点都验证不过,因此定位问题需要确定c点、d点、e点或f点是导致问题的根本原因。而利用本发明所述的框架和方法后,可以直接反馈用户:c点是根本点,只要解决c点不等价的问题,d点、e点、f点问题自然就解决了。
技术特征:1.一种嵌入式的逻辑优化验证流程框架,其特征在于,包括:逻辑优化框架和验证框架;在所述逻辑优化框架中包括:保存逻辑优化前网表数据节点、保存逻辑优化后网表数据节点、标记优化关键点的节点;还包括所述优化前网表数据节点、优化后网表数据节点和优化关键点在并联后作为所述验证框架的输入;所述验证框架包括:优化关键点拓扑排序模块、优化前后数据对比模块;所述优化关键点拓扑排序模块,用于按照逻辑连接关系,使距离逻辑优化框架的输入端口近的优化关键点靠前,距离输入端口远的优化关键点靠后的排序规则,排序完成后将排序结果存储在顺序容器中;所述优化前后数据对比模块,用于按照所述排序规则依次取出优化关键点,基于优化前网表和优化后网表分别构建每个优化关键点对应功能的对比数据,根据数据对比结果执行:当对比数据一致时:进一步判断是否对所有优化关键点进行了对比,如全部对比完成,则清除所有优化关键点标记,本轮优化完成,直接退出;如未全部对比完成,则返回继续按照所述排序规则依次取出优化关键点进行对比,直至对所有优化关键点对比完成;当对比数据不一致时:输出优化关键点名称、输出对比数据信息,结束退出。2.根据权利要求1所述一种嵌入式的逻辑优化验证流程框架,其特征在于,所述构建关键点对应的功能对比数据,包括但不限于构建逻辑表达式数据、真值表数据、bdd二分决策树数据。3.根据权利要求1所述一种嵌入式的逻辑优化验证流程框架,其特征在于,在单次优化完成后,判断是否还有下一步的优化步骤:如果有,则直接返回至逻辑优化框架中和验证框架中,直至所有优化步骤全部完成,结束退出。4.一种实现如权利要求1-3任意一项所述流程框架的验证方法,其特征在于:包括:根据完成逻辑优化流程,准备验证流程的基础;所述验证流程的基础包括:优化前备份的网表数据、优化后产生的网表数据和逻辑优化流程中所对应改动的关键点;基于上述验证流程的基础,每轮优化的启动验证流程具体为:1)对所述优化关键点进行拓扑排序:根据逻辑连接关系,使距离逻辑优化框架的输入端口近的优化关键点靠前,距离输入端口远的优化关键点靠后的排序规则,排序完成后将排序结果存储在顺序容器中;2)按照拓扑排序的结果,依次取出优化关键点,基于优化前网表和优化后网表分别构建每个优化关键点对应功能的对比数据;3)依次对比优化前后的关键点的功能数据当对比数据一致时:进一步判断是否对所有优化关键点进行了对比,如全部对比完成,则清除所有优化关键点标记,本轮优化完成,直接退出;如未全部对比完成,则返回继续按照所述排序规则依次取出优化关键点进行对比,直至对所有优化关键点对比完成;当对比数据不一致时:输出优化关键点名称、输出对比数据信息,结束退出。5.如权利要求4所述的验证方法,其特征在于:所述准备验证流程的基础包括:
所述优化前备份的网表数据,为逻辑优化前复制网表数据,作为验证对比的golden数据,并被保存在内存中;所述逻辑优化流程中所对应改动的关键点,即为优化关键点,执行逻辑优化的过程中标记优化修改过的关键点。6.如权利要求4或5所述的验证方法,其特征在于:所述验证方法还包括:按步骤3)完成单轮优化验证后,继续启动下一轮优化验证:再次准备验证流程的基础、重复步骤1)-3)。
技术总结本发明属于芯片验证的技术领域,公开一种嵌入式的逻辑优化验证流程框架及验证方法,包括:逻辑优化框架和验证框架;在所述逻辑优化框架中包括:保存逻辑优化前网表数据节点、保存逻辑优化后网表数据节点、标记优化关键点的节点;还包括所述优化前网表数据节点、优化后网表数据节点和优化关键点在并联后作为所述验证框架的输入。本发明按照上述流程,既完成了逻辑优化的操作,又高效的验证了优化操作的正确性,同时在出现问题时能够输出问题的关键点,以方便查找并确定问题原因,整个框架并不限定拓扑排序的方法,不限定功能对比数据的方式方法,强调整个逻辑优化及验证框架的创新。强调整个逻辑优化及验证框架的创新。强调整个逻辑优化及验证框架的创新。
技术研发人员:刘奎 唐兴达
受保护的技术使用者:山东启芯软件科技有限公司
技术研发日:2022.08.31
技术公布日:2022/12/1