CN117236253B - 一种fpga布线方法、装置、计算机设备及存储介质 - Google Patents
一种fpga布线方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117236253B CN117236253B CN202311492679.6A CN202311492679A CN117236253B CN 117236253 B CN117236253 B CN 117236253B CN 202311492679 A CN202311492679 A CN 202311492679A CN 117236253 B CN117236253 B CN 117236253B
- Authority
- CN
- China
- Prior art keywords
- node
- connection
- logic
- unit
- determining
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 230000015654 memory Effects 0.000 claims description 30
- 239000000758 substrate Substances 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 7
- 238000004804 winding Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 101100510695 Arabidopsis thaliana LUT2 gene Proteins 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000001934 delay Effects 0.000 description 3
- 238000013073 enabling process Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- 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
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及电路设计技术领域,公开了一种FPGA布线方法、装置、计算机设备及存储介质,该方法包括:确定起始逻辑单元与对应的终止逻辑单元之间的至少一条单元连接路径;确定单元连接路径对应连接节点;确定连接节点对应的节点延时以及节点容量;基于节点延时,确定每一个起始逻辑单元与对应的终止逻辑单元之间的最短路径,并判断是否存在连接节点超过对应的节点容量;在存在的情况下,确定出拥塞节点,并确定拥塞节点的拥塞数量;根据拥塞数量,增加对应的拥塞节点的节点延时;基于增加后的节点延时,重复确定最短路径,直至不存在连接节点超过对应的节点容量。可以在保证关键路径延时较短的情况下,同时解决布线过程中产生的拥塞问题。
Description
技术领域
本发明涉及电路设计技术领域,具体涉及一种FPGA布线方法、装置、计算机设备及存储介质。
背景技术
FPGA(Field Programmable Gate Array,简称FPGA)是一种可编程逻辑器件,可以通过编程来实现特定的逻辑功能。而FPGA布线则是指将FPGA芯片中的逻辑资源连接起来,形成电路。布线是FPGA芯片使能过程中的一个必要环节,其核心功能在于结合逻辑资源信息与布局之后的结果以及引脚之间的连接关系实现所需的逻辑功能。
而在布线时,往往面临多个问题,例如拥塞、延时等。由于逻辑资源有限或者设计复杂度较高,导致布线时出现信号线冲突或者逻辑资源不足,从而出现拥塞问题。在一些技术中,为了解决拥塞问题,可能需要增加布线的长度或引入更多的器件,这样会增加信号传输的延迟,还往往会引入各种复杂的算法等。
发明内容
有鉴于此,本发明提供了一种FPGA布线方法、装置、计算机设备及存储介质,以解决现有技术中在解决FPGA布线拥塞的同时,延时增加的问题。
第一方面,本发明提供了一种FPGA布线方法,该方法包括:
步骤S101,确定起始逻辑单元与对应的终止逻辑单元之间的至少一条单元连接路径,FPGA芯片上的起始逻辑单元以及终止逻辑单元均为多个;
步骤S102,确定每一条单元连接路径对应连接节点,连接节点用于逻辑单元之间的连接或用于逻辑单元内部的连接;
步骤S103,确定每一个连接节点对应的节点延时以及节点容量;
步骤S104,基于节点延时,确定每一个起始逻辑单元与对应的终止逻辑单元之间的最短路径,并判断是否存在连接节点超过对应的节点容量,其中,最短路径为路径延时最短对应的单元连接路径;
步骤S105,在存在连接节点超过对应的节点容量的情况下,确定出拥塞节点,并确定拥塞节点的拥塞数量;
步骤S106,根据拥塞数量,增加对应的拥塞节点的节点延时;
步骤S107,基于增加后的节点延时,重复上述步骤S104至步骤S107,直至不存在连接节点超过对应的节点容量。
同时考虑了延时问题与拥塞问题,通过迭代的方式,确定延时最短的最短路径,可以在保证关键路径延时较短的情况下,同时解决布线过程中产生的拥塞问题,提高布线成功率与布线质量,还提高了算法运行效率,减少了运行时间。
在一种可选的实施方式中,确定起始逻辑单元与对应的终止逻辑单元之间的至少一条单元连接路径,包括:
获取起始逻辑单元与对应的终止逻辑单元之间的单元连接关系;
根据起始逻辑单元与对应的终止逻辑单元之间的单元连接关系,确定包含起始逻辑单元的起始逻辑模块与包含对应的终止逻辑单元的终止逻辑模块之间的模块连接关系;
根据起始逻辑模块与对应的终止逻辑模块之间的模块连接关系,确定起始逻辑模块与对应的终止逻辑模块之间的至少一条模块连接路径;
确定模块连接路径上所有逻辑单元内部的内部连接关系;
根据内部连接关系、模块连接路径确定单元连接路径。
采用的分步绕线方法,先进行全局布线,再进行局部布线,不用在一开始就考虑逻辑单元内部的绕线问题,从而大幅降低时间成本,提高布线效率。还可以有效降低算法的运行时间与所需要的最大内存。
在一种可选的实施方式中,通过以下公式增加对应的拥塞节点的节点延时:
其中,为增加后的节点延时,n为变量,表示第n个连接节点;/>,/>为起始逻辑单元,/>为终止逻辑单元,/>为起始逻辑单元与对应的终止逻辑单元之间的所有单元连接路径的最大延时,/>为FPGA芯片上的所有单元连接路径的最大延时;,/>为连接节点的延时,/>为与拥塞数量呈正相关的系数,/>为调试后得到的系数。
在一种可选的实施方式中,与/>为上一次迭代后获得。
在一种可选的实施方式中,连接节点为其中一个逻辑单元内部的引脚与另一个逻辑单元内部的引脚之间的连线,或逻辑单元内部之间连接的连线。
在一种可选的实施方式中,路径延时为单元连接路径上每一个连接节点对应的节点延时,以及单元连接路径上经过的每一个逻辑单元的延时的总和。
第二方面,本发明提供了一种FPGA布线装置,装置包括:
单元连接路径确定模块,用于确定起始逻辑单元与对应的终止逻辑单元之间的至少一条单元连接路径,FPGA芯片上的起始逻辑单元以及终止逻辑单元均为多个;
连接节点确定模块,用于确定每一条单元连接路径对应连接节点,连接节点用于逻辑单元之间的连接或用于逻辑单元内部的连接;
延时确定模块,用于确定每一个连接节点对应的节点延时以及节点容量;
最短路径确定模块,用于基于节点延时,确定每一个起始逻辑单元与对应的终止逻辑单元之间的最短路径,并判断是否存在连接节点超过对应的节点容量,其中,最短路径为路径延时最短对应的单元连接路径;
拥塞确定模块,用于在存在连接节点超过对应的节点容量的情况下,确定出拥塞节点,并确定拥塞节点的拥塞数量;
延时增加模块,用于根据拥塞数量,增加对应的拥塞节点的节点延时;
迭代模块,用于基于增加后的节点延时,重复确定每一个起始逻辑单元与对应的终止逻辑单元之间的最短路径,并判断是否存在连接节点超过对应的节点容量,直至不存在连接节点超过对应的节点容量。
在一种可选的实施方式中,单元连接路径确定模块,包括:
获取单元,用于获取起始逻辑单元与对应的终止逻辑单元之间的单元连接关系;
模块连接关系确定单元,用于根据起始逻辑单元与对应的终止逻辑单元之间的单元连接关系,确定包含起始逻辑单元的起始逻辑模块与包含对应的终止逻辑单元的终止逻辑模块之间的模块连接关系;
模块连接路径确定单元,用于根据起始逻辑模块与对应的终止逻辑模块之间的模块连接关系,确定起始逻辑模块与对应的终止逻辑模块之间的至少一条模块连接路径;
内部连接关系确定单元,用于确定模块连接路径上所有逻辑单元内部的内部连接关系;
单元连接路径确定单元,用于根据内部连接关系、模块连接路径确定单元连接路径。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的FPGA布线方法。
第四方面,本发明提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的FPGA布线方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的FPGA布线方法的流程示意图;
图2是根据本发明实施例的FPGA芯片排布的结构示意图;
图3是根据本发明实施例的逻辑模块的组成示意图;
图4是根据本发明实施例的步骤S101包括的方法的流程示意图;
图5是根据本发明实施例的布线的示意图;
图6是根据本发明实施例的数据选择器的结构示意图;
图7是根据本发明实施例的网络交换器的外部接口的结构示意图;
图8是根据本发明实施例的Tile与Tile之间直连线的示意图;
图9是根据本发明实施例的例举的用于最短路径确定的连线示意图;
图10是根据本发明实施例的FPGA布线装置的结构框图;
图11是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
布线时FPGA芯片是使能过程中的一个必要环节,其核心功能在于结合逻辑资源信息与布局之后的结果以及引脚之间的连接关系确认引脚之间的连接方法。该环节往往面临三个问题,其一为拥塞问题,其二为延时问题,其三为运行时长与内存占用的问题。拥塞问题是由于逻辑资源的有限导致的,其现象为多组引脚之间的连接需要用到共同的硬件绕线资源,从而造成拥塞。延时问题主要在于如何减小关键路径(关键路径可以理解为整个电路中延时最长的一条路径)的延时从而提高整体的性能。为了有效解决前两个问题,往往会引入各种复杂的算法从而带来了第三个问题即运行时长问题。
鉴于此,本发明基于一类FPGA芯片硬件结构提供了一种分步的布线方法,能保证在有效解决拥塞问题,保证较优延时的情况下高效地完成布线环节。本发明中的“布线”与“绕线”等价。
根据本发明实施例,提供了一种FPGA布线方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种FPGA布线方法,可由服务器、终端等设备来执行,图1是根据本发明实施例的FPGA布线方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,确定起始逻辑单元与对应的终止逻辑单元之间的至少一条单元连接路径,FPGA芯片上的起始逻辑单元以及终止逻辑单元均为多个。FPGA芯片往往由一系列排列规整的逻辑模块(也即是本领域技术人员所称的Tile)组成,参照图2所示。每个逻辑模块包括逻辑单元,逻辑单元可以是Switch Hub(FPGA上的Switch Hub是一种用于FPGA芯片内部连接和通信的组件,通常用于在FPGA内部连接不同的逻辑模块或外部接口,以实现数据传输和通信。Switch Hub还可以根据需要配置连接和路由,以适应不同的应用需求,本实施例中,Switch Hub可以称为网络交换器)、逻辑资源等。网络交换器内部主要由一系列Multiplexer即数据选择器组成。本实施例中,可以将网络交换器或逻辑资源等称为逻辑单元,参照图3所示。
参照图4所示,在一些可选的实施方式中,步骤S101,确定起始逻辑单元与对应的终止逻辑单元之间的至少一条单元连接路径,包括:
步骤S1011,获取起始逻辑单元与对应的终止逻辑单元之间的单元连接关系。
具体地,从用户设计到FPGA芯片的使能过程之间主要包含:解析与优化、综合、布局、布线、生成比特流五个环节。FPGA芯片内部包含若干个Tile,每个Tile由一系列简单的逻辑资源组成,主要包含LUT(Look up Table,意为查找表),FF(Flip-Flop,意为触发器)等硬件单元,本实施例中,每个Tile称为逻辑模块,每个Tile内部包含的硬件单元称为逻辑单元。
在综合环节之后,用户设计会被转换为FPGA芯片上逻辑功能等效的逻辑单元及其单元连接关系。举例说明,例如用户设计实现了一个1bit加法a + b的功能,在FPGA芯片上可用一个LUT实现该功能。在确认了与用户设计逻辑功能等效的逻辑单元之后,即要确认每一个逻辑单元应该被放在FPGA芯片上的哪一个位置,每一个逻辑单元的位置确认之后便进入到了布线的环节。该布线环节则基于布局环节中每一个逻辑单元的位置及逻辑单元的引脚,确认引脚应该如何连接。需要强调的是,在布局环节结束后,仅知晓其中一个逻辑单元H1与某一个逻辑单元H2之间存在连接关系,而具体如何连接,则需要由布线环节来实现。
进一步地,当知晓逻辑单元H1与逻辑单元H2之间存在连接关系后,则可以将其中一个逻辑单元看做为起始逻辑单元,将需要连接的另外一个逻辑单元看做为对应的终止逻辑单元,例如,可以将逻辑单元H1看做起始逻辑单元,将逻辑单元H2看做终止逻辑单元。本实施例中的起始逻辑单元与对应的终止逻辑单元之间的单元连接关系,仅表示起始逻辑单元与对应的终止逻辑单元之间存在连接关系。
步骤S1012,根据起始逻辑单元与对应的终止逻辑单元之间的单元连接关系,确定包含起始逻辑单元的起始逻辑模块与包含对应的终止逻辑单元的终止逻辑模块之间的模块连接关系。
如上所述,每个逻辑模块包括逻辑单元,在知道了布局环节后,也即是知道了起始逻辑单元与对应的终止逻辑单元之间的单元连接关系之后,则可以确定出包含起始逻辑单元的起始逻辑模块与包含对应的终止逻辑单元的终止逻辑模块之间也必然存在连接关系,即模块连接关系。
接下来对布线进行更加具象的描述,可以参照图5所示。假设布局环节后,已知起始逻辑单元中LUT3的一个输出会成为终止逻辑单元中LUT2中的一个输入,也即是已知了单元连接关系。那也就确定了LUT3被放在了起始逻辑模块Tile3的位置,LUT2被放在了终止逻辑单元Tile2的位置,也即知道了模块连接关系。
步骤S1013,根据起始逻辑模块与对应的终止逻辑模块之间的模块连接关系,确定起始逻辑模块与对应的终止逻辑模块之间的至少一条模块连接路径。
在知晓起始逻辑模块与对应的终止逻辑模块之间的必然存在连接关系之后,则开始确定起始逻辑模块与对应的终止逻辑模块之间的连接路径。仍然参照图5所示,以上述LUT3的一个输出会成为LUT2中的一个输入为例。那么如何对逻辑单元内部的网络交换器进行配置可以实现将LUT3的输出连接到对应LUT2的输入。
图5示出了两条可行的连接路径,首先LUT3的输出会对应Tile3的一个输出端口,并输入到Tile4的网络交换器,此时便有了两条连接路径可以选择。首先可以从Tile4的网络交换器与Tile5之间的网络交换器之间的连线将信号从Tile4传递到Tile5,再从Tile5与Tile2之间的直连线将信号传递到Tile2,并最终传递到Tile2的LUT2中;另一条路径则是从Tile4到Tile1再到Tile2,并最终到LUT2中。
在确定所有逻辑单元的位置与单元连接关系之后,并将所有的连接关系基于硬件的绕线资源实现,便是布线环节的主要工作。参照图5所示,绕线资源即为网络交换器与网络交换器之间的连线、逻辑资源与网络交换器之间的连线、Tile与Tile之间有网络交换器之间的直连线以及逻辑资源到网络交换器之间的直连线。
针对布线,在一些技术中,常将逻辑单元包括的逻辑资源或网络交换器作为对象,以图5为例,即将LUT3与LUT2作为对象直接在全局判断是否存在可行的连接路径。而该布线方法,效率较低,且容易出错,还容易增加延时问题,导致运行质量不佳。
而本发明实施例中采用分步绕线方法,具体地,首先根据布局确定的起始逻辑单元与终止逻辑单元之间的单元连接关系,然后再确定Tile与Tile之间的模块连接关系,例如在图5中已知LUT3与LUT2之间存在连接关系,且是LUT3的一个输出连接到LUT2的一个输入,那么可以判断Tile3的逻辑资源特定的输出与Tile2的网络交换器之间至少存在一个连接关系,最后再确定网络交换器内部的连接关系。
也即是,本发明实施例中所采用的分步绕线方法。其优势在于不用在一开始就考虑逻辑单元内部的绕线问题,从而大幅降低时间成本。可以用一个简单的数学方式表示该优势产生的原因。假设一个算法的时间复杂度为O(n2)其中n为所涉及的节点数,n=a+b。那么按照传统的布线思路,所需要的时间即为(a+b)2,按照本实施例中的布线思路,所需要的时间即为a2+b2≤(a+b)2。由于进行了步骤划分,同一时间所处理的信息减少从而减少内存消耗。
仍然以图5为例,基于布局结果(包含逻辑单元引脚之间的连接关系)首先进入连接关系抽象环节,将每个逻辑单元(LUT,FF等)之间的连接关系转化为Tile(逻辑模块)之间的连接关系,之后首先进行全局布线,也即是确认Tile与Tile之间的模块连接路径,如图5所示,Tile3与Tile2之间的模块连接路径可以为Tile3-Tile4-Tile1-Tile2,还可以为Tile3-Tile4-Tile5-Tile2,即从全局角度确定了模块连接路径。
步骤S1014,确定模块连接路径上所有逻辑单元内部的内部连接关系。在完成全局布线后,则进行局部布线,即确认逻辑单元内部布线方式。
Tile内部的逻辑单元结构可以参照图3所示,Tile可以包括网络交换器与逻辑资源两个部分,逻辑资源包括LUT,FF,DSP(Digital Signal Processing,意为数字信号处理)等一系列用于FPGA的物理器件。网络交换器内部主要由一系列Multiplexer即数据选择器组成,数据选择器的结构可以参照图6所示。以最基本的数据选择器为例,其有三个输入信号与一个输出信号,输入信号分别为I0,I1与S信号,若S为1,则输出信号O与I0信号一致,若S为0,则输出信号O与I1信号一致。
而一个网络交换器在四个方向上均有一系列接口,网络交换器的外部接口可以参照图7所示,每个方向上均有四个接口。通过网络交换器内部对于数据选择器的配置可以实现接口之间一对一,一对多的连接关系。例如,可以实现由C0传入的信号从A0输出,也可以实现由C0传入的信号同时从A0、A1、B0输出等。
如图5所示,如果选择了Tile3-Tile4-Tile1-Tile2的模块连接路径,则需要分别确认Tile4、Tile1、Tile2的逻辑单元内部的布线方式,即网络交换器内部的布线方式,即内部连接关系,网络交换器内部的布线本质上通过调整其内部的数据选择器的控制信号实现。
步骤S1015,根据内部连接关系、模块连接路径确定单元连接路径。也即是,在确定了模块连接路径上逻辑单元内部的布线方式以及每个逻辑模块与每个逻辑模块之间的连接路径后,即可以确定出从起始逻辑单元内部引脚为起点,以终止逻辑单元内部引脚为终点的单元连接路径。也即是,单元连接路径包括逻辑单元内部连接、逻辑模块与逻辑模块之间有逻辑单元之间时的连接。局部布线结束之后则判断布线结果是否成功,即布线结果中是否存在拥塞,如果布线成功则输出绕线结果,否则判定布线失败。
本实施例中,采用的分步绕线方法,先进行全局布线,再进行局部布线,不用在一开始就考虑逻辑单元内部的绕线问题,从而大幅降低时间成本,提高布线效率。还可以有效降低算法的运行时间与所需要的最大内存。
步骤S102,确定每一条单元连接路径对应连接节点,连接节点用于逻辑单元之间的连接或用于逻辑单元内部的连接。
在采用分步绕线方法确定了单元连接路径后,还需确定单元连接路径上的连接节点。也即是,将布线问题抽象为已知节点(布局信息)以及节点与节点之间的对应关系(引脚之间的连接关系),在FPGA芯片上寻找一个解,通过连接节点使得所有存在对应关系之间的节点之间都有一条由边构成的通路,且通路之间没有交集(得到的解中两条边不能重叠),在此基础上使得关键路径(所有通路中延时最长的路径)的延时尽可能的小。
在一些可选的实施方式中,连接节点为其中一个逻辑单元内部的引脚与另一个逻辑单元内部的引脚之间的连线,或逻辑单元内部之间连接的连线。
本实施例中,可以将Tile与Tile之间有逻辑单元引脚之间的直连线时,将该直连线看作连接节点、或将逻辑单元内部的连线看作连接节点。在全局布线时,可以将Tile与Tile之间的连线看做连接节点,局部布线时,可以将逻辑单元内部的连线看作连接节点。也即是,单元连接路径包括逻辑单元内部的连接节点以及其中一个逻辑模块中的逻辑单元与另一个逻辑模块中的逻辑单元之间的连接节点。
步骤S103,确定每一个连接节点对应的节点延时以及节点容量。信号在线路上传输,也即是信号从输入引脚到输出引脚时,需要花费一定是时间,该时间即为本实施例中的节点延时,当然节点延时也包括信号的驱动时间等。需要注意的是,除了连线具有延时,每个硬件结构本身在工作时,也存在延时。
本实施例中所基于的FPGA芯片的硬件结构可以参照图2所示,Tile与Tile之间存在一系列连线,粗实线表征的连线不止一根。三个实心圆点代替该方向上其他的Tile。此外,Tile与Tile之间并不只是相邻才会有连线,可以参照图8所示。图8所示的是以图2中的Tile0为例,为Tile0右侧存在的一部分直连线,也即是Tile与Tile之间连接的线,可以看到Tile0与Tile1、Tile0与Tile2、Tile0与Tile3之间都存在直连线。当然,以Tile0为例,其直连线不一定仅存在于右侧,还可存在于Tile0的上方,下方与左侧。
直连线之间所跨越的距离,可以用步长来表示,如Tile0与Tile1之间的直连线的步长为1,Tile0与Tile3之间的步长为3。所存在的直连线的步长也可以不仅包含1、2、3,还可能包含4、5、6等。每两个存在直连线的Tile之间,其直连线的个数是确定的,比如Tile0和Tile1之间有3个直连线。
关于节点容量,如上所述,Tile与Tile之间存在一系列连线,而Tile与Tile之间的连线往往不止一根,一根连线可以传递的固定的信号量,本实施例中,通过信号的量可以为节点容量。
步骤S104,基于节点延时,确定每一个起始逻辑单元与对应的终止逻辑单元之间的最短路径,并判断是否存在连接节点超过对应的节点容量,其中,最短路径为路径延时最短对应的单元连接路径。
在一些可选的实施方式中,路径延时为单元连接路径上每一个连接节点对应的节点延时,以及单元连接路径上经过的每一个逻辑单元的延时的总和。
参照图9所示,举例说明:假设起始逻辑单元内部的起始连接节点包括S1、S2、S3,起始连接节点S1对应的终止连接节点为D1、起始连接节点S2对应的终止连接节点为D2、起始连接节点S3对应的终止连接节点为D3。则分别寻找S1到D1、S2到D2、S3到D4之间延时最短的路径。假设中间连接节点A、B、C的延时都为1,起始连接节点到中间连接节点或中间连接节点到终止连接节点的延时参照图9连线上所示,则S1-B-D1、S2-B-D2、S3-B-D3的路径延时均为3,S1-B-D1、S2-B-D2、S3-B-D3,均为最短路径。
进一步地,判断连接节点是否超过对应的节点容量,假设每个连接节点的节点容量均为1,即仅能有一条通过的路径。而三个起始连接节点与对应的终止连接节点的路径都选择通过中间连接节点B,则此时中间连接节点B超过对应的节点容量,发生拥塞。
步骤S105,在存在连接节点超过对应的节点容量的情况下,确定出拥塞节点,并确定拥塞节点的拥塞数量。
举例说明,以上述例子为例,中间连接节点B超过对应的节点容量1,则中间连接节点B则为拥塞节点,且拥塞数量为2,即通过的量减去节点容量。
步骤S106,根据拥塞数量,增加对应的拥塞节点的节点延时。
当第一轮起始连接节点与对应的终止连接节点遍历完毕之后出现了拥塞,之后进入第二轮迭代,在第二轮迭代过程中由于上一轮出现了拥塞现象且拥塞为2,则根据拥塞数量,重新计算拥塞节点的节点延时,也即是增加拥塞节点的节点延时。
步骤S107,基于增加后的节点延时,重复上述步骤S104至步骤S107,直至不存在连接节点超过对应的节点容量。也即是,根据增加后的节点延时,再次确定每一个起始逻辑单元内部的起始连接节点与对应的终止逻辑单元内部的终止连接节点之间的最短路径,再次判断是否存在连接节点超过对应的节点容量,直至不存在连接节点超过对应的节点容量,则布线成功,从而确定出最终的布线路径。
举例说明,以上述例子为例,拥塞数量为2,则可以重新计算连接节点B的延时,参照公式,/>设为1、/>为1,使/>的值由0变为3,则连接节点B的延时变为4,那么路径S1-B-D1的路径延时则为6,此时会发现如果选择S1-A-D1路径的路径延时就会变为5,那么此时S1为了走到D1就不会选择路径S1-B-D1,而会选择路径S1-A-D1。S3到D3也存在另一条可行路径S3-C-D3,但该路径的路径延时为7。S2到D2仅有唯一一条路径,因此其路径保持不变。此时有两条路径通过B节点,其容量为1,拥塞数量为1。接下来进入第三轮迭代,此时hn的值由3变为4.5。S3-B-D3的路径延时即变为了7.5,S3到D3则会选择路径延时更小的S3-C-D3,至此不再存在拥塞。
本实施例中,迭代条件主要有两个,其一是判断是否不存在拥塞,即不存在连接节点超过对应的节点容量,如果是则布线成功,输出布线结果;另一个条件是判断是否达到指定的迭代轮次,如果达到且依旧存在拥塞则布线失败。
本实施例中,同时考虑了延时问题与拥塞问题,通过迭代的方式,确定延时最短的最短路径,可以在保证关键路径延时较短的情况下,同时解决布线过程中产生的拥塞问题,提高布线成功率与布线质量,还提高了算法运行效率,减少了运行时间。
在一些可选的实施方式中,通过以下公式增加对应的拥塞节点的节点延时:
其中,为增加后的节点延时,n为变量,表示第n个连接节点;/>,/>为起始逻辑单元,j为终止逻辑单元,/>为起始逻辑单元与对应的终止逻辑单元之间的所有单元连接路径的最大延时,/>为FPGA芯片上的所有单元连接路径的最大延时;,/>为连接节点的延时,/>为与拥塞数量呈正相关的系数,/>为调试后得到的系数。其中,/>可以为拥塞数量的倍数,比如1.5倍等,/>可以为前期实验调试获得,比如1.1等。
在一些可选的实施方式中,与/>为上一次迭代后获得。
每个连接节点本身都有一个固定的延时,本实施例中称为d,每个硬件引脚本身也都存在一个已知固定的延时,关键路径即为延时最长的路径。关于上述计算公式,增加后的节点延时被取值在0到1之间的/>所控制,当起始逻辑单元内的起始连接节点/>与终止逻辑单元内的终止连接节点j在关键路径上时,/>。从而保证该连接节点的延时只与其本身的延时有关,而与/>无关,由此可以保证所选择的路径不会对关键路径的延时带来严重的破坏。
此外,当一条路径不在关键路径上时,会对该连接节点的延时产生影响。以最极端的情况来理解,假设/>,那么/>。其本质为当一个节点不断存在拥塞情况时会不断增加该节点的延时,从而使得在对路径进行选择的时候能倾向于选择其他节点而不是总选择该节点,进而消除拥塞。因此,本实施例中增加后的节点延时的计算方法能在保证关键路径延时较短的情况下,同时根据迭代解决拥塞问题。
需要注意的是,当一个起始逻辑单元内的起始连接节点存在多个终止逻辑单元内的终止连接节点的情况下,寻找起始连接节点与终止连接节点之间的连接并不一定需要从起始连接节点出发,还可以从已经找到的起始连接节点与其他终止连接节点路径中经过的任意节点出发从而降低搜索难度。
本实施例中,基于FPGA芯片的硬件结构,采用了分布式绕线方法,先进行全局绕线,再进行局部绕线。该方法可以有效提高算法发运行效率,减少运行时间,较长的运行时间一直是FPGA布线的一大痛点,此外该分步的方法还能有效降低所需要的最大运行内存。同时,本实施例还提供了一种可同时用于全局绕线与局部绕线的算法,该算法同时考虑了延时问题与拥塞问题,并将其表现在了增加节点延时的计算方法中,可以再保证关键路径延时的情况下同时解决绕线过程中产生的拥塞问题,提高绕线成功率与绕线质量。
在本实施例中还提供了一种FPGA布线装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种FPGA布线装置,如图10所示,包括:
单元连接路径确定模块1001,用于确定起始逻辑单元与对应的终止逻辑单元之间的至少一条单元连接路径,FPGA芯片上的起始逻辑单元以及终止逻辑单元均为多个;
连接节点确定模块1002,用于确定每一条单元连接路径对应连接节点,连接节点用于逻辑单元之间的连接或用于逻辑单元内部的连接;
延时确定模块1003,用于确定每一个连接节点对应的节点延时以及节点容量;
最短路径确定模块1004,用于基于节点延时,确定每一个起始逻辑单元与对应的终止逻辑单元之间的最短路径,并判断是否存在连接节点超过对应的节点容量,其中,最短路径为路径延时最短对应的单元连接路径;
拥塞确定模块1005,用于在存在连接节点超过对应的节点容量的情况下,确定出拥塞节点,并确定拥塞节点的拥塞数量;
延时增加模块1006,用于根据拥塞数量,增加对应的拥塞节点的节点延时;
迭代模块1007,用于基于增加后的节点延时,重复确定每一个起始逻辑单元与对应的终止逻辑单元之间的最短路径,并判断是否存在连接节点超过对应的节点容量,直至不存在连接节点超过对应的节点容量。
在一些可选的实施方式中,单元连接路径确定模块1001,包括:
获取单元,用于获取起始逻辑单元与对应的终止逻辑单元之间的单元连接关系;
模块连接关系确定单元,用于根据起始逻辑单元与对应的终止逻辑单元之间的单元连接关系,确定包含起始逻辑单元的起始逻辑模块与包含对应的终止逻辑单元的终止逻辑模块之间的模块连接关系;
模块连接路径确定单元,用于根据起始逻辑模块与对应的终止逻辑模块之间的模块连接关系,确定起始逻辑模块与对应的终止逻辑模块之间的至少一条模块连接路径;
内部连接关系确定单元,用于确定模块连接路径上所有逻辑单元内部的内部连接关系;
单元连接路径确定单元,用于根据内部连接关系、模块连接路径确定单元连接路径。
本实施例中的FPGA布线装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种计算机设备,具有上述图10所示的FPGA布线装置。
请参阅图11,图11是本发明可选实施例提供的一种计算机设备的结构示意图,如图11所示,该计算机设备包括:一个或多个处理器111、存储器112,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图11中以一个处理器111为例。
处理器111可以是中央处理器,网络处理器或其组合。其中,处理器111还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器112存储有可由至少一个处理器111执行的指令,以使所述至少一个处理器111执行实现上述实施例示出的方法。
存储器112可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器112可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器112可选包括相对于处理器111远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器112可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器112还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口113,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (8)
1.一种FPGA布线方法,其特征在于,所述方法包括:
步骤S101,确定起始逻辑单元与对应的终止逻辑单元之间的至少一条单元连接路径,FPGA芯片上的所述起始逻辑单元以及所述终止逻辑单元均为多个;
步骤S102,确定每一条所述单元连接路径对应连接节点,所述连接节点用于逻辑单元之间的连接或用于逻辑单元内部的连接;
步骤S103,确定每一个所述连接节点对应的节点延时以及节点容量;
步骤S104,基于所述节点延时,确定每一个所述起始逻辑单元与对应的所述终止逻辑单元之间的最短路径,并判断是否存在所述连接节点超过对应的所述节点容量,其中,所述最短路径为路径延时最短对应的所述单元连接路径;
步骤S105,在存在所述连接节点超过对应的所述节点容量的情况下,确定出拥塞节点,并确定所述拥塞节点的拥塞数量;
步骤S106,根据所述拥塞数量,增加对应的所述拥塞节点的节点延时;
步骤S107,基于增加后的所述节点延时,重复上述步骤S104至步骤S107,直至不存在所述连接节点超过对应的所述节点容量;
所述确定起始逻辑单元与对应的终止逻辑单元之间的至少一条单元连接路径,包括:
获取起始逻辑单元与对应的终止逻辑单元之间的单元连接关系;
根据所述起始逻辑单元与对应的所述终止逻辑单元之间的单元连接关系,确定包含所述起始逻辑单元的起始逻辑模块与包含对应的所述终止逻辑单元的终止逻辑模块之间的模块连接关系;
根据所述起始逻辑模块与对应的所述终止逻辑模块之间的模块连接关系,确定所述起始逻辑模块与对应的所述终止逻辑模块之间的至少一条模块连接路径;
确定所述模块连接路径上所有逻辑单元内部的内部连接关系;
根据所述内部连接关系、所述模块连接路径确定所述单元连接路径;
通过以下公式增加对应的所述拥塞节点的节点延时:
其中,为增加后的节点延时,n为变量,表示第n个所述连接节点;/>,i为所述起始逻辑单元,j为所述终止逻辑单元,/>为所述起始逻辑单元与对应的所述终止逻辑单元之间的所有单元连接路径的最大延时,/>为FPGA芯片上的所有单元连接路径的最大延时;/>,/>为所述连接节点的延时,/>为与所述拥塞数量呈正相关的系数,/>为调试后得到的系数。
2.根据权利要求1所述的方法,其特征在于,与/>为上一次迭代后获得。
3.根据权利要求1所述的方法,其特征在于,所述连接节点为其中一个逻辑单元内部的引脚与另一个逻辑单元内部的引脚之间的连线,或逻辑单元内部之间连接的连线。
4.根据权利要求1所述的方法,其特征在于,所述路径延时为所述单元连接路径上每一个所述连接节点对应的所述节点延时,以及所述单元连接路径上经过的每一个逻辑单元的延时的总和。
5.一种FPGA布线装置,其特征在于,所述装置包括:
单元连接路径确定模块,用于确定起始逻辑单元与对应的终止逻辑单元之间的至少一条单元连接路径,FPGA芯片上的所述起始逻辑单元以及所述终止逻辑单元均为多个;
连接节点确定模块,用于确定每一条所述单元连接路径对应连接节点,所述连接节点用于逻辑单元之间的连接或用于逻辑单元内部的连接;
延时确定模块,用于确定每一个所述连接节点对应的节点延时以及节点容量;
最短路径确定模块,用于基于所述节点延时,确定每一个所述起始逻辑单元与对应的所述终止逻辑单元之间的最短路径,并判断是否存在所述连接节点超过对应的所述节点容量,其中,所述最短路径为路径延时最短对应的所述单元连接路径;
拥塞确定模块,用于在存在所述连接节点超过对应的所述节点容量的情况下,确定出拥塞节点,并确定所述拥塞节点的拥塞数量;
延时增加模块,用于根据所述拥塞数量,增加对应的所述拥塞节点的节点延时;
迭代模块,用于基于增加后的所述节点延时,重复确定每一个所述起始逻辑单元与对应的所述终止逻辑单元之间的最短路径,并判断是否存在所述连接节点超过对应的所述节点容量,直至不存在所述连接节点超过对应的所述节点容量;
所述确定起始逻辑单元与对应的终止逻辑单元之间的至少一条单元连接路径,包括:
获取起始逻辑单元与对应的终止逻辑单元之间的单元连接关系;
根据所述起始逻辑单元与对应的所述终止逻辑单元之间的单元连接关系,确定包含所述起始逻辑单元的起始逻辑模块与包含对应的所述终止逻辑单元的终止逻辑模块之间的模块连接关系;
根据所述起始逻辑模块与对应的所述终止逻辑模块之间的模块连接关系,确定所述起始逻辑模块与对应的所述终止逻辑模块之间的至少一条模块连接路径;
确定所述模块连接路径上所有逻辑单元内部的内部连接关系;
根据所述内部连接关系、所述模块连接路径确定所述单元连接路径;
通过以下公式增加对应的所述拥塞节点的节点延时:
其中,为增加后的节点延时,n为变量,表示第n个所述连接节点;/>,i为所述起始逻辑单元,j为所述终止逻辑单元,/>为所述起始逻辑单元与对应的所述终止逻辑单元之间的所有单元连接路径的最大延时,/>为FPGA芯片上的所有单元连接路径的最大延时;/>,/>为所述连接节点的延时,/>为与所述拥塞数量呈正相关的系数,/>为调试后得到的系数。
6.根据权利要求5所述的装置,其特征在于,所述单元连接路径确定模块,包括:
获取单元,用于获取起始逻辑单元与对应的终止逻辑单元之间的单元连接关系;
模块连接关系确定单元,用于根据所述起始逻辑单元与对应的所述终止逻辑单元之间的单元连接关系,确定包含所述起始逻辑单元的起始逻辑模块与包含对应的所述终止逻辑单元的终止逻辑模块之间的模块连接关系;
模块连接路径确定单元,用于根据所述起始逻辑模块与对应的所述终止逻辑模块之间的模块连接关系,确定所述起始逻辑模块与对应的所述终止逻辑模块之间的至少一条模块连接路径;
内部连接关系确定单元,用于确定所述模块连接路径上所有逻辑单元内部的内部连接关系;
单元连接路径确定单元,用于根据所述内部连接关系、所述模块连接路径确定所述单元连接路径。
7.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-4任一项所述的FPGA布线方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-4任一项所述的FPGA布线方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311492679.6A CN117236253B (zh) | 2023-11-10 | 2023-11-10 | 一种fpga布线方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311492679.6A CN117236253B (zh) | 2023-11-10 | 2023-11-10 | 一种fpga布线方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117236253A CN117236253A (zh) | 2023-12-15 |
CN117236253B true CN117236253B (zh) | 2024-02-02 |
Family
ID=89088319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311492679.6A Active CN117236253B (zh) | 2023-11-10 | 2023-11-10 | 一种fpga布线方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117236253B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117688894B (zh) * | 2024-02-02 | 2024-05-17 | 山东云海国创云计算装备产业创新中心有限公司 | 芯片布局优化方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468839A (zh) * | 2021-09-01 | 2021-10-01 | 中科亿海微电子科技(苏州)有限公司 | 一种提高时序性能的布线方法及装置 |
CN113919267A (zh) * | 2021-09-24 | 2022-01-11 | 深圳市紫光同创电子有限公司 | 可编程逻辑器件中节点单元的布局方法、装置及相关设备 |
CN114124825A (zh) * | 2021-10-26 | 2022-03-01 | 中国联合网络通信集团有限公司 | 一种数据传输的方法、***、装置及存储介质 |
CN114169283A (zh) * | 2021-10-27 | 2022-03-11 | 深圳市紫光同创电子有限公司 | 可编程逻辑器件的延时估算方法、装置、设备及存储介质 |
CN114611447A (zh) * | 2022-03-16 | 2022-06-10 | 中科亿海微电子科技(苏州)有限公司 | 可编程逻辑器件布线调整方法、装置、计算机及存储介质 |
CN115422876A (zh) * | 2022-08-29 | 2022-12-02 | 中山大学 | 高层次综合的流程布局方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005119532A2 (en) * | 2004-06-04 | 2005-12-15 | The Regents Of The University Of California | Low-power fpga circuits and methods |
-
2023
- 2023-11-10 CN CN202311492679.6A patent/CN117236253B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468839A (zh) * | 2021-09-01 | 2021-10-01 | 中科亿海微电子科技(苏州)有限公司 | 一种提高时序性能的布线方法及装置 |
CN113919267A (zh) * | 2021-09-24 | 2022-01-11 | 深圳市紫光同创电子有限公司 | 可编程逻辑器件中节点单元的布局方法、装置及相关设备 |
CN114124825A (zh) * | 2021-10-26 | 2022-03-01 | 中国联合网络通信集团有限公司 | 一种数据传输的方法、***、装置及存储介质 |
CN114169283A (zh) * | 2021-10-27 | 2022-03-11 | 深圳市紫光同创电子有限公司 | 可编程逻辑器件的延时估算方法、装置、设备及存储介质 |
CN114611447A (zh) * | 2022-03-16 | 2022-06-10 | 中科亿海微电子科技(苏州)有限公司 | 可编程逻辑器件布线调整方法、装置、计算机及存储介质 |
CN115422876A (zh) * | 2022-08-29 | 2022-12-02 | 中山大学 | 高层次综合的流程布局方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117236253A (zh) | 2023-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117236253B (zh) | 一种fpga布线方法、装置、计算机设备及存储介质 | |
CN100382060C (zh) | 用于处理不同类型的存储器命令的仲裁装置和方法 | |
WO2020023797A1 (en) | Unified address space for multiple hardware accelerators using dedicated low latency links | |
CN110659114A (zh) | 用于端到端服务质量期限感知的i/o调度的技术 | |
CN116384322B (zh) | 一种fpga中可编程逻辑模块的连接方法、装置及电子设备 | |
CN111709205A (zh) | Fpga布线方法 | |
CN113792519B (zh) | 对电路进行布局规划的方法、电子设备及存储介质 | |
CN113449481A (zh) | 嵌入式fpga ip核顶层电路图自动生成方法、装置及存储介质 | |
CN112181356B (zh) | 一种可配置的多进多出fifo的设计方法及装置 | |
US10769090B2 (en) | Information processing apparatus, control method of information processing, and non-transitory computer-readable storage medium for storing program | |
CN111062180B (zh) | 一种fpga布线方法及装置 | |
CN114911605A (zh) | 一种基于多维资源约束回填的Docker容器调度算法 | |
CN112183006A (zh) | 时延评估方法及装置、可读存储介质 | |
CN111274640A (zh) | 样板间应用方法、装置及电子设备 | |
CN113918879A (zh) | 矩阵运算的方法和加速器 | |
WO2024125340A1 (zh) | 时钟树闸延时优化方法、***、设备及计算机存储介质 | |
CN114896941B (zh) | 一种时钟树的布局优化方法、优化装置和相关设备 | |
CN117422024B (zh) | 数据位宽转换方法、装置、计算机设备及介质 | |
CN112686269B (zh) | 池化方法、装置、设备和存储介质 | |
JP2005303787A (ja) | パケット生成装置 | |
CN118070724B (zh) | Fpga延时优化方法、装置、计算机设备及存储介质 | |
CN116010301B (zh) | 从数据流到dma配置的映射方法与装置、存储介质和dla | |
CN117787172B (zh) | 布线资源图的构建方法、装置、计算机设备及存储介质 | |
CN109344541B (zh) | 一种根据区域布线拥挤度判定布线方向的方法 | |
WO2023155239A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |