CN118133765A - 芯片布线方法、装置、设备及存储介质 - Google Patents
芯片布线方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN118133765A CN118133765A CN202410210832.XA CN202410210832A CN118133765A CN 118133765 A CN118133765 A CN 118133765A CN 202410210832 A CN202410210832 A CN 202410210832A CN 118133765 A CN118133765 A CN 118133765A
- Authority
- CN
- China
- Prior art keywords
- wiring
- resource
- local
- target
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012216 screening Methods 0.000 claims description 31
- 230000015654 memory Effects 0.000 claims description 28
- 238000013461 design Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/394—Routing
-
- 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]
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)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及芯片设计技术领域,公开了一种芯片布线方法、装置、设备及存储介质,该方法包括:获取预先生成的布线资源,所述布线资源包括起点、终点和至少一条中间路径;获取布线起点和布线终点;基于所述布线资源确定所述布线起点和所述布线终点之间的路径;使用所述路径对应的所述布线资源进行布线。本发明提供布线方法,相比传统布线方法,布线速度有了极大地提升,布线结果更优,布通率更高。
Description
技术领域
本发明涉及芯片设计技术领域,具体涉及一种芯片布线方法、装置、设备及存储介质。
背景技术
在现场可编程门阵列芯片(Field Programmable Gate Array,FPGA)设计中,布线是指将各个逻辑元器件的连接关系建立起来的过程。布线是将用户的目标电路在芯片上实现的关键步骤,布线算法的好坏会显著影响芯片的性能、功耗和可靠性。
在传统的布线算法中,其布线资源就是整个FPGA上所有元器件及其端口、连接关系的抽象。由其布线资源的特点所带来的必然的结果就是,在对每一组起点、终点布线时,不仅需要对每个中间点做遍历搜索,而且搜索到的点还很可能是与此次布线无关的点。大量的搜索操作和大量的无关点导致了传统布线算法速度慢、效率低的缺点。
发明内容
有鉴于此,本发明提供了一种芯片布线方法、装置、设备及存储介质,以解决FPGA芯片布线效率低的问题。
第一方面,本发明提供了一种芯片布线方法,包括:
获取预先生成的布线资源,布线资源包括起点、终点和至少一条中间路径;
获取布线起点和布线终点;
基于布线资源确定布线起点和布线终点之间的路径;
使用路径对应的布线资源进行布线。
本实施例提供的芯片布线方法,所使用的布线资源是基于路径的布线资源,可以称为基于Pattern的布线资源,该布线方法可以称为Pattern Route,区别于需要遍历搜索当前节点的连接关系的传统布线方法,可以直接使用一条布线资源或者拼接的几条布线资源实现布线起点和布线终点之间的路径连接,比传统布线方法速度更快,同时可以得到多条路径供布线选择,布线结果更优,布通率更高。
在一种可选的实施方式中,布线资源包括点对点布线资源,点对点布线资源的起点为一个逻辑元器件的输出、终点为另一逻辑元器件的输入;
基于布线资源确定布线起点和布线终点之间的路径,包括:
判断布线起点和布线终点是否与第一布线资源的起点和终点一致;第一布线资源为其中一条布线资源;
若一致,则选择第一布线资源的一条中间路径作为布线起点和布线终点之间的路径。
在一种可选的实施方式中,布线资源包括局部布线资源和全局布线资源,局部布线资源包括第一局部布线资源、第二局部布线资源和第三局部布线资源;
第一局部布线资源的起点为逻辑元器件的输出、终点是对应的开关盒的第一输出;
第二局部布线资源的起点为开关盒的第一输入、终点是对应的逻辑元器件的输入;
第三局部布线资源的起点是开关盒的第一输入、终点是同一开关盒的第一输出;
全局布线资源的起点为一个开关盒的第一输出、终点是另一个开关盒的第一输入、中间经过一条或多条全局线;
其中,第一输入、第一输出均用于与全局线连接。
在一种可选的实施方式中,基于布线资源确定布线起点和布线终点之间的路径,包括:
根据布线起点筛选出目标第一局部布线资源;
根据布线终点筛选出目标第二局部布线资源;
筛选出能够直接连接或通过拼接能够连接目标第一局部布线资源的终点和目标第二局部布线资源的起点的目标全局布线资源和/或目标第三局部布线资源;
将筛选出的目标第一局部布线资源、目标第二局部布线资源,以及目标全局布线资源和/或目标第三局部布线资源拼接,得到布线起点和布线终点之间的路径。
在一种可选的实施方式中,筛选出能够直接连接或通过拼接能够连接目标第一局部布线资源的终点和目标第二局部布线资源的起点的目标全局布线资源,包括:
获取全局布线资源中起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的全局布线资源;
将获取到的全局布线资源作为目标全局布线资源。
在一种可选的实施方式中,筛选出能够直接连接或通过拼接能够连接目标第一局部布线资源的终点和目标第二局部布线资源的起点的目标全局布线资源,包括:
获取通过全局线拼接后,起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的多条全局布线资源的组合;
将全局布线资源的组合中的多条全局布线资源作为目标全局布线资源。
在一种可选的实施方式中,筛选出能够直接连接或通过拼接能够连接目标第一局部布线资源的终点和目标第二局部布线资源的起点的目标全局布线资源和目标第三局部布线资源,包括:
获取通过全局线拼接后,起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的布线资源组合,布线资源组合包括一条或多条全局布线资源、和一条或多条第三局部布线资源;
将布线资源组合中的全局布线资源作为目标全局布线资源、布线资源组合中的第三局部布线资源作为目标第三局部布线资源。
在一种可选的实施方式中,筛选出能够直接连接或通过拼接能够连接目标第一局部布线资源的终点和目标第二局部布线资源的起点的目标第三局部布线资源,包括:
获取通过全局线拼接后,起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的第三局部布线资源组合,第三局部布线资源组合包括多条第三局部布线资源;
将第三局部布线资源组合中的第三局部布线资源作为目标第三局部布线资源。
在一种可选的实施方式中,使用路径对应的布线资源进行布线,包括:
若确定出的布线起点和布线终点之间的路径为多条,则获取路径所包含的全局线的条数;
从路径中,选择包含全局线最少且均未被占用的路径;
按照选择的路径布线。
在一种可选的实施方式中,使用路径对应的布线资源进行布线,包括:
若确定出的布线起点和布线终点之间的路径为多条,则获取路径所使用的数据选择器的数量,或者获取路径的时延;
从路径中,选择使用数据选择器最少的路径,或者选择时延最短的路径;
按照选择的路径布线。
在一种可选的实施方式中,使用路径对应的布线资源进行布线,包括:
获取布线区域中各元器件在芯片中的绝对位置;
按照路径对应的布线资源中各元器件的相对位置关系,将布线资源平移至绝对位置。
第二方面,本发明提供了一种芯片布线装置,该装置包括:
第一获取模块,用于获取预先生成的布线资源,布线资源包括起点、终点和至少一条中间路径;
第二获取模块,用于获取布线起点和布线终点;
确定模块,用于基于布线资源确定布线起点和布线终点之间的路径;
布线模块,用于使用路径对应的布线资源进行布线。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的芯片布线方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的芯片布线方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是一种典型的FPGA芯片的结构示意图;
图2是FPGA芯片的全局线局部关系示意图;
图3是一种FPGA芯片的局部结构示意图;
图4是基于图3所示的FPGA芯片局部结构进行布线的示意图之一;
图5是基于图3所示的FPGA芯片局部结构进行布线的示意图之二;
图6是根据本发明实施例的芯片布线方法的流程示意图;
图7是根据本发明实施例的一条点对点的布线资源的路径示意图;
图8是根据本发明实施例的一条第一局部布线资源对应的路径示意图;
图9是根据本发明实施例的两条第三局部布线资源对应的路径示意图;
图10根据是本发明实施例的一条第二局部布线资源对应的路径示意图;
图11根据是本发明实施例的一条全局布线资源对应的路径示意图;
图12根据是本发明实施例的根据布线起点筛选出的目标第一局部布线资源对应的路径示意图;
图13根据是本发明实施例的根据布线终点筛选出的目标第二局部布线资源对应的路径示意图;
图14根据是本发明实施例的一种布线路径示意图;
图15是根据本发明实施例的芯片布线装置的结构框图;
图16是本发明实施例的计算机设备的硬件结构示意图。
附图中:Log为逻辑功能区,Swh为开关盒,Global Wire为全局线,Logic Element为逻辑元器件,Mux为数据选择器。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是一种典型的FPGA结构的示意图。其中,蓝色区域是开关盒(Swh),开关盒中布满了数据选择器,这些数据选择器就是布线资源的一部分,通过改变数据选择器的控制端,就可以改变路径的连接关系,从而实现“现场可编程”。绿色区域是逻辑功能区(Log),逻辑功能区有许多种,每种逻辑功能区的内部结构以及其包含的基础元器件都不相同,但是其连接关系是相同的。逻辑功能区除了内部的连线外,只能连接其对应的Swh。Swh与Log之间的虚线就表示了这种连接关系。可以看到,Log与Swh之间的连接是双向的,信号可以从Log到达Swh,也可以从Swh到达Log。黑色实线是全局线(Global Wire)。从图中可以看出,Swh会与全局线连接,而全局线又可以跟其他Swh连接,这样,就实现了不同位置Swh的连接。
需要明确的是,图1中的全局线的连接关系并不准确,其真实情况局部图如图2所示。从这图2中可以看出,全局线并不是无限长的,而是有几种不同的线长,比如1、2、4。每个Swh都会与若干条不同的全局线相连,比如与线长为1的全局线相连,这根全局线会跟距离为1的Swh相连,从而实现距离为1的Swh互联。同理,线长为2的全局线会使Swh连接到距离为2的其他Swh。
首先,通过一个简单的例子来简单介绍下传统的布线方法。
如图3所示,假如布线起点为Log0的起点S,终点是Log1的终点E,那么,传统的布线会这样操作:
首先,查找所有起点S的连接关系,找到其连接的下一个点,假设这个点为a;
其次,查找a的所有连接关系,找到其连接的下一个点……
以此类推。假设布线进行到图4阶段,当查找到一个数据选择器的输出端b时,发现这个输出端有两个输出,一个连向另一个输出端,另一个连向这个Swh的边界输出端。这时候,对于传统的布线算法,两个输出都需要搜索。
继续进行传统布线算法的推演,如图5所示,当搜索到端口c时,发现端口c也有两个输出,但是,其中一条输出(见绿色线)是不可能连接到终点E的。
但是,传统布线算法无法预测这点,所以,当搜索到端口c时,传统算法会和搜索到端口b时一样,对于c的两个输出路径,都会进行搜索。显然,绿色的一条路径是一条无关路径,传统的布线算法在搜索这条路径时,当搜索到Log1的逻辑元器件(黄色长方形表示)时,才能得知这条路径是无效的,从而放弃这条路径,搜索c端口的另一条路径。
在上述的例子中,只假定了2个端口有多个输出,且输出数量仅为2,但是,在实际的布线中,会遇到大量的多输出端口,这些端口不仅输出数量很多,而且大部分输出都是与布线无关的。这样,就导致了传统布线速度极慢,且布线时需要存储大量的无关路径。同时,传统的布线无法预测是否可以有多条路径,又因为传统的布线方法速度慢、效率低,很难找到所有的可行路径,所以,往往在找到第一条路径后,就以这个路径作为结果,这就导致传统布线的结果很难是最优解。
根据本发明实施例,提供了一种芯片布线方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组可执行计算机指令的计算机设备中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种芯片布线方法,可用于计算机设备,该计算机设备中运行有FPGA设计工具,图6是根据本发明实施例的芯片布线方法的流程图,如图6所示,该流程包括如下步骤:
步骤S601,获取预先生成的布线资源,布线资源包括起点、终点和至少一条中间路径。
本实施例中的布线资源与传统布线资源不同,传统布线资源中离散地记录了每一个元器件的每一个端口和连接关系,而本实施例的布线资源记录的是路径,而且只记录相关的点,比如A->B->C->D这条路径,本实施例的布线资源中只会记录A、B、C、D,即使B可能同时可以连接到E,也不会记录这个链接关系。本实施例中的布线资源的起点和终点至少跨越一个开关盒、甚至跨越多个开关盒,也不在同一逻辑功能区上。在存储布线资源时,布线资源的起点和终点可以作为索引,值是起点到终点之间的一条或多条中间路径。
本实施例中,布线资源的起点和终点之间的中间路径可以不止一条,在生成布线资源时,可以全部生成,但是考虑到布线资源存储所需占用的存储空间以及布线需要,也可以只生成其中的部分。例如,对于全局布线资源,可以只生成其中使用全局线较少的几种。因为全局线是相对稀缺的资源,因此在布线时一般会尽可能选择使用较少的全局线。
步骤S602,获取布线起点和布线终点。
步骤S603,基于布线资源确定布线起点和布线终点之间的路径。
根据上述,在存储布线资源时,布线资源的起点和终点可以作为索引,值是起点到终点之间的一条或多条中间路径。在FPGA设计工具程序中,给出索引,即可以直接获取到值。所以只需要给出布线起点和布线终点,以Pattern为基础的布线资源就可以立即给出这两个点之间所有的路径。后续,即可以从这些路径中选取最合适的路径来进行布线。
步骤S604,使用路径对应的布线资源进行布线。
本实施例提供的芯片布线方法,所使用的布线资源是基于路径的布线资源,可以称为基于Pattern的布线资源,该布线方法可以称为Pattern Route,区别于需要遍历搜索当前节点的连接关系的传统布线方法,可以直接使用一条布线资源或者拼接的几条布线资源实现布线起点和布线终点之间的路径连接,比传统布线方法速度更快,同时可以得到多条路径供布线选择,布线结果更优,布通率更高。
本发明实施例中,布线资源分为三种:点对点布线资源、局部布线资源和全局布线资源,关于这三种布线资源在布线时的使用,详见下文。
一些可选的具体实施方式中,布线资源包括点对点布线资源,点对点布线资源的起点为一个逻辑元器件的输出(也可以称为逻辑输出)、终点为另一逻辑元器件的输入(也可以称为逻辑输入);在FPGA芯片中,逻辑元器件在逻辑功能区中,这里的一个逻辑元器件和另一个逻辑元器件可以在同一个逻辑功能区中,也可以在不同的逻辑功能区中。
基于布线资源确定布线起点和布线终点之间的路径,包括:
判断布线起点和布线终点是否与第一布线资源的起点和终点一致;第一布线资源为其中一条布线资源;
若一致,则选择第一布线资源的一条中间路径作为布线起点和布线终点之间的路径。
本发明实施例中,点对点布线资源自身就是一条完整的路径(而局部布线资源、全局布线资源需要拼接起来才是一条完整的路径)。在生成布线资源时,对于一些简单的路径,可以直接提取这样的布线资源,比如,在同一个逻辑功能区中的两个逻辑元器件,如图7中的起点和终点,可以直接将这两个点之间的路径保存起来。由于是一条完整的路径,因此在布线时如果起点和终点匹配,那么可以直接利用该布线资源进行布线。举例来说,如果布线起点和布线终点在同一个逻辑功能区中,那么可以选择点对点布线。将布线起点和布线终点作为索引,从布线资源中提取点对点布线资源,提取到的点对点布线资源就是完整的路径。当然,如果在生成布线资源时,生成了起点和终点不在同一个逻辑功能区的点对点布线资源,那么即使布线起点和布线终点不在同一个逻辑功能区中,那么只要有起点和终点匹配的点对点布线资源,那么也可以使用点对点布线。
另一些可选的具体实施方式中,布线资源包括局部布线资源和全局布线资源,局部布线资源包括第一局部布线资源、第二局部布线资源和第三局部布线资源;
第一局部布线资源的起点为逻辑元器件的输出、终点是对应的开关盒的第一输出;
第二局部布线资源的起点为开关盒的第一输入、终点是对应的逻辑元器件的输入;
第三局部布线资源的起点是开关盒的第一输入、终点是同一开关盒的第一输出;
全局布线资源的起点为一个开关盒的第一输出、终点是另一个开关盒的第一输入、中间经过一条或多条全局线;
其中,第一输入、第一输出均用于与全局线连接。
本发明实施例中,局部布线资源是功能单元区块“Tile”(每一个功能单元区块都包含两个部分,分别为一个开关盒“Switch Hub”和逻辑功能区)内部的布线资源。对于任意一个逻辑元器件的输出,要想连接到其他位置的逻辑功能区,必须要首先经过开关盒,然后通过开关盒连接到全局线,再经过若干个其他的开关盒和全局线,到达目标逻辑功能区所在的开关盒,最后经由这个开关盒到达目标逻辑功能区。所以,局部布线资源有三种:
一、第一局部布线资源,也可以称为逻辑输出布线资源,如图8所示,逻辑输出布线资源是从逻辑元器件的输出到对应开关盒输出的布线资源,这个开关盒的输出端口必须连接全局线,而不是连接对应的逻辑功能区。对于大多数情况,一条完整的路径首先要经过这种局部布线资源,才能够达到全局线,从而到达FPGA上的其他位置。
二、第三局部布线资源,也可以称为开关盒布线资源,如图9所示(每个开关盒都是一样的,图8和图9中的开关盒不一样,是因为开关盒的中数据选择器(Mux)太多,所以图8和图9中都只画了相关的部分数据选择器,图8中,只画了从逻辑输出到全局线需要经过的Mux,而图9中只画了从全局线到全局线需要经过的Mux),信号在到达全局线后,全局线会连接FPGA上的某一个开关盒。由于全局线不是无限长的、不是任意两个开关盒都可以直接通过全局线相连的,所以,布线起点的全局线需要先到达第一个开关盒,再穿过这个开关盒,到达另一个全局线,以此类推,直到到达布线终点所对应的开关盒。“穿过开关盒”这样的路径,就是开关盒布线资源。开关盒布线资源的起点是开关盒的输入,这个输入连接着全局线;终点是开关盒的输出,这个输出也连接着全局线。开关盒布线资源的作用就是连接两条全局线,使FPGA上的任意两个位置,都可以通过多段全局线相连。
三、第二局部布线资源,也可以称为逻辑输入布线资源。如图10所示,当信号到达最后一段全局线,之后找到了终点所对应的开关盒后,信号会经过开关盒的输入,穿过开关盒,最后到达终点。这一段路径就是逻辑输入布线资源。
关于全局布线资源,上文的局部布线资源中提到,信号从FPGA的一个位置,输出到FPGA的另一个位置,路径是:起点对应的开关盒->全局线->穿过开关盒->全局线->……->穿过开关盒->全局线->终点对应的开关盒,第一段从起点到起点对应的开关盒是逻辑输出布线资源,最后一段终点对应的开关盒到终点是逻辑输入布线资源,中间的穿过若干个开关盒的路径就是全局布线资源。所以,如图11所示,全局布线资源是这样的(注意,为了方便观看,图11没有画出逻辑功能区,没有画出不相关的全局线。同时,在图11中可以体现,全局线是有不同线长的,每个开关盒都会与若干条不同线长、不同方向的全局线相连):
全局布线资源的起点是一个开关盒的输出,从开关盒输出开始,经过一条全局线到达另一个开关盒,穿过这个开关盒,到达全局线,在经过这个全局线,到达下一个开关盒,继续穿过开关盒……最后,到达终点开关盒的输入。
很显然,全局布线资源是由若干个第三局部布线资源拼接而成的。
对于某两个位置(布线资源的起点和终点),在生成全局布线资源时,需要考虑布线资源数量与存储空间大小的平衡。比如,假如FPGA的全局线有线长为1、2、4三种,需要生成(0,0)、(0,5)这两个位置的全局布线资源,那么,首先计算,有哪几种全局线长组合可以生成这样的全局布线资源。显然,如果想要使用最少的全局线,那么可以走(0,4)->(0,1)这两条线(这只是其中一种,走线顺序可以互换,所以经过排列组合,共有2*1=2种走线方法),这2种走线方法是使用全局线和开关盒最少的走线方法。其次,可以使用两条走2线,一条走1线来实现,这样的走法需要用到3条全局线。再次,可以使用1条走2线,3条走1线等等。然而,如果要将所有走线方案全部生成全局布线资源,会导致布线资源的空间占用太大,所以,一般情况下,可以只生成使用全局线较少的几种全局布线资源。
其中一些可选的具体实施方式中,基于布线资源确定布线起点和布线终点之间的路径,包括:
根据布线起点筛选出目标第一局部布线资源;具体地,从第一局部布线资源中筛选出起点与布线起点一致的一个或多个第一局部布线资源作为目标第一局部布线资源。以图12为例,存在两条目标第一局部布线资源(对应图12中的两条红线)。
根据布线终点筛选出目标第二局部布线资源;具体地,从第二局部布线资源中筛选出终点与布线终点一致的一个或多个第二局部布线资源作为目标第二局部布线资源。以图13为例,存在两条目标第二局部布线资源(对应图13中的两条红线)。
筛选出能够直接连接或通过拼接能够连接目标第一局部布线资源的终点(如图12所示的SwhPinO0和SwhPinO1)和目标第二局部布线资源的起点(如图13所示的SwhPinI0和SwhPinI1)的目标全局布线资源和/或目标第三局部布线资源;
这里筛选出的连接目标第一局部布线资源的终点和目标第二局部布线资源的起点的布线资源可以只有全局布线资源,可以有全局布线资源和目标第三局部布线资源,还可以只有目标第三局部布线资源。
在只有全局布线资源时,可以只有一条全局布线资源,也可以有多条全局布线资源,对于其中一条全局布线资源,可能不需要与其他全局布线资源拼接即可连接目标第一局部布线资源的终点和目标第二局部布线资源的起点,也可能需要与其他的全局布线资源拼接才能连接目标第一局部布线资源的终点和目标第二局部布线资源的起点。
在同时有全局布线资源和目标第三局部布线资源时,其中的一条全局布线资源可以单独连接目标第一局部布线资源的终点和目标第二局部布线资源的起点,不需要与其他的全局布线资源或目标第三局部布线资源拼接即可连接目标第一局部布线资源的终点和目标第二局部布线资源的起点,也可以需要与其他的全局布线资源拼接才能连接目标第一局部布线资源的终点和目标第二局部布线资源的起点,或者需要与目标第三局部布线资源拼接才能连接目标第一局部布线资源的终点和目标第二局部布线资源的起点。在实际实施时存在优先级,即如有只有全局布线资源即可连接目标第一局部布线资源的终点和目标第二局部布线资源的起点,那么就不会去获取全局布线资源和目标第三局部布线资源的拼接路径。其中的目标第三局部布线资源可能需要与全局布线资源拼接才能连接目标第一局部布线资源的终点和目标第二局部布线资源的起点,也可能不需要与全局布线资源拼接只需要与其他的目标第三局部布线资源拼接即可连接目标第一局部布线资源的终点和目标第二局部布线资源的起点。
在只有目标第三局部布线资源时,目标第三局部布线资源一般需要与其他的目标第三局部布线资源拼接才能连接目标第一局部布线资源的终点和目标第二局部布线资源的起点。当然,也有少数情况下,不需要与其他的目标第三局部布线资源拼接即可连接目标第一局部布线资源的终点和目标第二局部布线资源的起点。这种情况一般是目标第一局部布线资源的终点和目标第二局部布线资源的起点之间只隔着一个开关盒。实际实施时,这种情况是布线需求也可以通过点对点布线实现。
将筛选出的目标第一局部布线资源、目标第二局部布线资源,以及目标全局布线资源和/或目标第三局部布线资源拼接,得到布线起点和布线终点之间的路径。这里的拼接得到一条路径,可能只需要一条目标全局布线资源,也可能需要多条目标全局布线资源,可能需要一条目标全局布线资源和一条或多条目标第三局部布线资源,可能需要多条目标全局布线资源和一条或多条目标第三局部布线资源,还可能只需要一条或多条目标第三局部布线资源。拼接得到的路径可能是一条,也可能是多条。
作为一种具体的实施方式,筛选出能够直接连接或通过拼接能够连接目标第一局部布线资源的终点和目标第二局部布线资源的起点的目标全局布线资源,包括:
获取全局布线资源中起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的全局布线资源,即只需要一条全局布线资源即可连接目标第一局部布线资源的终点和目标第二局部布线资源的起点,但是这样的全局布线资源可能不止一条;
将获取到的全局布线资源作为目标全局布线资源。
本发明实施例中,在布线时只需要先按照布线起点和布线终点找到对应的目标第一局部布线资源和目标第二局部布线资源,然后按照目标第一局部布线资源的终点和目标第二局部布线资源的起点即可找到一条或多条连接路径,速度极快。
作为另一种具体的实施方式,筛选出能够直接连接或通过拼接能够连接目标第一局部布线资源的终点和目标第二局部布线资源的起点的目标全局布线资源,包括:
获取通过全局线拼接后,起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的多条全局布线资源的组合;也即需要多条全局布线资源拼接才能连接目标第一局部布线资源的终点和目标第二局部布线资源的起点,但是组合情况也可能不止一种,即使用(部分或全部)不同的全局布线资源拼接都能连接目标第一局部布线资源的终点和目标第二局部布线资源的起点;
将全局布线资源的组合中的多条全局布线资源作为目标全局布线资源。
具体地,可以通过遍历的方式获取一个或多个全局布线资源的组合,对于每一个组合,可以通过以下遍历方式获取:先获取起点是目标第一局部布线资源的终点的一条全局布线资源,然后找到起点可以通过全局线与该全局布线资源的终点连接的另一全局布线资源,依次类推,如果最后能够找到一条全局布线资源的终点是目标第二局部布线资源的起点,那么即找到一个全局布线资源的组合,该组合中的全局布线资源通过全局线拼接能够连接目标第一局部布线资源的终点和目标第二局部布线资源的起点。当然,从目标第二局部布线资源的起点开始遍历也是可以的。
本发明实施例中,虽然也是遍历的方式找到全局布线资源的组合,但是与传统的布线方法相比,遍历的颗粒度大了很多,传统布线方法的颗粒度是一个元器件(数据选择器),而这里的颗粒度是全局布线资源,一个全局布线资源至少跨越了两个开关盒,甚至更多。因此,布线速度也有很大的提升。
另外,也可以通过分段的方式来找到全局布线资源的组合,例如目标第一局部布线资源的终点和目标第二局部布线资源的起点之间的距离为(40,40),那么可以将其分为四段,每一段分别找到一条或多条可以直接连接该段起点和终点的全局布线资源。
作为第三种具体的实施方式,筛选出能够直接连接或通过拼接能够连接目标第一局部布线资源的终点和目标第二局部布线资源的起点的目标全局布线资源和目标第三局部布线资源,包括:
获取通过全局线拼接后,起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的布线资源组合,布线资源组合包括一条或多条全局布线资源、和一条或多条第三局部布线资源;该布线资源组合可以不止一个,一个组合中的布线资源可以通过拼接连接目标第一局部布线资源和目标第二局部布线资源。
将布线资源组合中的全局布线资源作为目标全局布线资源、布线资源组合中的第三局部布线资源作为目标第三局部布线资源。
这里也是通过遍历的方式来获取布线资源组合,一般来说,优先遍历全局布线资源,在实在找不到全局布线资源组合能够拼接得到连接目标第一局部布线资源和目标第二局部布线资源的路径时,才遍历第三局部布线资源。例如目标第一局部布线资源的终点和目标第二局部布线资源的起点之间的距离为(40,40),可以先找到一条或多条不需要拼接就能够走(10,10)的全局布线资源,然后遍历搜索第三局部布线资源来组成剩下的(30,30)的路径。
当然,也可以先遍历第三局部布线资源,再遍历全局布线资源。
本发明实施例中,考虑到无法全部使用全局布线资源进行布线的情况,可以结合第三局部布线资源进行布线。本发明实施例中,虽然也是遍历的方式找到全局布线资源和局部布线资源的组合,但是与传统的布线方法相比,遍历的颗粒度大了很多,传统布线方法的颗粒度是一个元器件(数据选择器),而这里的颗粒度是全局布线资源或者局部布线资源,一个全局布线资源至少跨越了两个开关盒,甚至更多,一个第三局部布线资源跨越一个开关盒。因此,布线速度也有很大的提升。
作为第四种具体的实施方式,筛选出能够直接连接或通过拼接能够连接目标第一局部布线资源的终点和目标第二局部布线资源的起点的目标第三局部布线资源,包括:
获取通过全局线拼接后,起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的第三局部布线资源组合,第三局部布线资源组合包括多条第三局部布线资源;该第三局部布线资源组合也可以不止一个,一个组合中的第三局部布线资源可以通过拼接连接目标第一局部布线资源和目标第二局部布线资源。
将第三局部布线资源组合中的第三局部布线资源作为目标第三局部布线资源。
这里也是通过遍历的方式来获取第三局部布线资源组合,具体地如下:
先获取通过全局线与第一局部布线资源的终点连接的第一开关盒的第一输入;
然后,基于第三局部布线资源获取第一开关盒的第一输出;
再然后,获取通过全局线与第一开关盒的第一输出连接的另一第一开关盒的第一输入,并基于第三局部布线资源获取另一第一开关盒的第一输出;
重复上一步骤,直到通过全局线连接第二局部布线资源的起点。
本发明实施例中,考虑到无法使用全局布线资源进行布线的情况,可以只使用第三局部布线资源进行布线。例如,当需要对图14所示的一组布线起点和布线终点进行布线时,如果两者之间没有全局布线资源可用,那么就需要使用遍历搜索第三局部布线资源进行布线。首先,根据布线起点从布线资源中获取到第一局部布线资源(即逻辑输出布线资源),逻辑输出布线资源的终点是开关盒上的输出端口,这个输出端口一定是连到全局线的。而通过全局线,就能找到另一个开关盒上的输入端口。以这个输入端口为起点,从第三局部布线资源中找到所有符合的第三局部布线资源。这些第三局部布线资源的终点是开关盒的输出口,而且一定连到全局线,以此类推,直到找到终点的开关盒,最后取出终点的第二局部布线资源(即逻辑输入布线资源),将这些局部布线资源拼接起来,就是一条完整的路径。
本发明实施例中,虽然也是遍历的方式找到第三局部布线资源的组合,但是与传统的布线方法相比,遍历的颗粒度大了很多,传统布线方法的颗粒度是一个元器件(数据选择器),而这里的颗粒度是第三局部布线资源,一个第三局部布线资源跨越一个开关盒。因此,布线速度也有较大的提升。
一些可选的具体实施方式中,使用路径对应的布线资源进行布线,包括:
若确定出的布线起点和布线终点之间的路径为多条,则获取路径所包含的全局线的条数;
从路径中,选择包含全局线最少且均未被占用的路径;
按照选择的路径布线。
在布线资源中,全局线是相对稀缺的布线资源,所以,使用较少的全局线,可以给其他的连接更大的自由度。本发明实施例中,不管是只使用全局布线资源进行布线,还是全局布线资源和第三局部布线资源结合进行布线,还是只使用第三局部布线资源进行布线都有可能有多个路径可选,因为本发明实施例中,即使是通过遍历方式获取路径也比传统的布线方法快得多,因此有时间获取多条路径。而不同路径所需要的全局线的数量是不一样的,本发明实施例优先选取使用最少全局线的路径进行布线,除非该路径上的全局线已经被占用,从而达到降低布线的时延、优化布线质量、减少全局线使用冲突的目的,另外,使用更少的全局线也就会使用更少的开关盒,因此还可以减少开关盒使用的冲突。
具体的路径选择方法可以是:假设某个连接需要至少n条全局线,那么就优先选取使用n条全局线的路径,如果可以有这样的路径(即有这样的路径且不冲突),那么就选取这条路径。如果没有这样的路径,那么就尝试获取使用全局线n+1的路径,以此类推,直至找到一条可用的路径。
另一些可选的具体实施方式中,使用路径对应的布线资源进行布线,包括:
若确定出的布线起点和布线终点之间的路径为多条,则获取路径所使用的数据选择器的数量,或者获取路径的时延;
从路径中,选择使用数据选择器最少的路径,或者选择时延最短的路径;
按照选择的路径布线。
当然,在选择路径的时候如果某一条路径中的开关盒和/或全局线使用与之前的布线发生冲突,那么也不能选择。
其他的具体实施方式中,可以综合上述的三个要素来选择路径,即使用的全局线最少、使用的数据选择器最少、时延最短,或者只考虑其中的两个因素。三个要素可以设置优先级,例如全局线最少为第一优先级,那么就先选出使用全局线最少的路径,如果此时还有多条路径可选,那么就根据数据选择器的使用数量、时延来进一步选择。
当然,也可以根据实际需要侧重的因素来选择其他因素来选择路径。
传统的布线方法在遍历得到一条路径之后,或者在遍历得到路径的过程中,如果发现全局线或数据选择器被占用,那么就只能重新遍历其他的路径,而这需要划分很长的时间。而本申请中,可以得到多条可选的路径,如果一条路径中的全局线或数据选择器被占用,那么直接选用其他的路径即可,提升了布通率。另外,本发明实施例中,如果多条路径都不存在冲突,那么可以从中选择较优的路径,例如时延较小的路径,从而大大提高布线质量,降低时延,提升稳定性。
一些可选的具体实施方式中,使用路径对应的布线资源进行布线,包括:
获取布线区域中各元器件在芯片中的绝对位置;
按照路径对应的布线资源中各元器件的相对位置关系,将布线资源平移至绝对位置。
本发明实施例中,事先生成的布线资源是通用布线资源,即布线资源中只有各元器件之间的相对位置关系,不存储元器件在芯片中的绝对位置。在需要对芯片进行布线时,将布线资源按照其中元器件的相对位置关系“平移”至需要布线的元器件的绝对位置。通用布线资源,可以减少布线资源所需的存储空间,举例来说,由于开关盒的内部元器件(即数据选择器)都是一样的,即开关盒都是相同的,因此,对于第三局部布线资源只需要一份通用布线资源即可,不需要针对芯片上的每一个开关盒都生成一份布线资源,因此可以大大减少布线资源存储所需的空间。对于第一局部布线资源和第二局部布线资源,结构完全相同的逻辑功能区所对应的第一局部布线资源是同一通用第一局部布线资源,所对应的第二局部布线资源也是同一通用第二局部布线资源。对于全局布线资源,可以只生成一个芯片区域内的全局布线资源作为通用全局布线资源,后续若需要布线的芯片区域的尺寸超过布线资源生成时的芯片区域尺寸,则可以通过全局布线资源拼接、或者全局布线资源与第三局部布线资源拼接的方式来进行路径规划并布线。
本发明实施例中,将通用布线资源平移至FPGA上的绝对位置这一操作在计算机设备上运行很快。
在本实施例中还提供了一种芯片布线装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种芯片布线装置,如图15所示,包括:
第一获取模块1501,用于获取预先生成的布线资源,布线资源包括起点、终点和至少一条中间路径;
第二获取模块1502,用于获取布线起点和布线终点;
确定模块1503,用于基于布线资源确定布线起点和布线终点之间的路径;
布线模块1504,用于使用路径对应的布线资源进行布线。
在一些可选的实施方式中,布线资源包括点对点布线资源,点对点布线资源的起点为一个逻辑元器件的输出、终点为另一逻辑元器件的输入;
确定模块1503包括:
第一判断单元,用于判断布线起点和布线终点是否与第一布线资源的起点和终点一致;第一布线资源为其中一条布线资源;
第一选择单元,用于在布线起点和布线终点与第一布线资源的起点和终点一致的情况下,选择第一布线资源的一条中间路径作为布线起点和布线终点之间的路径。
在一些可选的实施方式中,布线资源包括局部布线资源和全局布线资源,局部布线资源包括第一局部布线资源、第二局部布线资源和第三局部布线资源;
第一局部布线资源的起点为逻辑元器件的输出、终点是对应的开关盒的第一输出;
第二局部布线资源的起点为开关盒的第一输入、终点是对应的逻辑元器件的输入;
第三局部布线资源的起点是开关盒的第一输入、终点是同一开关盒的第一输出;
全局布线资源的起点为一个开关盒的第一输出、终点是另一个开关盒的第一输入、中间经过一条或多条全局线;
其中,第一输入、第一输出均用于与全局线连接。
在一些可选的实施方式中,确定模块1503包括:
第一筛选单元,用于根据布线起点筛选出目标第一局部布线资源;
第二筛选单元,用于根据布线终点筛选出目标第二局部布线资源;
第三筛选单元,用于筛选出能够直接连接或通过拼接能够连接目标第一局部布线资源的终点和目标第二局部布线资源的起点的目标全局布线资源和/或目标第三局部布线资源;
第一路径拼接单元,用于将筛选出的目标第一局部布线资源、目标第二局部布线资源,以及目标全局布线资源和/或目标第三局部布线资源拼接,得到布线起点和布线终点之间的路径。
在一些可选的实施方式中,第三筛选单元包括:
第一获取子单元,用于获取全局布线资源中起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的全局布线资源;
第一确定子单元,用于将获取到的全局布线资源作为目标全局布线资源。
在一些可选的实施方式中,第三筛选单元包括:
第二获取子单元,用于获取通过全局线拼接后,起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的多条全局布线资源的组合;
第二确定子单元,用于将全局布线资源的组合中的多条全局布线资源作为目标全局布线资源。
在一些可选的实施方式中,第三筛选单元包括:
第三获取子单元,用于获取通过全局线拼接后,起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的布线资源组合,布线资源组合包括一条或多条全局布线资源、和一条或多条第三局部布线资源;
第三确定子单元,用于将布线资源组合中的全局布线资源作为目标全局布线资源、布线资源组合中的第三局部布线资源作为目标第三局部布线资源。
在一些可选的实施方式中,第三筛选单元包括:
第四获取子单元,用于获取通过全局线拼接后,起点是目标第一局部布线资源的终点、且终点是目标第二局部布线资源的起点的第三局部布线资源组合,第三局部布线资源组合包括多条第三局部布线资源;
第四确定子单元,用于将第三局部布线资源组合中的第三局部布线资源作为目标第三局部布线资源。
在一些可选的实施方式中,布线模块1504包括:
全局线数量获取单元,用于在确定出的布线起点和布线终点之间的路径为多条的情况下,获取路径所包含的全局线的条数;
第二选择单元,用于从路径中,选择包含全局线最少且均未被占用的路径;
第一布线单元,用于按照选择的路径布线。
在一些可选的实施方式中,布线模块1504包括:
第一获取单元,用于在确定出的布线起点和布线终点之间的路径为多条的情况下,获取路径所使用的数据选择器的数量或者获取路径的时延;
第三选择单元,用于从路径中,选择使用数据选择器最少的路径,或者选择时延最短的路径;
第二布线单元,用于按照选择的路径布线。
在一些可选的实施方式中,布线模块1504包括:
第二获取单元,用于获取布线区域中各元器件在芯片中的绝对位置;
平移单元,用于按照路径对应的布线资源中各元器件的相对位置关系,将布线资源平移至绝对位置。
上述各个模块、单元和子单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的芯片布线装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图15所示的芯片布线装置。
请参阅图16,图16是本发明可选实施例提供的一种计算机设备的结构示意图,该计算机设备上运行FPGA设计工具,如图16所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图16中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图16中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该计算机设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
该计算机设备还包括通信接口,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (14)
1.一种芯片布线方法,其特征在于,所述方法包括:
获取预先生成的布线资源,所述布线资源包括起点、终点和至少一条中间路径;
获取布线起点和布线终点;
基于所述布线资源确定所述布线起点和所述布线终点之间的路径;
使用所述路径对应的所述布线资源进行布线。
2.根据权利要求1所述的方法,其特征在于,所述布线资源包括点对点布线资源,所述点对点布线资源的起点为一个逻辑元器件的输出、终点为另一逻辑元器件的输入;
所述基于所述布线资源确定所述布线起点和所述布线终点之间的路径,包括:
判断所述布线起点和所述布线终点是否与第一布线资源的起点和终点一致;所述第一布线资源为其中一条布线资源;
若一致,则选择所述第一布线资源的一条所述中间路径作为所述布线起点和所述布线终点之间的路径。
3.根据权利要求1所述的方法,其特征在于,所述布线资源包括局部布线资源和全局布线资源,所述局部布线资源包括第一局部布线资源、第二局部布线资源和第三局部布线资源;
所述第一局部布线资源的起点为逻辑元器件的输出、终点是对应的开关盒的第一输出;
所述第二局部布线资源的起点为开关盒的第一输入、终点是对应的逻辑元器件的输入;
所述第三局部布线资源的起点是开关盒的第一输入、终点是同一所述开关盒的所述第一输出;
所述全局布线资源的起点为一个开关盒的第一输出、终点是另一个开关盒的第一输入、中间经过一条或多条全局线;
其中,所述第一输入、所述第一输出均用于与全局线连接。
4.根据权利要求3所述的方法,其特征在于,所述基于所述布线资源确定所述布线起点和所述布线终点之间的路径,包括:
根据所述布线起点筛选出目标第一局部布线资源;
根据所述布线终点筛选出目标第二局部布线资源;
筛选出能够直接连接或通过拼接能够连接所述目标第一局部布线资源的终点和所述目标第二局部布线资源的起点的目标全局布线资源和/或目标第三局部布线资源;
将筛选出的所述目标第一局部布线资源、所述目标第二局部布线资源,以及所述目标全局布线资源和/或所述目标第三局部布线资源拼接,得到所述布线起点和所述布线终点之间的路径。
5.根据权利要求4所述的方法,其特征在于,所述筛选出能够直接连接或通过拼接能够连接所述目标第一局部布线资源的终点和所述目标第二局部布线资源的起点的目标全局布线资源,包括:
获取所述全局布线资源中起点是所述目标第一局部布线资源的终点、且终点是所述目标第二局部布线资源的起点的所述全局布线资源;
将获取到的所述全局布线资源作为所述目标全局布线资源。
6.根据权利要求4所述的方法,其特征在于,所述筛选出能够直接连接或通过拼接能够连接所述目标第一局部布线资源的终点和所述目标第二局部布线资源的起点的目标全局布线资源,包括:
获取通过全局线拼接后,起点是所述目标第一局部布线资源的终点、且终点是所述目标第二局部布线资源的起点的多条所述全局布线资源的组合;
将所述全局布线资源的组合中的多条所述全局布线资源作为所述目标全局布线资源。
7.根据权利要求4所述的方法,其特征在于,所述筛选出能够直接连接或通过拼接能够连接所述目标第一局部布线资源的终点和所述目标第二局部布线资源的起点的目标全局布线资源和目标第三局部布线资源,包括:
获取通过全局线拼接后,起点是所述目标第一局部布线资源的终点、且终点是所述目标第二局部布线资源的起点的布线资源组合,所述布线资源组合包括一条或多条所述全局布线资源、和一条或多条所述第三局部布线资源;
将所述布线资源组合中的所述全局布线资源作为所述目标全局布线资源、所述布线资源组合中的所述第三局部布线资源作为所述目标第三局部布线资源。
8.根据权利要求4所述的方法,其特征在于,所述筛选出能够直接连接或通过拼接能够连接所述目标第一局部布线资源的终点和所述目标第二局部布线资源的起点的目标第三局部布线资源,包括:
获取通过全局线拼接后,起点是所述目标第一局部布线资源的终点、且终点是所述目标第二局部布线资源的起点的第三局部布线资源组合,所述第三局部布线资源组合包括多条所述第三局部布线资源;
将所述第三局部布线资源组合中的所述第三局部布线资源作为所述目标第三局部布线资源。
9.根据权利要求1至4中任一项所述的方法,其特征在于,所述使用所述路径对应的所述布线资源进行布线,包括:
若确定出的所述布线起点和所述布线终点之间的路径为多条,则获取所述路径所包含的全局线的条数;
从所述路径中,选择包含全局线最少且均未被占用的所述路径;
按照选择的所述路径布线。
10.根据权利要求1至4中任一项所述的方法,其特征在于,所述使用所述路径对应的所述布线资源进行布线,包括:
若确定出的所述布线起点和所述布线终点之间的路径为多条,则获取所述路径所使用的数据选择器的数量,或者获取所述路径的时延;
从所述路径中,选择使用数据选择器最少的所述路径,或者选择时延最短的所述路径;
按照选择的所述路径布线。
11.根据权利要求1至4中任一项所述的方法,其特征在于,所述使用所述路径对应的所述布线资源进行布线,包括:
获取布线区域中各元器件在芯片中的绝对位置;
按照所述路径对应的所述布线资源中各元器件的相对位置关系,将所述布线资源平移至所述绝对位置。
12.一种芯片布线装置,其特征在于,所述装置包括:
第一获取模块,用于获取预先生成的布线资源,所述布线资源包括起点、终点和至少一条中间路径;
第二获取模块,用于获取布线起点和布线终点;
确定模块,用于基于所述布线资源确定所述布线起点和所述布线终点之间的路径;
布线模块,用于使用所述路径对应的所述布线资源进行布线。
13.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至11中任一项所述的芯片布线方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至11中任一项所述的芯片布线方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410210832.XA CN118133765B (zh) | 2024-02-26 | 2024-02-26 | 芯片布线方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410210832.XA CN118133765B (zh) | 2024-02-26 | 2024-02-26 | 芯片布线方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN118133765A true CN118133765A (zh) | 2024-06-04 |
CN118133765B CN118133765B (zh) | 2024-10-29 |
Family
ID=91244974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410210832.XA Active CN118133765B (zh) | 2024-02-26 | 2024-02-26 | 芯片布线方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118133765B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010009031A1 (en) * | 1998-12-22 | 2001-07-19 | Izumi Nitta | Method and apparatus for global routing, and storage medium having global routing program stored therein |
US20080015824A1 (en) * | 2006-04-28 | 2008-01-17 | Caterpillar Inc. | Automatic hose and harness routing method and system |
US20120240094A1 (en) * | 2011-03-18 | 2012-09-20 | Fujitsu Limited | Wiring design support device and wiring design supporting method |
CN110472340A (zh) * | 2019-08-16 | 2019-11-19 | 中科亿海微电子科技(苏州)有限公司 | 一种布线结构的建模方法和装置 |
CN111062180A (zh) * | 2019-11-08 | 2020-04-24 | 深圳市紫光同创电子有限公司 | 一种fpga布线方法及装置 |
CN114970439A (zh) * | 2021-02-23 | 2022-08-30 | 联合微电子中心有限责任公司 | 自动布线方法、装置、计算机设备、存储介质 |
CN116011386A (zh) * | 2023-01-31 | 2023-04-25 | 本源科仪(成都)科技有限公司 | 版图自动布线方法、装置、存储介质及电子设备 |
-
2024
- 2024-02-26 CN CN202410210832.XA patent/CN118133765B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010009031A1 (en) * | 1998-12-22 | 2001-07-19 | Izumi Nitta | Method and apparatus for global routing, and storage medium having global routing program stored therein |
US20080015824A1 (en) * | 2006-04-28 | 2008-01-17 | Caterpillar Inc. | Automatic hose and harness routing method and system |
US20120240094A1 (en) * | 2011-03-18 | 2012-09-20 | Fujitsu Limited | Wiring design support device and wiring design supporting method |
CN110472340A (zh) * | 2019-08-16 | 2019-11-19 | 中科亿海微电子科技(苏州)有限公司 | 一种布线结构的建模方法和装置 |
CN111062180A (zh) * | 2019-11-08 | 2020-04-24 | 深圳市紫光同创电子有限公司 | 一种fpga布线方法及装置 |
CN114970439A (zh) * | 2021-02-23 | 2022-08-30 | 联合微电子中心有限责任公司 | 自动布线方法、装置、计算机设备、存储介质 |
CN116011386A (zh) * | 2023-01-31 | 2023-04-25 | 本源科仪(成都)科技有限公司 | 版图自动布线方法、装置、存储介质及电子设备 |
Non-Patent Citations (2)
Title |
---|
姚慧, 廖达雄: "基于形状的朝向目标布线算法", 现代电子技术, no. 21, 1 September 2006 (2006-09-01) * |
郑爽, 张卫山: "DW最短路径算法及在逻辑图自动布线中的应用", 计算机工程, no. 19, 5 July 2006 (2006-07-05) * |
Also Published As
Publication number | Publication date |
---|---|
CN118133765B (zh) | 2024-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100459731B1 (ko) | 반도체 집적회로의 시뮬레이션을 위한 인터커넥션 영향을포함한 선택적 연결정보를 생성하는 장치 및 그 방법 | |
US9390216B2 (en) | System and method for obstacle-avoiding signal bus routing | |
US10460066B1 (en) | Routing framework to resolve single-entry constraint violations for integrated circuit designs | |
CN104484477A (zh) | 一种电子地图搜索方法、装置及系统 | |
US10565347B2 (en) | Global routing optimization | |
CN109766139A (zh) | 配置文件的配置方法及装置 | |
US7134112B1 (en) | Incremental routing in integrated circuit design | |
US7900179B2 (en) | Method for prioritizing nodes for rerouting and device therefor | |
CN118133765B (zh) | 芯片布线方法、装置、设备及存储介质 | |
JP2003500745A (ja) | 業者間アプリケーションサービスプロバイダー | |
CN109241594A (zh) | T型拓扑结构线长检查方法、装置、设备及可读存储介质 | |
CN111062180B (zh) | 一种fpga布线方法及装置 | |
CN117749740A (zh) | 一种基于两级仲裁策略的端口匹配方法及装置 | |
CN112270412B (zh) | 网络算子处理方法、装置、电子设备及存储介质 | |
KR101770185B1 (ko) | 배선경로 작성프로그램 및 배선경로 작성방법 | |
CN117973312A (zh) | 芯片布线方法、装置、计算机设备及存储介质 | |
CN114095807A (zh) | 光缆路由的自动选路方法、装置和电子设备 | |
CN117787172B (zh) | 布线资源图的构建方法、装置、计算机设备及存储介质 | |
CN117785582B (zh) | 一种fpga互连线资源测试方法、装置、设备及介质 | |
CN118211556A (zh) | 芯片的布线资源生成方法、装置、设备及存储介质 | |
CN117783841B (zh) | 一种fpga布线覆盖率测试方法、装置、设备及介质 | |
CN118153512A (zh) | 芯片时钟域布线资源的生成方法、布线方法、装置及设备 | |
CN118170954B (zh) | 一种aig库构建方法及装置 | |
EP4404097A1 (en) | System and method for deterministic and incremental physically-aware network-on-chip generation | |
CN117669444A (zh) | Fpga的布局布线方法、装置、设备及存储介质 |
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 | ||
GR01 | Patent grant |