CN116108787A - 多fpga间的布线代价优化方法、系统、存储介质及电子设备 - Google Patents

多fpga间的布线代价优化方法、系统、存储介质及电子设备 Download PDF

Info

Publication number
CN116108787A
CN116108787A CN202310130557.6A CN202310130557A CN116108787A CN 116108787 A CN116108787 A CN 116108787A CN 202310130557 A CN202310130557 A CN 202310130557A CN 116108787 A CN116108787 A CN 116108787A
Authority
CN
China
Prior art keywords
route
signal group
cost
wiring
connection
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
Application number
CN202310130557.6A
Other languages
English (en)
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.)
Shanghai Sierxin Technology Co ltd
Original Assignee
Shanghai Sierxin Technology 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 Shanghai Sierxin Technology Co ltd filed Critical Shanghai Sierxin Technology Co ltd
Priority to CN202310130557.6A priority Critical patent/CN116108787A/zh
Publication of CN116108787A publication Critical patent/CN116108787A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • 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/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (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间的裸片Die级连接路线以及每条连接路线的互连线数量;遍历FPGA对之间需要传递的信号组,其中信号组由多个信号组成;计算每个信号组在每条连接路线的路线代价和每个信号组的收益值;选择最大收益值所对应的信号组和信号组最小路线代价的连接路线;将信号组的所有信号根据最小路线代价的连接路线进行布线,得到所有信号组的初始布线结果;更换信号组的最小路线代价的连接路线或动态扩展信号组的最小路线代价的连接路线的互联线数量对信号组的初始布线结果进行优化,实现多FPGA间的布线代价优化。

Description

多FPGA间的布线代价优化方法、系统、存储介质及电子设备
技术领域
本发明属于自动化技术领域,特别涉及一种多FPGA间的布线代价优化方法、多FPGA间的布线代价优化系统、存储介质及电子设备。
背景技术
随着用户设计规模的不断增大,对用户设计的逻辑验证不得不采用多FPGA的系统,这时就需要把用户设计分割成指定数量的不同部分,每部分被分配至不同的FPGA中运行,各FPGA之间采用互连线进行连接,互连线的距离相较于FPGA内部距离很大,所以产生的信号延时也大。FPGA内部常常由几颗SLR(Super Logic Region,超逻辑区域)组成,也成为Die。各Die呈现的分布呈现一定的拓扑关系,同一颗FPGA内部的各个Die之间采用Highwidth Low Latency Connections(高宽度低延迟连接)的技术进行连接,它们往往具有低延迟,低功耗,高吞吐量等特征。
现有技术下,由于用户设计规模逐步增大,在FPGA布局布线过程中常常造成部分信号routing选择不合理,进而引起个别Die Crossing处的连接资源使用紧张,总体布线routing代价过大,甚至导致布局布线过程的失败。Die Crossing是指同一颗FPGA内部裸片Die与裸片Die之间的连接处,该连接处有许多短距离的连接线以便两个裸片Die之间进行高速信号通信,被分割至各FPGA中的用户设计要经过Die Crossing和FPGA之间的互连线进行通信。Die Crossing处的连接线(连接资源)比较宝贵,当连接线被耗尽后将会导致FPGA布线失败。
发明内容
本发明克服了现有技术的不足之一,提供了一种多FPGA间的布线代价优化方法、系统、存储介质及电子设备,能够合理选择信号连接路线进行布线routing,解除了DieCrossing处的连接资源的限制,且降低多FPGA布线过程中总体布线routing代价。
根据本公开的一方面,提出了一种多FPGA间的布线代价优化方法,布线代价优化方法包括:
获取FPGA间的裸片Die级连接路线以及每条连接路线的互连线数量;
遍历FPGA对之间需要传递的信号组,其中信号组由多个信号组成;
计算每个信号组在每条连接路线的路线代价和每个信号组的收益值;
选择最大收益值所对应的信号组和信号组最小路线代价的连接路线;
将信号组的所有信号根据最小路线代价的连接路线进行布线,得到所有信号组的初始布线结果;
更换信号组的最小路线代价的连接路线或动态扩展信号组的最小路线代价的连接路线的互联线数量对信号组的初始布线结果进行优化,实现多FPGA间的布线代价优化。
在一种可能的实现方式中,更换信号组的最小路线代价的连接路线对信号组的初始布线结果进行优化,包括:
将信号组的最小路线代价的连接路线更换为新的连接路线,计算信号组的新的连接路线的路线代价,如果新的连接路线的路线代价下降,实现对信号组的初始布线结果进行优化,否则信号组的最小路线代价的连接路线保持不变。
在一种可能的实现方式中,动态扩展信号组的最小路线代价的连接路线的互联线数量对信号组的初始布线结果进行优化,包括:
利用额外增加路线代价函数计算动态扩展信号组的最小路线代价的连接路线的互联线数量的信号组的总路线代价,如果总路线代价降低,实现对信号组的初始布线结果进行优化,否则信号组的最小路线代价的连接路线保持不变。
在一种可能的实现方式中,计算每个信号组在每条连接路线的路线代价,包括:
针对两个FPGA之间的每一个信号组,每一个信号组的每条连接路线的路线代价为信号组中各个驱动节点到连接路线入口处所累加的路线代价和与连接路线出口处到达各个负载节点所累加的路线代价之和。
在一种可能的实现方式中,计算每个信号组在每条连接路线的路线代价,还包括:
针对多个FPGA之间的每一个信号组,每一个信号组的每条连接路线的路线代价C=C+n,其中,C为当前FPGA与其它FPGA完成布线结果所产生的代价值,n为当前FPGA在内部裸片Die之间连接处穿过路由所产生的代价值。
在一种可能的实现方式中,信号组的多个信号采用时分复用的方式共用一根互连线,每个信号组内的多个信号的传播方向一致。
在一种可能的实现方式中,在将信号组的所有信号根据最小路线代价的连接路线进行布线之后,还包括:
将根据最小路线代价的连接路线进行布线的信号组剔除。
根据本公开的另一方面,提出了一种多FPGA间的布线代价优化系统,系统包括:
获取模块,用于获取FPGA间的裸片Die级连接路线以及每条连接路线的互连线数量;
遍历模块,用于遍历FPGA对之间需要传递的信号组,其中信号组由多个信号组成;
计算模块,用于记录每个信号组在每条连接路线的路线代价和计算每个信号组的收益值;
选择模块,用于选择最大收益值所对应的信号组和信号组最小路线代价的连接路线;
布线模块,用于将信号组的所有信号根据最小路线代价的连接路线进行布线,得到所有信号组的初始布线结果;
优化模块,用于更换信号组的最小路线代价的连接路线或动态扩展信号组的最小路线代价的连接路线的互联线数量对信号组的初始布线结果进行优化,实现多FPGA间的布线代价优化。
根据本公开的另一方面,提出了一种存储介质,其上存储有计算机程序,程序被处理器运行时实现如上的方法.
根据本公开的另一方面,提出了一种电子设备,包括:处理器和存储有计算机程序的存储器,处理器被配置为在运行计算机程序时实现如上的方法。
本公开多FPGA间的布线代价优化方法,包括获取FPGA间的裸片Die级连接路线以及每条连接路线的互连线数量;遍历FPGA对之间需要传递的信号组,其中信号组由多个信号组成;计算每个信号组在每条连接路线的路线代价和每个信号组的收益值;选择最大收益值所对应的信号组和信号组最小路线代价的连接路线;将信号组的所有信号根据最小路线代价的连接路线进行布线,得到所有信号组的初始布线结果;更换信号组的最小路线代价的连接路线或动态扩展信号组的最小路线代价的连接路线的互联线数量对信号组的初始布线结果进行优化,实现多FPGA间的布线代价优化。能够合理选择信号连接路线进行布线routing,解除了Die Crossing处的连接资源的限制,且降低多FPGA布线过程中总体布线routing代价。
本发明实施例的其他可选特征和技术效果一部分在下文描述,一部分可通过阅读本文而明白。
附图说明
以下,结合附图来详细说明本发明的实施例,所示出的元件不受附图所显示的比例限制,附图中相同或相似的附图标记表示相同或类似的元件,其中:
图1示出了根据本公开一实施例的多FPGA间的布线代价优化方法流程图;
图2示出了根据本公开一实施例的FPGA间的Die级连接路线示意图;
图3示出了根据本公开一实施例的一个信号组内驱动节点和负载节点的示意图;
图4示出了根据本公开一实施例的一个信号组路径代价计算示意图;
图5示出了根据本公开一实施例的多FPGA间完成布线的路线代价计算示意图;
图6示出了根据本公开一实施例的各个信号组路径代价和收益示意图;
图7示出了根据本公开一实施例的各个信号组初始布线的结果示意图;
图8示出了根据本公开一实施例的各个信号组的初始布线结果优化示意图;
图9示出了根据本公开一实施例的多FPGA间的布线代价优化系统原理图;
图10示出了根据本公开一实施例的电子设备的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合具体实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
另外,附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1示出了根据本公开一实施例的多FPGA间的布线代价优化方法流程图;该方法可以用于多FPGA之间的裸片Die级之间的布线代价优化领域中,具体如图1所示,包括:
步骤S1:获取FPGA间的裸片Die级连接路线以及每条连接路线的互连线数量。
图2示出了根据本公开一实施例的FPGA间的Die级连接路线示意图。
首先,获得FPGA对(FPGA1和FPGA2)之间的Die级连接路线关系和对应每条连接路线的互连线数量。如图2所示,两个FPGA之间共存在3条Die级连接路线,即线路1、线路2和线路3;每条连接路线(path)对应的互连线数量分别为3,2,3。其中,每条连接路线的每根互连线长度相同。
步骤S2:遍历FPGA对之间需要传递的信号组,其中信号组由多个信号组成。
其中,信号组的多个信号采用时分复用的方式共用一根互连线,且每个信号组内的多个信号的传播方向一致。
例如,遍历所有需要在FPGA1和FPGA2之间传递的信号组,如图2所示,FPGA1和FPGA2之间传递的信号组共有信号组1、信号组2、…、信号组8共8个信号组。
每一个信号组由一定数量的信号组成,各个信号组内的信号数量可以不同。同一个信号组的多个信号将会采用时分复用(TDM)方式共用一根在FPGA1和FPGA2之间的物理连线(互连线)。时分复用方式可以为在一根物理连线(互连线)上传递多个信号,多个信号分别占用一个周期里的不同时间片段进行传输,占用同一个物理连线(互连线)的信号数量叫做TDM Ratio(TDM比),通过这种方式能够增加每个信号的传递时间,同时减少互连线的消耗。
同一信号组内的所有信号的传播方向一致,例如,所有信号的传播方向可以均为从左至右或是从右至左。不同组的信号传输方向可以不同,因为每根互连线的时分复用模块支持单独的方向配置。
步骤S3:计算每个信号组在每条连接路线的路线代价和每个信号组的收益值。
图3示出了根据本公开一实施例的一个信号组内驱动节点和负载节点的示意图。
如图3所示,每个信号组均由驱动节点和负载节点组成,其中,FPGA1中的节点1、2、3、4为驱动节点,FPGA2中的节点1、2、3、4为负载节点其驱动节点。根据信号组的分割结果,驱动节点和负载节点可分配在不同的Die上,也可分配在相同的Die上。且同一个信号的驱动节点和负载节点可能分配在两颗FPGA的不同位置的Die上。
FPGA对之间存在多个信号组,如图2所示的,FPGA1和FPGA2之间存在信号组1、信号组2、…、信号组8。多FPGA之间的裸片Die级布线Die level Routing(芯片级布线)基于信号组进行的,因为一个组内的所有信号在FPGA之间必须选择同一个连接路线,同一信号组内的多个信号不允许分开。
在一示例中,计算每个信号组在每条连接路线的路线代价,可以包括:
针对两个FPGA之间的每一个信号组,每一个信号组的每条连接路线的路线代价为信号组中各个驱动节点到连接路线入口处所累加的路线代价和与连接路线出口处到达各个负载节点所累加的路线代价之和。
图4示出了根据本公开一实施例的一个信号组路径代价计算示意图。
一个信号组经过某连接路线的路径代价由两部分组成。如图4所示,路径代价的一部分该信号组内所有驱动节点按照最短路径到达该连接路线在左FPGA(如图2中的FPGA1)边界上的位置所经过的Die crossing(裸片交叉点)总和,另外一部分为该连接路线在右FPGA(如图2中的FPGA2)边界上的位置按照最短路径到该信号组内所有负载节点的Diecrossing的总和。需要说明的是,跨FPGA之间的路线代价对于布线routing来说并不需要计算,因为一个信号组无论如何要跨过FPGA之间的一根互连线,不能多也不能少,且必须跨过,在本公开中将FPGA之间的同一连接路线的互连线视为等长的,即路线代价均相同。进行布线routing时,各个信号组选择哪条连接路线,对于共有的相等的路线代价,可以不算入。
图5示出了根据本公开一实施例的多FPGA间完成布线的路线代价计算示意图。
在一示例中,如图5所示,计算每个信号组在每条连接路线的路线代价,还可以包括:
针对多个FPGA之间的每一个信号组,每一个信号组的每条连接路线的路线代价C=C+n,其中,C为当前FPGA与其它FPGA完成布线结果所产生的代价值,n为当前FPGA在内部裸片Die之间连接处穿过路由所产生的代价值。此外,如图5所示,FPGA的不同Die Crossing处带价值C值不同,例如,Die1与Die2处的代价值为C_1,Die2与Die3处的代价值为C_2,Die3和Die4处的代价值为C_3。由此可知,每跨过一个Die Crossing时产生的代价值不再是加1,而是对应处产生的代价值C。
通过图4和图5所示的两种计算每个信号组在每条连接路线的路线代价的方法,可以计算得到多FPGA间所有信号组的所有信号通过连接路线的路线代价值。
遍历如图2所示的FPGA1和FPGA2之间所有的信号组,对于每一个信号组,让其尝试FPGA1和FPGA2之间的所有连接路线,并记录连接路线的路线代价。例如,如图2所示,对于信号组1,让信号组1依次尝试连接路线1,2,3进行路由,记录驱动节点到FPGA1边界与FPGA2边界到负载节点的Die crossing总和为路径代价。
图6示出了根据本公开一实施例的各个信号组路径代价和收益示意图。
如图6所示,根据上述信号组的路径代价的计算方法可以得到信号组2的连接路线1、连接路线2、连接路线3的路径代价值分别为4、14、6;信号组6的连接路线1、连接路线2、连接路线3的路径代价值分别为8、7、6。
将每个信号组的所有连接路线的路线代价的最大差值的绝对值作为每个信号组的受益值,如图6所示,信号组2的收益值为10,信号组6的收益值为2,同理可以计算出每个信号组的收益值。
步骤S4:选择最大收益值所对应的信号组和信号组最小路线代价的连接路线。
当通过步骤S3计算得到每个信号组的收益值后,查找最大收益值所对应的信号组,以及该信号组所对应的最小路径代价的连接路线,使得该信号组的所有信号选择该连接路线进行布线(routing)。如图6所示,信号组2的收益值最大为10,最小路线代价的连接路线为路线1,路线1的路线代价为4,则选择信号组2内的所有信号按照连接路线1进行路由。
步骤S5:将信号组的所有信号根据最小路线代价的连接路线进行布线,得到所有信号组的初始布线结果。
在一实例中,将信号组的所有信号根据最小路线代价的连接路线进行布线之后,同时将最小路线代价的连接路线进行布线的信号组剔除以及将最小路线代价的连接路线的互连线数量减1。
例如,路线1有3条连接路线,当信号组2内的所有信号选择路线1进行布线(routing)时,信号组2将消耗掉路线1中的其中一个条连接路线,即此时,需要将路线1的互连线数量减去1。并将信号组2从所有信号组内剔除,以免重复对信号组2内的所有信号进行布线(routing)操作。
重复上述步骤和过程能够完成FPGA间的所有信号组的所有信号的布线,得到各个信号组初始布线结果。
图7示出了根据本公开一实施例的各个信号组初始布线结果示意图。
对剩余信号组1,3,4,5,6,7,8重复执行上述步骤和过程,直到所有的信号组都完成布线(routing),得到如图7所示的各个信号组的初始布线结果。如图7所示,信号组1、信号组2和信号组3的所有信号选择连接路线1进行布线(routing);信号组4和信号组6的所有信号选择连接路线2进行布线(routing);信号组5、信号组7和信号组8的所有信号选择连接路线3进行布线(routing)。
步骤S6:更换信号组的最小路线代价的连接路线或动态扩展信号组的最小路线代价的连接路线的互联线数量对信号组的初始布线结果进行优化,实现多FPGA间的布线代价优化。
图8示出了根据本公开一实施例的各个信号组的初始布线结果优化示意图。
在一示例中,更换信号组的最小路线代价的连接路线对信号组的初始布线结果进行优化,可以包括:
将信号组的最小路线代价的连接路线更换为新的连接路线,计算信号组的新的连接路线的路线代价,如果新的连接路线的路线代价下降,实现对信号组的初始布线结果进行优化,否则信号组的最小路线代价的连接路线保持不变。
如图8所示,将信号组1和信号组6的最小路线代价的连接路线进行交换,分别计算信号组1和信号组6最小路线代价的连接路线更换前后的路线代价值,如果连接路线更换后的路线代价值下降,说明连接路线更换有效;如果连接路线更换后的路线代价值上升或者保持不变,那么信号组1和信号组6两个信号组的连接线路保持不变。同理,可以遍历所有信号组更换最小路线代价的连接路线的路线代价值,从而实现对信号组的初始布线结果进行优化。如果通过该方式在每次迭代中依次遍历所有交换的信号组组合,若发现路线代价下降,则完成信号组连接路线更换后中止这一轮优化,重新进入下一轮迭代过程,直到不再更换连接路线能够使得路线代价下降或者达到指定的迭代次数。
在一实例中,动态扩展信号组的最小路线代价的连接路线的互联线数量对信号组的初始布线结果进行优化,可以包括:
利用额外增加路线代价函数计算动态扩展信号组的最小路线代价的连接路线的互联线数量的信号组的总路线代价,如果总路线代价降低,实现对信号组的初始布线结果进行优化,否则信号组的最小路线代价的连接路线保持不变。
例如,每个连接路线的容量在理想情况下所有连接线路均会被充分利用,所以信号组的所有信号总数量常常等于所有连接路线容量的总和,即当有一个信号组需要更换位置的时候,必然需要另外一个信号组的位置空出,如图8所示。动态扩展信号组的最小路线代价的连接路线的互联线数量(即连接路线容量或物理连线的数量),即虚拟一部分路线容量,如图2所示,连接线路1的容量是3,动态扩展连接线路1的容量后可以允许连接线路1的容量超过3,甚至可以达到无穷大,以方便其他信号组可以选择经过连接路线1,不需要和连接路线1上原有的某个信号组换位置。但是,动态扩展信号组的最小路线代价的连接路线的互联线数量的代价值将会在超过容量的一霎那陡然增大,发生一次阶跃变化,同时超过连接路线的物理容量越大,其他额外增加的路线代价将会指数增长。
在一示例中,可以利用额外增加代价函数计算动态扩展信号组的最小路线代价的连接路线的互联线数量的信号组的总路线代价:
Figure BDA0004083771000000121
其中,x为某连接路线实际经过的信号组数量,N为该连接路线上的容量,M为大于0的参数(可根据需要进行设置)。
通过该方法依次遍历所有信号组,尝试将其放置在其它连接路线中,同时按照上述公式在原有路线代价的基础上计算增加额外的路线代价。如果,本次更改连接路线带来路线总代价降低,实现对信号组的初始布线结果进行优化,否则放弃该信号组的连接路线的更改。由于额外代价函数的存在,在一定数量的迭代次数之后,所有的信号组将会回归符合物理线路约束的布线routing路线中,到此完成优化过程。
本公开多FPGA间的布线代价优化方法,包括获取FPGA间的裸片Die级连接路线以及每条连接路线的互连线数量;遍历FPGA对之间需要传递的信号组,其中信号组由多个信号组成;计算每个信号组在每条连接路线的路线代价和每个信号组的收益值;选择最大收益值所对应的信号组和信号组最小路线代价的连接路线;将信号组的所有信号根据最小路线代价的连接路线进行布线,得到所有信号组的初始布线结果;更换信号组的最小路线代价的连接路线或动态扩展信号组的最小路线代价的连接路线的互联线数量对信号组的初始布线结果进行优化,实现多FPGA间的布线代价优化。能够合理选择信号连接路线进行布线routing,解除了Die Crossing处的连接资源的限制,且降低多FPGA布线过程中总体布线routing代价。
述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图9示出了根据本公开一实施例的多FPGA间的布线代价优化系统原理图。如图9所示,该系统可以包括:
获取模块901,用于获取FPGA间的裸片Die级连接路线以及每条连接路线的互连线数量;
遍历模块902,用于遍历FPGA对之间需要传递的信号组,其中信号组由多个信号组成;
计算模块903,用于记录每个信号组在每条连接路线的路线代价和计算每个信号组的收益值;
选择模块904,用于选择最大收益值所对应的信号组和信号组最小路线代价的连接路线;
布线模块905,用于将信号组的所有信号根据最小路线代价的连接路线进行布线,得到所有信号组的初始布线结果;
优化模块906,用于更换信号组的最小路线代价的连接路线或动态扩展信号组的最小路线代价的连接路线的互联线数量对信号组的初始布线结果进行优化,实现多FPGA间的布线代价优化。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在一些实施例中,超大规模集成电路的面积功耗优化系统装置可以结合任一实施例的超大规模集成电路的面积功耗优化的方法特征,反之亦然,在此不赘述。
在本发明实施例中,提供一种电子设备,包括:处理器和存储有计算机程序的存储器,处理器被配置为在运行计算机程序时执行任一本发明实施例的超大规模集成电路的面积功耗优化的方法。
图10示出了一种可以实施本发明实施例的方法或实现本发明实施例的电子设备1000的示意图,在一些实施例中可以包括比图示更多或更少的电子设备。在一些实施例中,可以利用单个或多个电子设备实施。在一些实施例中,可以利用云端或分布式的电子设备实施。
图10是本申请实施例提供的电子设备10的结构示意图。如图10所示,电子设备1000包括处理器1001,其可以根据存储在只读存储器(ROM)1002中的程序和/或数据或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序和/或数据而执行各种适当的操作和处理。处理器1001可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1001可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如,中央处理器(CPU)、图形处理器(GPU)、神经网络处理器(NPU)、数字信号处理器(DSP)等等。在RAM1003中,还存储有电子设备1000操作所需的各种程序和数据。处理器1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
上述处理器与存储器共同用于执行存储在存储器中的程序,程序被计算机执行时能够实现上述各实施例描述的方法、步骤或功能。
以下部件连接至I/O接口1005:包括键盘、鼠标、触摸屏等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。图10中仅示意性示出部分组件,并不意味着计算机系统1000只包括图10所示组件。
上述实施例阐明的系统、装置、模块或单元,可以由计算机或其关联部件实现。计算机例如可以为移动终端、智能电话、个人计算机、膝上型计算机、车载人机交互设备、个人数字助理、媒体播放器、导航设备、游戏控制台、平板电脑、可穿戴设备、智能电视、物联网系统、智能家居、工业计算机、服务器或者其组合。
尽管未示出,在本发明实施例中,提供一种存储介质,存储介质存储有计算机程序,计算机程序配置成被运行时执行任一本发明实施例的基于文件差异的编译方法。
在本发明的实施例的存储介质包括永久性和非永久性、可移动和非可移动的可以由任何方法或技术来实现信息存储的物品。存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
在本发明的实施例的方法、程序、系统、装置等,可以在单个或多个连网的计算机中执行或实现,也可以在分布式计算环境中实践。在本说明书实施例中,在这些分布式计算环境中,可以由通过通信网络而被连接的远程处理设备来执行任务。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本领域技术人员可想到,上述实施例阐明的功能模块/单元或控制器以及相关方法步骤的实现,可以用软件、硬件和软/硬件结合的方式实现。
除非明确指出,根据本发明实施例记载的方法、程序的动作或步骤并不必须按照特定的顺序来执行并且仍然可以实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本文中,针对本发明的多个实施例进行了描述,但为简明起见,各实施例的描述并不是详尽的,各个实施例之间相同或相似的特征或部分可能会被省略。在本文中,“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”意指适用于根据本发明的至少一个实施例或示例中,而非所有实施例。上述术语并不必然意味着指代相同的实施例或示例。在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
已参考上述实施例具体示出并描述了本发明的示例性系统及方法,其仅为实施本系统及方法的最佳模式的示例。本领域的技术人员可以理解的是可以在实施本系统及/或方法时对这里描述的系统及方法的实施例做各种改变而不脱离界定在所附权利要求中的本发明的精神及范围。

Claims (10)

1.一种多FPGA间的布线代价优化方法,其特征在于,所述布线代价优化方法包括:
获取FPGA间的裸片Die级连接路线以及每条连接路线的互连线数量;
遍历所述FPGA对之间需要传递的信号组,其中所述信号组由多个信号组成;
计算每个信号组在所述每条连接路线的路线代价和所述每个信号组的收益值;
选择最大收益值所对应的信号组和所述信号组最小路线代价的连接路线;
将所述信号组的所有信号根据所述最小路线代价的连接路线进行布线,得到所有信号组的初始布线结果;
更换所述信号组的最小路线代价的连接路线或动态扩展所述信号组的最小路线代价的连接路线的互联线数量对所述信号组的初始布线结果进行优化,实现所述多FPGA间的布线代价优化。
2.根据权利要求1所述的布线代价优化方法,其特征在于,更换所述信号组的最小路线代价的连接路线对所述信号组的初始布线结果进行优化,包括:
将所述信号组的最小路线代价的连接路线更换为新的连接路线,计算所述信号组的新的连接路线的路线代价,如果所述新的连接路线的路线代价下降,实现对所述信号组的初始布线结果进行优化,否则所述信号组的最小路线代价的连接路线保持不变。
3.根据权利要求1所述的布线代价优化方法,其特征在于,所述动态扩展所述信号组的最小路线代价的连接路线的互联线数量对所述信号组的初始布线结果进行优化,包括:
利用额外增加路线代价函数计算动态扩展所述信号组的最小路线代价的连接路线的互联线数量的所述信号组的总路线代价,如果所述总路线代价降低,实现对所述信号组的初始布线结果进行优化,否则所述信号组的最小路线代价的连接路线保持不变。
4.根据权利要求1所述的布线代价优化方法,其特征在于,所述计算每个信号组在所述每条连接路线的路线代价,包括:
针对两个FPGA之间的每一个信号组,所述每一个信号组的每条连接路线的路线代价为所述信号组中各个驱动节点到所述连接路线入口处所累加的路线代价和与所述连接路线出口处到达各个负载节点所累加的路线代价之和。
5.根据权利要求1所述的布线代价优化方法,其特征在于,所述计算每个信号组在所述每条连接路线的路线代价,还包括:
针对多个FPGA之间的每一个信号组,所述每一个信号组的每条连接路线的路线代价C=C+n,其中,C为当前FPGA与其它FPGA完成布线结果所产生的代价值,n为当前FPGA在内部裸片Die之间连接处穿过路由所产生的代价值。
6.根据权利要求1所述的连线分配方法,其特征在于,所述信号组的多个信号采用时分复用的方式共用一根互连线,所述每个信号组内的多个信号的传播方向一致。
7.根据权利要求1所述的连线分配方法,其特征在于,在所述将所述信号组的所有信号根据所述最小路线代价的连接路线进行布线之后,还包括:
将根据所述最小路线代价的连接路线进行布线的所述信号组剔除以及将所述最小路线代价的连接路线的互连线数量减1。
8.一种多FPGA间的布线代价优化系统,其特征在于,所述系统包括:
获取模块,用于获取FPGA间的裸片Die级连接路线以及每条连接路线的互连线数量;
遍历模块,用于遍历所述一对FPGA之间需要传递的信号组,其中所述信号组由多个信号组成;
计算模块,用于记录每个信号组在所述每条连接路线的路线代价和计算每个信号组的收益值;
选择模块,用于选择最大收益值所对应的信号组和所述信号组最小路线代价的连接路线;
布线模块,用于将所述信号组的所有信号根据所述最小路线代价的连接路线进行布线,得到所有信号组的初始布线结果;
优化模块,用于更换所述信号组的最小路线代价的连接路线或动态扩展所述信号组的最小路线代价的连接路线的互联线数量对所述信号组的初始布线结果进行优化,实现所述多FPGA间的布线代价优化。
9.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器运行时实现如权利要求1-7中任一所述的方法。
10.一种电子设备,其特征在于,包括:处理器和存储有计算机程序的存储器,所述处理器被配置为在运行计算机程序时实现权利要求1-7中任一所述的方法。
CN202310130557.6A 2023-02-17 2023-02-17 多fpga间的布线代价优化方法、系统、存储介质及电子设备 Pending CN116108787A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310130557.6A CN116108787A (zh) 2023-02-17 2023-02-17 多fpga间的布线代价优化方法、系统、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310130557.6A CN116108787A (zh) 2023-02-17 2023-02-17 多fpga间的布线代价优化方法、系统、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN116108787A true CN116108787A (zh) 2023-05-12

Family

ID=86254074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310130557.6A Pending CN116108787A (zh) 2023-02-17 2023-02-17 多fpga间的布线代价优化方法、系统、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116108787A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116107726A (zh) * 2023-04-13 2023-05-12 上海思尔芯技术股份有限公司 Fpga资源调度方法、装置、设备以及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116107726A (zh) * 2023-04-13 2023-05-12 上海思尔芯技术股份有限公司 Fpga资源调度方法、装置、设备以及存储介质
CN116107726B (zh) * 2023-04-13 2023-07-18 上海思尔芯技术股份有限公司 Fpga资源调度方法、装置、设备以及存储介质

Similar Documents

Publication Publication Date Title
US11500959B2 (en) Multiple output fusion for operations performed in a multi-dimensional array of processing units
Tosun Cluster-based application mapping method for network-on-chip
US10616103B2 (en) Constructing staging trees in hierarchical circuit designs
CN116108787A (zh) 多fpga间的布线代价优化方法、系统、存储介质及电子设备
Liu et al. OBFS: OpenCL based BFS optimizations on software programmable FPGAs
CN114429195A (zh) 混合专家模型训练的性能优化方法和装置
Radhakrishnan Nair et al. An efficient partitioning and placement based fault TSV detection in 3D-IC using deep learning approach
US9947073B2 (en) Memory-aware matrix factorization
Marzuni et al. Cross-MapReduce: Data transfer reduction in geo-distributed MapReduce
CN116151166A (zh) 多fpga间的连线分配方法、系统、存储介质及电子设备
CN112448853B (zh) 一种网络拓扑图优化方法、终端设备及存储介质
US11176296B1 (en) Unified data model for heterogeneous integrated circuit
CN115705497A (zh) 一种量子计算机操作系统和量子计算机
Belyaev et al. LuNA-ICLU compiler for automated generation of iterative fragmented programs
CN116341436A (zh) 一种信号聚合方法、装置、存储介质及电子设备
US8200913B2 (en) Distributed memory type information processing system
Odendahl et al. Optimized buffer allocation in multicore platforms
CN113743598B (zh) 一种ai芯片的运行方式的确定方法和装置
Dadda The evolution of computer architectures
Nedozhogin et al. Resource-Efficient Parallel CG Algorithms for Linear Systems Solving on Heterogeneous Platforms
CN116502579A (zh) 用于超大规模集成电路的方法、系统、存储介质及电子设备
CN116432591A (zh) 信号分配方法、信号分配系统、存储介质及电子设备
Grzesiak-Kopeć et al. A Parallel and Distributed Topological Approach to 3D IC Optimal Layout Design
CN117931721A (zh) 一种众核芯片以及众核芯片的数据获取方法
CN116306393A (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