FPGA的布局方法、装置、设备及存储介质制造方法及图纸

技术编号:34726000 阅读:19 留言:0更新日期:2022-08-31 18:13
本申请提供了一种FPGA的布局方法、装置、设备及存储介质。在实施例中,获取FPGA的初始布局信息;根据多个单元列,确定至少一个目标区域各自的区域信息;根据多个目标单元的位置信息和至少一个目标区域各自的区域信息,确定至少一个目标区域中每个目标区域中的目标单元的数量;根据每个目标区域中的目标单元的数量,确定合法化中心点的位置信息;确定每个目标区域中目标单元各自的优先级;按照每个目标区域中的目标单元各自的优先级从大到小的顺序,依次将每个目标区域中的目标单元放置在单元列中。由此,通过本申请实施例提供的技术方案,可以使每个待优化的目标单元均满足布局FPGA的位置约束条件,从而保证了FPGA的性能。从而保证了FPGA的性能。从而保证了FPGA的性能。

【技术实现步骤摘要】
FPGA的布局方法、装置、设备及存储介质


[0001]本申请涉及集成电路设计
,尤其涉及一种现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)芯片的布局方法、装置、设备及存储介质。

技术介绍

[0002]FPGA是一种具有丰富硬件资源、强大并行处理能力和灵活可重配置能力的逻辑器件。这些特征使得FPGA在数据处理、通信、网络等很多领域得到了越来越多的广泛应用。
[0003]近年来,随着FPGA的电路规模快速增长,FPGA的功能也愈加强大。而为了保证FPGA的性能,FPGA的布局愈发显得关键和重要。目前,相关技术中虽能够实现FPGA的布局合法化,但是在满足多种约束条件的情况下,相关技术中的FPGA的布局方式使得FPGA的布局精准度较低,无法使得部分单元满足该部分单元对应的位置约束条件,进而无法保证FPGA的性能。

技术实现思路

[0004]本申请实施例提供了一种FPGA的布局方法、装置、设备及存储介质,能够提高FPGA的布局的精准度,保证FPGA的性能。
[0005]第一方面,本申请实施例提供了一种FPGA的布局方法,所述方法包括:
[0006]获取FPGA的初始布局信息,所述初始布局信息包括多个用于放置同一类型的目标单元的单元列,多个目标单元的位置信息、与每个目标单元连接的线网数量;
[0007]根据多个所述单元列,确定至少一个目标区域各自的区域信息;
[0008]根据所述多个目标单元的位置信息和所述至少一个目标区域各自的区域信息,确定所述至少一个目标区域中每个目标区域中的目标单元的数量;
[0009]根据所述每个目标区域中的目标单元的数量,确定合法化中心点的位置信息;
[0010]根据所述每个目标区域中的目标单元的数量、所述多个目标单元的位置信息、所述合法化中心点的位置信息和所述与每个目标单元连接的线网数量,确定所述每个目标区域中目标单元各自的优先级;
[0011]根据所述多个目标单元的位置信息,按照所述每个目标区域中的目标单元各自的优先级从大到小的顺序,依次将所述每个目标区域中的目标单元放置在单元列中,以使所述每个目标区域中目标单元均满足布局FPGA的位置约束条件;
[0012]针对优先级为i的目标单元,将所述优先级为i的目标单元放置在单元列后,调整所述单元列中的目标单元的位置,根据所述多个目标单元的位置信息和调整位置后所述单元列中的目标单元的位置信息,从目标单元列中确定用于放置所述优先级为i的目标单元的目标单元区域。
[0013]在一种可能的实现方式中,所述根据所述每个目标区域中的目标单元的数量、所述多个目标单元的位置信息、所述合法化中心点的位置信息和所述与每个目标单元连接的线网数量,确定所述每个目标区域中的目标单元各自的优先级,包括:
[0014]根据所述多个目标单元的位置信息中所述每个目标区域中的目标单元的位置信息和所述合法化中心点的位置信息,确定所述每个目标区域中的目标单元和所述合法化中心点之间的距离;
[0015]根据所述每个目标区域中的目标单元的数量,确定所述每个目标区域的优先级;
[0016]根据所述每个目标区域的优先级、所述每个目标区域中的目标单元和所述合法化中心点之间的距离、与所述每个目标区域中的目标单元连接的线网数量,确定所述每个目标区域中的目标单元的优先级。
[0017]在一种可能的实现方式中,所述将所述优先级为i的目标单元放置在单元列后,调整所述单元列中的目标单元的位置,包括:
[0018]确定将所述至少一个目标区域中优先级为1至优先级为i

1的目标单元放置在单元列后多个所述单元列中各自的未放置目标单元的单元区域的数量;
[0019]根据所述多个所述单元列中各自的未放置目标单元的单元区域的数量,确定可放置所述优先级为i的目标单元的至少一个单元列;
[0020]将所述优先级为i的目标单元放置在所述至少一个单元列中的一个单元列;
[0021]调整所述单元列中的目标单元的位置。
[0022]在一种可能的实现方式中,所述根据所述多个目标单元的位置信息和调整位置后所述单元列中的目标单元的位置信息,从目标单元列中确定用于放置所述优先级为i的目标单元的目标单元区域,包括:
[0023]根据所述多个目标单元的位置信息和调整位置后所述单元列中的目标单元的位置信息,计算调整所述单元列中的目标单元的位置后所述单元列的代价值;
[0024]根据至少一个单元列的代价值,从所述至少一个单元列中确定放置所述优先级为i的目标单元的目标单元列和所述目标单元列中用于放置所述优先级为i的目标单元的目标单元区域;
[0025]将所述优先级为i的目标单元放置于所述目标单元列中的目标单元区域。
[0026]在一种可能的实现方式中,所述方法还包括:
[0027]更新所述优先级为i的目标单元的位置信息为所述目标单元区域对应的位置信息。
[0028]第二方面,本申请实施例提供了一种FPGA的布局装置,所述装置包括:
[0029]获取模块,用于获取FPGA的初始布局信息,所述初始布局信息包括多个用于放置同一类型的目标单元的单元列,多个目标单元的位置信息、与每个目标单元连接的线网数量;
[0030]第一确定模块,用于根据多个所述单元列,确定至少一个目标区域各自的区域信息;
[0031]第二确定模块,用于根据所述多个目标单元的位置信息和所述至少一个目标区域各自的区域信息,确定所述至少一个目标区域中每个目标区域中的目标单元的数量;
[0032]第三确定模块,用于根据所述每个目标区域中的目标单元的数量,确定合法化中心点的位置信息;
[0033]第四确定模块,用于根据所述每个目标区域中的目标单元的数量、所述多个目标单元的位置信息、所述合法化中心点的位置信息和所述与每个目标单元连接的线网数量,
确定所述每个目标区域中目标单元各自的优先级;
[0034]放置模块,用于根据所述多个目标单元的位置信息,按照所述每个目标区域中的目标单元各自的优先级从大到小的顺序,依次将所述每个目标区域中的目标单元放置在单元列中,以使所述每个目标区域中目标单元均满足布局FPGA的位置约束条件;
[0035]针对优先级为i的目标单元,将所述优先级为i的目标单元放置在单元列后,调整所述单元列中的目标单元的位置,根据所述多个目标单元的位置信息和调整位置后所述单元列中的目标单元的位置信息,从目标单元列中确定用于放置所述优先级为i的目标单元的目标单元区域。
[0036]在一种可能的实现方式中,所述第四确定模块,用于:
[0037]根据所述多个目标单元的位置信息中所述每个目标区域中的目标单元的位置信息和所述合法化中心点的位置信息,确定所述每个目标区域中的目标单元和所述合法化中心点之间的距离;
[0038]根据所述每个目标区域中的目标单元的数量,确定所述每个目本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种FPGA的布局方法,其特征在于,所述方法包括:获取FPGA的初始布局信息,所述初始布局信息包括多个用于放置同一类型的目标单元的单元列,多个目标单元的位置信息、与每个目标单元连接的线网数量;根据多个所述单元列,确定至少一个目标区域各自的区域信息;根据所述多个目标单元的位置信息和所述至少一个目标区域各自的区域信息,确定所述至少一个目标区域中每个目标区域中的目标单元的数量;根据所述每个目标区域中的目标单元的数量,确定合法化中心点的位置信息;根据所述每个目标区域中的目标单元的数量、所述多个目标单元的位置信息、所述合法化中心点的位置信息和所述与每个目标单元连接的线网数量,确定所述每个目标区域中目标单元各自的优先级;根据所述多个目标单元的位置信息,按照所述每个目标区域中的目标单元各自的优先级从大到小的顺序,依次将所述每个目标区域中的目标单元放置在单元列中,以使所述每个目标区域中目标单元均满足布局FPGA的位置约束条件;针对优先级为i的目标单元,将所述优先级为i的目标单元放置在单元列后,调整所述单元列中的目标单元的位置,根据所述多个目标单元的位置信息和调整位置后所述单元列中的目标单元的位置信息,从目标单元列中确定用于放置所述优先级为i的目标单元的目标单元区域。2.根据权利要求1所述的方法,其特征在于,所述根据所述每个目标区域中的目标单元的数量、所述多个目标单元的位置信息、所述合法化中心点的位置信息和所述与每个目标单元连接的线网数量,确定所述每个目标区域中的目标单元各自的优先级,包括:根据所述多个目标单元的位置信息中所述每个目标区域中的目标单元的位置信息和所述合法化中心点的位置信息,确定所述每个目标区域中的目标单元和所述合法化中心点之间的距离;根据所述每个目标区域中的目标单元的数量,确定所述每个目标区域的优先级;根据所述每个目标区域的优先级、所述每个目标区域中的目标单元和所述合法化中心点之间的距离、与所述每个目标区域中的目标单元连接的线网数量,确定所述每个目标区域中的目标单元的优先级。3.根据权利要求1所述的方法,其特征在于,所述将所述优先级为i的目标单元放置在单元列后,调整所述单元列中的目标单元的位置,包括:确定将所述至少一个目标区域中优先级为1至优先级为i

1的目标单元放置在单元列后多个所述单元列中各自的未放置目标单元的单元区域的数量;根据所述多个所述单元列中各自的未放置目标单元的单元区域的数量,确定可放置所述优先级为i的目标单元的至少一个单元列;将所述优先级为i的目标单元放置在所述至少一个单元列中的一个单元列;调整所述单元列中的目标单元的位置。4.根据权利要求3所述的方法,其特征在于,所述根据所述多个目标单元的位置信息和调整位置后所述单元列中的目标单元的位置信息,从目标单元列中确定用于放置所述优先级为i的目标单元的目标单元区域,包括:根据所述多个目标单元的位置信息和调整位置后所述单元列中的目标单元的位置信
息,计算调整所述单元列中的目标单元的位置后所述单元列的代价值;根据至少一个单元列的代价值,从所述至少一个单元列中确定放置所述优先级为i的目标单元的目标单元列和所述目标单元列中用于放置所述优先级为i的目标单元的目标单元区域;将所述优先级为i的目标单元放置于所述目标单元列中的目标单元区域。5.根据权利要求1

4...

【专利技术属性】
技术研发人员:靳松豆正荣刘桂林王海力
申请(专利权)人:京微齐力北京科技有限公司
类型:发明
国别省市:

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

1