一种针对多裸片FPGA的基于功耗的网表分割方法技术

技术编号:29304181 阅读:30 留言:0更新日期:2021-07-17 01:39
本发明专利技术公开了一种针对多裸片FPGA的基于功耗的网表分割方法,涉及FPGA技术领域,该方法在分割用户输入网表时,首先预估所有实例模块的功耗值,然后首先对高耗能实例模块进行分配,且在分配时,按照功耗平衡分布的原则将各个高耗能实例模块分配到各个子网表中,从而可以使得整个多裸片FPGA的功耗平衡分布于各个FPGA裸片,可以有效避免因FPGA供电及散热的系统有局部负担过高而影响正常工作的情况,这种方法得到的分割结果更合理,可以使得多裸片FPGA的工作性能更优。FPGA的工作性能更优。FPGA的工作性能更优。

【技术实现步骤摘要】
一种针对多裸片FPGA的基于功耗的网表分割方法


[0001]本专利技术涉及FPGA
,尤其是一种针对多裸片FPGA的基于功耗的网表分割方法。

技术介绍

[0002]FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)是一种硬件可编程的逻辑器件,除了应用于移动通信、数据中心等领域,还广泛应用于集成电路设计中的原型验证,能够有效验证电路功能的正确性,同时加快电路设计速度。
[0003]随着集成电路规模的不断增大及复杂功能的实现,对FPGA的可编程逻辑资源的数量的需求不断提高,为了避免芯片面积增大所带来的加工难度的增大和生产良率的降低,目前会利用硅堆叠互连技术(SSI)、CoWoS技术(Chip on Wafer on Substrate)或其他技术来实现多个FPGA裸片的互连设计,从而构成多裸片FPGA,利用多个FPGA裸片上的逻辑资源共同实现所需的电路结构。
[0004]但这又给多裸片FPGA的布局布线带来了挑战,因此如何将复杂的电路合理排布到多个芯片上以获得较优的性能是多裸片FPGA设计流程中的一个关键问题。在对多裸片FPGA进行布局布线之前,首先需要将多裸片FPGA对应的用户输入网表分割成多个相连的子网表,每个子网表分别对应一个FPGA裸片,然后根据每个子网表对对应的FPGA裸片进行布局布线。因此对用户输入网表的分割方式会直接影响多裸片FPGA的布局布线过程,也会影响多裸片FPGA的最终性能。目前在分割用户输入网表时,通常只会考虑与FPGA裸片所包含的逻辑资源数量之间的匹配度,也即仅需保证对应的FPGA裸片可以满足子网表的逻辑资源需求即可,但这种做法往往使得多裸片FPGA的性能难以保证。

技术实现思路

[0005]本专利技术人针对上述问题及技术需求,提出了一种针对多裸片FPGA的基于功耗的网表分割方法,本专利技术的技术方案如下:
[0006]一种针对多裸片FPGA的基于功耗的网表分割方法,该方法包括:
[0007]根据多裸片FPGA中每个FPGA裸片包含的逻辑资源确定对应的子网表所能包含的实例模块的类型及最大数量;
[0008]获取用户输入网表,依次将用户输入网表中预估功耗值达到预定阈值的高耗能实例模块分配到对应的目标子网表中,目标子网表还能容纳对应类型的实例模块,且在将高耗能实例模块分配到对应的目标子网表后,所有子网表中的最大网表功耗值与最小网表功耗值之间的功耗差异最小,每个子网表的网表功耗值是对应的FPGA裸片基于子网表已被分配的实例模块进行布局时的功耗值;
[0009]根据每个子网表已经分配到的实例模块、将用户输入网表中尚未分配的实例模块按照预定分配逻辑分配到各个子网表中;
[0010]分割得到每个FPGA裸片对应的子网表,每个子网表包括分配到的所有实例模块以
及实例模块之间的网表线网;
[0011]其中,每个FPGA裸片上的逻辑资源数量满足分割得到的对应的子网表的逻辑资源需求,FPGA裸片上的输入信号连接点引出端满足对应的子网表的输入信号数量,FPGA裸片上的输出信号连接点引出端满足对应的子网表的输出信号数量,与多裸片FPGA的IO管脚所连接的FPGA裸片满足对应的子网表的IO口需求。
[0012]其进一步的技术方案为,该方法还包括:将用户输入网表中的IO口分配给多裸片FPGA的管脚作为IO管脚;
[0013]则在将高耗能实例模块分配到对应的目标子网表时,若存在至少两个子网表能包含对应类型的实例模块且均使得所有子网表之间的功耗差异最小,则将对应的FPGA裸片连接与高耗能实例模块关联的IO管脚的子网表作为高耗能实例模块对应的目标子网表。
[0014]其进一步的技术方案为,将用户输入网表中的IO口分配给多裸片FPGA的管脚,包括:
[0015]根据用户指令将至少一个IO口分配给多裸片FPGA的相应管脚,或者,按任意序排列将至少一个IO口分配给多裸片FPGA的相应管脚,或者,按照IO自动排布算法将至少一个IO口分配给多裸片FPGA的相应管脚。
[0016]其进一步的技术方案为,实例模块的预估功耗值是实例模块在不同工作模式和/或不同工作条件下的最大功耗值。
[0017]其进一步的技术方案为,在完成高耗能实例模块分配后,用户输入网表中尚未分配的实例模块包括预先配置的特殊功能实例模块和基础功能实例模块,则:
[0018]在将用户输入网表中尚未分配的实例模块按照预定分配逻辑分配到各个子网表中时,首先按照预定处理次序依次将各个特殊功能实例模块分配到各个子网表中,然后将剩余的基础功能实例模块分配到各个子网表中。
[0019]其进一步的技术方案为,在将每个特殊功能实例模块分配到各个子网表中时:
[0020]将特殊功能实例模块分配到已包含与特殊功能实例模块存在连线关系的实例模块的子网表中;
[0021]若所有子网表中未包含与特殊功能实例模块存在连线关系的实例模块,则将特殊功能实例模块分配到使得所有子网表之间的功耗差异最小的子网表中。
[0022]其进一步的技术方案为,当子网表中存在至少一个实例模块与特殊功能实例模块直接相连,或者,在同一个数据通路上通过若干个其他实例模块间接相连时,确定子网表中包含与特殊功能实例模块存在连线关系的实例模块。
[0023]其进一步的技术方案为,将剩余的基础功能实例模块分配到各个子网表中,包括对于每个基础功能实例模块:
[0024]按照第一目标函数计算将基础功能实例模块分配到每个可容纳基础功能实例模块的子网表中的得分,将基础功能实例模块分配到对应得分最高的子网表中;第一目标函数基于至少一项芯片性能参数构建,将基础功能实例模块分配到子网表中实现的芯片性能参数越优、对应的得分越高。
[0025]其进一步的技术方案为,不同的基础功能实例模块对应的第一目标函数相同或者不同。
[0026]其进一步的技术方案为,该方法还包括:
[0027]在分配高耗能实例模块之前,根据用户指令将预设的特定实例模块分配到特定的子网表中。
[0028]其进一步的技术方案为,该方法还包括:
[0029]在将所有实例模块分配到各个子网表后得到初始分配结果,在保持预设的固定实例模块的分配结果不变的基础上、根据优化目标对待优化实例模块的分配结果进行调整从而对初始分配结果进行优化,最终分割得到每个FPGA裸片对应的子网表,待优化实例模块是除固定实例模块之外的实例模块。
[0030]其进一步的技术方案为,根据优化目标对待优化实例模块的分配结果进行调整,包括:
[0031]按照第二目标函数计算将各个待优化实例模块分配到各个可容纳待优化实例模块的子网表中的得分,第二目标函数基于与优化目标对应的至少一项芯片性能参数构建,将待优化实例模块分配到子网表中实现的芯片性能参数越优、对应的得分越高;
[0032]将对应得分最高的待优化实例模块重新分配到对应得分最高的子网表中;
[0033]按照第二目本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对多裸片FPGA的基于功耗的网表分割方法,其特征在于,所述方法包括:根据多裸片FPGA中每个FPGA裸片包含的逻辑资源确定对应的子网表所能包含的实例模块的类型及最大数量;获取用户输入网表,依次将所述用户输入网表中预估功耗值达到预定阈值的高耗能实例模块分配到对应的目标子网表中,所述目标子网表还能容纳对应类型的实例模块,且在将所述高耗能实例模块分配到对应的目标子网表后,所有子网表中的最大网表功耗值与最小网表功耗值之间的功耗差异最小,每个子网表的网表功耗值是对应的FPGA裸片基于所述子网表已被分配的实例模块进行布局时的功耗值;根据每个子网表已经分配到的实例模块、将所述用户输入网表中尚未分配的实例模块按照预定分配逻辑分配到各个子网表中;分割得到每个FPGA裸片对应的子网表,每个子网表包括分配到的所有实例模块以及实例模块之间的网表线网;其中,每个FPGA裸片上的逻辑资源数量满足分割得到的对应的子网表的逻辑资源需求,所述FPGA裸片上的输入信号连接点引出端满足对应的子网表的输入信号数量,所述FPGA裸片上的输出信号连接点引出端满足对应的子网表的输出信号数量,与所述多裸片FPGA的IO管脚所连接的FPGA裸片满足对应的子网表的IO口需求。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将所述用户输入网表中的IO口分配给多裸片FPGA的管脚作为IO管脚;则在将高耗能实例模块分配到对应的目标子网表时,若存在至少两个子网表能包含对应类型的实例模块且均使得所有子网表之间的功耗差异最小,则将对应的FPGA裸片连接与所述高耗能实例模块关联的IO管脚的子网表作为所述高耗能实例模块对应的目标子网表。3.根据权利要求2所述的方法,其特征在于,所述将所述用户输入网表中的IO口分配给多裸片FPGA的管脚,包括:根据用户指令将至少一个IO口分配给多裸片FPGA的相应管脚,或者,按任意序排列将至少一个IO口分配给多裸片FPGA的相应管脚,或者,按照IO自动排布算法将至少一个IO口分配给多裸片FPGA的相应管脚。4.根据权利要求1所述的方法,其特征在于,实例模块的预估功耗值是所述实例模块在不同工作模式和/或不同工作条件下的最大功耗值。5.根据权利要求1所述的方法,其特征在于,在完成高耗能实例模块分配后,所述用户输入网表中尚未分配的实例模块包括预先配置的特殊功能实例模块和基础功能实例模块,则:在将所述用户输入网表中尚未分配的实例模块按照预定分配逻辑分配到各个子网表中时,首先按照预定处理次序依次将各个特殊功能实例模块分配到各个子网表中,然后将剩余的基础功能实例模块分配到各个子网表中。6.根据权利要求5所述的方法,其特征在于,在将每个特殊功能实例模块分配到各个子网表中时:将所述特殊功能实例模块分配到已包含与所述特殊功能实例模块存在连线关系的实例模块的子网表中;若所有子网表中未包含与所述特殊功能实例模块存在连线关系的实例模块,则将所述
特殊功能实例模块分配到使得所有子网表之间的功耗差异最小的子网表中。7.根据权利要求6述的方法,其特征在于,当子网表中存在至少一个实例模块与所述特殊功能实例模块直接相连,或者,在同一个数据通路上通过若干个其他实例模块间接...

【专利技术属性】
技术研发人员:杜学军惠锋李卿王新晨刘佩
申请(专利权)人:无锡中微亿芯有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1