本发明涉及芯片设计,具体涉及一种芯片延时优化方法、装置、计算机设备及存储介质。
背景技术:
1、关键路径延时是用于判断将给定用户设计映射到现场可编程门阵列(fieldprogrammable gate array,fpga)芯片的性能的一个核心指标。将用户设计映射到fpga芯片往往需要通过专门的电子设计自动化(electronic design automation,eda)工具,该工具一般包含综合、布局、布线、比特流生成等环节,综合,布局,布线都会基于关键路径(可简单理解为延时最长的路径)的延时信息做出相关优化。但是每个环节所能得到的信息存在差异,且环节之间的交互成本较大,因此仅通过上述综合、布局、布线环节所能实现的优化效果有限,关键路径的延时还存在极大的优化空间。
技术实现思路
1、有鉴于此,本发明提供了一种芯片延时优化方法、装置、计算机设备及存储介质,以解决fpga芯片的延时优化有限的问题。
2、第一方面,本发明提供了一种芯片延时优化方法,该方法包括:
3、获取基于用户设计综合后得到的网表和布局后得到的布局结果;
4、从网表中选择种子节点;
5、针对每一种子节点,进行扩展操作得到种子节点的扩展集合,扩展集合包括种子节点和通过扩展操作得到的目标节点;
6、对扩展集合中的节点进行重综合;
7、在重综合有效的情况下,则基于重综合产生的扩展集合的替代网表进行渐进布局。
8、在一种可选的实施方式中,从网表中选择种子节点包括:
9、获取网表中每一节点的各输入引脚的裕度;
10、根据节点的输入引脚的裕度,选择种子节点。
11、在一种可选的实施方式中,根据节点的输入引脚的裕度,选择种子节点,包括:
12、根据节点的各输入引脚的裕度获取目标参数;
13、根据目标参数与第一预设阈值之间的大小关系确定节点是否为种子节点。
14、在一种可选的实施方式中,目标参数是基于节点的输入引脚的裕度与网表中所有节点的所有输入引脚的最大裕度的比值得到。
15、在一种可选的实施方式中,针对每一种子节点,进行扩展操作得到种子节点的扩展集合之前,还包括:
16、获取每一种子节点的收益;
17、根据收益对种子节点进行排序;
18、针对每一种子节点,进行扩展操作得到种子节点的扩展集合,包括:
19、按照顺序对种子节点进行扩展操作。
20、在一种可选的实施方式中,种子节点的收益是根据种子节点的输入引脚的裕度计算得到。
21、在一种可选的实施方式中,针对每一种子节点,进行扩展操作得到种子节点的扩展集合,包括:
22、获取种子节点的输入节点;
23、判断输入节点是否满足预设限制条件;
24、若满足,则将输入节点作为目标节点加入扩展集合;
25、判断扩展集合中的每一目标节点的每一输入节点是否满足预设限制条件,并在满足预设限制条件的情况下,将输入节点加入扩展集合,直至遍历到种子节点输入方向的全部节点或不再有满足预设限制条件的输入节点。
26、在一种可选的实施方式中,预设限制条件包括第一条件、第二条件和第三条件,满足第一条件的同时还满足第二条件和第三条件中的任意一个,即为满足预设限制条件;
27、第一条件为:扩展集合所构建的降级二元决策图小于限定范围;
28、第二条件为:所有输出节点均为扩展集合的输入;
29、第三条件为:所有的输入引脚的裕度与种子节点的裕度之间的差值均小于第二预设阈值。
30、在一种可选的实施方式中,对扩展集合中的节点进行重综合,包括:
31、获取扩展集合所对应的降级二元决策图和扩展集合的裕度;
32、对降级二元决策图进行划分,得到两个新二元决策图;
33、在只有一个新二元决策图能够生成新的查找表的情况下,基于新生成的查找表确定扩展集合的更新裕度;
34、判断更新裕度是否满足裕度约束;
35、若不满足,则对另一个新二元决策图继续进行划分,直至划分得到的二元决策图均能够生成新的查找表;
36、若满足,则重新对降级二元决策图重新划分。
37、在一种可选的实施方式中,裕度约束为更新裕度小于扩展集合中的种子节点的输入引脚的最小裕度。
38、在一种可选的实施方式中,更新裕度为新生成的节点的输入引脚的最小裕度与引入一个新的节点所带来的预期延时的差值。
39、在一种可选的实施方式中,对降级二元决策图进行划分,包括:
40、对降级二元决策图中的所有变量进行重排序;
41、对变量重排序后的降级二元决策图进行划分。
42、在一种可选的实施方式中,基于重综合产生的扩展集合的替代网表进行渐进布局之后,还包括:
43、获取渐进布局之后新的关键路径的延时;
44、在新的关键路径的延时大于优化之前的关键路径的延时的情况下,放弃本次优化结果。
45、在一种可选的实施方式中,基于重综合产生的扩展集合的替代网表进行渐进布局之后,还包括:
46、判断当前的优化次数是否达到预设迭代次数;
47、在未达到预设迭代次数的情况下,基于重综合后的整个网表再次优化。
48、第二方面,本发明提供了一种芯片延时优化装置,该装置包括:
49、获取模块,用于获取基于用户设计综合后得到的网表和布局后得到的布局结果;
50、选择模块,用于从网表中选择种子节点;
51、扩展模块,用于针对每一种子节点,进行扩展操作得到种子节点的扩展集合,扩展集合包括种子节点和通过扩展操作得到的目标节点;
52、重综合模块,用于对扩展集合中的节点进行重综合;
53、布局模块,用于在重综合有效的情况下,则基于重综合产生的扩展集合的替代网表进行渐进布局。
54、第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的芯片延时优化方法。
55、第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的芯片延时优化方法。
1.一种芯片延时优化方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述从所述网表中选择种子节点包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述节点的输入引脚的裕度,选择所述种子节点,包括:
4.根据权利要求3所述的方法,其特征在于,所述目标参数是基于所述节点的输入引脚的裕度与所述网表中所有所述节点的所有输入引脚的最大裕度的比值得到。
5.根据权利要求1所述的方法,其特征在于,所述针对每一所述种子节点,进行扩展操作得到所述种子节点的扩展集合之前,还包括:
6.根据权利要求5所述的方法,其特征在于,所述种子节点的收益是根据所述种子节点的输入引脚的裕度计算得到。
7.根据权利要求1所述的方法,其特征在于,所述针对每一所述种子节点,进行扩展操作得到所述种子节点的扩展集合,包括:
8.根据权利要求7所述的方法,其特征在于,所述预设限制条件包括第一条件、第二条件和第三条件,满足所述第一条件的同时还满足所述第二条件和所述第三条件中的任意一个,即为满足所述预设限制条件;
9.根据权利要求1或7所述的方法,其特征在于,所述对所述扩展集合中的所述节点进行重综合,包括:
10.根据权利要求9所述的方法,其特征在于,所述裕度约束为所述更新裕度小于所述扩展集合中的所述种子节点的输入引脚的最小裕度。
11.根据权利要求9所述的方法,其特征在于,所述更新裕度为新生成的节点的输入引脚的最小裕度与引入一个新的节点所带来的预期延时的差值。
12.根据权利要求9所述的方法,其特征在于,所述对所述降级二元决策图进行划分,包括:
13.根据权利要求1所述的方法,其特征在于,所述基于重综合产生的所述扩展集合的替代网表进行渐进布局之后,还包括:
14.根据权利要求1或13所述的方法,其特征在于,所述基于重综合产生的所述扩展集合的替代网表进行渐进布局之后,还包括:
15.一种芯片延时优化装置,其特征在于,所述装置包括:
16.一种计算机设备,其特征在于,包括:
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至14中任一项所述的芯片延时优化方法。