一种基于混合粒度撕裂重路由的FPGA布线方法及系统技术方案

技术编号:37467109 阅读:11 留言:0更新日期:2023-05-06 09:42
本发明专利技术公开了一种基于混合粒度撕裂重路由的FPGA布线方法及系统,统计当前线网当前布线路径上的布线资源溢出量;当布线资源溢出量不为0时,遍历各个拥挤布线资源,当任意一个拥挤布线资源均没有同时位于多条子路径时,统计当前线网K条子路径中含有拥挤布线资源的子路径数目K

【技术实现步骤摘要】
一种基于混合粒度撕裂重路由的FPGA布线方法及系统


[0001]本专利技术属于电子
,具体涉及一种基于混合粒度撕裂重路由的FPGA布线方法及系统。

技术介绍

[0002]现场可编程门阵列芯片(Field Programmable Gate Array,FPGA)使用可重构技术,解决了专用集成电路(Application Specific Integrated Circuit,ASIC)在流片后硬件功能确定而导致的灵活性不高的问题。因此,FPGA被应用于硬件设备价格昂贵且需要频繁升级或变更功能的嵌入式系统中,在航天航空、大型医疗器械、汽车自动驾驶以及物联网等领域有着广泛的应用。
[0003]FPGA开发的一般过程是:开发人员在集成开发环境,如:Xilinx的ISE,VIVADO等工具中进行硬件设计,图1为FPGA开发流程图,在完成高层次综合、静态仿真、布局、布线和时序仿真等操作后,工具生成一个FPGA配置二进制文件,将其传送至目标芯片后上电读取该文件内容进行配置固化,实现FPGA功能正常运行。
[0004]FPGA芯片工艺近年来不断提升,其集成度也随之提高,片上(On

Chip)资源越来越多,FPGA硬件设计的复杂度越来越高,随之而来的是FPGA开发流程中高层次综合、布局和布线等环节的耗时越来越长。以布线为例:现有的基于工业界和学术界广泛使用的PathFinder布线算法在执行数万条线网的大型布线任务时耗时通常为数小时之久。
[0005]随着FPGA在数据中心,边缘计算和人工智能训练集群等领域内的迅速发展,配置在FPGA上的任务在快速迭代以满足实时任务的运算需求。由于FPGA依赖其配置文件来执行特定任务,在发生算法更新或任务更新时,开发人员也需要对电路重新进行设计并多次进行FPGA开发流程设计,目前动辄数小时的编译开发过程将严重影响FPGA的应用时效性。
[0006]而在若干开发流程中,布线是最耗时的环节之一,对于布线过程的优化也因此成为了研究热点,很多研究者也提出了一些提高布线效率的方法,比如重新设计线网布线顺序,优化布线中用到的单源最短路径算法等。

技术实现思路

[0007]本专利技术所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于混合粒度撕裂重路由的FPGA布线方法及系统,用于解决当前FPGA开发流程中布线环节耗时过长的技术问题。
[0008]本专利技术采用以下技术方案:
[0009]一种基于混合粒度撕裂重路由的FPGA布线方法,包括以下步骤:
[0010]统计当前线网当前布线路径上的布线资源溢出量;当布线资源溢出量不为0时,遍历各个拥挤布线资源,当任意一个拥挤布线资源均没有同时位于多条子路径时,统计当前线网K条子路径中含有拥挤布线资源的子路径数目K

;当子路径数目K

大于当前线网子路径数目K的1/2时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作;当子路径
数目K

小于等于当前线网子路径数目K的1/2时,以细粒度方式对K

条子路径依次进行子路径清空和重新寻径操作,重复以上步骤,继续处理下一条线网。
[0011]具体的,当前布线路径为上一轮布线得到的路径。
[0012]具体的,当布线资源溢出量为0时,退出当前线网的后续布线过程,进入下一条线网的布线过程。
[0013]具体的,遍历各个拥挤布线资源后,当有一个拥挤布线资源同时位于当前线网的多条子路径上时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作,然后进入下一条线网的布线过程。
[0014]进一步的,重新寻径操作包括对相关布线资源使用次数的增减操作。
[0015]具体的,以细粒度方式对K

条子路径依次进行子路径清空和重新寻径操作具体为:
[0016]当线网的路径上含有拥塞结点时,仅清空使用对应拥塞结点的源结点到汇结点的路径,并对源汇结点对重新路由。
[0017]进一步的,细粒度方式仅对含有拥塞结点的源汇结点对之间的路径进行清空路径操作和重新寻径操作。
[0018]第二方面,本专利技术实施例提供了一种基于混合粒度撕裂重路由的FPGA布线系统,包括:
[0019]统计模块,统计当前线网当前布线路径上的布线资源溢出量;
[0020]遍历模块,当统计模块得到的布线资源溢出量不为0时,遍历各个拥挤布线资源,当任意一个拥挤布线资源均没有同时位于多条子路径时,统计当前线网K条子路径中含有拥挤布线资源的子路径数目K


[0021]粗粒度模块,当遍历模块得到的子路径数目K

大于当前线网子路径数目K的1/2时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作;
[0022]细粒度模块,当遍历模块得到的子路径数目K

小于等于当前线网子路径数目K的1/2时,以细粒度方式对K

条子路径依次进行子路径清空和重新寻径操作,然后处理下一条线网。
[0023]第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于混合粒度撕裂重路由的FPGA布线方法的步骤。
[0024]第四方面,本专利技术实施例提供了一种计算机可读存储介质,包括计算机程序,所述计算机程序被处理器执行时实现上述基于混合粒度撕裂重路由的FPGA布线方法的步骤。
[0025]与现有技术相比,本专利技术至少具有以下有益效果:
[0026]本专利技术一种基于混合粒度撕裂重路由的FPGA布线方法,统计当前线网的布线资源溢出量和含拥挤布线资源的子路径数目K

,当前线网将根据K

的相对大小来选择合适的撕裂重路由的粒度,以降低整体布线流程的时间开销。
[0027]进一步的,每一轮布线的路径均基于上一轮布线得到的路径,这样可以利用上一轮布线的资源拥挤信息来指导本轮布线进行撕裂重路由。
[0028]进一步的,当布线资源溢出量为0时,退出当前线网的后续布线过程,进入下一条线网的布线过程,这样可以避免没有意义的撕裂重路由操作降低布线时间开销。
[0029]进一步的,遍历各个拥挤布线资源后,当有一个拥挤布线资源同时位于当前线网的多条子路径上时,以粗粒度方式对当前线网进行全部路径清空和重新寻径操作,然后进入下一条线网的布线过程,这样可以根据线网的拥挤特征快速确定该线网应该采用的撕裂重路由的粒度。
[0030]进一步的,重新寻径操作包括对相关布线资源使用次数的增减操作,这样可以及时更新布线资源的使用情况并指导后续线网的布线。
[0031]进一步的,细粒度方法可以减少冗余的源汇结点对的路径撕裂重路由操作,但由于增加了划分路径为公共和非公共两部分的操作,也使得单个源汇结点对的路径的撕裂重路由的时间增加了。若定义撕裂重路本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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

条子路径依...

【专利技术属性】
技术研发人员:伍卫国惠龙朔王今雨李波栗怡文张晗泽冯雅琦
申请(专利权)人:西安交通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1