CN114297959A - 通过裂分线网以提高布线效率的fpga布线方法 - Google Patents
通过裂分线网以提高布线效率的fpga布线方法 Download PDFInfo
- Publication number
- CN114297959A CN114297959A CN202111551570.6A CN202111551570A CN114297959A CN 114297959 A CN114297959 A CN 114297959A CN 202111551570 A CN202111551570 A CN 202111551570A CN 114297959 A CN114297959 A CN 114297959A
- Authority
- CN
- China
- Prior art keywords
- net
- original
- endpoints
- drain
- wired
- 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.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请公开了一种通过裂分线网以提高布线效率的FPGA布线方法,涉及FPGA领域,该方法基于对原始线网的布线效率相关的线网端点的特征和原始线网的信号类型特征来检测原始线网是否满足预设裂分条件,并在确定满足预设条件可能会导致布线效率较低时,对原始线网裂分为多个待布线网,在对每个待布线网进行绕线/重绕线时,可以达成减少展开搜寻的漏端的数量和/或减少展开搜寻的空间的效果,从而减少布线运行时间和占用内存以提高布线效率,也可以达成减少路径时延以优化布线时序的效果,从而提高布线质量以提高布线效率。
Description
技术领域
本发明涉及FPGA领域,尤其是一种通过裂分线网以提高布线效率的FPGA布线方法。
背景技术
FPGA布线是在芯片布局以后,利用器件的可编程互连资源把已经占用的逻辑单元连接起来的过程,在FPGA布线时,一般需要将FPGA上的包含互连资源在内的可编程逻辑资源抽象成一个布线图G=(V,E),布线图上具有全部的底层模块、架构及互连资源的表示,V中的每个点n代表FPGA内的布线资源或资源模块的端口,E中的每个有向边e=(n1,n2)代表由n1点到n2点所经的开关。用户设计网表中的线网Ni映射到FPGA时,对应线网Ni是其线网端点的组合,包括源端si以及若干个漏端tij,线网Ni可以看成是V的子集合。将线网Ni布线,也即在G上找到一个由布线资源(线段)组成的布线树(Routing Tree)RTi能将si与所有的tij全部连通。布线完成时,网表中的每个线网都有正确的布线树RTi,并且布线图中没有一个布线资源被共享或被多于一个线网占用,也即不存在布线冲突。
在对一个线网实施布线时,利用诸如拥挤协商算法之类的布线算法对线网的漏端展开搜寻并布线,实际对一个线网实施过程中,常常会出现搜寻过程过长,则不仅会使布线耗时较长还会占用较多内存,同时布线结果的优劣也会影响到后续涉及流程乃至芯片性能,因此如何提高FPGA的布线效率成为设计过程中需要重点考虑的内容。
发明内容
本发明人针对上述问题及技术需求,提出了一种通过裂分线网以提高布线效率的FPGA布线方法,本发明的技术方案如下:
一种通过裂分线网以提高布线效率的FPGA布线方法,该方法包括:
对于用户输入网表中的每个原始线网,若基于原始线网的线网特征确定原始线网不满足预设裂分条件,则直接将原始线网作为待布线网;
若基于原始线网的线网特征确定原始线网满足预设裂分条件,则按照预定裂分原则从原始线网中选取线网端点作为裂分点、裂分形成布局位置重合的多个虚拟点,基于原始线网中的线网端点以及形成的虚拟点将原始线网裂分为若干个待布线网,共享同一个布局位置的多个虚拟点分别位于多个不同的待布线网中,线网端点包括源端及其分别相连的若干个漏端;
利用FPGA的可编程逻辑资源对用户输入网表中的各个待布线网进行布线得到子布线结果,将各个子布线结果合并得到对应于FPGA的全局布线结果。
本发明的有益技术效果是:
本申请公开了一种通过裂分线网以提高布线效率的FPGA布线方法,该方法基于对原始线网的布线效率相关的线网端点的特征和原始线网的信号类型特征来检测原始线网是否满足预设裂分条件,并在确定满足预设条件可能会导致布线效率较低时,对原始线网裂分为多个待布线网,以提高布线效率,具体表现为,通过将原始线网裂分为待布线网,在对每个待布线网进行绕线/重绕线时,可以达成减少展开搜寻的漏端的数量和/或减少展开搜寻的空间的效果,从而减少布线运行时间和占用内存以提高布线效率,也可以达成减少路径时延以优化布线时序的效果,从而提高布线质量以提高布线效率。
在对原始线网进行裂分时,根据一种或多种预定裂分原则针对不同的情况分别选定裂分点对原始线网进行裂分,可以同时从多个方面优化布线效率。
附图说明
图1是本申请中,当原始线网满足不同的预设裂分条件时对应的选择裂分点的方法的对照示意图。
图2是本申请一个实施例中,按照常规布线方法对原始线网布线时形成的一条直连路径的示意图,以及,按照本申请的方法对原始线网裂分后形成的分别位于两个待布线网中的相应路径的对比示意图。
图3是本申请一个实施例中,对分布离散程度达到预定离散程度的原始线网选取源端作为裂分点时,分别形成的多个待布线网的布线示意图。
图4是本申请另一个实施例中,对分布离散程度达到预定离散程度的原始线网选取已有待布线网中距离最近的线网端点作为裂分点时,分别形成的多个待布线网的布线示意图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本申请公开了一种通过裂分线网以提高布线效率的FPGA布线方法,该方法在执行之前已经完成了FPGA的布局,因此根据FPGA的布局结果可以确定用户输入网表中各个原始线网(Net)的所有线网端点的位置,线网端点包括源端(Source)及其分别相连的若干个漏端(Sink)。
对于用户输入网表中的每个原始线网,不直接进行布线,而是先检测其是否满足预设裂分条件,若原始线网不满足预设裂分条件,则直接将原始线网作为待布线网后续直接进行布线操作。
当确定原始线网满足预设裂分条件时,按照预定裂分原则从原始线网中选取线网端点作为裂分点、裂分形成在布线图上布局位置重合的多个虚拟点。然后基于原始线网中的原有的线网端点以及形成的虚拟点,将原始线网裂分为若干个待布线网。每个待布线网包括原始线网中的部分目的点,且共享同一个布局位置的多个虚拟点分别位于多个不同的待布线网中,使得这多个不同的待布线网通过虚拟点相连。一般情况是,先对所有原始线网处理得到所有待布线网后统一执行布线操作,利用FPGA的可编程逻辑资源对各个待布线网进行布线,包括初始布线和详细布线后得到子布线结果,然后将各个子布线结果合并得到对应于FPGA的全局布线结果。
常规的做法中,直接将原始线网作为最小单位进行初始绕线,在详细布线阶段也以原始线网作为最小单位拔除并进行重绕线。而本申请在对满足预设裂分条件的原始线网进行裂分后,以每个待布线网为最小单位,则在初始绕线阶段以待布线网作为最小单位进行初始绕线,在详细布线阶段也以待布线网作为最小单位拔除并进行重绕线。
本申请主要基于原始线网的线网特征来检测原始线网是否满足预设裂分条件,线网特征主要包括原始线网中的线网端点的特征和原始线网的信号类型特征,这些特征是会对原始线网的布线效率产生较大影响的特征。线网端点的特征主要包括线网端点的数量和/或线网端点的分布情况,信号类型特征主要包括原始线网是否在时序关键路径上和/或是否涉及到多种类型信号。具体的:
当确定原始线网中的线网端点的数量满足预设条件时,和/或,原始线网中的线网端点的分布离散程度达到预定离散程度时,和/或,原始线网经过用户输入网表中的时序关键路径时,和/或,原始线网中包括至少两种不同类型的漏端而涉及多种类型信号时,确定原始线网满足预设裂分条件。不同的预设裂分条件下的预定裂分原则也稍有差别,本申请对各种预设裂分条件及对应的预定裂分原则分别进行如下介绍,请结合图1:
1、当确定原始线网中的线网端点的数量满足预设条件时,确定原始线网满足预设裂分条件。进一步可以具体分为如下两种:
(1)原始线网中的线网端点的总数量超过第一预设阈值时,表示原始线网中的线网端点的数量满足预设条件,第一预设阈值为自定义值,这一情况表现为原始线网中的线网端点数量较多,由于原始线网包括一个源端和多个漏端,因此这一情况实际表现为原始线网中的漏端的数量较多。当原始线网中的漏端的数量较多时,若像常规做法直接以原始线网为最小单位进行重绕线,则需要对所有漏端展开搜寻并重绕线,耗费时间较长,而对原始线网裂分为多个待布线网后,每个待布线网中包含的漏端的数量大大减少,每次可以只对待布线网进行重绕线而无需对整个原始线网进行重绕线,可以大大减少重绕线的耗时,因此这种情况下通过对原始线网进行裂分可以提高布线效率。
这种情况下,按照预定裂分原则从原始线网中选取线网端点作为裂分点的操作是:对原始线网内部所有线网端点通过最小生成树算法形成线网端点依次相连的最小生成树,最小生成树反映对原始线网实施布线过程中从源端开始对各个线网端点的访问顺序,最小生成树算法常见的有Prim和Kruskal算法。则按照访问顺序、选取从最近一个源端或虚拟源端开始的不超过K个线网端点处的线网端点作为裂分点、同时形成布局位置重合的虚拟漏端和虚拟源端,也即包含最近一个源端或虚拟源端、包含选中的裂分点以及两者之间的线网端点的总数量不超过K,K为第一预设阈值。则裂分得到的每一个待布线网包括裂分点与之前最近一个源端或虚拟源端之间的所有线网端点。由此,裂分得到的各个待布线网中包括线网端点的数量可以相等也可以不相等,所有待布线网中包括的线网端点的数量都不超过K,但也可以小于K。
比如原始线网中包括1个源端和49个漏端共50个线网端点,利用最小生成树算法形成对应的最小生成树,依次表示为源端、漏端1、漏端2、漏端3……漏端49。假设第一预设阈值为10,则按照访问顺序从位于第一个的源端开始选取不超过10个线网端点处,比如可以选择漏端9作为裂分点,源端、漏端9以及两者之间的漏端1~8形成共10个线网端点,也可以选择漏端8作为裂分点,源端、漏端8以及两者之间的漏端1~7形成共9个线网端点,其他情况也类似。
以选择漏端9作为裂分点为例,则漏端9形成布局位置重合的虚拟漏端和虚拟源端,对于访问顺序在漏端9之后的线网端点来说,漏端9即为其最近的虚拟源端。则按照上述原则,从漏端9形成虚拟源端开始选取不超过10个线网端点处,比如选取漏端18作为裂分点,最近的一个虚拟源端(漏端9形成)、漏端18以及两者之间的漏端10~17形成共10个线网端点。
由此裂分得到的第一个待布线网包括第一个裂分点(漏端9)与之前最近一个源端之间的所有线网端点,包括该裂分点形成的虚拟漏端以及最近一个源端以及两者之间的所有漏端,也即第一个待布线网包括源端、漏端1~8以及漏端9形成的虚拟漏端。
裂分得到的第二个待布线网包括第二个裂分点(漏端18)与之前最近一个虚拟源端(漏端9)之间的所有线网端点,包括该第二个裂分点形成的虚拟漏端以及最近一个虚拟源端以及两者之间的所有漏端,也即第二个待布线网包括漏端9形成的虚拟源端、漏端10~17以及漏端18形成的虚拟漏端。
其他裂分点的确定方法可以继续以此类推,由此得到各个裂分点,继而按照上述过程得到各个待布线网。
特别的,当原始线网为时钟信号且所有漏端都是各个模块的时钟输入时,或者,当原始线网为异步信号且所有漏端都是各个模块的Set/Reset输入时,即便原始线网中的线网端点的总数量超过第一预设阈值也可以不进行裂分,因为这两类情况中可以走时钟树。
(2)原始线网中存在至少一条直连路径中的线网端点的总数量超过第二预设阈值时,表示原始线网中的线网端点的数量满足预设条件,其中直连路径是指从源端开始直至最末端的线网端点之间的路径。现有常规的布线算法一般会基于最小生成树反映的访问顺序从源端开始对各个漏端展开搜寻,如上所述,最小生成树在执行过程中,基于线网端点之间的距离来确定访问顺序,有些漏端会与源端距离最近,但有些漏端则是与其他漏端距离最近,那么在布线时,就表现为有些漏端直接连接源端,而有些漏端则需要通过其他漏端连接到源端,一般距离源端较远的漏端通常需要经过一个或多个其他的漏端连接到源端,基于最小生成树一般就可以确定源端的各条直连路径中的线网端点的数量。
当直连路径中的线网端点的数量较多时,表示末端的漏端需要经过较多数量的其他漏端才能连接到源端,在这种情况下,这种情况下,按照预定裂分原则从原始线网中选取线网端点作为裂分点的操作是:对于包含的线网端点的总数量超过第二预设阈值的直连路径,选取源端作为裂分点、同时形成布局位置重合的多个虚拟源端,每个待布线网分别包含一个裂分点以及直连路径中按原连接顺序的P-1个漏端,P为第二预设阈值,其原连接顺序是从源端至最末端的线网端点的顺序。也即相当于对直连路径进行切分,将原本应该连接到其他漏端的漏端连接到虚拟源端。
比如图2中,原形表示一个原始线网中的源端,方形表示该原始线网中的所有漏端,一种极端的情况时,按照常规布线方式时,漏端A、B、C、D依次连接形成一条直连路径连接到源端。而按照本申请的方法,设假设第二阈值为3,则选定源端作为裂分点,如图2所示,源端裂分形成两个虚拟源端,为了便于说明,本申请定义源端裂分后得到的所有都称为虚拟源端、而本身的源端不再存在,实际上图2中的两个虚拟源端是完全重合的,但本申请为了方便图示,对其布局位置错开,后续其他图示也是类似的。在图2所示的示意图中,原连接顺序是源端、漏端D、漏端C、漏端B、漏端A,则由此可以形成两个待布线网,一个待布线网包括虚拟源端和漏端D以及漏端C,另一个待布线网包括另一个虚拟源端和漏端B以及漏端A,如图2所示。按照图2左侧的这种做法,漏端A通过4个较短的布线线段连接到源端,而按照图2右侧本申请这种做法,漏端A通过一个较短布线线段和一段较长的布线线段连接到源端,本申请这种做法可以明显使时序较优,减少后续为了满足时序要求而进行的重布线过程,从而通过优化时序来提高布线效率。
2、当原始线网中的线网端点的分布离散程度达到预定离散程度时,确定原始线网满足预设裂分条件。原始线网中的线网端点的分布离散程度达到预定离散程度时,表示原始线网中的线网端点也即漏端分布较为离散,不管是初始布线阶段还是详细布线阶段,在利用探路协商算法对漏端展开搜寻时,需要搜寻的空间就越大,这就导致搜寻时间较久,不仅使得布线时间长而且占用内存也较多。而对原始线网裂分为多个待布线网后,每个待布线网中的线网端点的布局位置较为集中,对每个待布线网布线时搜寻空间较小,由此可以减少耗时和占用内存,因此这种情况下通过对原始线网进行裂分可以提高布线效率。
在这种情况下,检测以及寻找裂分点的方法有如下两种。
(1)利用最小生成树算法,这种做法在判断原始线网满足预设裂分条件的同时就可以同步寻找裂分点。具体的:对原始线网内部所有线网端点通过最小生成树算法形成线网端点依次相连的最小生成树,最小生成树反映对原始线网实施布线过程中从源端开始对各个线网端点的访问顺序,这一步与上述第一种情况的(1)中类似,本申请不再展开描述。
当确定最小生成树中存在相连的两个线网端点之间的距离超过节点距离阈值时,确定原始线网中的线网端点的分布离散程度达到预定离散程度。在执行最小生成树算法的过程中,除了可以得到各个线网端点的访问顺序之外,还会得到相连的两个线网端点之间的距离,因为最小生成树算法就是基于线网端点之间的距离来排序的。
这种情况下,按照预定裂分原则从原始线网中选取线网端点作为裂分点,包括:将与最小生成树中前一个相连的线网端点之间的距离超过节点距离阈值的线网端点作为裂分点、同时形成布局位置重合的虚拟漏端和虚拟源端,每一个待布线网包括裂分点与之前最近一个源端或虚拟源端之间的所有线网端点。
比如原始线网中包括1个源端和7个漏端共8个线网端点,在最小生成树算法执行过程中,初始化端点集合为空集,首先将源端放入端点集合中,在剩余的7个漏端中寻找与源端距离最近的漏端,假设漏端1与源端的距离最近且未超过节点距离阈值,则由此将漏端1放入端点集合中。从剩余的6个漏端中寻找与端点集合中的点(此时也即源端和漏端1)距离最近的漏端,假设漏端2与漏端1的距离最近且未超过节点距离阈值,则由此将漏端2放入端点集合中。如此依次操作,放入端点集合中的顺序即为线网端点的访问顺序,且可以确定每两个相连的线网端点之间的距离。假设由此得到的顺序依次表示为源端、漏端1、漏端2、漏端3……漏端7,其中漏端3与漏端2之间的距离超过节点距离阈值,漏端5和漏端4之间的距离超过节点距离阈值,则选取漏端3和漏端5分别作为裂分点,由此裂分得到的第一个待布线网包括源端、漏端1、漏端2和漏端3形成的虚拟漏端,第二个待布线网包括漏端3形成的虚拟源端、漏端4和漏端5形成的虚拟漏端,第三个待布线网包括漏端5形成的虚拟源端、漏端6和漏端7。
由于在得到访问顺序的过程中可以同步确定线网端点之间的距离,因此可以同步确定裂分点,比如上述过程中无需确定完整的访问顺序后才能选定漏端3和漏端5,而是可以在将漏端3放入端点集合中的同时,确定漏端3作为裂分点,继续执行方法,继而确定漏端5作为裂分点。
(2)对原始线网中的所有漏端的布局位置进行聚类,可以采用现有的各种聚类方法。当聚类形成至少两簇时,确定原始线网中的线网端点的分布离散程度达到预定离散程度,同一簇中的线网端点的布局位置较为靠近,而不同簇的线网端点之间的布局位置较为离散。如图3所示,圆形表示源端,方形表示漏端,原始线网中的漏端的布局位置聚类成3个簇,分别记为簇1、簇2和簇3,每个簇内的包含的漏端以虚线框出表示,一般情况下,漏端都是围绕源端的,由图3可以看出,可能会出现漏端围绕源端分布在不同的方向的情况。
在这种情况下,裂分得到的待布线网的数量通常与聚类形成的簇的数量相等,按照预定裂分原则从原始线网中选取线网端点作为裂分点的做法包括如下两种:
在一个实施例中,选取原始线网的源端作为裂分点、形成若干个布局位置重合的虚拟源端。如图3所示,源端裂分为3个布局位置重合的虚拟源端。每一个待布线网包括裂分点与聚类形成的一个簇内的所有漏端,也即若所有漏端的布局位置聚类形成T个簇时,则将源端裂分形成T个虚拟源端,每个虚拟源端分别对应一个簇,每个虚拟源端与对应的一个簇内的所有漏端形成一个待布线网,由此共形成T个待布线网,如图3示出了每个虚拟源端与对应的一个簇内的漏端的对应关系,示例性的示出了每个待布线网的布线示意图。在该实施例中,所有待布线网实际都以原始线网中的源端作为虚拟源端。
在另一个实施例中,由源端及其距离最近的一个簇内的所有漏端构成一个待布线网,源端与各个簇之间的距离,即为点到点集之间的距离,可以基于现有各种距离求取算法确定,本申请对此不限定。假设如图4中,源端与簇2的距离最近,则源端对应簇2形成一个待布线网。
选取已经构成的待布线网中与剩余的各个簇之间的距离最近的一个线网端点作为裂分点,也即分别计算已经构成的待布线网中的每个线网端点与剩余的每个簇之间的距离,选取确定其中距离最近的一组线网端点和簇的组合,将该组合中的线网端点作为裂分点,这个裂分点可能是源端也可能是已经构成的待布线网中的任意一个漏端。裂分点在布局位置处同时裂分形成已经构成的待布线网中的虚拟漏端以及剩余的距离最近的簇对应的虚拟源端,由形成的虚拟源端与剩余的距离最近的簇构成一个待布线网。假设在图4的举例中,计算确定簇2中的某个漏端与簇3的距离最近,则将簇2中的该漏端选为裂分点裂分为虚拟漏端和虚拟源端,如图4所示,裂分形成的虚拟源端及对应到其距离最近的簇3构成一个待布线网。继续上述过程,在下次时选出的裂分点是已构成的待布线网中的线网端点,则可能是源端,也可能是簇2中的漏端,也可能是簇3中的漏端,如此循环直至确定所有待布线网。图4示例性的示出了各个待布线网中的源端/虚拟源端与对应漏端的连线示意图。
3、当原始线网经过用户输入网表中的时序关键路径时,确定原始线网满足预设裂分条件。选取原始线网的源端作为裂分点、形成若干个布局位置重合的虚拟源端,由裂分点与每一个位于时序关键路径上的漏端分别构成一个待布线网,由裂分点与所有非位于时序关键路径上的漏端构成一个待布线网。
在这种情况中按照常规布线方法,可能会导致时序关键路径上的漏端需要经过较多的其他漏端才能连接到源端,导致延时较大,若要满足时序设计,后续还需要再进行调节。而本申请针对这种情况中,将时序关键路径上的每个漏端裂分出来独自与源端形成一个待布线网,这样可以使得时序关键路径上的漏端不经过其他漏端直接连接源端,这种裂分操作有利于优化时序,提高布线效率和性能。
4、原始线网中包括至少两种不同类型的漏端而涉及多种类型信号时。将属于同一类型的漏端构成一个集合,由源端及一个集合中的所有漏端构成一个待布线网,选取已经构成的待布线网中与剩余的各个集合之间的距离最近的一个线网端点作为裂分点,裂分点在布局位置处同时裂分形成已经构成的待布线网中的虚拟漏端以及剩余的距离最近的集合对应的虚拟源端,由形成的虚拟源端与剩余的距离最近的集合构成一个待布线网。
与上述情况3类似,但这种情况不是以漏端的布局位置对漏端进行聚类,而是以漏端的类型进行聚类,而首先选取与源端构成待布线网的集合对应的类型可以根据实际情况配置,一般是该原始线网中包含漏端数量最多的一个类型的集合。比如在一个举例中,原始线网为时钟线网时,大部分漏端为各个模块的时钟输入,也有一些漏端为查找表输入(以产生Gated Clock),则可以据此将漏端分为两类,一类即为接时钟输入的漏端,另一类为接查找表输入的漏端,则可以首先选取所有接时钟输入的漏端与源端构成待布线网,再从第一个形成的待布线网中选取裂分点形成虚拟源端与所有接查找表输入的漏端构成待布线网。这样当第二个形成的待布线网因冲突需要拆分重绕时,不影响第一个形成的待布线网,而由于第一个形成的待布线网中的漏端的数量较多,因此这种做法可以有效降低重布线耗时,提高重布线效率。
再比如,Set/Reset线网中大部分漏端为寄存器的Set/Reset输入,也有小部分漏端为查找表输入,则可以依据这两类漏端对原始线网裂分,由源端和所有连接寄存器的Set/Reset输入的漏端构成第一个待布线网,再从第一个形成的待布线网中选取裂分点形成虚拟源端与所有接查找表输入的漏端构成第二个待布线网。
本申请上述是对原始线网的每一种预设裂分条件及对应的预定裂分原则分别进行介绍,在实际应用时,原始线网可能同时满足上述一种或多种预设裂分条件,比如原始线网中线网端点的总数量超过第一预设阈值同时线网端点的分布离散程度达到预定离散程度,则可以首先按其中一种预设裂分条件对应的预定裂分原则进行裂分,有可能在裂分后同时解决了多种预设裂分条件对应的问题,比如在按照上述情况2对漏端的布局位置聚类成簇并裂分后,不仅使得每个待布线网的分布离散程度满足要求,也可以同时使得每个待布线网中的线网端点的总数量不超过第一预设阈值。或者,也有可能按其中一种预设裂分条件对应的预定裂分原则进行裂分后无法满足所有要求,比如上述举例中,可能每个待布线网中的线网端点的总数量仍然超过第一预设阈值,则此时还要同时结合情况1的预定裂分原则。因此,若原始线网满足多种预设裂分条件,实际可以看成是对上述多种预设裂分条件情况下的预定裂分原则的组合。
Claims (11)
1.一种通过裂分线网以提高布线效率的FPGA布线方法,其特征在于,所述方法包括:
对于用户输入网表中的每个原始线网,若基于原始线网的线网特征确定所述原始线网不满足预设裂分条件,则直接将原始线网作为待布线网;
若基于原始线网的线网特征确定所述原始线网满足预设裂分条件,则按照预定裂分原则从原始线网中选取线网端点作为裂分点、裂分形成布局位置重合的多个虚拟点,基于原始线网中的线网端点以及形成的虚拟点将所述原始线网裂分为若干个待布线网,共享同一个布局位置的多个虚拟点分别位于多个不同的待布线网中,线网端点包括源端及其分别相连的若干个漏端;
利用FPGA的可编程逻辑资源对用户输入网表中的各个待布线网进行布线得到子布线结果,将各个子布线结果合并得到对应于FPGA的全局布线结果。
2.根据权利要求1所述的方法,其特征在于,当确定原始线网中的线网端点的数量满足预设条件时,和/或,原始线网中的线网端点的分布离散程度达到预定离散程度时,和/或,原始线网经过用户输入网表中的时序关键路径时,和/或,原始线网中包括至少两种不同类型的漏端时,确定原始线网满足预设裂分条件。
3.根据权利要求2所述的方法,其特征在于,当确定原始线网中的线网端点的总数量超过第一预设阈值时,确定原始线网中的线网端点的数量满足预设条件,则所述按照预定裂分原则从原始线网中选取线网端点作为裂分点,包括:
对原始线网内部所有线网端点通过最小生成树算法形成线网端点依次相连的最小生成树,所述最小生成树反映对所述原始线网实施布线过程中从源端开始对各个线网端点的访问顺序,则按照所述访问顺序、选取从最近一个源端或虚拟源端开始的不超过K个线网端点处的线网端点作为裂分点、同时形成布局位置重合的虚拟漏端和虚拟源端,K为所述第一预设阈值,每一个待布线网包括裂分点与之前最近一个源端或虚拟源端之间的所有线网端点。
4.根据权利要求2所述的方法,其特征在于,当确定原始线网中存在至少一条直连路径中的线网端点的总数量超过第二预设阈值时,确定原始线网中的线网端点的数量满足预设条件,则所述按照预定裂分原则从原始线网中选取线网端点作为裂分点,包括:
对于包含的线网端点的总数量超过第二预设阈值的直连路径,选取源端作为裂分点、同时形成布局位置重合的多个虚拟源端,每个待布线网分别包含一个裂分点以及所述直连路径中按原连接顺序的P-1个漏端,P为第二预设阈值,其中直连路径是指从源端开始直至最末端的线网端点之间的路径,原连接顺序是从源端至最末端的线网端点的顺序。
5.根据权利要求2所述的方法,其特征在于,对原始线网内部所有线网端点通过最小生成树算法形成线网端点依次相连的最小生成树,所述最小生成树反映对所述原始线网实施布线过程中从源端开始对各个线网端点的访问顺序,当确定所述最小生成树中存在相连的两个线网端点之间的距离超过节点距离阈值时,确定原始线网中的线网端点的分布离散程度达到预定离散程度。
6.根据权利要求5所述的方法,其特征在于,所述按照预定裂分原则从原始线网中选取线网端点作为裂分点,包括:
将与所述最小生成树中前一个相连的线网端点之间的距离超过所述节点距离阈值的线网端点作为裂分点、同时形成布局位置重合的虚拟漏端和虚拟源端,每一个待布线网包括裂分点与之前最近一个源端或虚拟源端之间的所有线网端点。
7.根据权利要求2所述的方法,其特征在于,对原始线网中的所有漏端的布局位置进行聚类,当聚类形成至少两簇时,确定原始线网中的线网端点的分布离散程度达到预定离散程度。
8.根据权利要求7所述的方法,其特征在于,所述按照预定裂分原则从原始线网中选取线网端点作为裂分点,包括:
选取所述原始线网的源端作为裂分点、形成若干个布局位置重合的虚拟源端,每一个待布线网包括裂分点与聚类形成的一个簇内的所有漏端;
或者,由源端及其距离最近的一个簇内的所有漏端构成一个待布线网,选取已经构成的待布线网中与剩余的各个簇之间的距离最近的一个线网端点作为裂分点,裂分点在布局位置处同时裂分形成已经构成的待布线网中的虚拟漏端以及剩余的距离最近的簇对应的虚拟源端,由形成的虚拟源端与剩余的距离最近的簇构成一个待布线网。
9.根据权利要求2所述的方法,其特征在于,当原始线网中包括至少两种不同类型的漏端时,所述按照预定裂分原则从原始线网中选取线网端点作为裂分点,包括:
将属于同一类型的漏端构成一个集合,由源端及一个集合中的所有漏端构成一个待布线网,对于其他每一个集合,选取已经构成的待布线网中与当前集合距离最近的线网端点作为裂分点、同时形成裂分点所在待布线网内的虚拟漏端、以及当前集合对应的虚拟源端,由虚拟源端及当前集合内的漏端构成一个待布线网。
10.根据权利要求2所述的方法,其特征在于,当原始线网经过用户输入网表中的时序关键路径时,所述按照预定裂分原则从原始线网中选取线网端点作为裂分点,包括:
选取所述原始线网的源端作为裂分点、形成若干个布局位置重合的虚拟源端,由裂分点与每一个位于时序关键路径上的漏端分别构成一个待布线网,由裂分点与所有非位于时序关键路径上的漏端构成一个待布线网。
11.根据权利要求1所述的方法,其特征在于,在进行迭代的过程中,以待布线网为最小单位拔除并进行重绕线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111551570.6A CN114297959A (zh) | 2021-12-17 | 2021-12-17 | 通过裂分线网以提高布线效率的fpga布线方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111551570.6A CN114297959A (zh) | 2021-12-17 | 2021-12-17 | 通过裂分线网以提高布线效率的fpga布线方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114297959A true CN114297959A (zh) | 2022-04-08 |
Family
ID=80966724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111551570.6A Pending CN114297959A (zh) | 2021-12-17 | 2021-12-17 | 通过裂分线网以提高布线效率的fpga布线方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114297959A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115204103A (zh) * | 2022-09-19 | 2022-10-18 | 中科亿海微电子科技(苏州)有限公司 | 基于cb分类的快速布线方法及装置 |
-
2021
- 2021-12-17 CN CN202111551570.6A patent/CN114297959A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115204103A (zh) * | 2022-09-19 | 2022-10-18 | 中科亿海微电子科技(苏州)有限公司 | 基于cb分类的快速布线方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9860180B2 (en) | Multi-level flow table search method and apparatus | |
CN109710981B (zh) | Fpga的布线方法及系统 | |
CN109451540B (zh) | 一种网络切片的资源分配方法和设备 | |
CN111709205A (zh) | Fpga布线方法 | |
CN114297959A (zh) | 通过裂分线网以提高布线效率的fpga布线方法 | |
CN113919272A (zh) | 利用空置逻辑资源来提升布线效率的fpga布线方法 | |
US6766502B1 (en) | Method and apparatus for routing using deferred merging | |
CN116738925B (zh) | 一种fpga详细布局方法及系统 | |
US11630479B2 (en) | Apparatus for adjusting skew of circuit signal and adjusting method thereof | |
US11665776B2 (en) | System and method for synthesis of a network-on-chip for deadlock-free transformation | |
CN116882359A (zh) | 一种传播式分割方法及装置、电子设备、介质 | |
CN111062180B (zh) | 一种fpga布线方法及装置 | |
CN116401992A (zh) | 一种节点路由路径优化方法及装置 | |
Silva et al. | Communication latency evaluation on a software-defined network-on-chip | |
CN110543664B (zh) | 一种面向具有特有结构fpga的工艺映射方法 | |
CN114169277A (zh) | 通过部分重绕线解决资源冲突的fpga布线方法 | |
CN114996199A (zh) | 众核的路由映射方法、装置、设备及介质 | |
CN112783673A (zh) | 一种调用链的确定方法、装置、计算机设备及存储介质 | |
CN105302947A (zh) | 基于扇圆的多扇出路径的中继器插入方法 | |
CN113919270A (zh) | 通过对线网目的点排序以提高效率的fpga布线方法 | |
CN113919273A (zh) | 一种减少布线图占用内存的fpga布线方法 | |
CN112183006A (zh) | 时延评估方法及装置、可读存储介质 | |
CN116029251B (zh) | 基于电路性能均衡化的电路布线优化方法及装置 | |
JP2575564B2 (ja) | 自動マクロ最適順序化方法 | |
CN118095170A (zh) | 一种系统级布线的处理方法及装置 |
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 |