CN117240777A - 一种基于递归分治法的全局信号路由方法 - Google Patents
一种基于递归分治法的全局信号路由方法 Download PDFInfo
- Publication number
- CN117240777A CN117240777A CN202311142693.3A CN202311142693A CN117240777A CN 117240777 A CN117240777 A CN 117240777A CN 202311142693 A CN202311142693 A CN 202311142693A CN 117240777 A CN117240777 A CN 117240777A
- Authority
- CN
- China
- Prior art keywords
- routing
- nodes
- group
- path
- die
- 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
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000006855 networking Effects 0.000 claims abstract description 35
- 238000012163 sequencing technique Methods 0.000 claims abstract description 4
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 10
- 238000012795 verification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012884 algebraic function Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于递归分治法的全局信号路由方法,包括:对用户设计进行超图建模,以构建信号Die级别的路由组网模型;获取每个信号的负载节点所处Die的位置,并按照信号负载节点所占用Die的数量进行排序;对当前信号的所有节点进行递归分组,直至每个分组内的节点数小于或等于两个;对每组内的节点按照路径代价最小原则进行路径选择;依据递归分组的逆方向,对分组后各组逐层确定组间的路由路径,进而获得当前信号的路由路径;根据当前信号的路由路径,对Die级别的路由代价进行更新;按照顺序依次对所有信号进行路径选择。本发明使用递归分治的方法,在进行多点之间选代价最小的路由路径的时候,提升处理速度,同时又保持了较低的路径代价。
Description
技术领域
本发明属于电路设计技术领域,具体涉及一种基于递归分治法的全局信号路由方法。
背景技术
随着用户设计电路规模的不断增大,验证电路设计需要多颗FPGA协同工作,对于超大规模的设计,有些需要上百颗大容量FPGA验证。FPGA之间通过线缆以一定的连接关系进行连接,原型验证系统的组网连接信息包括FPGA之间是否存在线缆(物理介质)以及线缆的数量。
用户设计进行FPGA级的分割,是指将用户设计分割为指定数量的子部分并分别下载到FPGA中。在现有技术中,分割到FPGA级已经逐渐不能满足验证系统的精细化操作和高性能需求,进而逐渐流行的技术是进一步将FPGA中的用户设计分割到SLR(Super LogicRegion,超级逻辑区域)单元中。FPGA内部常常由几颗SLR单元组成,SLR也称为Die。
也就是说,用户设计先进行FPGA级别的分割,再分别对每个FPGA内部的用户设计部分进行更加细节的Die级分割。与该分割流程相适应的信号路由过程(即路径选择过程),也是分两级进行的,即先进行FPGA级的系统路由,再针对每对FPGA之间进行Die级局部路由。路由过程即路径选择,依赖于组网的连接关系,因为组网连接关系决定了哪些FPGA之间(更细节到哪些Die之间)存在线缆可以传递信号。分两级进行路由的缺陷是不能够进行全局Die级路由,而导致Die和FPGA之间的布线资源的使用增加,同时由于路由路径变长,导致信号的延时增加,从而影响验证系统的时序性能,导致系统频率的降低。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于递归分治法的全局信号路由方法。本发明要解决的技术问题通过以下技术方案实现:
本发明提供了一种基于递归分治法的全局信号路由方法,包括:
S1:对用户设计进行超图建模并设置Die级别的初始路由代价,以构建信号Die级别的路由组网模型;
S2:获取每个信号的负载节点所处Die的位置,并按照信号负载节点所占用Die的数量对所有信号进行排序;
S3:依据节点在所述路由组网模型中的跳转距离,对当前信号的所有节点进行递归分组,直至每个分组内的节点数小于或等于两个;
S4:对分组后每组内的节点按照路径代价最小原则进行路径选择,确定组内节点之间的路由路径;
S5:依据递归分组的逆方向,对分组后各组按照路径代价最小原则逐层确定组间的路由路径,进而获得当前信号的路由路径;
S6:根据所确定的当前信号的路由路径,对所述Die级别的路由代价进行更新;
S7:按照信号负载节点所占用Die的数量从大到小的顺序依次对所有信号进行路径选择。
在本发明的一个实施例中,所述S1包括:
S1.1:解析用户设计,将用户设计中的电路逻辑单元进行划分并分割至不同FPGA的不同Die上;
S1.2:设置同一FPGA中相邻Die之间的初始路由代价以及位于不同FPGA之间具有连接关系的Die之间的初始路由代价,从而形成Die级别的路由组网模型,所述路由组网模型包括信号的驱动节点和负载节点的位置信息以及Die之间的代价信息。
在本发明的一个实施例中,所述S2包括:
S2.1:获取设计电路中每个信号的负载节点数量并确定每个负载节点所处Die的位置,并统计每个信号的负载节点所占用的Die的数量;
S2.2:按照每个信号的负载节点所占用的Die的数量从大到小的顺序对所有信号进行排序。
在本发明的一个实施例中,所述S3包括:
对同一信号位于同一Die上的节点进行节点合并;
将当前信号的节点进行递归分组,每次分成两组,对分组后的各组继续分为两组,直至每个组内的节点数量小于或等于2个,分组方式为:
依据节点在所述路由组网模型中的跳转距离,计算每个节点与其他节点的跳转距离,根据所述跳转距离进行分组,使得分组后各组内节点之间跳转距离两两之和最小,满足:
其中,n1表示当前次分组后第一组的节点个数,n2表示当前次分组后第二个组的节点个数,shortest_distance表示两个节点之间的最短距离,nodei表示节点i,nodej表示节点j。
在本发明的一个实施例中,所述S4包括:
对分组后每组内的节点,对于当前组内节点数量是1的组不处理;对于当前组内节点数量是2的组,在所述路由组网模型中选取路径代价总和最小的路径将组内两个节点连接起来,作为当前组内的路径选择结果。
在本发明的一个实施例中,在步骤S5中,对于待进行路径选择的组A和组B,首先分别获取组A和组B的途径点,所述途径点包括组内信号所在的die以及进行组内路由选择后途径的Die;寻找组A中每个途径点到达组B的任意一个途径点的路径代价,取路径代价值最小的途径点和对应的路径作为组A和组B之间的路由路径。
在本发明的一个实施例中,在步骤S6中,同一FPGA中相邻Die之间的路由代价的更新公式为:
若sll_used<sll_thr
若sll_used>=sll_thr
其中,sll_thr表示设置的SLL阈值百分比,sll_used表示同一FPGA中相邻Die之间SLL的实际使用量,num_sll表示同一FPGA中相邻Die之间SLL的数量,Lengh_sll表示同一FPGA中相邻Die之间SLL的长度,cost_sll表示同一FPGA中相邻Die之间的路由代价,k为大于1的可调参数。
在本发明的一个实施例中,在步骤S6中,位于不同FPGA之间具有连接关系的Die之间路由代价的更新公式为:
其中,Lengh_wire表示当前FPGA之间的线缆长度,num_wire表示当前FPGA之间线缆的数量,wire_used表示当前FPGA之间目前已经使用的线缆数量,a、b、c为大于1的可调参数。
在本发明的一个实施例中,所述S7包括:
在获得当前信号的路由路径之后,根据当前信号的路由路径,更新所述路由组网模型中的参数:同一FPGA中相邻Die之间SLL的实际使用量sll_used以及当前FPGA之间目前已经使用的线缆数量wire_used;进而分别更新同一FPGA中相邻Die之间的路由代价以及位于不同FPGA之间具有连接关系的Die之间的路由代价。
与现有技术相比,本发明的有益效果有:
1、本发明提出一种基于递归分治法的全局信号路由方法,早期安排负载节点占用不同die数量多的信号首先进行路径选择,并对同一个信号中被分割到同一个Die中的负载节点进行节点合并的预处理,依据跳跃距离,对任意信号的驱动节点和负载节点递归分组。把小组内节点之间的连线路径先确定,然后逆着递归拆解的方向,将各个小组之间的路由路径进行确定,最终完成该信号所有节点之间的路径选择。路径选择的方法步骤清晰,易于实现。
2、现有技术大多选用先拆分信号再路由的方式以提升速度,但是拆分信号会引入更大的代价;而在现有技术在进行多点之间选代价最小的路由路径的时候,运行速度又变得非常慢,因为这是一个更复杂的问题,本发明使用递归分治的方法,巧妙、灵活地化解问题,使大问题变小问题,统一各个小问题处理方法和各个问题的解拼接方法,高效简易,因而在进行多点之间选代价最小的路由路径的时候,处理速度得到了极大的提升,同时又保持了较低的代价。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例提供的一种基于递归分治法的全局信号路由方法的流程图;
图2是本发明实施例提供的一种代价考虑因素示意图;
图3是本发明实施例提供的一种Die级别的路由组网模型的简单示意图;
图4是本发明实施例提供的一种信号各节点位置示意图;
图5是本发明实施例提供的一种递归分组中的第一次分组示意图;
图6是本发明实施例提供的一种递归分组中的第二次分组示意图;
图7是本发明实施例提供的一种组内节点路由选择示意图;
图8是本发明实施例提供的一种组间节点路由选择示意图;
图9是本发明实施例提供的另一种组间节点路由选择示意图。
具体实施方式
为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对依据本发明提出的基于递归分治法的全局信号路由方法进行详细说明。
有关本发明的前述及其他技术内容、特点及功效,在以下配合附图的具体实施方式详细说明中即可清楚地呈现。通过具体实施方式的说明,可对本发明为达成预定目的所采取的技术手段及功效进行更加深入且具体地了解,然而所附附图仅是提供参考与说明之用,并非用来对本发明的技术方案加以限制。
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
请参见图1,图1是本发明实施例提供的一种全局信号路由方法的流程图。该全局信号路由方法包括:
S1:对用户设计进行超图建模并获得Die级别的初始路由代价,以构建信号Die级别的路由组网模型。
在本实施例中,步骤S1具体包括:
S1.1:解析用户设计,将用户设计中的电路逻辑单元进行划分并分割至不同FPGA的不同Die上。
超图建模是一种将用户设计中的电路模块抽象为节点,模块之间的连线抽象为边的通用技术,目的是抽象处理对象,易于操作;分割是把以超图表示的用户设计分成不同部分,每一部分分别放置在不同的Die中的通用技术,该技术通常以最小化Die之间的代价为目标,分割过程后,可以得到每个节点(包括信号的驱动节点和负载节点)所在Die的位置。在本实施例中,这一过程采用现有方法执行,这里不再赘述。
S1.2:获得同一FPGA中相邻Die之间的初始路由代价以及位于不同FPGA之间具有连接关系的Die之间的初始路由代价,从而形成Die级别的路由组网模型,所述路由组网模型包括信号的驱动节点和负载节点的位置信息以及Die之间的代价信息。
请参见图2,图2是本发明实施例提供的一种代价考虑因素示意图。在同一颗FPGA中,相邻Die之间的连接资源被称为SLL(Super Long Line,超长线),假设相邻Die之间SLL的数量为num_sll,相邻Die之间SLL的长度为Lengh_sll,如果SLL资源使用超过限制将导致布线失败,因此在此设置一个SLL阈值百分比sll_thr,该SLL阈值百分比为SLL使用量超限的一个预警值,通常为当前相邻Die之间SLL数量的70%-80%,如果SLL实际使用量sll_used超过该SLL阈值百分比,则存在布线失败的可能,因此本实施例在定义同一FPGA中相邻Die之间的路由代价时采用如下公式:
若sll_used<sll_thr
若sll_used>=sll_thr
其中,cost_sll为同FPGA中相邻Die之间的代价,sll_usd为同一FPGA中相邻Die之间SLL的实际使用量,k为大于1的可调参数。在开始进行某个信号的路径选择时,由于sll_usd=0,则根据上述公式可以得到同一FPGA中相邻Die之间的初始路由代价cost_sll=0。也就是说,在本实施例中,设定同一FPGA中相邻Die之间的初始路由代价为0。
这样计算路由代价的好处在于,当SLL使用量超过报警值后,该处的路由代价将以代数函数的形式阶跃增长,以此来逼迫后续路由信号尽量避免选择该处通过,以减少该处SLL资源的继续耗用。
对于Die内部的布线资源,因其数量巨大且延时时间要比FPGA之间的线缆以及相邻Die之间的连接资源SLL要小得多,同时在Die内部的布线资源耗尽前,一般SLL会先耗尽,综上,在本实施例中可以设置Die内部的路由代价为0,但是需要说明的是,在其他的应用场景中,也可以为每个Die内部定义其大于0的路由代价C,因为本实施例的路由方案也可以应对当此处代价不为0的情况。
进一步地,FPGA之间的线缆(wire)一般长度较长,可达几十厘米,因此其具有最大的延时时间,同时由于线缆本身的半径、FPGA上的pin脚数量以及FPGA尺寸的限制,通常情况下FPGA之间的线缆数量很少,由此,它成为路由过程中最为紧缺的路由资源。
在本实施例中,位于不同FPGA之间具有连接关系的Die之间路由代价的计算公式为:
其中,Lengh_wire表示当前FPGA之间的线缆长度,num_wire表示当前FPGA之间线缆的数量,wire_used表示当前FPGA之间目前已经使用的线缆数量,a、b、c为大于1的可调参数。在开始进行某个信号的路径选择时,由于wire_used=0,则根据上述公式可以得到位于不同FPGA之间具有连接关系的Die之间的初始路由代价cost_wire=c。也就是说,在本实施例中,设定同一FPGA中相邻Die之间的初始路由代价为c。
根据上述路由代价的定义,可以得到Die级别的路由组网模型,即完成了建模。请参见图3,图3是本发明实施例提供的一种Die级别的路由组网模型的简单示意图,其中,每个灰色方框表示一个Die,Die之间的连线表示Die之间的SLL资源或线缆,每个SLL资源或线缆均存在对应的路由代价,例如C1-C15。由上文可知,Die级别路由将直接在全局的Die级连接关系上进行建模,即整个Die级别的路由组网模型完全由Die以及Die与Die之间的连接关系表示,该路由组网模型既能表达出组网在Die级的连接关系,又能用统一的代价来衡量每个die和每条路径的布线难易程度。需要说明的是,图3只是Die级别的路由组网模型的简单示意图,实际中一个用户设计电路的信号的Die级别的路由组网模型可能包括大量的Die,且存在复杂的连接关系。S2:获取每个信号的负载节点所处Die的位置,并按照信号负载节点所占用Die的数量对所有信号进行排序。
在实际中,一个用户设计电路中需要进行路由的信号数量可能达到几万、几百万、甚至更高,每个信号都仅包含一个驱动节点,但是可能包含数量不等的负载节点,并且不同信号的驱动节点和负载节点可能处于不同的Die上。
在本步骤中,获取设计电路中每个信号的负载节点数量并确定每个负载节点所处Die的位置,并统计每个信号的负载节点所占用的Die的数量;按照每个信号的负载节点所占用的Die的数量从大到小的顺序对所有信号进行排序。也就是说,遍历所有N个信号,按照信号的负载节点所处不同Die的数量进行排序,信号负载节点所处不同Die数量多的信号排在最前面,随后按照前后顺序依次进行路由选择。
先安排负载节点所处不同Die数量多的信号进行路由选择,因为这样的信号路由路径所覆盖的区域会更大,花费的路由代价本身就会更高,且路由难度更大,因此要趁组网模型中拥挤程度不高的早期进行最佳路线的路由。请参见图4,图4是本发明实施例提供的一种信号各节点位置示意图。该信号的驱动节点为S,负载节点有五个,分别为a,b,c,d,e,负载节点所处的不同Die的数量为4,分别为Die8(d),Die9(a,b),Die10(e)和Die12(c)。
S3:依据节点在所述路由组网模型中的跳转距离,对当前信号的所有节点进行递归分组,直至每个分组内的节点数小于或等于两个,所述节点包括驱动节点和负载节点。
在本步骤中,首先对同一信号位于同一Die上的节点进行节点合并。具体地,对同一信号中被分割至同一个Die中的负载节点进行节点合并的预处理,这是因为在路径选择过程中,所处同一Die中的节点只需要路由一个节点就能够推断出其他节点的路由方法,因此合并后再进行路径选择会简化路由过程,降低路由复杂度,加快处理时间。如图4中a,b节点所示,虚线代表将这两个点合并。本实施例将合并后的节点称为{a-b}。在图4的示例中同一个Die上只有两个负载节点,实际上有多少个在同一个Die中的负载节点就合并多少。
对要进行路径选择的当前信号的驱动节点和负载节点进行递归分组,每次分成两组,请参见图5,图5是本发明实施例提供的一种递归分组中的第一次分组示意图。如图所示,在第一次分组时,将s,{a-b},c,d,e分成两组,此时{a-b}算一个节点,两组的节点数量要么相等,要么相差1个。因为采用的是递归分组,因此随后对分组后的各组继续进行分组,直到一个分组内的节点数量小于等于2个为止。示例性地,假设第一次分成(s,d)和({a-b},c,e)这样的两组,那么由于(s,d)组内只有两个节点了,因此已经不用分组了,({a-b},c,e)需要再进行分组,如将({a-b},c,e)分成({a-b},e)和(c)。
那么,在每次进行一分为二的分组过程中,选择哪些节点分在一组呢?本实施例是依据节点在组网模型中的跳转距离(Hop距离),每经过一个Die距离+1,计算每个节点到其他节点的最短距离,例如,节点s到节点d经过两个Die,因此节点s到节点d的跳转距离为2;节点{a-b}到节点c经过两个Die,因此节点{a-b}到节点c的跳转距离为2,根据此方式即可获得当前信号中每个节点与其他节点的跳转距离,进而获得当前节点到其他节点的最短距离。
随后根据所述跳转距离进行分组,使得分组后各组内节点之间跳转距离两两之和最小,也就是最小化以下总和的分组结果:
其中,n1表示当前次分组后第一组的节点个数,n2表示当前次分组后第二个组的节点个数,shortest_distance表示两个节点之间的最短距离,modei表示节点i,nodej表示节点j。该做法的目的是将分布相对集中的节点分为一组。
需要说明的是,在本步骤中,分组是针对某一个信号的,如图6所示,可以看到一个信号被逐层一分为二拆解成不同的子部分,这个逐层拆解的过程就是递归分组。最后每个部分要么只有一个节点,要么有两个节点,接下来要先处理每个分组的内部的路径选择,即把小组内节点之间的连线路径先确定,然后再逆着递归拆解的方向,将各个小组之间的路由路径确定,最终完成该信号所有节点之间的路由路径选择,这就是分治处理的思想,把大问题逐步拆解成小问题,处理问题,拼接小问题的解,最终得到整个大问题的解,这样做简化了问题的处理。
S4:对分组后每组内的节点按照路径代价最小原则进行路径选择,确定组内节点之间的路由路径。
如上所述,对分组后每组内的节点,对于当前组内节点数量是1的组不处理;对于当前组内节点数量是2的组,在所述路由组网模型中选取路径代价总和最小的路径将组内两个节点连接起来,作为当前组内的路径选择结果,请参见图7,图7是本发明实施例提供的一种组内节点路由选择示意图。在上步骤中,将图4所示的信号最终分为了三个小组,其中,s,d为一组,{a-b},e为一组,c为一组。在本步骤中,按照路由代价最小原则,对s,d组和{a-b},e组分别进行组内路径选择,如图7所示。
S5:依据递归分组的逆方向,对分组后各组按照路径代价最小原则逐层确定组间的路由路径,进而完成当前信号的路径选择。
在本步骤中,将各组按照递归分组的逆方向,确定组间的路由路径。上述示例中递归分组的顺序是(s,d,a-b,c,e)->(s,d)+({a-b},c,e)->(s,d)+({a-b},e)+(c),那么现在我们已经从步骤S4中知道了各小组内是如何进行路径选择的,现在需要确定组间如何进行路径选择,路径选择的顺序是分组的逆方向,即先进行组(a-b,e)与组(c)之间的路径选择,然后再进行组(s,d)与组(a-b,c,e)之间的路径选择,按照这样的逆向、分层次进行。
示例性地,有组A和组B之间需要进行路径选择,首先分别获取组A和组B的途径点,所述途径点包括组内信号所在的die以及进行组内路由选择后途径的Die,如图7所示,对于(s,d)组,该组节点所在的Die为Die3和Die8,它们组内的路由路径经过了Die7,因此Die3、Die7和Die8均为组A的途径点。同理,组B(a-b,c,e)的途径点为Die9,Die10和Die12。遍历组A的途径点,寻找组A中每个途径点到达组B的任意一个途径点的路径代价,取路径代价值最小的途径点和对应的路径作为组A和组B之间的路由路径。如图8所示,遍历Die3、Die7、Die8,分别寻找与组B途径节点的最短代价路径,经过比较后发现Die7经过如图路线到达Die9的路径代价最小,则可以获得这两个组之间的最短路径就是上述路径。
类似地,再进行组(s,d)与组(a-b,c,e)之间的路径选择,即选择组(s,d)内的每个节点与组(a-b,c,e)的任意一个途径点的路径代价,取路径代价值最小的途径点和对应的路径作为组(s,d)与组(a-b,c,e)之间的路由路径,如图9所示。
S6:根据所确定的当前信号的路由路径,对所述Die级别的路由代价进行更新。
具体地,在获得当前信号的路由路径之后,根据当前信号的路由路径,更新所述路由组网模型中的下述参数:同一FPGA中相邻Die之间SLL的实际使用量sll_used以及当前FPGA之间目前已经使用的线缆数量wire_used;进而分别代入上述路由代价的计算公式(1)(2)(3)中更新当前同一FPGA中相邻Die之间的路由代价以及位于不同FPGA之间具有连接关系的Die之间的路由代价。
S7:按照信号负载节点所占用Die的数量从大到小的顺序,重复步骤S3-S6,依次对所有信号进行路径选择。
如步骤S2所示,按照每个信号的负载节点所占用的Die的数量从大到小的顺序对所有信号进行排序,在进行信号的路径选择时,根据该顺序从前到后依次进行路径选择,并且在每个信号的路由路径确定后,对路由组网模型中所包括的所有连线的路径代价进行更新,随后再对下一个信号进行路径选择,依次重复迭代,直至完成所有信号的路径选择。
本发明提出一种基于递归分治法的全局信号路由方法,早期安排负载节点占用不同die数量多的信号首先进行路径选择,并对同一个信号中被分割到同一个Die中的负载节点进行节点合并的预处理,依据跳跃距离,对任意信号的驱动节点和负载节点递归分组。把小组内节点之间的连线路径先确定,然后逆着递归拆解的方向,将各个小组之间的路由路径进行确定,最终完成该信号所有节点之间的路径选择。路径选择的方法步骤清晰,易于实现。
现有技术大多选用先拆分信号再路由的方式以提升速度,但是拆分信号会引入更大的代价;而在现有技术在进行多点之间选代价最小的路由路径的时候,运行速度又变得非常慢,因为这是一个更复杂的问题,本发明使用递归分治的方法,巧妙、灵活地化解问题,使大问题变小问题,统一各个小问题处理方法和各个问题的解拼接方法,高效简易,因而在进行多点之间选代价最小的路由路径的时候,处理速度得到了极大的提升,同时又保持了较低的代价。
本发明的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于执行上述实施例中所述基于递归分治法的全局信号路由方法的步骤。本发明的再一方面提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上述实施例所述基于递归分治法的全局信号路由方法的步骤。具体地,上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random AccessMemory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (9)
1.一种基于递归分治法的全局信号路由方法,其特征在于,包括:
S1:对用户设计进行超图建模并设置Die级别的初始路由代价,以构建信号Die级别的路由组网模型;
S2:获取每个信号的负载节点所处Die的位置,并按照信号负载节点所占用Die的数量对所有信号进行排序;
S3:依据节点在所述路由组网模型中的跳转距离,对当前信号的所有节点进行递归分组,直至每个分组内的节点数小于或等于两个;
S4:对分组后每组内的节点按照路径代价最小原则进行路径选择,确定组内节点之间的路由路径;
S5:依据递归分组的逆方向,对分组后各组按照路径代价最小原则逐层确定组间的路由路径,进而获得当前信号的路由路径;
S6:根据所确定的当前信号的路由路径,对所述Die级别的路由代价进行更新;
S7:按照信号负载节点所占用Die的数量从大到小的顺序依次对所有信号进行路径选择。
2.根据权利要求1所述的基于递归分治法的全局信号路由方法,其特征在于,所述S1包括:
S1.1:解析用户设计,将用户设计中的电路逻辑单元进行划分并分割至不同FPGA的不同Die上;
S1.2:设置同一FPGA中相邻Die之间的初始路由代价以及位于不同FPGA之间具有连接关系的Die之间的初始路由代价,从而形成Die级别的路由组网模型,所述路由组网模型包括信号的驱动节点和负载节点的位置信息以及Die之间的代价信息。
3.根据权利要求1所述的基于递归分治法的全局信号路由方法,其特征在于,所述S2包括:
S2.1:获取设计电路中每个信号的负载节点数量并确定每个负载节点所处Die的位置,并统计每个信号的负载节点所占用的Die的数量;
S2.2:按照每个信号的负载节点所占用的Die的数量从大到小的顺序对所有信号进行排序。
4.根据权利要求1所述的基于递归分治法的全局信号路由方法,其特征在于,所述S3包括:
对同一信号位于同一Die上的节点进行节点合并;
将当前信号的节点进行递归分组,每次分成两组,对分组后的各组继续分为两组,直至每个组内的节点数量小于或等于2个,分组方式为:
依据节点在所述路由组网模型中的跳转距离,计算每个节点与其他节点的跳转距离,根据所述跳转距离进行分组,使得分组后各组内节点之间跳转距离两两之和最小,满足:
其中,n1表示当前次分组后第一组的节点个数,n2表示当前次分组后第二个组的节点个数,shortest_distance表示两个节点之间的最短距离,modei表示节点i,nodej表示节点j。
5.根据权利要求4所述的基于递归分治法的全局信号路由方法,其特征在于,所述S4包括:
对分组后每组内的节点,对于当前组内节点数量是1的组不处理;对于当前组内节点数量是2的组,在所述路由组网模型中选取路径代价总和最小的路径将组内两个节点连接起来,作为当前组内的路径选择结果。
6.根据权利要求1所述的基于递归分治法的全局信号路由方法,其特征在于,在步骤S5中,对于待进行路径选择的组A和组B,首先分别获取组A和组B的途径点,所述途径点包括组内信号所在的die以及进行组内路由选择后途径的Die;寻找组A中每个途径点到达组B的任意一个途径点的路径代价,取路径代价值最小的途径点和对应的路径作为组A和组B之间的路由路径。
7.根据权利要求1所述的基于递归分治法的全局信号路由方法,其特征在于,在步骤S6中,同一FPGA中相邻Die之间的路由代价的更新公式为:
若sll_used<sll_thr
若sll_used>=sll_thr
其中,sll_thr表示设置的SLL阈值百分比,sll_used表示同一FPGA中相邻Die之间SLL的实际使用量,num_sll表示同一FPGA中相邻Die之间SLL的数量,Lengh_sll表示同一FPGA中相邻Die之间SLL的长度,cost_sll表示同一FPGA中相邻Die之间的路由代价,k为大于1的可调参数。
8.根据权利要求1所述的基于递归分治法的全局信号路由方法,其特征在于,在步骤S6中,位于不同FPGA之间具有连接关系的Die之间路由代价的更新公式为:
其中,Lengh_wire表示当前FPGA之间的线缆长度,num_wire表示当前FPGA之间线缆的数量,wire_used表示当前FPGA之间目前已经使用的线缆数量,a、b、c为大于1的可调参数。
9.根据权利要求2至8中任一项所述的基于递归分治法的全局信号路由方法,其特征在于,所述S7包括:
在获得当前信号的路由路径之后,根据当前信号的路由路径,更新所述路由组网模型中的参数:同一FPGA中相邻Die之间SLL的实际使用量sll_used以及当前FPGA之间目前已经使用的线缆数量wire_used;进而分别更新同一FPGA中相邻Die之间的路由代价以及位于不同FPGA之间具有连接关系的Die之间的路由代价。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311142693.3A CN117240777A (zh) | 2023-09-05 | 2023-09-05 | 一种基于递归分治法的全局信号路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311142693.3A CN117240777A (zh) | 2023-09-05 | 2023-09-05 | 一种基于递归分治法的全局信号路由方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117240777A true CN117240777A (zh) | 2023-12-15 |
Family
ID=89083663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311142693.3A Pending CN117240777A (zh) | 2023-09-05 | 2023-09-05 | 一种基于递归分治法的全局信号路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117240777A (zh) |
-
2023
- 2023-09-05 CN CN202311142693.3A patent/CN117240777A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11100266B2 (en) | Generating integrated circuit floorplans using neural networks | |
CN111062467B (zh) | 一种应用于ai异构编译器的自动切分神经网络子图方法 | |
CN112288347A (zh) | 冷链配送的路线确定方法、装置、服务器及存储介质 | |
CN116166405B (zh) | 异构场景下的神经网络任务调度策略确定方法及装置 | |
CN106033425A (zh) | 数据处理设备和数据处理方法 | |
CN112561051A (zh) | 一种对深度学习模型进行并行处理的方法及装置 | |
CN114997088A (zh) | 一种布线和tdm比率快速优化方法 | |
CN112001491A (zh) | 针对处理器确定神经网络架构的搜索方法和装置 | |
CN114723014A (zh) | 张量切分模式的确定方法、装置、计算机设备及介质 | |
CN113886092A (zh) | 一种计算图执行方法、装置及相关设备 | |
CN115668074A (zh) | 生产过程的建模和仿真方法及装置 | |
CN114757244A (zh) | 模型训练方法、装置、存储介质及设备 | |
CN117240777A (zh) | 一种基于递归分治法的全局信号路由方法 | |
US7356519B1 (en) | Method and system for solving satisfiability problems | |
US9367937B2 (en) | Apparatus and method for effective graph clustering of probabilistic graphs | |
Martin et al. | An adaptive sequential decision making flow for FPGAs using machine learning | |
CN116933841A (zh) | 算子融合方法及装置、电子设备、计算机可读介质 | |
CN117294641A (zh) | 一种基于概率代价的全局信号路由方法 | |
CN109981361B (zh) | 一种传播网络中感染源的确定方法及装置 | |
CN112948087A (zh) | 一种基于拓扑排序的任务调度方法及系统 | |
CN114615146A (zh) | 软件定义网络sdn控制器部署方法、装置、设备及存储介质 | |
CN115965070B (zh) | 计算图处理方法、装置、设备、存储介质以及程序产品 | |
CN118378074B (zh) | 一种稀疏矩阵求解过程中进行排序算法调度的方法及系统 | |
CN112486615B (zh) | 基于拓扑路径的决策流执行方法、装置、设备及存储介质 | |
US20220391555A1 (en) | Method and tool for designing a complex system |
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 |