本发明属于电路综合,具体涉及一种基于逻辑综合的自动化设计空间探索方法及系统。
背景技术:
1、现代数字超大规模集成电路的设计越来越依赖于电路综合技术。即使是传统上使用定制设计技术实现的高性能关键组件,现在也正在使用先进的综合工具进行实现。相关人员需要使用eda开发工具对使用verilog或vhdl语言编写的rtl设计文件执行逻辑综合操作,以完成rtl设计文件到网表的转化。提高设计效率和增强设计灵活性只是以综合为中心的设计方法的几个好处。此外,由于设计技术在先进工艺节点上提供的性能改进越来越少,因此更需要优化综合结果以实现芯片的性能目标。
2、先进的综合工具提供了大量的设置参数,可以极大地影响特定设计的结果质量。在某些情况下,综合工具中可调参数的数量可以达到数百甚至数千个选项。为了达到现代vlsi电路所需的结果质量,通常需要对许多这些选项进行微调。事实上,参数的修改会对结果的质量产生很大的影响,因此调整综合参数是最有效的设计优化方法之一。在许多情况下,参数调优会导致结果质量的大范围变化,通过修改时序和功率方面的综合参数,可以显著提高可实现的质量(超过默认综合结果)。
3、然而,虽然不同的参数设置会对结果的质量产生很大的影响,但对于经验丰富的设计师来说,找到正确的参数设置的过程往往是乏味和不直观的。新手设计师经常发现手动查找正确的参数设置是一项更加艰巨的任务。因此,自动化参数调优的技术是可取的。
技术实现思路
1、为了解决现有技术中存在的上述问题,本发明提供了一种基于逻辑综合的自动化设计空间探索方法及系统。本发明要解决的技术问题通过以下技术方案实现:
2、本发明实施例提供了一种基于逻辑综合的自动化设计空间探索方法,包括步骤:
3、s1、根据历史数据库中参数权重对参数进行组合,得到若干组初始场景参数集;
4、s2、结合综合输入的工艺库、rtl源码和一组综合脚本组成一个综合场景,并对若干综合场景进行并行综合流程;其中,所述综合脚本基于所述初始场景参数集形成;
5、s3、收集所述若干综合场景运行完成后的若干综合结果,并基于帕累托边界点对所述综合结果进行分析;
6、s4、根据最大迭代次数和所述若干综合结果是否存在帕累托边界点来判断是否满足迭代停止条件;
7、s5、当判断不满足所述迭代停止条件时,根据所述综合结果和所述综合场景的场景参数集,利用决策函数创建下次迭代的若干组场景参数集,并返回执行步骤s2;
8、s6、当判断满足所述迭代停止条件时,输出帕累托边界点对应的综合结果和场景参数,将所述帕累托边界点同时结果评价值最大的点对应的综合结果作为最优综合结果。
9、在本发明的一个实施例中,步骤s1包括:
10、结合历史数据库中参数权重随机选取综合工具的若干参数,并对每个参数随机选取参数值,得到一组初始场景参数集,重复上述步骤,得到若干组初始场景参数集。
11、在本发明的一个实施例中,所述综合脚本包括共有脚本和参数脚本,其中,
12、所述共有脚本包括rtl的时钟约束、rtl的管脚约束和设计规则约束;
13、所述参数脚本包括场景参数集构成的脚本。
14、在本发明的一个实施例中,步骤s2包括:
15、结合综合输入的工艺库、rtl源码和一组所述综合脚本组成一个综合场景,由多个综合场景构成所述若干综合场景;
16、为每个所述综合场景建立子线程,并启动所述子线程进行并行综合流程。
17、在本发明的一个实施例中,步骤s3包括:
18、等待所有所述综合场景运行完成后,收集每个所述综合场景的综合结果,并保存若干所述综合结果和所述综合场景的场景参数;其中,所述综合结果包括total_timming、total_power和total_area;
19、当判断所述若干综合结果存在帕累托边界点,标记所述帕累托边界点对应的场景参数和综合结果;
20、当判断所述若干综合结果不存在帕累托边界点,将迭代失败次数加一。
21、在本发明的一个实施例中,步骤s4包括:
22、当迭代次数达到所述最大迭代次数,或者,当所述迭代次数未达到所述最大迭代次数且所述若干综合结果不存在帕累托边界点的迭代失败次数达到预设次数时,则判断满足迭代停止条件;
23、当判断迭代次数未达到所述最大迭代次数,判断不满足迭代条件;或者,当前迭代的所述若干综合结果存在帕累托边界点,则将迭代失败次数清零。
24、在本发明的一个实施例中,步骤s5包括:
25、当判断不满足所述迭代停止条件时,将所述综合结果用结果评价函数表示为结果评价值,其中,所述结果评价函数为:
26、
27、
28、
29、cost=wt*timing+wp*power+wa*area
30、其中,total_timming、total_power、total_area为由每个综合场景运行收集到的综合结果,total_timingdefault、total_powerdefault、total_areadefault为由默认场景参数集运行收集到的综合结果,默认场景参数集中所有参数均为默认值,cost为结果评价值,wt、wp、wa分别为total_timming、total_power、total_area的系数;
31、将所述综合场景的场景参数集和所述结果评价值输入至所述决策函数,输出下次迭代的场景参数集;其中,所述决策函数包括贝叶斯优化模型;
32、利用下次迭代的若干组场景参数集返回执行步骤s2。
33、在本发明的一个实施例中,步骤s6之后还包括:
34、将所述帕累托边界点的参数值与默认参数值进行比较,根据变化结果确定关键参数,并计算所述关键参数的权重系数。
35、本发明的另一实施例提供了一种基于逻辑综合的自动化设计空间探索系统,包括:历史数据模块、综合场景建立模块和分析决策模块,其中,
36、所述历史数据库模块用于根据历史数据库中参数权重对参数进行组合,得到若干组初始场景参数集,并且当若干综合场景运行完成后收集若干综合结果,基于帕累托边界点对所述综合结果进行分析;
37、所述综合场景建立模块用于结合综合输入的工艺库、rtl源码和一组综合脚本组成一个综合场景,并对若干综合场景进行并行综合流程;其中,所述综合脚本基于所述初始场景参数集形成;
38、所述分析决策模块用于根据最大迭代次数和所述若干综合结果是否存在帕累托边界点来判断是否满足迭代停止条件;当判断不满足所述迭代停止条件时,根据所述综合结果和所述综合场景的场景参数集,利用决策函数创建下次迭代的若干组场景参数集;当判断满足所述迭代停止条件时,输出帕累托边界点对应的综合结果和场景参数,将所述帕累托边界点同时结果评价值最大的点对应的综合结果作为最优综合结果。
39、在本发明的一个实施例中,所述综合场景建立模块包括数据准备模块和多线程并行模块,其中,所述数据准备模块用于结合综合输入的工艺库、rtl源码和一组所述综合脚本组成一个综合场景,由多个综合场景构成所述若干综合场景;所述多线程并行模块用于为每个所述综合场景建立子线程,并启动所述子线程进行并行综合流程;
40、所述历史数据库模块包括初始化参数生成模块、结果分析模块和权重计算模块,其中,所述初始化参数生成模块用于根据历史数据库中参数权重对参数进行组合,得到若干组初始场景参数集;所述结果分析模块用于当若干综合场景运行完成后收集若干综合结果,基于帕累托边界点对所述综合结果进行分析;所述权重计算模块用于将所述帕累托边界点的参数值与默认参数值进行比较,根据变化结果确定关键参数,并计算所述关键参数的权重系数。
41、与现有技术相比,本发明的有益效果:
42、本发明的方法首先利用数据库历史数据构建初始化参数集组合成多个综合场景,然后对综合场景运行完成后的综合结果进行分析,并利用决策函数创建迭代的场景参数集,结合帕累托边界点和结果评价值最大点确定最优综合结果,从而为众多参数找到最佳组合,以最佳的优化设计目标,该方法能够通过并行执行逻辑综合提高综合效率,并且保证了综合结果的质量。