CN112149376B - 一种基于最大流算法的fpga布局合法化方法 - Google Patents

一种基于最大流算法的fpga布局合法化方法 Download PDF

Info

Publication number
CN112149376B
CN112149376B CN202011026518.4A CN202011026518A CN112149376B CN 112149376 B CN112149376 B CN 112149376B CN 202011026518 A CN202011026518 A CN 202011026518A CN 112149376 B CN112149376 B CN 112149376B
Authority
CN
China
Prior art keywords
fpga
illegal
nodes
legal
target area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011026518.4A
Other languages
English (en)
Other versions
CN112149376A (zh
Inventor
王新晨
虞健
周洋洋
惠锋
李卿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CETC 58 Research Institute
Wuxi Zhongwei Yixin Co Ltd
Original Assignee
CETC 58 Research Institute
Wuxi Zhongwei Yixin Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by CETC 58 Research Institute, Wuxi Zhongwei Yixin Co Ltd filed Critical CETC 58 Research Institute
Priority to CN202011026518.4A priority Critical patent/CN112149376B/zh
Publication of CN112149376A publication Critical patent/CN112149376A/zh
Application granted granted Critical
Publication of CN112149376B publication Critical patent/CN112149376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公开了一种基于最大流算法的FPGA布局合法化方法,涉及FPGA技术领域,该方法按照FPGA的初始布局状态确定各个线网的线长,对初始布局状态进行抽象建立剩余图并利用线长对剩余图中由非法节点和空置位置之间的关系抽象形成的有向边进行赋值作为边的花费,基于最小花费最大流算法对所述剩余图进行求解得到各个非法节点的合法位置,并将各个非法节点摆放至对应的合法位置处即能完成布局合法化;该方法将最大流算法应用于二次线性规划算法的合法化部分,使原本不具有导向性的合法化流程变得具有导向性,并在一定程度上提高了最终解的质量,使得合法化后的线长更短、布局结果更优。

Description

一种基于最大流算法的FPGA布局合法化方法
技术领域
本发明涉及FPGA技术领域,尤其是一种基于最大流算法的FPGA布局合法化方法。
背景技术
现场可编程逻辑门阵列(Field-Programmable Gate Array,FPGA)是一种在日用家电、大型机械乃至航空航天都有广泛使用的芯片。FPGA芯片的使用离不开电子设计自动化(Electronic Design Automation,EDA)工具。布局则是EDA工具中重要的一环,其对EDA工具本身运行速度、所处理电路的最终质量有着很大影响。
近年来,FPGA芯片的电路规模快速增长,使其功能更加强大,但同时也给相应的EDA工具带来了挑战。解析型的算法以其可以使用数学方法快速求得全局最优解的特性成为当今布局算法的主流方向之一。二次线性规划算法是解析型算法的一种,其在具体应用于解决布局问题的时候体现出了快速求解的特性,但在求解完成后,依然存在不合法的布局,比如常见的存在重叠的节点,因此需要再次进行合法化操作。
传统的合法化操作使用简单的就近放置原则来处理非法节点,也即基于曼哈顿距离图在非法节点的周围寻找一个最近的合法位置,如图1所示,中心位置0为非法节点所在的位置,与其直接相连的上、下、左、右四个位置距离标记为1,与1再直接相连的位置距离标记为2,依次类推得到的图即为曼哈顿距离图。现有的合法化操作依据曼哈顿距离图由近及远依次寻找空置的合法位置来放置当前非法节点。这种做法虽然简单易行但不具备任何导向性,而且在选取的时候也存在以下问题,比如:以曼哈顿距离标记位置距离,距离近的位置是否能一定优于距离远的位置?相同曼哈顿距离的位置有多个,这些位置是否优劣相同?这些问题导致原始的合法化流程虽然能快速的将非法布局合法化,却不能兼顾合法化后的布局质量问题,往往导致最终的解不尽如人意。
发明内容
本发明人针对上述问题及技术需求,提出了一种基于最大流算法的FPGA布局合法化方法,本发明的技术方案如下:
一种基于最大流算法的FPGA布局合法化方法,该方法包括:
按照FPGA的初始布局状态确定各个线网的线长,初始布局状态包括若干个被指定摆放于FPGA的合法位置上的合法节点、若干个未被指定合法位置的非法节点以及FPGA上的若干个空置位置,合法节点和非法节点均为布局网表中的一个可布单元,合法位置是FPGA上已被指定给一个可布单元的布局位置,空置位置是FPGA上未被指定给任何可布单元的布局位置;
对初始布局状态进行抽象建立剩余图,剩余图至少包括对初始布局状态中各个非法节点和各个空置位置抽象形成的图形节点、以及对非法节点和空置位置之间的关系抽象形成的对应的图形节点之间的第一有向边;
使用对应的线网的线长对剩余图中的各条第一有向边进行赋值得到各条第一有向边的花费;
基于最小花费最大流算法对剩余图进行求解并更新剩余图直至得到流最大且在相同流量情况下花费最小的剩余图,确定最终得到的剩余图中各个非法节点的合法位置为同一路径中的空置位置;
得到各个非法节点的合法位置,并将各个非法节点摆放至对应的合法位置处、完成对FPGA的布局合法化。
其进一步的技术方案为,对初始布局状态进行抽象建立剩余图,包括:
将初始布局状态中各个非法节点和各个空置位置抽象形成图形节点,将非法节点和空置位置之间的关系抽象形成对应的图形节点之间的第一有向边;建立虚拟源点并在虚拟源点与各个非法节点的图形节点之间建立第二有向边,建立虚拟终点并在各个空置位置的图形节点与虚拟终点之间建立第三有向边;
则方法还包括:将第二有向边和第三有向边的花费均赋值为0。
其进一步的技术方案为,基于最小花费最大流算法对剩余图进行求解并更新剩余图直至得到流最大且在相同流量情况下花费最小的剩余图,包括:
利用Dijkstra最短路径算法在剩余图中寻找花费最小的路径;
对路径进行增广、将寻找到的花费最小的路径上所有的第一有向边反向并将第一有向边的花费取负,得到新的剩余图;
重新执行利用Dijkstra最短路径算法在剩余图中寻找花费最小的路径的步骤,直至虚拟源点与虚拟终点之间不存在路径时得到流最大且在相同流量情况下花费最小的剩余图。
其进一步的技术方案为,得到各个非法节点的合法位置,包括:
将FPGA划分为若干个区域;
按照初始布局状态在划分得到区域中选定一个目标区域,对目标区域中初始布局状态进行抽象建立剩余图并求解,得到目标区域中各个非法节点对应的位于目标区域中的合法位置,目标区域是包含至少一个非法节点的区域;
遍历FPGA中所有目标区域并分别得到各个目标区域中非法节点的合法位置。
其进一步的技术方案为,得到各个非法节点的合法位置,还包括:
对于每个目标区域,对目标区域中未在当前目标区域中寻找到合法位置的非法节点进行标记;
在遍历FPGA中所有目标区域后,若FPGA全局范围内包含标记的非法节点,对整个FPGA全局范围内所有标记的非法节点与剩余的空置位置进行抽象建立剩余图并求解,得到FPGA全局范围内所有标记的非法节点的合法位置。
其进一步的技术方案为,得到各个非法节点的合法位置,还包括:
对于每个目标区域,对目标区域中未在当前目标区域中寻找到合法位置的非法节点进行标记;
在遍历FPGA中所有目标区域后,若FPGA全局范围内包含标记的非法节点,则重新将FPGA划分为若干个区域范围大于当前区域的新的区域,按照初始布局状态在划分得到的新的区域中选定一个新的目标区域,对每个新的目标区域内所有标记的非法节点与剩余的空置位置进行抽象建立剩余图并求解,得到新的目标区域中各个非法节点对应的位于目标区域中的合法位置,并执行对于每个目标区域,对目标区域中未在当前目标区域中寻找到合法位置的非法节点进行标记的步骤。
其进一步的技术方案为,得到各个非法节点的合法位置,还包括:
对于每个目标区域,对目标区域中未在当前目标区域中寻找到合法位置的非法节点进行标记;
在遍历FPGA中所有目标区域后,若FPGA全局范围内包含标记的非法节点,则按照预定次序为每个标记的非法节点寻找空置位置作为对应的合法位置;
其中,预定次序包括:与标记的非法节点之间的距离由近及远的顺序,或者,以FPGA上一个预定位置为起始点且沿着FPGA的横向和纵向按照行列式结构的顺序,或者,以FPGA上一个预定位置为起始点且沿着FPGA的横向和纵向按照S型结构的顺序,或者,以FPGA裸片上的一个预定位置为起始点沿着顺时针或逆时针方向按照从外至内或从内至外的环形结构的顺序。
其进一步的技术方案为,将FPGA划分为若干个区域,包括:
按照FPGA架构中的各个域对FPGA进行划分,划分得到的各个区域与FPGA架构的各个域相同。
其进一步的技术方案为,将FPGA划分为若干个区域,包括:
按照自定义划分规则对FPGA进行划分,划分得到的各个区域与FPGA架构的各个域不同。
其进一步的技术方案为,划分得到的各个区域的区域范围包括不少于4*4个FPGA上的布局位置。
其进一步的技术方案为,对FPGA划分得到的各个区域的区域范围均相同。
其进一步的技术方案为,对FPGA划分得到的各个区域存在至少两个区域的区域范围不同。
其进一步的技术方案为,合法节点和非法节点均为布局网表中的一个可布单元,可布单元为布局网表中的最小基本单元,可布单元对应FPGA架构中的一个slice级别模块或者一个查找表/寄存器级别模块。
其进一步的技术方案为,按照FPGA的初始布局状态确定各个线网的线长,包括:
按照初始布局状态建立边界框结构,边界框结构以边界位置以及位于边界上个节点数量记录线网的状态;
根据边界框结构得到各个线网的半周长;
根据预定关系确定各个线网的线网大小对应的影响因子,线网大小为线网中包括的节点个数;
确定每个线网的半周长与对应的影响因子的乘积为线网的线长。
其进一步的技术方案为,根据预定关系确定各个线网的线网大小对应的影响因子,包括:
当线网中包括的节点个数n≤3时,确定对应的影响因子为1;
当线网中包括的节点个数3<n≤50时,确定对应的影响因子为(2.79-1)÷(50-3)×(n-3)+1;
当线网中包括的节点个数n>50时,确定对应的影响因子为2.79+0.02616×(n-50)。
本发明的有益技术效果是:
本申请公开了一种基于最大流算法的FPGA布局合法化方法,该方法将非法节点和空置位置抽象形成剩余图从而将布局合法化问题转变成求解剩余图中虚拟源点到虚拟终点的最大流,然后以线长来评价并给每条非法节点到空置位置的有向边赋值作为花费值,进一步将布局合法化问题转化为最大流算法中的最小花费最大流问题;本申请将最大流算法应用于二次线性规划算法的合法化部分,使原本不具有导向性的合法化流程变得具有导向性,并在一定程度上提高了最终解的质量,使得合法化后的线长更短、布局结果更优。
附图说明
图1是现有技术对FPGA进行布局合法化时使用到的曼哈顿距离图。
图2是本申请的FPGA布局合法化方法的一个实施例的方法流程图。
图3是对非法节点和空置位置抽象形成的剩余图的示意图。
图4是本申请的FPGA布局合法化方法的另一个实施例的方法流程图。
图5是本申请的FPGA布局合法化方法的另一个实施例的方法流程图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本申请公开了一种基于最大流算法的FPGA布局合法化方法,请参考图2所示的流程图,该方法包括如下步骤:
步骤S1,在对FPGA完成初始布局后,按照FPGA的初始布局状态确定各个线网的线长。
FPGA上有若干个布局位置,初始布局时,利用布局算法将布局网表中的各个可布单元布局到FPGA上,初始布局时使用的布局算法可以是常规的解析型算法,本申请不作赘述。在完成初始布局后,布局网表中有一部分可布单元会被各自指定排放于FPGA的各个布局位置处,则这一部分可布单元的布局即为合法的,还有一些可布单元可能会存在位置重叠的现象,则这一部分可布单元的布局即为非法的。相应的,FPGA上的所有布局位置中,有一部分布局位置会被指定给一个可布单元,还有部分布局位置可能会被指定给多个可布单元,还有部分布局位置可能未被指定给任何可布单元。
因此,初始布局状态包括若干个被指定摆放于FPGA的合法位置上的合法节点以及若干个未被指定合法位置的非法节点,合法位置是FPGA上已被指定给一个可布单元的布局位置,合法节点和非法节点均为布局网表中的一个可布单元、本申请通过不同的名称对这两类可布单元进行区分。除此之外,初始布局状态还包括FPGA上的若干个空置位置,空置位置是FPGA上未被指定给任何可布单元的布局位置,本申请在对FPGA进行布局合法化时,即需要将非法节点指定到对应的空置位置处。
在本申请中,合法节点和非法节点均为布局网表中的一个可布单元,可布单元为布局网表中的最小基本单元,可布单元对应FPGA架构中的一个slice级别模块或者一个查找表/寄存器(LUT/REG)级别模块。
在确定各个线网的线长时,首先确定线网的半周长以及线网的线网大小,线网大小为线网中包括的节点个数。在确定线网的半周长时,本申请首先按照初始布局状态建立边界框结构(bounding box结构),然后根据边界框结构得到各个线网的半周长,边界框结构以边界位置以及位于边界上个节点数量记录线网的状态,这样做的好处是只有少数情况下才需要遍历线网中所有节点得到半周长,可以减少计算量。根据预定关系确定各个线网的线网大小对应的影响因子,每个线网的线长即为线网的半周长与对应的影响因子的乘积。
本申请中线网大小与影响因子之间的预定关系为:
当线网中包括的节点个数n≤3时,确定对应的影响因子为1。当线网中包括的节点个数3<n≤50时,确定对应的影响因子为(2.79-1)÷(50-3)×(n-3)+1。当线网中包括的节点个数n>50时,确定对应的影响因子为2.79+0.02616×(n-50)。
步骤S2,对初始布局状态进行抽象建立剩余图。
在建立剩余图时,将初始布局状态中各个非法节点和各个空置位置抽象形成图形节点,将非法节点和空置位置之间的关系抽象形成对应的图形节点之间的第一有向边。因此剩余图至少包括对初始布局状态中各个非法节点和各个空置位置抽象形成的图形节点、以及对非法节点和空置位置之间的关系抽象形成的对应的图形节点之间的第一有向边。
另外在建立剩余图时,还会建立虚拟源点S并在虚拟源点S与各个非法节点的图形节点之间建立第二有向边,建立虚拟终点T并在各个空置位置的图形节点与虚拟终点T之间建立第三有向边。
建立得到的剩余图的示意图如图3所示,这样布局合法化问题就变成了求解由虚拟源点S到虚拟终点T的最大流。为了使寻找的过程具有导向性,本申请使用线长进行评价,并使用每条第一有向边对应的线网的线长对该第一有向边进行赋值得到各条第一有向边的花费,另外将所有第二有向边和第三有向边的花费均赋值为0,这样又进一步将布局合法化问题转化为了最大流算法中的最小花费最大流(Min-Cost Max-Flow)问题。
步骤S3,基于最小花费最大流算法对剩余图进行求解并更新剩余图直至得到流最大且在相同流量情况下花费最小的剩余图,确定最终得到的剩余图中各个非法节点的合法位置为同一连通路径中的空置位置。求解过程如下:
(1)利用Dijkstra最短路径算法在剩余图中寻找花费最小的路径。Dijkstra最短路径算法不允许剩余图中路径出现负值,因此首先要为每一个图形节点加势使得在保证剩余图结构不变的情况下将含有负花费的路径的剩余图转化为不含有负花费的路径的图以适用该算法,比如可以对所有路径的花费同时增加相应的值等等,本申请不赘述。
(2)对路径进行增广、将寻找到的花费最小的路径上所有的第一有向边反向并将第一有向边的花费取负,得到新的剩余图。
(3)重新执行上述(1)和(2),直至虚拟源点S与虚拟终点T之间不存在路径时,得到的剩余图即为流最大且在相同流量情况下花费最小的剩余图。
上述过程使用了Ford-Fulkerson算法以确保最终找到最大流,并可以使用数学归纳法简单证明求解过程每次循环都找出了当前流量下花费最小的流,其中涉及的图的相关性质这里不做赘述:
1、流量为1时,显然成立。
2、设流量为i时,f是花费最小的流,则其剩余图中必不含有花费为负的环路。
3、由求解方法推导出的流量为i+1时的流记为g,则g-f为一条虚拟源点S与虚拟终点T的花费最小的路径,将该路径记为r。
4、若在流量为i+1时存在比g的花费更小的流h,则对于这两个流量相同的流,h-g必存在环路,又因为h的花费小于g,则h-g的环路中必包含至少一个花费为负的环路,则h-f是路径r与存在花费为负的环路的若干环路组成,即f的剩余图中存在花费为负的环路。
5、f的剩余图中存在花费为负的环路,则f不是流量为i时花费最小的流,这与假设条件相悖。
6、所以流量为i+1时g即为花费最小的流,原结论得证。
步骤S4,得到各个非法节点的合法位置后将各个非法节点摆放至对应的合法位置处、完成对FPGA的布局合法化。
由此本申请即实现了FPGA的布局合法化,但本申请在实际实现,通常不是直接在FPGA全局范围内对所有非法节点执行上述合法化过程的,而是按区域进行的,这是因为本申请对寻找最大流的Ford-Fulkerson算法以及寻找最短路径的Dijkstra最短路径算法两者叠加使用,使得算法运行时间随算法中节点数量的增加呈指数级上升,因此本申请分区域多次求解,虽然在一定程度上限制了求解的范围,但在保证求解结果的基础上大大缩短了运算时间,更符合实际工业需求。因此如图4和5所示,本申请在上述步骤S1-S4之前还包括如下步骤:
将FPGA划分为若干个区域。有两种划分依据:
(1)按照FPGA架构中的各个域对FPGA进行划分,则划分得到的各个区域与FPGA架构的各个域相同。
(2)按照自定义划分规则对FPGA进行划分,则划分得到的各个区域与FPGA架构的各个域不同。在这种情况中,划分得到的各个区域的区域范围包括不少于4*4个FPGA上的布局位置,通常默认包括8*8个布局位置。
划分得到各个区域的区域范围可以均相同,也可以存在至少两个区域的区域范围不同。
则完成区域的划分后,按照初始布局状态在划分得到区域中选定一个目标区域,目标区域是包含至少一个非法节点的区域。利用上述步骤S1-S3对该目标区域中初始布局状态进行抽象建立剩余图并求解,得到该目标区域中各个非法节点对应的位于目标区域中的合法位置。
在理想的状态下,每个目标区域中的所有非法节点均能在其所在目标区域中找到对应的合法位置,则遍历FPGA中所有目标区域后即能分别得到各个目标区域中非法节点的合法位置,此时利用步骤S4即能完成对FPGA的布局合法化。
但是实际情况中,由于单个目标区域中资源有限,因此有可能出现一个目标区域资源耗尽但仍有非法节点未找到合法位置的情况,但由二次线性规划算法性质可以知道,理论情况下出现这种情况的非法节点数量会很少,因此若出现这种情况,则先将每个目标区域中未在当前目标区域中寻找到合法位置的非法节点进行标记,待所有目标区域都遍历完成后,对所有标记的非法节点进行统一处理,使得剩余的标记的非法节点找到对应的合法位置,此时FPGA全局范围内所有非法节点都已有合法位置,利用步骤S4即能完成对FPGA的布局合法化。在对所有标记的非法节点进行统一处理,使得剩余的标记的非法节点找到对应的合法位置时有多种实现方法:
(1)对整个FPGA全局范围内所有标记的非法节点与剩余的空置位置进行抽象建立剩余图并求解,得到FPGA全局范围内所有标记的非法节点的合法位置,也即此时在全局范围对剩下的非法节点和空置位置利用上述步骤S1-S3找到非法节点对应的合法位置,此时由于剩下的非法节点的数量往往不多,所以计算量和运算时间都不会太大,具体的做法同上,本申请不再赘述。如图4中实线框支路。
(2)重新将FPGA划分为若干个区域范围大于当前区域的新的区域,实际操作时可以是对FPGA直接重新划分,或者将若干个邻近的当前区域进行合并。按照初始布局状态在划分得到的新的区域中选定一个新的目标区域,对每个新的目标区域内所有标记的非法节点与剩余的空置位置进行抽象建立剩余图并求解,得到新的目标区域中各个非法节点对应的位于目标区域中的合法位置。也即仍然按区域处理,在资源更多的更大的区域内对剩下的非法节点和空置位置利用上述步骤S1-S3找到非法节点对应的合法位置。
同样的,若仍然有非法节点没有对应的合法位置,则同样进行标记,遍历后如果仍然有标记的非法节点,则再次将FPGA划分为若干个区域范围大于当前区域的新的区域,以此迭代直至所有的非法节点都有合法位置,在这种情况中,有可能最终循环至在全局范围内查找。
(3)上述两种方法仍然利用最大流算法找到最优解作为非法节点的合法位置,但也可以不寻找最优解,而是按照预定次序为每个标记的非法节点寻找空置位置,找到空置位置即作为对应的合法位置。其中,预定次序包括:与标记的非法节点之间的距离由近及远的顺序,或者,以FPGA上一个预定位置为起始点且沿着FPGA的横向和纵向按照行列式结构的顺序,或者,以FPGA上一个预定位置为起始点且沿着FPGA的横向和纵向按照S型结构的顺序,或者,以FPGA裸片上的一个预定位置为起始点沿着顺时针或逆时针方向按照从外至内或从内至外的环形结构的顺序。如图4中虚线框支路。
基于本申请提供的方法,本申请选取了13个测试电路,在yxc3的jyxlx350tff1738器件上分别使用常规布局合法化方法与本申请的布局合法化方法在完全相同的环境下进行布局,并以布局后线长为标准评价最终电路质量,测试结果如下表1所示:
表1线长测试结果表
Figure GDA0003361104890000101
由上表实验对比文数据可以看出,本申请的方法以布局后线长为标准进行评价有了普遍的提升,其中提升最大的电路igt_fixpt_cordicv3相比改进前线长有了较大幅度的减少,达到15.13%;提升最小的电路igt_noc_10v3相较改进前线长也有些许改善,减少了2.38%。就平均结果来看,改进后的算法可以使布局后的线长减少6.37%。
以上所述的仅是本申请的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。

Claims (14)

1.一种基于最大流算法的FPGA布局合法化方法,其特征在于,所述方法包括:
按照FPGA的初始布局状态确定各个线网的线长,所述初始布局状态包括若干个被指定摆放于所述FPGA的合法位置上的合法节点、若干个未被指定合法位置的非法节点以及所述FPGA上的若干个空置位置,所述合法节点和所述非法节点均为布局网表中的一个可布单元,所述合法位置是所述FPGA上已被指定给一个可布单元的布局位置,所述空置位置是所述FPGA上未被指定给任何可布单元的布局位置;
对所述初始布局状态进行抽象建立剩余图,所述剩余图至少包括对初始布局状态中各个非法节点和各个空置位置抽象形成的图形节点、以及对非法节点和空置位置之间的关系抽象形成的对应的图形节点之间的第一有向边;所述对所述初始布局状态进行抽象建立剩余图,包括:将所述初始布局状态中各个非法节点和各个空置位置抽象形成图形节点,将非法节点和空置位置之间的关系抽象形成对应的图形节点之间的第一有向边;建立虚拟源点并在所述虚拟源点与各个非法节点的图形节点之间建立第二有向边,建立虚拟终点并在各个空置位置的图形节点与所述虚拟终点之间建立第三有向边;则所述方法还包括:将所述第二有向边和所述第三有向边的花费均赋值为0;
使用对应的线网的线长对所述剩余图中的各条第一有向边进行赋值得到各条第一有向边的花费;
基于最小花费最大流算法对所述剩余图进行求解并更新剩余图直至得到流最大且在相同流量情况下花费最小的剩余图,确定最终得到的剩余图中各个非法节点的合法位置为同一路径中的空置位置;
得到各个非法节点的合法位置,并将各个非法节点摆放至对应的合法位置处、完成对所述FPGA的布局合法化。
2.根据权利要求1所述的方法,其特征在于,所述基于最小花费最大流算法对所述剩余图进行求解并更新剩余图直至得到流最大且在相同流量情况下花费最小的剩余图,包括:
利用Dijkstra最短路径算法在所述剩余图中寻找花费最小的路径;
对所述路径进行增广、将寻找到的花费最小的路径上所有的第一有向边反向并将所述第一有向边的花费取负,得到新的剩余图;
重新执行所述利用Dijkstra最短路径算法在所述剩余图中寻找花费最小的路径的步骤,直至所述虚拟源点与所述虚拟终点之间不存在路径时得到流最大且在相同流量情况下花费最小的剩余图。
3.根据权利要求1所述的方法,其特征在于,所述得到各个非法节点的合法位置,包括:
将所述FPGA划分为若干个区域;
按照所述初始布局状态在划分得到区域中选定一个目标区域,对所述目标区域中初始布局状态进行抽象建立剩余图并求解,得到所述目标区域中各个非法节点对应的位于所述目标区域中的合法位置,所述目标区域是包含至少一个非法节点的区域;
遍历所述FPGA中所有目标区域并分别得到各个目标区域中非法节点的合法位置。
4.根据权利要求3所述的方法,其特征在于,所述得到各个非法节点的合法位置,还包括:
对于每个目标区域,对所述目标区域中未在当前目标区域中寻找到合法位置的非法节点进行标记;
在遍历所述FPGA中所有目标区域后,若FPGA全局范围内包含标记的非法节点,对整个FPGA全局范围内所有标记的非法节点与剩余的空置位置进行抽象建立剩余图并求解,得到FPGA全局范围内所有标记的非法节点的合法位置。
5.根据权利要求3所述的方法,其特征在于,所述得到各个非法节点的合法位置,还包括:
对于每个目标区域,对所述目标区域中未在当前目标区域中寻找到合法位置的非法节点进行标记;
在遍历所述FPGA中所有目标区域后,若FPGA全局范围内包含标记的非法节点,则重新将所述FPGA划分为若干个区域范围大于当前区域的新的区域,按照所述初始布局状态在划分得到的新的区域中选定一个新的目标区域,对每个新的目标区域内所有标记的非法节点与剩余的空置位置进行抽象建立剩余图并求解,得到所述新的目标区域中各个非法节点对应的位于所述目标区域中的合法位置,并执行所述对于每个目标区域,对所述目标区域中未在当前目标区域中寻找到合法位置的非法节点进行标记的步骤。
6.根据权利要求3所述的方法,其特征在于,所述得到各个非法节点的合法位置,还包括:
对于每个目标区域,对所述目标区域中未在当前目标区域中寻找到合法位置的非法节点进行标记;
在遍历所述FPGA中所有目标区域后,若FPGA全局范围内包含标记的非法节点,则按照预定次序为每个标记的非法节点寻找空置位置作为对应的合法位置;
其中,所述预定次序包括:与所述标记的非法节点之间的距离由近及远的顺序,或者,以所述FPGA上一个预定位置为起始点且沿着FPGA的横向和纵向按照行列式结构的顺序,或者,以所述FPGA上一个预定位置为起始点且沿着FPGA的横向和纵向按照S型结构的顺序,或者,以FPGA裸片上的一个预定位置为起始点沿着顺时针或逆时针方向按照从外至内或从内至外的环形结构的顺序。
7.根据权利要求3-6任一所述的方法,其特征在于,所述将所述FPGA划分为若干个区域,包括:
按照FPGA架构中的各个域对所述FPGA进行划分,划分得到的各个区域与FPGA架构的各个域相同。
8.根据权利要求3-6任一所述的方法,其特征在于,所述将所述FPGA划分为若干个区域,包括:
按照自定义划分规则对所述FPGA进行划分,划分得到的各个区域与FPGA架构的各个域不同。
9.根据权利要求8所述的方法,其特征在于,划分得到的各个区域的区域范围包括不少于4*4个FPGA上的布局位置。
10.根据权利要求3-6任一所述的方法,其特征在于,对所述FPGA划分得到的各个区域的区域范围均相同。
11.根据权利要求3-6任一所述的方法,其特征在于,对所述FPGA划分得到的各个区域存在至少两个区域的区域范围不同。
12.根据权利要求1所述的方法,其特征在于,所述合法节点和所述非法节点均为布局网表中的一个可布单元,所述可布单元为所述布局网表中的最小基本单元,所述可布单元对应FPGA架构中的一个slice级别模块或者一个查找表/寄存器级别模块。
13.根据权利要求1所述的方法,其特征在于,所述按照FPGA的初始布局状态确定各个线网的线长,包括:
按照所述初始布局状态建立边界框结构,所述边界框结构以边界位置以及位于边界上个节点数量记录线网的状态;
根据所述边界框结构得到各个线网的半周长;
根据预定关系确定各个线网的线网大小对应的影响因子,所述线网大小为所述线网中包括的节点个数;
确定每个线网的半周长与对应的影响因子的乘积为所述线网的线长。
14.根据权利要求13所述的方法,其特征在于,所述根据预定关系确定各个线网的线网大小对应的影响因子,包括:
当所述线网中包括的节点个数n≤3时,确定对应的影响因子为1;
当所述线网中包括的节点个数3<n≤50时,确定对应的影响因子为(2.79-1)÷(50-3)×(n-3)+1;
当所述线网中包括的节点个数n>50时,确定对应的影响因子为2.79+0.02616×(n-50)。
CN202011026518.4A 2020-09-25 2020-09-25 一种基于最大流算法的fpga布局合法化方法 Active CN112149376B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011026518.4A CN112149376B (zh) 2020-09-25 2020-09-25 一种基于最大流算法的fpga布局合法化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011026518.4A CN112149376B (zh) 2020-09-25 2020-09-25 一种基于最大流算法的fpga布局合法化方法

Publications (2)

Publication Number Publication Date
CN112149376A CN112149376A (zh) 2020-12-29
CN112149376B true CN112149376B (zh) 2022-02-15

Family

ID=73897496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011026518.4A Active CN112149376B (zh) 2020-09-25 2020-09-25 一种基于最大流算法的fpga布局合法化方法

Country Status (1)

Country Link
CN (1) CN112149376B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11803684B1 (en) * 2021-10-04 2023-10-31 Cadence Design Systems, Inc. Relative placement by application of layered abstractions

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937992B1 (en) * 2000-12-29 2005-08-30 Arrowstream, Inc. Transport vehicle capacity maximization logistics system and method of same
CN103209169A (zh) * 2013-02-23 2013-07-17 北京工业大学 一种基于fpga的网络流量过滤系统与方法
CN103885771A (zh) * 2014-03-04 2014-06-25 西安电子科技大学 基于局部最小化robdd及面积延迟优化的工艺映射的方法
CN106021722A (zh) * 2016-05-19 2016-10-12 深圳市紫光同创电子有限公司 基于fpga布局的优化方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7376731B2 (en) * 2002-01-29 2008-05-20 Acme Packet, Inc. System and method for providing statistics gathering within a packet network
CN102116839B (zh) * 2009-12-30 2013-02-27 中国科学院沈阳自动化研究所 一种基于最大流方法的fpga测试方法
CN102890729A (zh) * 2011-07-18 2013-01-23 中国科学院微电子研究所 一种对高扇出的可编程门列阵进行布局布线的方法
CN104348479A (zh) * 2013-07-31 2015-02-11 京微雅格(北京)科技有限公司 现场可编程逻辑门阵列芯片布局优化方法
CN103886137B (zh) * 2014-03-03 2017-02-08 西安电子科技大学 一种实现现场可编程门阵列快速布局布线的方法
CN108287932B (zh) * 2017-01-10 2021-09-21 上海复旦微电子集团股份有限公司 一种基于解析方法的总体fpga自动化布局方法
US20210390397A1 (en) * 2018-09-29 2021-12-16 VII Philip Alvelda Method, machine-readable medium and system to parameterize semantic concepts in a multi-dimensional vector space and to perform classification, predictive, and other machine learning and ai algorithms thereon
DE102018009664B4 (de) * 2018-12-08 2020-07-09 Diehl Metering Gmbh Verfahren zur Auswertung von Messdatenreihen einer Ultraschall-Durchflussmesseinrichtung und Ultraschall-Durchflussmesseinrichtung

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6937992B1 (en) * 2000-12-29 2005-08-30 Arrowstream, Inc. Transport vehicle capacity maximization logistics system and method of same
CN103209169A (zh) * 2013-02-23 2013-07-17 北京工业大学 一种基于fpga的网络流量过滤系统与方法
CN103885771A (zh) * 2014-03-04 2014-06-25 西安电子科技大学 基于局部最小化robdd及面积延迟优化的工艺映射的方法
CN106021722A (zh) * 2016-05-19 2016-10-12 深圳市紫光同创电子有限公司 基于fpga布局的优化方法

Also Published As

Publication number Publication date
CN112149376A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
WO2022266906A1 (zh) 一种集成电路的版图生成方法及装置
CN111950225B (zh) 一种芯片布局方法、装置、存储介质和电子设备
US7089521B2 (en) Method for legalizing the placement of cells in an integrated circuit layout
CN113408224B (zh) 利用网表局部再综合实现布局合法化的fpga布局方法
US10860764B1 (en) Layer assignment technique to improve timing in integrated circuit design
CN112149376B (zh) 一种基于最大流算法的fpga布局合法化方法
US8312405B1 (en) Method of placing input/output blocks on an integrated circuit device
CN112131814B (zh) 一种利用区域重布局的fpga布局合法化方法
CN111694992B (zh) 一种数据处理方法和装置
Farooq et al. Efficient FPGA routing using reinforcement learning
US10891411B2 (en) Hierarchy-driven logical and physical synthesis co-optimization
CN114896943A (zh) 集成电路器件模型提取参数的数据选取方法、系统及装置
CN107409095A (zh) 具有针对多个网络拓扑的改进的支持的分布式路由表系统
US10169526B2 (en) Incremental parasitic extraction for coupled timing and power optimization
US8443326B1 (en) Scan chain re-ordering in electronic circuit design based on region congestion in layout plan
He et al. SRP: Simultaneous routing and placement for congestion refinement
US11520959B1 (en) Pruning of buffering candidates for improved efficiency of evaluation
CN110543664B (zh) 一种面向具有特有结构fpga的工艺映射方法
US10963620B1 (en) Buffer insertion technique to consider edge spacing and stack via design rules
CN110399354A (zh) 数据库的分区交换方法及装置
CN112183006A (zh) 时延评估方法及装置、可读存储介质
US20030023942A1 (en) Ordering binary decision diagrams used in the formal equivalence verification of digital designs
US10572620B2 (en) Custom piecewise digital layout generation
US11514222B1 (en) Cell-width aware buffer insertion technique for narrow channels
US11347923B1 (en) Buffering algorithm with maximum cost constraint

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant