一种利用区域重布局的FPGA布局合法化方法技术

技术编号:26846074 阅读:20 留言:0更新日期:2020-12-25 13:08
本发明专利技术公开了一种利用区域重布局的FPGA布局合法化方法,涉及FPGA技术领域,该方法分区域对初始布局状态进行抽象建立剩余图并利用线长对剩余图中由可重布节点和可布位置之间的关系抽象形成的有向边进行赋值作为边的花费,基于最小花费最大流算法对剩余图进行求解得到各个可重布节点的最终合法位置,该方法将最大流算法应用于二次线性规划算法的合法化部分,使原本不具有导向性的合法化流程变得具有导向性,且由于合法节点以及被合法节点占用的布局位置也参与建模求解,因此合法化的同时还对初始布局进行了优化在一定程度上提高了最终解的质量,使得合法化后的线长更短、布局结果更优。

【技术实现步骤摘要】
一种利用区域重布局的FPGA布局合法化方法
本专利技术涉及FPGA
,尤其是一种利用区域重布局的FPGA布局合法化方法。
技术介绍
现场可编程逻辑门阵列(Field-ProgrammableGateArray,FPGA)是一种在日用家电、大型机械乃至航空航天都有广泛使用的芯片。FPGA芯片的使用离不开电子设计自动化(ElectronicDesignAutomation,EDA)工具。布局则是EDA工具中重要的一环,其对EDA工具本身运行速度、所处理电路的最终质量有着很大影响。近年来,FPGA芯片的电路规模快速增长,使其功能更加强大,但同时也给相应的EDA工具带来了挑战。解析型的算法以其可以使用数学方法快速求得全局最优解的特性成为当今布局算法的主流方向之一。二次线性规划算法是解析型算法的一种,其在具体应用于解决布局问题的时候体现出了快速求解的特性,但在求解完成后,依然存在不合法的布局,比如常见的存在重叠的节点,因此需要再次进行合法化操作。传统的合法化操作使用简单的就近放置原则来处理非法节点,也即基于曼哈顿距离图在非法节点的周围寻找一个最近的合法位置,如图1所示,中心位置0为非法节点所在的位置,与其直接相连的上、下、左、右四个位置距离标记为1,与1再直接相连的位置距离标记为2,依次类推得到的图即为曼哈顿距离图。现有的合法化操作依据曼哈顿距离图由近及远依次寻找空置的合法位置来放置当前非法节点。这种做法虽然简单易行但不具备任何导向性,而且在选取的时候也存在以下问题,比如:以曼哈顿距离标记位置距离,距离近的位置是否能一定优于距离远的位置?相同曼哈顿距离的位置有多个,这些位置是否优劣相同?这些问题导致原始的合法化流程虽然能快速的将非法布局合法化,却不能兼顾合法化后的布局质量问题,往往导致最终的解不尽如人意。
技术实现思路
本专利技术人针对上述问题及技术需求,提出了一种利用区域重布局的FPGA布局合法化方法,本专利技术的技术方案如下:一种利用区域重布局的FPGA布局合法化方法,该方法包括:按照FPGA的初始布局状态确定各个线网的线长,初始布局状态包括若干个可重布节点,可重布节点包括若干个已被指定摆放于FPGA的合法位置上的合法节点以及若干个未被指定合法位置的非法节点,每个可重布节点均为布局网表中的一个功能模块;将FPGA划分为若干个区域,按照初始布局状态在划分得到的区域中选定目标区域,目标区域是内部包含至少一个非法节点的区域;对每个目标区域中的初始布局状态进行抽象建立剩余图,剩余图至少包括对目标区域内各个可重布节点以及各个可布位置抽象形成的图形节点,以及各个可重布节点与可布位置之间的关系抽象形成的对应的图形节点之间的第一有向边;可布位置包括目标区域内已被指定给合法节点的布局位置以及未被任何节点占用的布局位置;使用对应的线网的线长对剩余图中的各条第一有向边进行赋值得到各条第一有向边的花费;基于最小花费最大流算法对剩余图进行求解并更新剩余图直至得到流最大且在相同流量情况下花费最小的剩余图,确定最终得到的剩余图中各个可重布节点的最终合法位置为同一路径中的可布位置;得到各个可重布节点的最终合法位置,并将各个可重布节点摆放至对应的最终合法位置处、完成对FPGA的布局合法化。其进一步的技术方案为,初始布局状态还包括若干个已被指定摆放于FPGA的合法位置上的固定节点,每个固定节点也为布局网表中的一个功能模块,则每个目标区域中的可重布节点为除固定节点之外的其他所有功能模块,每个目标区域内的可布位置为除固定节点占用的合法位置之外的其他所有布局位置,各个固定节点占用的布局位置在FPGA的布局合法化前后保持不变。其进一步的技术方案为,固定节点包括BRAM、CMT、DSP、GTP、PCI以及EMAC中的至少一种功能模块。其进一步的技术方案为,得到各个可重布节点的最终合法位置,还包括:对于每个目标区域,对目标区域中未在当前目标区域中寻找到最终合法位置的可重布节点进行标记;在遍历FPGA中所有目标区域后,若FPGA全局范围内包含标记的可重布节点,则重新将FPGA划分为若干个区域范围大于当前区域的新的区域,按照初始布局状态在划分得到的新的区域中选定包含至少一个标记的可重布节点的新的目标区域;对每个新的目标区域内的各个可重布节点以及各个可布位置进行抽象建立剩余图并求解,得到新的目标区域中各个可重布节点对应的位于目标区域中的最终合法位置,并执行对目标区域中未在当前目标区域中寻找到最终合法位置的可重布节点进行标记的步骤。其进一步的技术方案为,每个目标区域内包含的总的布局位置的数量不少于目标区域内包含的总的功能模块的数量。其进一步的技术方案为,每个目标区域内的可重布节点属于若干个不同的节点类别,目标区域内的可布位置属于若干个不同的位置类别,节点类别与位置类别存在对应关系,则目标区域中每一类位置类别包含的可布位置的数量不少于对应的节点类别包含的可重布节点的数量。其进一步的技术方案为,将FPGA划分为若干个区域,包括:按照FPGA架构中的各个域对FPGA进行划分,划分得到的各个区域与FPGA架构的各个域相同。其进一步的技术方案为,将FPGA划分为若干个区域,包括:按照自定义划分规则对FPGA进行划分,划分得到的各个区域与FPGA架构的各个域不同。其进一步的技术方案为,对FPGA划分得到的各个区域的区域范围均相同。其进一步的技术方案为,对FPGA划分得到的各个区域存在至少两个区域的区域范围不同。其进一步的技术方案为,对每个目标区域中的初始布局状态进行抽象建立剩余图,包括:将初始布局状态中各个可重布节点和各个可布位置抽象形成图形节点,将可重布节点和可布位置之间的关系抽象形成对应的图形节点之间的第一有向边;建立虚拟源点并在虚拟源端与各个可重布节点的图形节点之间建立第二有向边,建立虚拟终点并在各个可布位置的图形节点与虚拟终点之间建立第三有向边;则方法还包括:将第二有向边和第三有向边均赋值为0。其进一步的技术方案为,基于最小花费最大流算法对剩余图进行求解并更新剩余图直至得到流最大且在相同流量情况下花费最小的剩余图,包括:利用Dijkstra最短路径算法在剩余图中寻找花费最小的路径;对路径进行增广、将寻找到的花费最小的路径上所有的第一有向边反向并将第一有向边的花费取负,得到新的剩余图;重新执行利用Dijkstra最短路径算法在剩余图中寻找花费最小的路径的步骤,直至虚拟源点与虚拟终点之间不存在路径时得到流最大且在相同流量情况下花费最小的剩余图。其进一步的技术方案为,每个可重布节点均为布局网表中的一个功能模块,功能模块为布局网表中的最小基本单元,功能模块对应FPGA架构中的一个slice级别模块或者一个查找表/寄存器级别模块。其进一步的技术方案为,按照FPGA的初始布局状态确定各个线网的线长,包括:按照初始布局状态建立边界框结构,边界框结构以边界本文档来自技高网
...

【技术保护点】
1.一种利用区域重布局的FPGA布局合法化方法,其特征在于,所述方法包括:/n按照FPGA的初始布局状态确定各个线网的线长,所述初始布局状态包括若干个可重布节点,所述可重布节点包括若干个已被指定摆放于所述FPGA的合法位置上的合法节点以及若干个未被指定合法位置的非法节点,每个可重布节点均为布局网表中的一个功能模块;/n将所述FPGA划分为若干个区域,按照所述初始布局状态在划分得到的区域中选定目标区域,所述目标区域是内部包含至少一个非法节点的区域;/n对每个所述目标区域中的初始布局状态进行抽象建立剩余图,所述剩余图至少包括对所述目标区域内各个可重布节点以及各个可布位置抽象形成的图形节点,以及各个可重布节点与可布位置之间的关系抽象形成的对应的图形节点之间的第一有向边;所述可布位置包括所述目标区域内已被指定给合法节点的布局位置以及未被任何节点占用的布局位置;/n使用对应的线网的线长对所述剩余图中的各条第一有向边进行赋值得到各条第一有向边的花费;/n基于最小花费最大流算法对所述剩余图进行求解并更新剩余图直至得到流最大且在相同流量情况下花费最小的剩余图,确定最终得到的剩余图中各个可重布节点的最终合法位置为同一路径中的可布位置;/n得到各个可重布节点的最终合法位置,并将各个可重布节点摆放至对应的最终合法位置处、完成对所述FPGA的布局合法化。/n...

【技术特征摘要】
1.一种利用区域重布局的FPGA布局合法化方法,其特征在于,所述方法包括:
按照FPGA的初始布局状态确定各个线网的线长,所述初始布局状态包括若干个可重布节点,所述可重布节点包括若干个已被指定摆放于所述FPGA的合法位置上的合法节点以及若干个未被指定合法位置的非法节点,每个可重布节点均为布局网表中的一个功能模块;
将所述FPGA划分为若干个区域,按照所述初始布局状态在划分得到的区域中选定目标区域,所述目标区域是内部包含至少一个非法节点的区域;
对每个所述目标区域中的初始布局状态进行抽象建立剩余图,所述剩余图至少包括对所述目标区域内各个可重布节点以及各个可布位置抽象形成的图形节点,以及各个可重布节点与可布位置之间的关系抽象形成的对应的图形节点之间的第一有向边;所述可布位置包括所述目标区域内已被指定给合法节点的布局位置以及未被任何节点占用的布局位置;
使用对应的线网的线长对所述剩余图中的各条第一有向边进行赋值得到各条第一有向边的花费;
基于最小花费最大流算法对所述剩余图进行求解并更新剩余图直至得到流最大且在相同流量情况下花费最小的剩余图,确定最终得到的剩余图中各个可重布节点的最终合法位置为同一路径中的可布位置;
得到各个可重布节点的最终合法位置,并将各个可重布节点摆放至对应的最终合法位置处、完成对所述FPGA的布局合法化。


2.根据权利要求1所述的方法,其特征在于,所述初始布局状态还包括若干个已被指定摆放于所述FPGA的合法位置上的固定节点,每个所述固定节点也为布局网表中的一个功能模块,则每个目标区域中的可重布节点为除固定节点之外的其他所有功能模块,每个目标区域内的可布位置为除固定节点占用的合法位置之外的其他所有布局位置,各个固定节点占用的布局位置在所述FPGA的布局合法化前后保持不变。


3.根据权利要求2所述的方法,其特征在于,所述固定节点包括BRAM、CMT、DSP、GTP、PCI以及EMAC中的至少一种功能模块。


4.根据权利要求1所述的方法,其特征在于,所述得到各个可重布节点的最终合法位置,还包括:
对于每个目标区域,对所述目标区域中未在当前目标区域中寻找到最终合法位置的可重布节点进行标记;
在遍历所述FPGA中所有目标区域后,若FPGA全局范围内包含标记的可重布节点,则重新将所述FPGA划分为若干个区域范围大于当前区域的新的区域,按照所述初始布局状态在划分得到的新的区域中选定包含至少一个标记的可重布节点的新的目标区域;
对每个新的目标区域内的各个可重布节点以及各个可布位置进行抽象建立剩余图并求解,得到所述新的目标区域中各个可重布节点对应的位于所述目标区域中的最终合法位置,并执行所述对所述目标区域中未在当前目标区域中寻找到最终合法位置的可重布节点进行标记的步骤。


5.根据权利要求1所述的方法,其特征在于,每个目标区域内包含的总的布局位置的数量不少于所述目标区域内包含的总的功能模块的数量。


6.根据权利要求5所述的方法,其特征在于,每个目标区域内的...

【专利技术属性】
技术研发人员:王新晨惠锋虞健董志丹刘佩
申请(专利权)人:无锡中微亿芯有限公司中国电子科技集团公司第五十八研究所
类型:发明
国别省市:江苏;32

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

1