CN117294641A - 一种基于概率代价的全局信号路由方法 - Google Patents
一种基于概率代价的全局信号路由方法 Download PDFInfo
- Publication number
- CN117294641A CN117294641A CN202311140238.XA CN202311140238A CN117294641A CN 117294641 A CN117294641 A CN 117294641A CN 202311140238 A CN202311140238 A CN 202311140238A CN 117294641 A CN117294641 A CN 117294641A
- Authority
- CN
- China
- Prior art keywords
- path
- cost
- node
- sll
- routing
- 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 47
- 230000006855 networking Effects 0.000 claims abstract description 33
- 238000013461 design Methods 0.000 claims abstract description 25
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 9
- 238000012795 verification Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/14—Routing performance; Theoretical aspects
-
- 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
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于概率代价的全局信号路由方法,包括:对用户设计进行超图建模,以构建信号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之间布线资源的使用增加,同时由于路由路径变长,导致信号的延时增加,从而影响验证系统的时序性能,导致系统频率的降低。
FPGA级别的系统路由决定信号在FPGA级别是如何传递的,如图1所示,s节点如果想传递信号给a节点,可以通过FPGA1-FPGA3-FPGA5或者FPGA1-FPGA4-FPGA5两条路径,路由过程要决定走哪条路径。Die级的局部路由是决定信号在相同FPGA或不同FPGA上具体的Die之间是如何传递的,如图2所示,当信号A需要从FPGA1传递到FPGA3时,怎样选择FPGA在die级上的通过路径,图2中同样有上下两条路径可选。
上述分级路由的缺点是在FPGA级系统路由时没有考虑到Die级的组网连接关系,会对路径代价的判断产生误差;在对Die级进行局部路由时,由于视角局限于一对FPGA之间,得到的是局部解,不能整体上减少路径代价,也就是不能获得全局最优解。
现有技术的另外一个问题在于着眼于路由算法本身,有的路由算法在处理多负载节点的信号的路由时,路由代价很高且算法的运行速度较低。如图3所示,一个信号包括一个驱动节点为s以及两个负载节点L1和L2,路由路径需要将这三个节点以最小的代价连接在一起。现有技术为了加快处理速度会先对该信号根据负载节点的数量进行拆分,将信号拆分为S-L1和S-L2两根信号,然后分别采用两点之间的最短路径进行路径选择。如果图3中的相邻Die之间的代价相同,则该信号的路由路径为图4所示,假设相邻die之间的路径代价为1,则该信号的路由路径总代价为6。然而,先进行信号拆分再进行路径选择的方案势必会增大路由代价,导致系统频率的降低。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于概率代价的全局信号路由方法。本发明要解决的技术问题通过以下技术方案实现:
本发明提供了一种基于概率代价的全局信号路由方法,包括:
S1:对用户设计进行超图建模并设置Die级别的初始路由代价,以构建信号Die级别的路由组网模型;
S2:以选定信号的驱动节点作为第一节点,在所述路由组网模型中按照最小路径代价原则进行搜索以确认第二节点,并获取所述第一节点与所述第二节点之间的最佳路径和多条其他可能路径;
S3:分别获取所述第一节点与所述第二节点之间的最佳路径和多条其他可能路径的概率值;
S4:同时从已完成路径选择的节点出发,按照最小路径代价原则搜索并确定下一个节点,获取所述下一个节点的最佳路径和多条其他可能路径,以及每个路径的概率值;
S5:重复执行,获得当前信号每一个节点的最佳路径和可能路径以及对应的概率值;
S6:根据的当前信号的最佳路径和可能路径以及对应的概率值,对所述Die级别的路由代价进行更新;
S7:重复步骤S2-S6,对用户设计中的每一个信号进行路径选择。
在本发明的一个实施例中,所述S1包括:
S1.1:解析用户设计,将用户设计中的电路逻辑单元进行划分并分割至不同FPGA的不同Die上;
S1.2:设置同一FPGA中相邻Die之间的初始路由代价以及位于不同FPGA之间具有连接关系的Die之间的初始路由代价,从而形成Die级别的路由组网模型,所述路由组网模型包括信号的驱动节点和负载节点的位置信息以及Die之间的代价信息。
在本发明的一个实施例中,所述S2包括:
S2.1:以选定的当前信号的驱动节点作为第一节点,按照最小路径代价原则进行搜索直至遇到第二节点;获得已完成路径选择的节点中的最后一个节点与所述下一个节点之间的最佳路径,并记录当前最佳路径的路径代价,并以所述最佳路径作为节点之间的实际路由路径;
S2.2:从当前最佳路径上的路口节点出发,继续搜索所述第一节点与所述第二节点之间的其他可能路径,若搜索到的所有其他可能路径的数量之和小于或等于预先设置的上限值L,则记录所有其他可能路径并获取所述所有其他可能路径的路径代价,若所有其他可能路径的数量之和大于所述上限值L,则获取路径代价最小的L条其他可能路径。
在本发明的一个实施例中,所述S3包括:
假设从当前节点到下一个节点公共包括k条路径,所述k条路径包括最佳路径和获得的其他可能路径,路径代价分别为{cost_1,cost_2...cost_k},则第x条路径的概率为:
其中,max_cost为k条路径中的路径代价最大值。
在本发明的一个实施例中,所述S4包括:
S4.1:同时从已完成路径选择的节点出发,按照最小路径代价原则进行搜索直至遇到下一个节点,获得已完成路径选择的节点中的最后一个节点与所述下一个节点之间的最佳路径,并记录当前最佳路径的路径代价;
S4.2:从当前最佳路径上的路口节点出发,继续搜索已完成路径选择的节点中的最后一个节点与所述下一个节点之间的其他可能路径,若搜索到的其他可能路径的数量之和小于或等于预先设置的上限值L,则记录当前所有其他可能路径并获取当前所有其他可能路径的路径代价,若所有其他可能路径的数量之和大于所述上限值L,则获取路径代价最小的L条其他可能路径。
在本发明的一个实施例中,所述S6包括:
S6.1:根据最佳路径和可能路径以及对应的概率值,更新所述路由组网模型中的参数:同一FPGA中相邻Die之间的SLL可能使用量sll_used以及当前FPGA之间的线缆可能数量wire_used;
S6.2:利用所有节点之间的最佳路径和可能路径以及对应的概率值,以及更新后的SLL可能使用量sll_used和线缆可能数量wire_used,获得更新后的Die级别的路由代价。
在本发明的一个实施例中,同一FPGA中相邻Die之间的SLL可能使用量sll_used为经过当前相邻Die之间的最佳路径和其他可能路径的和;当前FPGA之间的线缆可能数量wire_used为经过当前相邻Die之间的最佳路径和其他可能路径的和。
在本发明的一个实施例中,在步骤S6.3中,同一FPGA中相邻Die之间的路由代价的计算公式为:
若sll_used<sll_thr
若sll_used>=sll_thr
其中,sll_thr表示设置的SLL阈值百分比,num_sll表示同一FPGA中相邻Die之间SLL的数量,Lengh_sll表示同一FPGA中相邻Die之间SLL的长度,cost_sll表示同一FPGA中相邻Die之间的路由代价,k为大于1的可调参数;
位于不同FPGA之间具有连接关系的Die之间路由代价的计算公式为:
其中,Lengh_wire表示当前FPGA之间的线缆长度,num_wire表示当前FPGA之间线缆的数量,a和b为大于1的可调参数。
本发明的另一方面提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于执行上述实施例中任一项所述基于概率代价的全局信号路由方法的步骤。
本发明的另一方面提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上述实施例中任一项所述基于概率代价的全局信号路由方法的步骤。
与现有技术相比,本发明的有益效果有:
本发明提出一种基于概率代价的全局信号路由方法,以概率的形式对路径代价进行更新,充分考虑信号彼此间对连线资源的竞争关系,即信号路由之间的相互影响,更加准确地估计路由路径的代价,降低信号总体路由代价;更加合理、高效地利用组网中的连线资源,减少浪费连线资源的情况,使得验证系统的时序性能更好;在Die级进行路由,可以更细节地调整信号路径,有利于优化路径选择。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是一种FPGA级系统路由的示意图;
图2是一种Die级局部路由的示意图;
图3是一种现有路由过程示意图;
图4是按照负载节点进行信号拆分后进行路径选择的示意图;
图5是本发明实施例提供的一种基于概率代价的全局信号路由方法的流程图;
图6是本发明实施例提供的一种代价考虑因素示意图;
图7是本发明实施例提供的一种Die级别的路由组网模型的简单示意图;
图8是本发明实施例提供的一种信号的驱动节点和负载节点的分布示意图;
图9是本发明实施例提供的一种信号的多路径选择示意图;
图10是本发明实施例提供的一种多路径概率示意图。
具体实施方式
为了进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及具体实施方式,对依据本发明提出的一种基于概率代价的全局信号路由方法进行详细说明。
有关本发明的前述及其他技术内容、特点及功效,在以下配合附图的具体实施方式详细说明中即可清楚地呈现。通过具体实施方式的说明,可对本发明为达成预定目的所采取的技术手段及功效进行更加深入且具体地了解,然而所附附图仅是提供参考与说明之用,并非用来对本发明的技术方案加以限制。
应当说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
请参见图5,图5是本发明实施例提供的一种基于概率代价的全局信号路由方法的流程图。该全局信号路由方法包括:
该全局信号路由方法包括:
S1:对用户设计进行超图建模并设置Die级别的初始路由代价,以构建信号Die级别的路由组网模型。
在本实施例中,步骤S1具体包括:
S1.1:解析用户设计,将用户设计中的电路逻辑单元进行划分并分割至不同FPGA的不同Die上。
超图建模是一种将用户设计中的电路模块抽象为节点,模块之间的连线抽象为边的通用技术,目的是抽象处理对象,易于操作;分割是把以超图表示的用户设计分成不同部分,每一部分分别放置在不同的Die中的通用技术,该技术通常以最小化Die之间的代价为目标,分割过程后,可以得到每个节点(包括信号的驱动节点和负载节点)所在Die的位置。在本实施例中,这一过程采用现有方法执行,这里不再赘述。
S1.2:设置同一FPGA中相邻Die之间的初始路由代价以及位于不同FPGA之间具有连接关系的Die之间的初始路由代价,从而形成Die级别的路由组网模型,所述路由组网模型包括信号的驱动节点和负载节点的位置信息以及Die之间的代价信息。
请参见图6,图6是本发明实施例提供的一种代价考虑因素示意图。在同一颗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。
对于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级别的路由组网模型,即完成了建模。请参见图7,图7是本发明实施例提供的一种Die级别的路由组网模型的简单示意图,其中,每个灰色方框表示一个Die,Die之间的连线表示Die之间的SLL资源或线缆,每个SLL资源或线缆均存在对应的路由代价,需要说明的是,在后续的路径选择过程中,这些SLL资源或线缆上的路由代价会进行更新和变化,例如C1-C15,具体更新方式将在下述步骤进行进一步说明。由上文可知,Die级别路由将直接在全局的Die级连接关系上进行建模,即整个Die级别的路由组网模型完全由Die以及Die与Die之间的连接关系表示,该路由组网模型既能表达出组网在Die级的连接关系,又能用统一的代价来衡量每个die和每条路径的布线难易程度。需要说明的是,图7只是Die级别的路由组网模型的简单示意图,实际中一个用户设计电路的信号的Die级别的路由组网模型可能包括大量的Die,且存在复杂的连接关系。
S2:以选定信号的驱动节点作为第一节点,在所述路由组网模型中按照最小路径代价原则进行搜索以确认第二节点,并获取所述第一节点与所述第二节点之间的最佳路径和多条其他可能路径。
在本实施例中,步骤S2具体包括:
S2.1:以选定的当前信号的驱动节点作为第一节点,按照最小路径代价原则进行搜索直至遇到第二节点,可以知道的是,该第二节点为负载节点;获得所述第一节点与所述第二节点之间的最佳路径,并记录所述最佳路径的路径代价,并以所述最佳路径作为节点之间的实际路由路径;
在实际中,一个用户设计电路中需要进行路由的信号数量可能达到几万、几百万、甚至更高,每个信号都仅包含一个驱动节点,但是可能包含数量不等的负载节点,并且不同信号的驱动节点和负载节点可能处于不同的Die上。请参见图8,图8是本发明实施例提供的一种信号的驱动节点和负载节点的分布示意图。图8中的信号包括一个驱动节点s和三个负载节点a、b、c,在进行路由选择时,从信号的驱动节点s(即第一节点)出发,在路由组网模型中按照最小路径代价原则进行搜索以确认哪一个负载节点作为将于驱动节点s进行路由的第二节点,假如第二节点为图8中的c节点,且此时获取的s->c的最佳路径为Die1->Die2->Die6,则记录该最佳路径以及对应的路径代价Cost1。需要说明的是,节点之间路径的路径代价即为路径所经过的Die两两之间的路径之和,s->c的最佳路径的路径代价即为Die1->Die2的路径代价与Die2->Die6的路径代价之和。
S2.2:继续搜索所述第一节点与所述第二节点之间的其他可能路径,若搜索到的所有其他可能路径的数量之和小于或等于预先设置的上限值L,则记录所有其他可能路径并获取所述所有其他可能路径的路径代价,若所有其他可能路径的数量之和大于所述上限值L,则获取路径代价最小的L条其他可能路径。
在本步骤中,需要继续搜索第一节点与所述第二节点之间的其他可能路径,请参见图9,图9是本发明实施例提供的一种信号的多路径选择示意图。如上所述,已经依据最小路径代价原则获得了s->c之间的最佳路径Die1->Die2->Die6,同时发现Die2是一个“路口”,即它不仅能够通向Die6,而且能够通向Die3。那么在上述最佳路径中(Die1->Die2->Die6)筛选出所有的路口节点,并从所有路口节点向其他出口方向继续按照最小路径代价原则进行c节点的搜索,获得不同于上述最佳路径的其他可能路径。如图9所示,发现另一条从s到达c的路径(Die1->Die2->Die3->Die7->Die6),并获得其路径代价值为Cost2。
在实际中,两个节点之间可能要经过很多个Die,每个Die又连接很多个不同的其他Die,因此在最佳路径的基础上,可能会获取到很多个其他可能路径。在本实施例中,限定获取到的其他可能路径的上限值为L。
在L值的限定下,最多搜索路径代价值更小的L条其他可能路径,不足L条则获取所有其他可能路径。假设包括最佳路径总共获得k(k<=L+1)条路径可以从第一节点s到达第二节点c,它们的路径代价分别为{cost_1,cost_2...cost_k}。
需要说明的是,在实际中,以获取的最佳路径作为两个节点之间最终的路由路径。
S3:分别获取所述第一节点与所述第二节点之间的最佳路径和多条其他可能路径的概率值。
在本实施例中,对于每条s->c的路径都是路由选择的结果,但是都是以概率的形式存在的,也即路由选择结果以不确定的形式存在。那么这k条路径的存在概率分别为多少呢?第x条路径的概率为:
其中,max_cost为k条路径中的路径代价最大值。这个公式代表路径存在的概率与路径代价负相关,即路径代价越大,其存在概率越低。如图10所示,s到c之间不同路径的存在概率分别为0.7和0.3。
S4:同时从已完成路径选择的节点出发,按照最小路径代价原则搜索并确定下一个节点,获取所述下一个节点的最佳路径和多条其他可能路径,以及每个路径的概率值。
在本实施例中,步骤S4包括:
S4.1:同时从已完成路径选择的节点出发,按照最小路径代价原则进行搜索直至遇到下一个节点,获得已完成路径选择的节点中的最后一个节点与所述下一个节点之间的最佳路径,并记录当前最佳路径的路径代价;
S4.2:从当前最佳路径上的路口节点出发,继续搜索已完成路径选择的节点中的最后一个节点与所述下一个节点之间的其他可能路径,若搜索到的其他可能路径的数量之和小于或等于预先设置的上限值L,则记录当前所有其他可能路径并获取当前所有其他可能路径的路径代价,若所有其他可能路径的数量之和大于所述上限值L,则获取路径代价最小的L条其他可能路径。
具体地,如图10所述,本步骤从路由过的节点s和c,即已经完成路径选择同时出发,按照最小路径代价原则,即步骤S2中的做法寻找下一个节点,最佳路径及其路径代价;随后从最佳路径上的路口节点出发,继续搜索已完成路径选择的节点中的最后一个节点与所述下一个节点之间的其他可能路径,并获得可能路径的路径代价值,此步骤类似于步骤S2,这里不在赘述。
S5:重复步骤S4,获得当前信号每一个节点的最佳路径和可能路径以及对应的概率值;
在本实施例中,重复步骤S4,直到找到该信号的所有节点为止,即a,b,c都找到,确定s与a,b,c节点之间的连接顺序和最佳路径及最佳路径的概率值,于此同时,获得各个节点之间的多条可能路径以及每条可能路径的概率值。
S6:根据的当前信号的最佳路径和可能路径以及对应的概率值,对所述Die级别的路由代价进行更新。
具体地,所述S6包括:
S6.1:根据最佳路径和可能路径以及对应的概率值,更新所述路由组网模型中的参数:同一FPGA中相邻Die之间的SLL可能使用量sll_used以及当前FPGA之间的线缆可能数量wire_used。
在本实施例中,同一FPGA中相邻Die之间的SLL可能使用量sll_used为经过当前相邻Die之间的最佳路径和其他可能路径的和。
同样的当前FPGA之间的线缆可能数量wire_used为经过当前相邻Die之间的最佳路径和其他可能路径的和。
例如,如图9所示,Die1和Die2之间经过了一条最佳路径和一条可能路径,则Die1和Die2之间的SLL可能使用量sll_used为2;进一步地,如果Die1和Die2位于不同的FPGA,则当前FPGA之间的线缆可能数量wire_used为2。
S6.2:利用所有节点之间的最佳路径和可能路径以及对应的概率值,以及更新后的SLL可能使用量sll_used和线缆可能数量wire_used,获得更新后的Die级别的路由代价。
具体地,同一FPGA中相邻Die之间的路由代价的计算公式为:
若sll_used<sll_thr
若sll_used>=sll_thr
其中,sll_thr表示设置的SLL阈值百分比,num_sll表示同一FPGA中相邻Die之间SLL的数量,Lengh_sll表示同一FPGA中相邻Die之间SLL的长度,cost_sll表示同一FPGA中相邻Die之间的路由代价,k为大于1的可调参数;
位于不同FPGA之间具有连接关系的Die之间路由代价的计算公式为:
其中,Lengh_wire表示当前FPGA之间的线缆长度,num_wire表示当前FPGA之间线缆的数量,a和b为大于1的可调参数。
利用上述公式对于Die级别的路由组网模型中任意有间接关系的Die之间的路由代价进行更新。
S7:重复步骤S2-S6,对用户设计中的每一个信号进行路径选择。
在本实施例中,按照信号的编号,或者任意顺序依次对当前用户设计中的所有信号按照步骤S2-S6的顺序进行路径选择,并且在每个信号的路由路径确定后,对利用路径概率对路由组网模型中所包括的所有连线的路径代价进行更新,随后再对下一个信号进行路径选择,依次重复迭代,直至完成所有信号的路径选择。
在本实施例中,我们为每个信号按照最大的概率路径进行路径选择。该方案的关键是后续的信号如何选择路径,是依据前面所有以概率形式存在的路径所引起的路径代价的改变,这样做的目的是考虑了各个信号彼此竞争布线资源、相互影响和每个信号的路由路线存在很多可能性的实际情况。
在本发明所提供的几个实施例中,应该理解到,本发明所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
本发明的又一实施例提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于执行上述实施例中所述基于概率代价的全局信号路由方法的步骤。本发明的再一方面提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上述实施例所述基于概率代价的全局信号路由方法的步骤。具体地,上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种基于概率代价的全局信号路由方法,其特征在于,包括:
S1:对用户设计进行超图建模并设置Die级别的初始路由代价,以构建信号Die级别的路由组网模型;
S2:以选定信号的驱动节点作为第一节点,在所述路由组网模型中按照最小路径代价原则进行搜索以确认第二节点,并获取所述第一节点与所述第二节点之间的最佳路径和多条其他可能路径;
S3:分别获取所述第一节点与所述第二节点之间的最佳路径和多条其他可能路径的概率值;
S4:同时从已完成路径选择的节点出发,按照最小路径代价原则搜索并确定下一个节点,获取所述下一个节点的最佳路径和多条其他可能路径,以及每个路径的概率值;
S5:重复执行,获得当前信号每一个节点的最佳路径和可能路径以及对应的概率值;
S6:根据当前信号的最佳路径和可能路径以及对应的概率值,对所述Die级别的路由代价进行更新;
S7:重复步骤S2-S6,对用户设计中的每一个信号进行路径选择。
2.根据权利要求1所述的基于递归分治法的全局信号路由方法,其特征在于,所述S1包括:
S1.1:解析用户设计,将用户设计中的电路逻辑单元进行划分并分割至不同FPGA的不同Die上;
S1.2:设置同一FPGA中相邻Die之间的初始路由代价以及位于不同FPGA之间具有连接关系的Die之间的初始路由代价,从而形成Die级别的路由组网模型,所述路由组网模型包括信号的驱动节点和负载节点的位置信息以及Die之间的代价信息。
3.根据权利要求2所述的基于递归分治法的全局信号路由方法,其特征在于,所述S2包括:
S2.1:以选定的当前信号的驱动节点作为第一节点,按照最小路径代价原则进行搜索直至遇到第二节点;获得已完成路径选择的节点中的最后一个节点与所述下一个节点之间的最佳路径,并记录当前最佳路径的路径代价,并以所述最佳路径作为节点之间的实际路由路径;
S2.2:从当前最佳路径上的路口节点出发,继续搜索所述第一节点与所述第二节点之间的其他可能路径,若搜索到的所有其他可能路径的数量之和小于或等于预先设置的上限值L,则记录所有其他可能路径并获取所述所有其他可能路径的路径代价,若所有其他可能路径的数量之和大于所述上限值L,则获取路径代价最小的L条其他可能路径。
4.根据权利要求2所述的基于递归分治法的全局信号路由方法,其特征在于,所述S3包括:
假设从当前节点到下一个节点公共包括k条路径,所述k条路径包括最佳路径和获得的其他可能路径,路径代价分别为{cost_1,cost_2...cost_k},则第x条路径的概率为:
其中,max_cost为k条路径中的路径代价最大值。
5.根据权利要求2所述的基于递归分治法的全局信号路由方法,其特征在于,所述S4包括:
S4.1:同时从已完成路径选择的节点出发,按照最小路径代价原则进行搜索直至遇到下一个节点,获得已完成路径选择的节点中的最后一个节点与所述下一个节点之间的最佳路径,并记录当前最佳路径的路径代价;
S4.2:从当前最佳路径上的路口节点出发,继续搜索已完成路径选择的节点中的最后一个节点与所述下一个节点之间的其他可能路径,若搜索到的其他可能路径的数量之和小于或等于预先设置的上限值L,则记录当前所有其他可能路径并获取当前所有其他可能路径的路径代价,若所有其他可能路径的数量之和大于所述上限值L,则获取路径代价最小的L条其他可能路径。
6.根据权利要求2所述的基于递归分治法的全局信号路由方法,其特征在于,所述S6包括:
S6.1:根据最佳路径和可能路径以及对应的概率值,更新所述路由组网模型中的参数:同一FPGA中相邻Die之间的SLL可能使用量sll_used以及当前FPGA之间的线缆可能数量wire_used;
S6.2:利用所有节点之间的最佳路径和可能路径以及对应的概率值,以及更新后的SLL可能使用量sll_used和线缆可能数量wire_used,获得更新后的Die级别的路由代价。
7.根据权利要求6所述的基于递归分治法的全局信号路由方法,其特征在于,同一FPGA中相邻Die之间的SLL可能使用量sll_used为经过当前相邻Die之间的最佳路径和其他可能路径的和;当前FPGA之间的线缆可能数量wire_used为经过当前相邻Die之间的最佳路径和其他可能路径的和。
8.根据权利要求7所述的基于递归分治法的全局信号路由方法,其特征在于,在步骤S6.3中,同一FPGA中相邻Die之间的路由代价的计算公式为:
若sll_used<sll_thr
若sll_used>=sll_thr
其中,sll_thr表示设置的SLL阈值百分比,num_sll表示同一FPGA中相邻Die之间SLL的数量,Lengh_sll表示同一FPGA中相邻Die之间SLL的长度,cost_sll表示同一FPGA中相邻Die之间的路由代价,k为大于1的可调参数;
位于不同FPGA之间具有连接关系的Die之间路由代价的计算公式为:
其中,Lengh_wire表示当前FPGA之间的线缆长度,num_wire表示当前FPGA之间线缆的数量,a和b为大于1的可调参数。
9.一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于执行权利要求1至8中任一项所述基于概率代价的全局信号路由方法的步骤。
10.一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至8中任一项所述基于概率代价的全局信号路由方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311140238.XA CN117294641A (zh) | 2023-09-05 | 2023-09-05 | 一种基于概率代价的全局信号路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311140238.XA CN117294641A (zh) | 2023-09-05 | 2023-09-05 | 一种基于概率代价的全局信号路由方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117294641A true CN117294641A (zh) | 2023-12-26 |
Family
ID=89252653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311140238.XA Pending CN117294641A (zh) | 2023-09-05 | 2023-09-05 | 一种基于概率代价的全局信号路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117294641A (zh) |
-
2023
- 2023-09-05 CN CN202311140238.XA patent/CN117294641A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11675940B2 (en) | Generating integrated circuit floorplans using neural networks | |
CN110991138B (zh) | 用于生成集成电路的方法和系统以及计算机可读介质 | |
Yeh et al. | OBDD-based evaluation of k-terminal network reliability | |
US20220147877A1 (en) | System and method for automatic building of learning machines using learning machines | |
WO2022227217A1 (zh) | 文本分类模型的训练方法、装置、设备及可读存储介质 | |
WO2016095068A1 (en) | Pedestrian detection apparatus and method | |
CN106033425A (zh) | 数据处理设备和数据处理方法 | |
WO2022252694A1 (zh) | 神经网络优化方法及其装置 | |
CN117236278B (zh) | 一种基于数字孪生技术的芯片生产仿真方法及系统 | |
CN112001491A (zh) | 针对处理器确定神经网络架构的搜索方法和装置 | |
CN118363932B (zh) | 基于无人机的智能巡逻方法及系统 | |
US7168057B2 (en) | Targeted optimization of buffer-tree logic | |
CN117150005A (zh) | 文本分析方法、装置、电子设备及存储介质 | |
CN115412401B (zh) | 训练虚拟网络嵌入模型及虚拟网络嵌入的方法和装置 | |
CN116366538A (zh) | 动态网络下的路径更新及等价路径规划方法及相关装置 | |
CN117294641A (zh) | 一种基于概率代价的全局信号路由方法 | |
Martin et al. | An adaptive sequential decision making flow for FPGAs using machine learning | |
Al-Hyari et al. | Novel congestion-estimation and routability-prediction methods based on machine learning for modern fpgas | |
CN116090402A (zh) | 一种基于聚类算法的全局布线方法、装置和电子设备 | |
CN110543664B (zh) | 一种面向具有特有结构fpga的工艺映射方法 | |
Lin et al. | Critical-trunk-based obstacle-avoiding rectilinear Steiner tree routings and buffer insertion for delay and slack optimization | |
CN117240777A (zh) | 一种基于递归分治法的全局信号路由方法 | |
CN112766356A (zh) | 一种基于动态权重D-XGBoost模型的预测方法及系统 | |
CN118378074B (zh) | 一种稀疏矩阵求解过程中进行排序算法调度的方法及系统 | |
WO2023065309A1 (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 |