CN116050330A - 一种基于混合粒度撕裂重路由的fpga布线方法及系统 - Google Patents
一种基于混合粒度撕裂重路由的fpga布线方法及系统 Download PDFInfo
- Publication number
- CN116050330A CN116050330A CN202310076593.9A CN202310076593A CN116050330A CN 116050330 A CN116050330 A CN 116050330A CN 202310076593 A CN202310076593 A CN 202310076593A CN 116050330 A CN116050330 A CN 116050330A
- Authority
- CN
- China
- Prior art keywords
- sub
- paths
- wiring
- routing
- path
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F30/347—Physical level, e.g. placement or routing
-
- 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
- Y02D10/00—Energy 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布线方法及系统,统计当前线网当前布线路径上的布线资源溢出量;当布线资源溢出量不为0时,遍历各个拥挤布线资源,当任意一个拥挤布线资源均没有同时位于多条子路径时,统计当前线网K条子路径中含有拥挤布线资源的子路径数目K’;当子路径数目K’大于当前线网子路径数目K的1/2时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作;当子路径数目K’小于等于当前线网子路径数目K的1/2时,以细粒度方式对K’条子路径依次进行子路径清空和重新寻径操作,重复以上步骤,继续处理下一条线网。有效降低了布线环节整体耗时,进而加速了FPGA开发设计流程。
Description
技术领域
本发明属于电子技术领域,具体涉及一种基于混合粒度撕裂重路由的FPGA布线方法及系统。
背景技术
现场可编程门阵列芯片(Field Programmable Gate Array,FPGA)使用可重构技术,解决了专用集成电路(Application Specific Integrated Circuit,ASIC)在流片后硬件功能确定而导致的灵活性不高的问题。因此,FPGA被应用于硬件设备价格昂贵且需要频繁升级或变更功能的嵌入式系统中,在航天航空、大型医疗器械、汽车自动驾驶以及物联网等领域有着广泛的应用。
FPGA开发的一般过程是:开发人员在集成开发环境,如:Xilinx的ISE,VIVADO等工具中进行硬件设计,图1为FPGA开发流程图,在完成高层次综合、静态仿真、布局、布线和时序仿真等操作后,工具生成一个FPGA配置二进制文件,将其传送至目标芯片后上电读取该文件内容进行配置固化,实现FPGA功能正常运行。
FPGA芯片工艺近年来不断提升,其集成度也随之提高,片上(On-Chip)资源越来越多,FPGA硬件设计的复杂度越来越高,随之而来的是FPGA开发流程中高层次综合、布局和布线等环节的耗时越来越长。以布线为例:现有的基于工业界和学术界广泛使用的PathFinder布线算法在执行数万条线网的大型布线任务时耗时通常为数小时之久。
随着FPGA在数据中心,边缘计算和人工智能训练集群等领域内的迅速发展,配置在FPGA上的任务在快速迭代以满足实时任务的运算需求。由于FPGA依赖其配置文件来执行特定任务,在发生算法更新或任务更新时,开发人员也需要对电路重新进行设计并多次进行FPGA开发流程设计,目前动辄数小时的编译开发过程将严重影响FPGA的应用时效性。
而在若干开发流程中,布线是最耗时的环节之一,对于布线过程的优化也因此成为了研究热点,很多研究者也提出了一些提高布线效率的方法,比如重新设计线网布线顺序,优化布线中用到的单源最短路径算法等。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于混合粒度撕裂重路由的FPGA布线方法及系统,用于解决当前FPGA开发流程中布线环节耗时过长的技术问题。
本发明采用以下技术方案:
一种基于混合粒度撕裂重路由的FPGA布线方法,包括以下步骤:
统计当前线网当前布线路径上的布线资源溢出量;当布线资源溢出量不为0时,遍历各个拥挤布线资源,当任意一个拥挤布线资源均没有同时位于多条子路径时,统计当前线网K条子路径中含有拥挤布线资源的子路径数目K’;当子路径数目K’大于当前线网子路径数目K的1/2时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作;当子路径数目K’小于等于当前线网子路径数目K的1/2时,以细粒度方式对K’条子路径依次进行子路径清空和重新寻径操作,重复以上步骤,继续处理下一条线网。
具体的,当前布线路径为上一轮布线得到的路径。
具体的,当布线资源溢出量为0时,退出当前线网的后续布线过程,进入下一条线网的布线过程。
具体的,遍历各个拥挤布线资源后,当有一个拥挤布线资源同时位于当前线网的多条子路径上时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作,然后进入下一条线网的布线过程。
进一步的,重新寻径操作包括对相关布线资源使用次数的增减操作。
具体的,以细粒度方式对K’条子路径依次进行子路径清空和重新寻径操作具体为:
当线网的路径上含有拥塞结点时,仅清空使用对应拥塞结点的源结点到汇结点的路径,并对源汇结点对重新路由。
进一步的,细粒度方式仅对含有拥塞结点的源汇结点对之间的路径进行清空路径操作和重新寻径操作。
第二方面,本发明实施例提供了一种基于混合粒度撕裂重路由的FPGA布线系统,包括:
统计模块,统计当前线网当前布线路径上的布线资源溢出量;
遍历模块,当统计模块得到的布线资源溢出量不为0时,遍历各个拥挤布线资源,当任意一个拥挤布线资源均没有同时位于多条子路径时,统计当前线网K条子路径中含有拥挤布线资源的子路径数目K’;
粗粒度模块,当遍历模块得到的子路径数目K’大于当前线网子路径数目K的1/2时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作;
细粒度模块,当遍历模块得到的子路径数目K’小于等于当前线网子路径数目K的1/2时,以细粒度方式对K’条子路径依次进行子路径清空和重新寻径操作,然后处理下一条线网。
第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于混合粒度撕裂重路由的FPGA布线方法的步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,包括计算机程序,所述计算机程序被处理器执行时实现上述基于混合粒度撕裂重路由的FPGA布线方法的步骤。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种基于混合粒度撕裂重路由的FPGA布线方法,统计当前线网的布线资源溢出量和含拥挤布线资源的子路径数目K’,当前线网将根据K’的相对大小来选择合适的撕裂重路由的粒度,以降低整体布线流程的时间开销。
进一步的,每一轮布线的路径均基于上一轮布线得到的路径,这样可以利用上一轮布线的资源拥挤信息来指导本轮布线进行撕裂重路由。
进一步的,当布线资源溢出量为0时,退出当前线网的后续布线过程,进入下一条线网的布线过程,这样可以避免没有意义的撕裂重路由操作降低布线时间开销。
进一步的,遍历各个拥挤布线资源后,当有一个拥挤布线资源同时位于当前线网的多条子路径上时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作,然后进入下一条线网的布线过程,这样可以根据线网的拥挤特征快速确定该线网应该采用的撕裂重路由的粒度。
进一步的,重新寻径操作包括对相关布线资源使用次数的增减操作,这样可以及时更新布线资源的使用情况并指导后续线网的布线。
进一步的,细粒度方法可以减少冗余的源汇结点对的路径撕裂重路由操作,但由于增加了划分路径为公共和非公共两部分的操作,也使得单个源汇结点对的路径的撕裂重路由的时间增加了。若定义撕裂重路由一条线网的时间开销为T=n*t,其中,n为需要撕裂重路由源汇结点对的数量,t为撕裂重路由单个源汇结点对的时间,细粒度方法相比粗粒度方法n减小了t却增加了。
进一步的,细粒度方式仅对含有拥塞结点的源汇结点对之间的路径进行清空路径操作和重新寻径操作,这样可以精准清除布线路径上的拥挤点以减少无意义的布线操作。
可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
综上所述,本发明有效降低了布线环节整体耗时,加速了FPGA开发设计流程。。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为FPGA开发流程图;
图2为对一条含3个汇结点的线网进行布线的示意图;
图3为重路由的示意图,其中,(a)为当前的粗粒度撕裂重路由,(b)为本发明提出的细粒度撕裂重路由;
图4为拥塞结点位于公共路径时的示意图;
图5为多个子路径分别含有拥塞结点时的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述预设范围等,但这些预设范围不应限于这些术语。这些术语仅用来将预设范围彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一预设范围也可以被称为第二预设范围,类似地,第二预设范围也可以被称为第一预设范围。
取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
在附图中示出了根据本发明公开实施例的各种结构示意图。这些图并非是按比例绘制的,其中为了清楚表达的目的,放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
本发明提供了一种基于混合粒度撕裂重路由的FPGA布线方法,首先基于工业界和学术界通用的粗粒度撕裂重路由方法,提出了一种无冗余操作的细粒度撕裂重路由方法;然后为了减少布线整体耗时,又提出了一种混合粒度调度方法,针对不同拥挤特征的线网使用不同粒度的撕裂重路由方法,有效降低了布线环节整体耗时,进而加速了FPGA开发设计流程。
请参阅图2,FPGA布线具体为:
寻找所有待布线线网中源(source)结点到该线网所有汇(sink)结点的路径。图2是对一条含3个汇结点的线网进行布线的示意图。
可用布线资源指未被其它线网占用,可以用来布线的区域;
不可用资源指寄存器等布线路径不能经过的区域;
布线路径指源汇结点间信号传输的路径;公共路径指线网的多条源汇结点间路径间共用的布线资源组成的路径。
撕裂重路由具体为:
在新一轮的布线迭代中,检测发现上一轮迭代时部分布线资源(结点)被使用的次数超出了该节点所能承受的最大线网数量,因此需要对使用了这些布线资源(拥挤结点)的线网进行路径清空和重新寻径操作。
需要注意的是,公共路径(图中斜线表示的路径)上的路由资源虽然被多个源点到汇点的路径共同使用,但因为其同属一个布线线网,因此仍视为这部分路由资源只被该线网使用了一次。
当前布线算法中的撕裂重路由都是粗粒度的,即当线网的路径上含有拥塞结点时将该线网的全部路径都清空然后重新寻找源结点到每一个汇结点的路径,请参阅图3(a),为当前的粗粒度撕裂重路由示意图。具体步骤为:首先清空了该线网的全部路径,然后分别寻找源点到各个汇结点的路径。其缺点是重复性计算过多,会造成布线时间的消耗。
为了最小化整体布线时间,考虑线网拥挤的特征,本发明提供一种基于混合粒度撕裂重路由的FPGA布线方法,包括以下步骤:
S1、统计当前线网当前布线路径上的布线资源溢出量;
将上一轮布线得到的路径作为当前布线路径。
布线资源溢出量overflow代表使用次数超出限度的布线资源的数目
S2、当步骤S1得到的布线资源溢出量为0时,退出当前线网的后续布线过程,进入下一条线网的布线过程,若步骤S1得到的布线资源溢出量不为0时,进入步骤S3;
S3、遍历各个拥挤布线资源,当有一个拥挤布线资源同时位于当前线网的多条子路径上时,以常用的粗粒度方式对当前线网进行全部路径清空和重新寻径操作,然后进入下一条线网的布线过程;当任意一个拥挤布线资源均没有同时位于多条子路径时,进入步骤S4;
拥挤布线资源为使用次数超出限度的布线资源;子路径为源结点到各个汇结点的路径;重新寻径操作包括对相关布线资源使用次数的增减操作。
S4、统计当前线网K条子路径中含有拥挤布线资源的子路径数目K’;
K条子路径为源结点到K个汇结点的路径,拥挤布线资源为使用次数超出限度的布线资源。
S5、当步骤S4得到的子路径数目K’大于当前线网子路径数目K的1/2时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作;当步骤S4得到的子路径数目K’小于等于当前线网子路径数目K的1/2时,以细粒度方式对K’条子路径依次进行子路径清空和重新寻径操作;
细粒度的撕裂重路由算法具体如下:
当线网的路径上含有拥塞结点时,仅清空使用了该拥塞结点的源结点到汇结点的路径,并对该源汇结点对重新路由。
图3(b)为本发明提出的细粒度撕裂重路由的示意图。具体的,在图3(b)中,先清空了源点到汇结点k3的路径,然后又重新寻找了源点到汇结点k3的路径。
图3(a)和图3(b)中有着同样的拥塞结点,该拥塞结点用深色实心圆圈表示,位于源结点到汇结点k3的路径上。
细粒度撕裂重路由的伪代码如下:
其中,第3行快速判断Nets中第j条线网是否含拥挤节点,若不含则跳出此次循环直接进入下一次循环处理第j+1条线网;
第6行根据函数CongestedSinks得到线网Nets[j-1]中路径上含拥塞结点的全部sink的集合ConSinks;
第7行判断ConSinks所含元素数量是否大于0,若大于0则循环为ConSinks中每一个sink清空路径并重新寻找路径(第8-11行);
第9行清空ConSinks中一个sink的路径时,需要先将该路径划分为公共路径和非公共路径两部分,然后将非公共路径上的布线资源使用次数减一;
第14行表示在完成一次迭代后,判断所有线网Nets的路径上的拥塞结点的数量是否为0,如果为0则表明布线已完成可以退出循环迭代过程。
细粒度方法仅对含有拥塞结点的源汇结点对之间的路径进行清空路径操作和重新寻径操作,不再对线网中未被拥塞结点影响到的路径进行清空操作和重新寻径操作,将大大降低布线单次迭代的时间开销。
S6、步骤S5完成后,重复以上步骤,继续处理下一条线网。
本发明一种基于混合粒度撕裂重路由的FPGA布线方法的伪代码如下:
其中,第3行判断当前线网是否拥挤,若不拥挤则跳过当前线网的路由过程直接进入下一条线网的路由过程;
第6行设置了一个bool型变量ifcoarse,默认值为False代表当前线网以细粒度方式进行撕裂重路由,若为True则代表当前线网以粗粒度方式撕裂重路由;
第7-12行以循环方式逐个判断当前线网中的各个拥塞结点是否属于当前线网的公共路径,一旦发现有一个拥塞结点属于当前线网的公共路径,就将ifcoarse置为True并立即退出此循环。
请参阅图4,若深色结点所表示的拥塞结点位于公共路径上,则该线网会在伪代码执行到第7-12行时被判断为适合以粗粒度进行撕裂重路由。第15行判断当前线网被阻塞的sink结点的数量是否大于总sink数量的1/2(1/2是一个经验值,对大部分布线场景较为适宜),若为真的话则将ifcoarse置为True。
请参阅图5,若汇结点k1和k3的路径上分别有一个深色实心圆圈所表示的拥塞结点,则该线网会在伪代码执行到第13-18行时被判断为适合以粗粒度进行撕裂重路由。第19~23行根据ifcoarse的值选择对应的粒度对该线网进行撕裂重路由。
本发明再一个实施例中,提供一种基于混合粒度撕裂重路由的FPGA布线系统,该系统能够用于实现上述基于混合粒度撕裂重路由的FPGA布线方法,具体的,该基于混合粒度撕裂重路由的FPGA布线系统包括统计模块、遍历模块、粗粒度模块以及细粒度模块。
其中,统计模块,统计当前线网当前布线路径上的布线资源溢出量;
遍历模块,当统计模块得到的布线资源溢出量不为0时,遍历各个拥挤布线资源,当任意一个拥挤布线资源均没有同时位于多条子路径时,统计当前线网K条子路径中含有拥挤布线资源的子路径数目K’;
粗粒度模块,当遍历模块得到的子路径数目K’大于当前线网子路径数目K的1/2时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作;
细粒度模块,当遍历模块得到的子路径数目K’小于等于当前线网子路径数目K的1/2时,以细粒度方式对K’条子路径依次进行子路径清空和重新寻径操作,然后处理下一条线网。
本发明再一个实施例中,提供了一种终端设备,该终端设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor、DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可以用于基于混合粒度撕裂重路由的FPGA布线方法的操作,包括:
统计当前线网当前布线路径上的布线资源溢出量;当布线资源溢出量不为0时,遍历各个拥挤布线资源,当任意一个拥挤布线资源均没有同时位于多条子路径时,统计当前线网K条子路径中含有拥挤布线资源的子路径数目K’;当子路径数目K’大于当前线网子路径数目K的1/2时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作;当子路径数目K’小于等于当前线网子路径数目K的1/2时,以细粒度方式对K’条子路径依次进行子路径清空和重新寻径操作,重复以上步骤,继续处理下一条线网。
本发明再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(Memory),所述计算机可读存储介质是终端设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括终端设备中的内置存储介质,当然也可以包括终端设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(Non-Volatile Memory),例如至少一个磁盘存储器。
可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关基于混合粒度撕裂重路由的FPGA布线方法的相应步骤;计算机可读存储介质中的一条或一条以上指令由处理器加载并执行如下步骤:
统计当前线网当前布线路径上的布线资源溢出量;当布线资源溢出量不为0时,遍历各个拥挤布线资源,当任意一个拥挤布线资源均没有同时位于多条子路径时,统计当前线网K条子路径中含有拥挤布线资源的子路径数目K’;当子路径数目K’大于当前线网子路径数目K的1/2时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作;当子路径数目K’小于等于当前线网子路径数目K的1/2时,以细粒度方式对K’条子路径依次进行子路径清空和重新寻径操作,重复以上步骤,继续处理下一条线网。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
仿真实验
本发明在CPU为Intel(R)Core(TM)i7-4790@3.60GHz,内存为12GB DDR4,操作系统为Ubuntu 18.04的实验环境,使用通用布线平台VTR提供的一个存在布线拥挤情况的数据集,进行了对比实验,实验结果如表1所示。
表1
表1数据表明,本发明提出的混合粒度撕裂重路由方法可有效减少拥挤结点数量下降到0所需的迭代轮数,布线总时间相比于传统的PathFinder方法下降了20%,平均单轮迭代时间下降了14%,并且使用的布线资源数量与PathFinder方法大致相当甚至有所降低,同时可以保证布线结果的正确性。
综上所述,本发明一种基于混合粒度撕裂重路由的FPGA布线方法及系统,首先提出了细粒度撕裂重路由方法,相比于传统的粗粒度撕裂重路由方法可以更高效地解决线网拥塞问题,并且根据线网的拥挤特征为不同线网选取不同粒度的撕裂重路由方法,可以最大程度降低布线过程的时间开销。通过仿真实验初步验证了本发明可以在保证布线质量的前提下降低布线的时间开销,可以显著加速FPGA开发设计流程。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、电载波信号、电信信号以及软件分发介质等,需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (10)
1.一种基于混合粒度撕裂重路由的FPGA布线方法,其特征在于,包括以下步骤:
统计当前线网当前布线路径上的布线资源溢出量;
当布线资源溢出量不为0时,遍历各个拥挤布线资源,当任意一个拥挤布线资源均没有同时位于多条子路径时,统计当前线网K条子路径中含有拥挤布线资源的子路径数目K’;
当子路径数目K’大于当前线网子路径数目K的1/2时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作;
当子路径数目K’小于等于当前线网子路径数目K的1/2时,以细粒度方式对K’条子路径依次进行子路径清空和重新寻径操作,重复以上步骤,继续处理下一条线网。
2.根据权利要求1所述的基于混合粒度撕裂重路由的FPGA布线方法,其特征在于,当前布线路径为上一轮布线得到的路径。
3.根据权利要求1所述的基于混合粒度撕裂重路由的FPGA布线方法,其特征在于,当布线资源溢出量为0时,退出当前线网的后续布线过程,进入下一条线网的布线过程。
4.根据权利要求1所述的基于混合粒度撕裂重路由的FPGA布线方法,其特征在于,遍历各个拥挤布线资源后,当有一个拥挤布线资源同时位于当前线网的多条子路径上时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作,然后进入下一条线网的布线过程。
5.根据权利要求4所述的基于混合粒度撕裂重路由的FPGA布线方法,其特征在于,重新寻径操作包括对相关布线资源使用次数的增减操作。
6.根据权利要求1所述的基于混合粒度撕裂重路由的FPGA布线方法,其特征在于,以细粒度方式对K’条子路径依次进行子路径清空和重新寻径操作具体为:
当线网的路径上含有拥塞结点时,仅清空使用对应拥塞结点的源结点到汇结点的路径,并对源汇结点对重新路由。
7.根据权利要求6所述的基于混合粒度撕裂重路由的FPGA布线方法,其特征在于,细粒度方式仅对含有拥塞结点的源汇结点对之间的路径进行清空路径操作和重新寻径操作。
8.一种基于混合粒度撕裂重路由的FPGA布线系统,其特征在于,包括:
统计模块,统计当前线网当前布线路径上的布线资源溢出量;
遍历模块,当统计模块得到的布线资源溢出量不为0时,遍历各个拥挤布线资源,当任意一个拥挤布线资源均没有同时位于多条子路径时,统计当前线网K条子路径中含有拥挤布线资源的子路径数目K’;
粗粒度模块,当遍历模块得到的子路径数目K’大于当前线网子路径数目K的1/2时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作;
细粒度模块,当遍历模块得到的子路径数目K’小于等于当前线网子路径数目K的1/2时,以细粒度方式对K’条子路径依次进行子路径清空和重新寻径操作,然后处理下一条线网。
9.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行权利要求1至7任一所述的方法。
10.一种计算设备,其特征在于,包括:
一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至7任一所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310076593.9A CN116050330A (zh) | 2023-02-07 | 2023-02-07 | 一种基于混合粒度撕裂重路由的fpga布线方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310076593.9A CN116050330A (zh) | 2023-02-07 | 2023-02-07 | 一种基于混合粒度撕裂重路由的fpga布线方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116050330A true CN116050330A (zh) | 2023-05-02 |
Family
ID=86131198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310076593.9A Pending CN116050330A (zh) | 2023-02-07 | 2023-02-07 | 一种基于混合粒度撕裂重路由的fpga布线方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116050330A (zh) |
-
2023
- 2023-02-07 CN CN202310076593.9A patent/CN116050330A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11755810B2 (en) | Method and apparatus for performing parallel routing using a multi-threaded routing procedure | |
US5237514A (en) | Minimizing path delay in a machine by compensation of timing through selective placement and partitioning | |
Kumar et al. | Extended hypercube: A hierarchical interconnection network of hypercubes | |
CN109710981B (zh) | Fpga的布线方法及系统 | |
US11662979B2 (en) | Adder circuitry for very large integers | |
CN110046704A (zh) | 基于数据流的深度网络加速方法、装置、设备及存储介质 | |
US8181139B1 (en) | Multi-priority placement for configuring programmable logic devices | |
CN105634974A (zh) | 软件定义网络中的路由确定方法和装置 | |
CN115658274A (zh) | 芯粒中神经网络推理的模块化调度方法、装置和计算设备 | |
CN110941451A (zh) | 一种数据流处理器指令映射方法及系统、装置 | |
CN113505561A (zh) | 一种软错误感知的fpga布局布线方法 | |
CN112257368B (zh) | 时钟布局方法、装置、eda工具及计算机可读存储介质 | |
CN104462726B (zh) | 用于反熔丝的现场可编程门阵列的布线方法 | |
CN116050330A (zh) | 一种基于混合粒度撕裂重路由的fpga布线方法及系统 | |
US7467368B1 (en) | Circuit clustering during placement | |
JPWO2005098612A1 (ja) | 重要成分優先計算方式ならびに装置 | |
Kurokawa et al. | Xy based fault-tolerant routing with the passage of faulty nodes | |
EP1192570B1 (en) | Circuit logic event simulation | |
Gianinazzi et al. | The spatial computer: A model for energy-efficient parallel computation | |
CN113822008B (zh) | 基于多引脚同时扩散搜索的超大规模集成电路布线方法 | |
CN112131813B (zh) | 基于端口交换技术的用于提升布线速度的fpga布线方法 | |
CN114037054A (zh) | 一种数据处理方法、装置、芯片、设备及介质 | |
Mehta | Time-multiplexed FPGA overlay networks on chip | |
US7581088B1 (en) | Conditional execution using an efficient processor flag | |
CN115271079A (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 |