一种FPGA资源布局方法及装置制造方法及图纸

技术编号:20425633 阅读:32 留言:0更新日期:2019-02-23 08:39
本发明专利技术公开了一种FPGA资源布局方法及装置,该方法通过当前的资源使用情况确定当前空闲的资源数,其中当前的资源使用情况由N列M行的二维坐标组成,每一个坐标作为一个网格资源,N、M为整数且大于1,进而获取待布局组单元的待布局信息,待布局信息包括待布局组单元占用的网格资源个数,当判断出当前空闲的资源数大于等于待布局组单元占用的网格资源个数时,根据空闲的资源数对待布局组单元进行布局。解决了现有技术中可布局资源不能充分被利用,布局资源占有率高时布局失败的问题。本发明专利技术还公开了一种FPGA资源布局装置,通过实施上述方案,避免了由于布局资源占用率高时导致布局失败情况的发生,大大提高了FPGA资源布局的成功率。

【技术实现步骤摘要】
一种FPGA资源布局方法及装置
本专利技术涉及现场可编程门阵列(FPGA)
,更具体地说,涉及一种FPGA资源布局方法及装置。
技术介绍
在现代数字电路设计中,电路设计过程越来越复杂。由于FPGA芯片具有可编程的功能,简化了数字电路设计的过程。但随着数字电路的设计规模越来越大,各种资源也越来越多,对FPGA软件布局的性能要求也越来越高。FPGA资源一般分为三种:可配置逻辑单元块(CLB)、输入/输出单元(IO)和可编程布线资源。其中,CLB根据功能又可以分为多个不同单元,如LUT(查找表)、FF(触发器)、RAM(随机存取存储器)、DSP(数字信号处理模块,如乘法器单元)、PLL(锁相回路或锁相环)、DLL(延迟锁相环)、PWU(上电模块)、等等。通常情况下,根据FPGA芯片不同资源需求,上述资源并非均匀分布在FPGA芯片上。如果布局算法设计不合理,就会导致部分资源布局失败。当前,布局算法主要面临着两大问题:大规模的设计尺寸(上百万单元)和复杂的设计约束(布局后实际的面积、时延、功耗、拥塞度等等)。现阶段主流的布局通常是围绕初步布局结果的物理位置寻找其它空闲的合适的位置。常用的一种布局过程如图la至图1d所示,假设一个单元的全局布局的布局结果在图la所示位置,则布局遵循着全局布局的结果,在最近的4个位置逐步搜索,如图1b所示,寻找可放置的位置,如果不可布局则继续向外层扩展到如图1c所示的位置,如果还是不可布局则继续向外层扩展到如图1d所示的位置,直至扩散到整个布局区域。由此可见的是,目前的FPGA设计流程布局会存在以下缺陷:可布局资源不能充分被利用,布局资源占有率高时布局失败。
技术实现思路
本专利技术要解决的技术问题在于现有技术中可布局资源不能充分被利用,布局资源占有率高时布局失败的问题。针对该技术问题,提供一种FPGA资源布局方法及装置。为解决上述技术问题,本专利技术提供一种FPGA资源布局方法,所述FPGA资源布局方法包括:基于当前的资源使用情况确定当前空闲的资源数,所述当前的资源使用情况由N列M行的二维坐标组成,每一个坐标作为一个网格资源,所述N、M为整数且大于1;获取待布局组单元的待布局信息,所述待布局信息包括所述待布局组单元占用的网格资源个数;判断所述当前空闲的资源数是否大于等于所述待布局组单元占用的网格资源个数;若是,根据所述空闲的资源数对所述待布局组单元进行布局。可选的,所述基于当前的资源使用情况确定当前空闲的资源数,包括:基于当前已使用的网格资源总数、已使用的网格资源各自对应的坐标信息确定空闲的网格资源总数和空闲的网格资源各自对应的坐标信息。可选的,所述获取待布局组单元的待布局信息之前,还包括:按照预设分类规则对所述待布局组单元进行分类;所述获取待布局组单元的待布局信息之后,还包括:获取所述待布局组单元的基准位置的坐标信息。可选的,所述判断所述当前空闲的资源数是否大于等于所述待布局组单元占用的网格资源个数之前,包括:计算所述基准位置的坐标信息与所述资源中各列中的所述网格资源的距离以及各列中空闲的网格资源的个数;所述判断所述当前空闲的资源数是否大于等于所述待布局组单元占用的网格资源个数,包括:依次判断所述资源中各列中的空闲的网格资源个数是否大于等于所述待布局组单元占用的网格资源个数。可选的,所述依次判断所述资源中各列中的空闲的网格资源个数是否大于等于所述待布局组单元占用的网格资源个数,包括:获取所述资源中空闲的网格资源个数大于等于所述待布局组单元占用的网格资源个数的列;将所述列的列序号、空闲的网格资源个数、所述待布局组单元的基准位置与该列的距离保存至第一资源布局表中;所述根据所述空闲的资源数对所述待布局组单元进行布局,包括:从所述第一资源布局表中选择出任一一列,对该列中已布局组单元进行重新布局,以使得该列中空闲的网格资源依次相连;将所述待布局组单元布局在所述空闲相连的网格资源中。可选的,所述依次判断所述资源中各列中的空闲的网格资源个数是否大于等于所述待布局组单元占用的网格资源个数,包括:获取所述资源中空闲的网格资源个数小于所述待布局组单元占用的网格资源个数的列;将所述列的列序号、空闲的网格资源个数、基准位置的坐标信息与该列的距离保存至第二资源布局表中;所述根据所述空闲的资源数对所述待布局组单元进行布局,包括:从所述第二资源布局表中选择出任意两列,将第一列中已布局组单元移动到第二列中空闲的网格资源中,以使得所述第一列中空闲的网格资源个数大于等于所述待布局组单元占用的网格资源个数且空闲的网格资源依次相连;将所述待布局组单元布局在所述空闲相连的网格资源中。可选的,所述根据所述空闲的资源数对所述待布局组单元进行布局之后,还包括:根据所述资源中空闲的资源数对待布局实例单元进行布局。可选的,所述根据所述资源中空闲的资源数对待布局实例单元进行布局之前,包括:按照所述待布局实例单元在一个网格资源中占用资源数的多少进行排序;所述根据所述资源中空闲的资源数对待布局实例单元进行布局,包括:根据所述资源中空闲的资源数,按照待布局实例单元在一个网格资源中占用资源数由多到少的顺序对所述待布局实例单元进行布局。可选的,所述根据所述资源中空闲的资源数对待布局实例单元进行布局,包括:从所述空闲的资源数中选择出任一一个空闲的网格资源,移动所述网格资源中与所述待布局实例单元相冲突的已布局单元,以布局所述待布局实例单元;或,从所述资源中空闲的资源数中选择出两个空闲的网格资源,将第一个网格资源中的已布局单元移动到第二个网格资源中,以在所述第一个网格资源中布局所述待布局实例单元。进一步地,本专利技术还提供了一种FPGA资源布局装置,所述FPGA资源布局装置包括确定模块、获取模块、判定模块、布局模块;所述确定模块用于基于当前的资源使用情况确定当前空闲的资源数,所述当前的资源使用情况由N列M行的二维坐标组成,每一个坐标作为一个网格资源,所述N、M为整数且大于1;所述获取模块用于获取待布局组单元的待布局信息,所述待布局信息包括所述待布局组单元占用的网格资源个数;所述判定模块用于判断所述当前空闲的资源数是否大于等于所述待布局组单元占用的网格资源个数;所述布局模块用于当所述当前空闲的资源数大于等于所述待布局组单元占用的网格资源个数时,根据所述空闲的资源数对所述待布局组单元进行布局。有益效果本专利技术提供一种FPGA资源布局方法及装置,该FPGA资源布局方法通过基于当前的资源使用情况确定当前空闲的资源数,其中,当前的资源使用情况由N列M行的二维坐标组成,每一个坐标作为一个网格资源,N、M为整数且大于1,获取待布局组单元的待布局信息,待布局信息包括待布局组单元占用的网格资源个数,进而当判断出当前空闲的资源数大于等于待布局组单元占用的网格资源个数时,根据空闲的资源数对待布局组单元进行布局,解决了可布局资源不能充分利用,布局资源占有率高时布局失败的问题。也即在本专利技术中,通过FPGA资源布局方法实现了在布局待布局组单元时,首先对当前的所有空闲资源数进行计算,以及对已布局资源进行重新布局,并根据重新布局后的空闲资源数对待布局组单元进行布局,即对可布局资源进行了充分利用,避免了由于布局资源占用率高时导致布局失败情况的发生,同时增加了布局的灵活性,大大提高了本文档来自技高网
...

【技术保护点】
1.一种FPGA资源布局方法,其特征在于,所述FPGA资源布局方法包括:基于当前的资源使用情况确定当前空闲的资源数,所述当前的资源使用情况由N列M行的二维坐标组成,每一个坐标作为一个网格资源,所述N、M为整数且大于1;获取待布局组单元的待布局信息,所述待布局信息包括所述待布局组单元占用的网格资源个数;判断所述当前空闲的资源数是否大于等于所述待布局组单元占用的网格资源个数;若是,根据所述空闲的资源数对所述待布局组单元进行布局。

【技术特征摘要】
1.一种FPGA资源布局方法,其特征在于,所述FPGA资源布局方法包括:基于当前的资源使用情况确定当前空闲的资源数,所述当前的资源使用情况由N列M行的二维坐标组成,每一个坐标作为一个网格资源,所述N、M为整数且大于1;获取待布局组单元的待布局信息,所述待布局信息包括所述待布局组单元占用的网格资源个数;判断所述当前空闲的资源数是否大于等于所述待布局组单元占用的网格资源个数;若是,根据所述空闲的资源数对所述待布局组单元进行布局。2.如权利要求1所述的FPGA资源布局方法,其特征在于,所述基于当前的资源使用情况确定当前空闲的资源数,包括:基于当前已使用的网格资源总数、已使用的网格资源各自对应的坐标信息确定空闲的网格资源总数和空闲的网格资源各自对应的坐标信息。3.如权利要求2所述的FPGA资源布局方法,其特征在于,所述获取待布局组单元的待布局信息之前,还包括:按照预设分类规则对所述待布局组单元进行分类;所述获取待布局组单元的待布局信息之后,还包括:获取所述待布局组单元的基准位置的坐标信息。4.如权利要求3所述的FPGA资源布局方法,其特征在于,所述判断所述当前空闲的资源数是否大于等于所述待布局组单元占用的网格资源个数之前,包括:计算所述基准位置的坐标信息与所述资源中各列中的所述网格资源的距离以及各列中空闲的网格资源个数;所述判断所述当前空闲的资源数是否大于等于所述待布局组单元占用的网格资源个数,包括:依次判断所述资源中各列中的空闲的网格资源个数是否大于等于所述待布局组单元占用的网格资源个数。5.如权利要求4所述的FPGA资源布局方法,其特征在于,所述依次判断所述资源中各列中的空闲的网格资源个数是否大于等于所述待布局组单元占用的网格资源个数,包括:获取所述资源中空闲的网格资源个数大于等于所述待布局组单元占用的网格资源个数的列;将所述列的列序号、空闲的网格资源个数、所述待布局组单元的基准位置与该列的距离保存至第一资源布局表中;所述根据所述空闲的资源数对所述待布局组单元进行布局,包括:从所述第一资源布局表中选择出任一一列,对该列中已布局组单元进行重新布局,以使得该列中空闲的网格资源依次相连;将所述待布局组单元布局在所述空闲相连的网格资源中。6.如权利要求4所述的FPGA资源布局方法,其特征在于,所述依次判断所述资源中各列中的空闲的网格资源个数是否大于等于所述待布局组单元占用的网格资源个数,包括:获...

【专利技术属性】
技术研发人员:刘焦
申请(专利权)人:深圳市紫光同创电子有限公司
类型:发明
国别省市:广东,44

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

1