CN114065694A - 一种fpga布线资源图压缩方法和全局布线模块 - Google Patents
一种fpga布线资源图压缩方法和全局布线模块 Download PDFInfo
- Publication number
- CN114065694A CN114065694A CN202010767908.0A CN202010767908A CN114065694A CN 114065694 A CN114065694 A CN 114065694A CN 202010767908 A CN202010767908 A CN 202010767908A CN 114065694 A CN114065694 A CN 114065694A
- Authority
- CN
- China
- Prior art keywords
- fpga
- data structure
- type
- wiring
- graph
- 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/39—Circuit design at the physical level
- G06F30/394—Routing
- G06F30/3953—Routing detailed
-
- 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
-
- 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/392—Floor-planning or layout, e.g. partitioning or placement
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)
- Architecture (AREA)
- Computer Networks & Wireless Communication (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开了一种FPGA布线资源图压缩方法,通过对建图得到的初始的多层图DevGraph进行多次压缩操作,依次经过EquGraph、FanoutGraph、RouGraph图数据结构,直至单层二维图结构OneLayerGraph,最终将初始的多层图压缩得到单层二维图结构,再在该单层二维图结构上通过全局布线算法进行全局布线。本发明通过压缩布线资源图,减少问题规模,加速拥挤度评估并保证拥挤度评估的准确度。
Description
技术领域
本发明涉及FPGA芯片领域,特别涉及一种FPGA布线资源图压缩方法。
背景技术
FPGA(Field Programmable Gate Array,现场可编程阵列)芯片采用规则的阵列(Tile)结构进行设计。Tile的种类主要分为两类,一类是用于摆放inst(单元)的Logic(逻辑)类型的Tile,另外一类是用于连接Logic单元的Interconnect(走线)类型的Tile。
FPGA芯片上除了一些特别的功能需求(GTX、XADC等),芯片上每一列的Tile类型(INTER、IOB、LB、DSP和RAM等)都是一样的,且为了让绕线资源丰富,Logic类型的Tile与Inter类型的Tile是成对出现,方便逻辑单元的信号线顺利绕线。每一种类型的Tile内部都包含许多Segment(线段,用于描述阵列间的电气连接关系),用于器件之间线网连接的配置,另外每种类型的Tile(阵列)内部还包含一些与类型相关的配置开关,如Inter类型的Tile主要包含Path与Path相互转换的开关(Switch Box),LB类型的Tile内部包含查找表(LUT)、触发器(FF)等逻辑资源的配置等,IOB类型的Tile包含器件与外界关联的电压电平供给的配置等,RAM类型的Tile中包含存储单元的配置等等。
如图1所示,FPGA芯片阵列结构及Tile内部逻辑资源,图1中左侧子图显示了FPGA芯片上Tile的分布,其每一列的类型都一样,如图中两条纵向的长虚框,图1中右侧子图放大显示了Inter类型Tile及Logic类型Tile的内部逻辑。图1中右下角子图展示的是属于Logic类型LB子类型内部的逻辑资源,主要包括4个6输入的LUT,4个FF,一些MUX和INV逻辑资源及其相互之间的走线。图1中右上角子图放大显示Inter内部逻辑连接,围绕在黑框周围的白线即Inter Tile内部Segment的拓扑结构。
FPGA内部的所有单元通过布线资源进行连接,整体可以视为一个连通图。FPGA的布线资源十分丰富,根据工艺、长度、宽度和分布位置的不同可以划分为以下四种类型:(1)全局布线资源,用于芯片内部的全局时钟和全局复位/置位;(2)长线资源,用于完成芯片Bank间的高速信号和第二全局时钟信号的分布;(3)短线资源,用于完成基本逻辑单元之间逻辑互联和布线;(4)分布式的布线资源,用于专用时钟、复位等控制信号。一条Segment可经过多个Tile,经过Inter Tile的数目定义为Segment的长度,常见芯片Segment的长度主要有X1、X2、X4、X6、X12和X18几种,如图2所示。
除了这些布线资源,FPGA中还有一个概念:可编程互联点(PIP,ProgrammableInterconnect Point)。PIP是可编程的多路复用器,可以将同一个Tile中的Wire连接在一起,包含了从该Wire出发可以到达的其他Wire。大多数的PIP保存在INT Tile(即InterTile,Inter类型的阵列)中,旨在连接到所有的结构资源,例如CLB,DSP,BRAM等。在布线阶段,将FPGA视为图来处理,Segment布线资源视为图的顶点,PIP中的连接关系视为图的边,FPGA的布线问题就是布局后基于逻辑网表的最优路线问题。
无论是Inter类型的Tile还是Logic类型的Tile,其内部都含有一个或多个SwitchBox(开关矩阵),描述Segment的连接关系,Inter类型的SwitchBox中描述的连接关系多数是一对多的,Logic类型的SwitchBox中描述的连接关系多数是一对一的。如图3所示Inter类型的Tile内部的拓扑连接,除了包含一些Segment外,另外最主要的一部分是Segment之间的转换开关,Inter类型的Tile内部Switch Box,描述了任意一条Segment转换到其余Segment的拓扑连接关系(图中折斜线),每一个斜线代表一个可选择的PIP(配置连接),其和Segment共同构成绕线图。FPGA芯片的绕线资源图即由芯片上所有的Tile内部的Segment通过PIP连接起来构成的有向图。
目前,FPGA的设计流程主要包括逻辑综合、技术映射、封装、布局、布线、比特流生成等阶段。在FPGA的设计流程中,布局是最复杂最耗时的一个阶段,其中拥挤度的评估是布局最关键的的优化目标,如果评估不准会导致布线失败,如果评估的太慢会直接影响布局器的性能,拥挤度目标优化不好,会直接影响了电路性能、面积、可靠性、功率和制造产量。
现代FPGA的基于拥挤度布局主要面临以下四方面的挑战:(1)FPGA布线资源固定,如何加速拥挤度的评估,减少拥挤度评估器运行时间;(2)如何准确的评估拥挤度,提高拥挤度目标优化的准确度;(3)如何基于拥挤度评估的结果指导布局,减少布局布线目标之间的区别,加速布局的收敛,优化最终物理实现的质量。目前业界主要采用基于提前绕线的拥挤度驱动布局方法,该方法将在布局的过程中提前调用全局布线器,评估布局当前阶段的拥挤度,并将拥挤度数据反馈给布局器进行下一轮优化,使得布局优化目标(拥挤度、线长、时延和功耗等)最小。
FPGA物理实现中的基于拥挤度的布局是整个设计中非常耗时的环节,布局过程中拥挤度的解决是布局布线过程中最基本的设计规则。随着FPGA芯片的规模日渐增大,布线资源也等比例的增大,基于布线资源的拥挤度评估器的运行时间也指数级的增大,从而导致每次拥挤度评估的全局布线器运行时间很长,导致布局器和布线器无法多次调用评估;另外FPGA属于绕线资源定制化的芯片,基于整个布线资源图做全局布线速度非常慢,布局过程中不能频繁的调用,从而导致布局布线拥挤度问题严重,甚至最终无法解决拥挤度问题。如何减少布线资源图来加速全局布线器的运行时间,以及布局中增加拥挤度评估次数,是拥挤度布局的优化首要解决的问题。
发明内容
本发明的目的在于提供一种FPGA布线资源图压缩方法,通过压缩布线资源图,减少问题规模,加速拥挤度评估并保证拥挤度评估的准确度。
为了达到上述目的,本发明通过以下技术方案实现:
一种FPGA布线资源图压缩方法,该方法包含:
步骤一、基于指定的FPGA设备信息而创建的第一类图数据结构,其为初始多层图结构;
步骤二、在压缩的不同阶段得到多个图数据结构,多个图数据结构包括:
根据FPGA中部分引脚的等价性对连接到该部分引脚的节点进行压缩得到的第二类图数据结构;
根据FPGA中线段的驱动属性而创建的第三类图数据结构,所述第三类图数据结构是通过对扇出数目相同且拓扑结构相同的线段进行压缩得到,其中,所述线段用于描述阵列间的电气连接关系,所述扇出数目相同是指线段的输出端口数目相同;
第四类图数据结构,其形成方法包含:将设备坐标系转换成布线资源坐标系,将所述设备坐标系下的若干个Gcell数据结构通过压缩形成布线资源坐标系下的一个新的Gcell数据结构;所述Gcell数据结构包含FPGA中的若干个阵列的节点信息;其中,第一类图数据结构、第二类图数据结构、第三类图数据结构和第四类图数据结构均是多层图结构;
第五类图数据结构,其是通过将多层的相同坐标的Gcell数据结构压缩成一单层的Gcell数据结构得到的单层二维图结构;
步骤三、在压缩得到的所述单层二维图结构上进行全局布线。
可选的,将所述基于指定的FPGA设备信息而创建的第一类图数据结构作为开始阶段,所述第一类图数据结构处于所述开始阶段,所述第五类图数据结构处于所述压缩的不同阶段中的最后阶段;所述第二类图数据结构、所述第三类图数据结构和所述第四类图数据结构处于所述压缩的不同阶段中的中间阶段,并且在所述中间阶段中的次序是由三者形成的任意一排列。
可选的,所述初始多层图结构是根据FPGA设备定义的数据结构,用于描述FPGA芯片底层所有的布线资源图;基于FPGA设备中线段和可编程的多路复用器的信息创建原始绕线资源图,根据设备坐标系和线段的类型创建所述初始多层图结构。
可选的,第二类、第三类、第五类图数据结构中的一种或多种所在的坐标系与传入的上一阶段时的图数据结构的坐标系一致。
可选的,通过对线段的类型为kLUTINPUT的图层进行压缩得到所述第二类图数据结构。
可选的,所述对线段的类型为kLUTINPUT的图层进行压缩的方法进一步包含:对FPGA中查找表的等价输入的引脚的节点进行压缩,将连接到查找表的N个输入信号的节点进行压缩以形成一个新的节点,并更新该新的节点的容量;其中,所述查找表包含N个输入端口和一个输出端口,N>1,N个输入信号分别传入到所述N个输入端口,N个输入信号等价。
可选的,所述对扇出相同且拓扑结构相同的线段进行压缩的方法进一步包含:对Inter类型的阵列与Inter类型的阵列之间的线段中输出端口数目相同并且起点和终点相同的节点进行压缩。
可选的,Inter类型的阵列与Inter类型的阵列之间的线段根据连接端数至少分为双端线段和三端线段。
可选的,将设备坐标系更换为布线资源坐标系的方法包含以下:
利用第一函数和第二函数将设备坐标转换成Place坐标,其中,Place坐标系通过各种布局资源构成;
当第一函数和第二函数的返回值均不为-1时,直接调用第三函数和第四函数,将设备坐标转换成布线资源坐标;
当第一函数和第二函数的返回值均为-1时,根据设备坐标的信息获取阵列的坐标,将获取的阵列的坐标设为布线资源坐标;
所述第一函数为:transDeviceToPlaceCoordX(int dev_x);
所述第二函数为:transDeviceToPlaceCoordY(int dev_y);
所述第三函数为:transDeviceToRouteCoordX(int dev_x);
所述第四函数为:transDeviceToRouteCoordY(int dev_x)。
本发明还提供一种基于如上文所述的FPGA布线资源图压缩方法的全局布线模块,包含:建图子模块,根据FPGA设备类型进行建图操作得到初始多层图结构;压缩子模块,用于对所述初始多层图结构进行不同阶段的压缩,最终得到单层二维图结构;全局布线子模块,用于在所述单层二维图结构上实现全局布线。
本发明又提供了一种电子设备,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现上文所述的FPGA布线资源图压缩方法。
本发明进一步提供一种存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上文所述的FPGA布线资源图压缩方法。
与现有技术相比,本发明的有益效果在于:(1)本发明提出的一种布线资源压缩框架,可根据不同的特性及精度要求,对布线资源图进行压缩,减少布线资源图的大小,缩减问题规模;(2)本发明提出的一种压缩解压缩方法,将一个大的问题层次化拆解,然后针对每层求解对应粒度的小问题,从而得到最终解;(3)基于本发明的压缩的布线资源图指导绕线,减少拥挤度评估问题规模,优化全局拥挤度评估器全局布线运行时间;(4)基于本发明的压缩的布线资源图指导布局阶段拥挤度的评估,以更快的速度评估拥挤度结果,反馈给布局器调优;(5)基于本发明的压缩的布线资源图方法,可以解决FPGA物理实现中芯片的规模效应。
附图说明
图1为FPGA芯片阵列结构及Tile内部逻辑资源示意图;
图2为FPGA布线资源种类示意图;
图3为Inter Tile内部Switch Box逻辑连接示意图;
图4为本发明的FPGA的构造方法流程图;
图5为本发明的布局模块的软件模型图;
图6为本发明的全局布线模块的实现过程示意图;
图7为本发明的资源图的创建和压缩过程整体示意图;
图8为本发明的布线资源图压缩方法流程图;
图9为本发明的DevGraph类数据结构的示意图;
图10为本发明的EquGraph类数据结构示意图;
图11为本发明的FanoutGraph类数据结构示意图;
图12为本发明的RouGraph类数据结构示意图;
图13为本发明的OneLayerGraph类数据结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图4所示所示,本实施例提供一种FPGA的构造方法,包含以下步骤:
S1、逻辑综合:将一个给定的电路转化成逻辑门级网表,所述逻辑门级网表是经过综合优化与仿真之后得到的由与、或、非门,触发器,RAM等基本逻辑单元构成的逻辑网表;
S2、技术映射:将不同规格的LUTs和FFs映射成统一规格的LUTs和FFs;
S3、封装:将步骤S2得到的统一规格的LUTs和FFs装箱成CLBs、DSPs、BRAMs等逻辑组件;
S4、布局:用于将封装得到的逻辑组件放置在FPGA的合理位置;
S5、布线:用于分配布线资源以确定逻辑组件间的连接关系;
S6、生成比特流:用于对FPGA进行编程。
所述布局的主要功能是根据优化目标对电路图上的单元模块进行自动布局,确定逻辑单元的位置,其中,逻辑组件包含逻辑单元,确定逻辑组件的位置和确定逻辑单元的位置等价;所述布线的主要功能是根据优化目标及布局的拓扑结构,利用FPGA内部的各种连线资源,确定逻辑单元之间的连线,即将布局之后的逻辑单元,使用FPGA中的布线资源进行连接,使得线网的线长和时延尽可能的小或者满足约束条件。布局的优劣对FPGA的设计的最终结果影响很大,包括对布线的影响、设计的速度和时间等。
布局的输入包括综合后的逻辑网表(NetList)、用户指定的物理约束文件(UCF)和用户指定的时延约束信息(SDC),所述逻辑网表包含逻辑单元和线网,布局器根据用户输入的这些信息和静态时延分析器(STA)进行自动化布局,将逻辑单元摆放在合适的位置,并将相应的位置信息(即布局之后的逻辑单元的位置)传给布线器(Router)进行布线。其中,该自动化布局是指用户提供相应的文件之后,布局器(软件)会将逻辑单元摆放在符合用户设定的约束条件的位置。
布局器的模型如图5所示,布局(place)阶段根据UCF以及SDC(由软件中Timer模块处理,Timer模块是时序分析模块,用于评估电路的时序性能,时序是布局优化的一个目标,优化电路运行速度)对NetList中的逻辑单元进行布局,将其放置在合法的、符合物理约束和时延约束的位置;为了能够得到拥挤度更好的布局结果,在布局阶段设计实现全局布线模块(Global Route),通过其快速准确地评估布局的拥挤度,并给布局以反馈。最终得到布局的结果,再进行具体的布线操作(Detailed Route)。
在所述步骤S5中,本实施例中提供的FPGA的布线方法,分为两个步骤:全局布线(global routing)和详细布线(detailed routing),对应地,布线器包含全局布线模块和详细布线模块。该全局布线模块除了应用于布线阶段,另外一个主要目的是在布局阶段中,能够以较少的时间消耗,给出基于当前布局结果的一个全局布线结果,给出拥挤分布情况,给布局模块反馈信息,进一步优化布局的结果。
所述全局布线模块(Global Route)的主要功能是根据布局之后的信息,用较少的时间资源给出准确的拥挤度分布情况。本实施例中,布线资源图模块主要存储FPGA芯片上可以配置的信号走线资源,然后对其数据压缩,减少布线资源图(Graph)的大小,加快布线器对其搜索的速度。FPGA的布线资源很多,首先根据FPGA设备(FPGA Device)类型构建初始多层图,其包含FPGA设备上最原生且最准确的布线资源图,其次根据各种压缩特性逐步对初始多层图进行压缩操作,通过合并相似相同特征,合并资源图上的布线信息,减小布线资源图的大小,达到加速布线的目的,从而在较少的时间内给出准确的拥挤度信息,反馈给布局环节继续布局优化。
示例地,所述全局布线模块包含:建图子模块,根据识别的FPGA设备类型,进行建图操作(BuildGraph,是指对布线资源图的构造),得到初始多层图(DevGraph);压缩子模块,其用于对初始的多层图进行多次压缩操作得到单层二维图结构;全局布线子模块,用于在所述单层二维图结构上实现全局布线的操作,得到全局布线的结果。另外,全局布线后接详细布线模块,所述详细布线模块用于全局布线后的详细布线过程中的节点(Node)在图结构上的分配操作,该详细布线根据优化目标进一步细分绕线资源,优化布线结果,生成最终合法的布线信息。
如图6所示,本实施例的全局布线模块的实现过程如下:(T1)根据识别的FPGA设备类型进行建图操作(BuildGraph),初始化描述FPGA设备信息的图数据结构,得到一个初始的多层图;(T2)通过对初始的多层图进行多次压缩操作形成单层二维图结构;(T3)在单层二维图结构上通过全局布线的算法进行全局布线,得到全局布线的结果;(T4)全局布线的结果一方面可以评测布局阶段的拥挤程度,决定是否需要进行布局优化;另一方面,将全局布线的结果分配到初始多层图的结构中,实现详细布线。如图7所示,Gcell是自定义的数据结构,包含了FPGA芯片中一个或者多个Tile的节点信息。本实施例的多次压缩的最终结果是将多层图结构压缩成单层图结构,相同坐标的多层压缩成一层(具体参照下述过程e);该多次压缩包含将多个相同属性的节点压缩成一个节点(具体参照下述过程b、c、d),例如将每层中起点终点相同的多个节点压缩成一个节点,从而达到减小数据规模,降低全局布线算法实现的复杂度。
如图8所示,本实施例提出一种通用的布线资源图压缩方法,如下:
在压缩中的不同阶段自定义多个图数据结构,包括以下过程:
a、DevGraph类:基于用户指定的FPGA设备信息而创建的初始图结构,总是最先初始化的图结构;
b、EquGraph类:在FPGA中,部分引脚(Pin)是等价的,根据这些Pin的等价性对连接到这些Pin的节点(Pin Wire)进行压缩,得到EquGraph类;
c、FanoutGraph类:根据FPGA中Segment的驱动属性不同,建立FanoutGraph;
d、RouGraph类:FPGA中包含多个坐标系,包括Device坐标系(设备坐标系)、Place坐标系(布局资源坐标系,Place坐标系通过各种布局资源构成)以及Route坐标系(布线资源坐标系),根据坐标系转换规则,将Device坐标系转换成Route坐标系,其对应关系是一对一或者多对一;本实施例通过将Device坐标系下的一个或者多个Gcell压缩成Route坐标系下的新Gcell,构造出RouGraph;所述过程d是对多层图的每层进行同样的坐标系变换操作;
e、OneLayerGraph类:将相同坐标的多层压缩成一层,也就是将多层的相同坐标的Gcell(这里的Gcell是上层级的Graph中的Gcell)压缩成一个Gcell(被包含在OneLayerGraph中),最终可以得到单层二维图结构(OneLayer2D-Graph);此处是将多层的同一坐标属性的Gcell压缩成单层Graph的Gcell中,Graph数据结构中包含若干个Gcell数据结构的实例。
上述各个过程中的当前Graph都是根据上一层级的Graph或者FPGA Device构造出来的。值得说明的是,图8中的new DevGraph(fpga_)、new EquGraph(dev_graph)、newFanoutGraph(equ_graph)、new RouGraph(fanout_graph)和new OneLayerGraph(graph)、doCompress()等都是代码实现,DevGraph、EquGraph、FanoutGraph、RouGraph、OneLayerGraph等英文为均代码实现中的类名,不作为各个步骤创建的图数据结构的限制。
(二)最后基于压缩的OneLayerGraph,使得全局布线(GlobalRoute)算法在单层的二维图上进行寻路。
DevGraph:
一个示例中,DevGraph是指根据FPGA设备(FPGA Device)自定义的数据结构,记为第一类图数据结构,用于描述FPGA芯片底层完整的布线资源图,其基于FPGA Device中Segment和PIP信息创建原始绕线资源图,根据Device坐标系和Segment的类型(CostCode)创建多层的网格图,包含FPGA中所有的布线资源,如图9所示。其中,一个FPGA Device包含很多资源,在布局布线阶段,布局布线处理的对象主要是Place资源(可布局的资源)和Route资源(布线资源)。FPGA Device中根据列(Column)和行(Row)构成Device设备坐标系;各种布局资源,如CLB、DSP、BRAM等,构成Place坐标系;各种布线资源,例如INT Tile等,构成Route坐标系。
EquGraph:
一个示例中,EquGraph是指通过对CostCode为kLUTINPUT的多层的图层进行压缩操作doCompress()得到,其主要针对FPGA中LUT(Look-Up Table,查找表)的等价输入Pin的节点进行压缩,EquGraph记为第二类图数据结构。如图7所示,对于一个LUT5而言,它有五个输入端口,一个输出端口,即有5个输入信号和1个输出信号;如果一条线网的漏端是LUT5的输入,对于信号IN[0-4],它们在逻辑上是等价的,可以选择信号IN[0-4]中的任意一路信号传入到LUT5的输入端口,因此可以将连接到这些信号IN[0-4]的Node进行压缩,用一个新的Node(新的Node是压缩前多个旧Node的集合)进行表示,同时更新该新的Node的容量。以LUT5为例时,创建一个新的Node,将IN[0-4]加入该新的Node的child_nodes中,新的Node的容量设置为5。EquGraph的坐标系和压缩前的Graph坐标系一致。其中,Node的容量是指其中有多个节点,压缩过程中根据规则将多个Node压缩成一个Node表示,此处将5个Node压缩成一个Node,新的Node的容量就会设置成5,原来Node的容量是1。
FanoutGraph:
本实施例中,FanoutGraph是通过对Fanout(扇出)数目相同且拓扑结构相同的Segment进行压缩得到,主要包含对INT Tile与INT Tile之间的Segment Node进行压缩,FanoutGraph记为第三类图数据结构。因为Segment有不同的输出端口数,此处的Fanout相同是指输出端口数目相同。根据线长,Segment可以分为以下几类:(1)kSINGLE:EL1,ER1,WL1,WR1,NL1,NR1,SL1,SR1,线长为1;(2)kDOUBLE:EE2,WW2,NN2,SS2,NE2,NW2,SE2,SW2,线长为2;(3)kHQUAD:EE4,WW4(水平方向),线长为4;(4)kBENTQUAD:NE6,NW6,SE6,SW6;kVQUAD:NN6,SS6,线长为6;(5)kHLONG:LH12,kVLONG12:LV12,线长12;(6)kVLONG:LV18,线长18;(7)其它:BYP_BOUNCE,FAN_BOUNCE等。这些Segment根据连接端数又可分为双端Segment和三端Segment,将其中端口数相同且起点和终点相同的Node进行压缩,如图8所示:EE2BEG[0-3]压缩后用一个Segment表示,SS2BEG[0-3]压缩后用SS2BEG0和SS2BEG3两个Segment表示,其中SS2BEG0的容量由1更新为3,SS2BEG3的容量保持1不变,得到压缩后的FanoutGraph。FanoutGraph的坐标系和传入的压缩前Graph坐标系(即EquGraph的坐标系)一致,在本实施例中,当前Graph的构建依赖于上层Graph,除了RouGraph进行了Device坐标系到Route坐标系的转换,其他Graph保持坐标系和上层Graph保持一致。
RouGraph:
示例地,RouGraph主要是通过将Device坐标系的Graph转换成Route坐标系的Graph得到,该RouGraph记为第四类图数据结构。其中,将Device坐标系(设备坐标系)下的多个Gcell,通过坐标映射,将一个或者多个Device坐标系下的Gcell压缩到一个Route坐标下的Gcell。坐标系更改为Route坐标系(布线资源坐标系)。主要通过以下函数实现:
其中,函数(1)、(2)将Device坐标转换成Place坐标,返回值-1表示非法的Place坐标,该非法的Place坐标是指不正确的Place坐标,即该Device坐标系没有对应的Place坐标系;如果函数(1)、(2)返回值均不为-1,直接调用函数(3)、(4),将Device坐标转换成Route坐标;否则,根据Device坐标的信息获取Tile的坐标,将获取的阵列(Tile)的坐标设为Route坐标。通过上述方法将Device坐标系下的坐标(col,row)通过坐标转换得到Route坐标系坐标(x,y),如图9所示:多个Device坐标对应一个Route坐标。
在Device坐标系下,将各个逻辑单元的Node分别保存在各自的对应的Gcell中;图数据结构保存存在的连接关系,逻辑单元对应图中的起点Node和终点Node,布线就是在已有的连接关系中找到一条最优的连接线;进行RouGraph压缩后,通过坐标转换,将Device坐标转换成Route坐标,将CLB、DSP、BRAM等逻辑资源和最近的INT Tile合并成一个Gcell,BRAM、DSP等跨行的逻辑资源坐标以最下面一行的坐标为准。本发明的每个Graph(例如DevGraph、EquGraph、FanoutGraph、RouGraph以及OneLayerGraph)都包含了若干个Gcell的实例。
OneLayerGraph:
本实施例中,OneLayerGraph是指将多层的网格图压缩得到一单层二维图结构(OneLayer2D-Graph),将3D搜索问题化简为2D搜索问题,能够让布线算法在2D-Graph上进行布线(Route),而不是在多层的图结构上进行,该单层二维图结构记为第五类图数据结构。OneLayerGraph的坐标系与传入的Graph坐标系一致,因为在本实施例中,当前Graph的构建依赖于上层Graph,除了RouGraph进行了Device坐标系到Route坐标系的转换,其他Graph保持坐标系和上层Graph保持一致。
基于上述,本实施例中能将多层图压缩成单层图,其通过将多层图中相同坐标表示的Gcell压缩成一个Gcell,保存多层Gcell中的node信息。基于上述,经过一系列图的构造和压缩,可以得到一张Node数目相比原始Graph大幅减少的二维的Route坐标系Graph,可以更加快速的完成全局布线,给出拥挤度评估。其中,图数据结构(Graph数据结构)中包含若干个Gcell数据结构的实例,是否为单层图数据结构(OneLayer2D-Graph)需要通过Graph的属性来判断。
本发明的第一类图数据结构、第二类图数据结构、第三类图数据结构和第四类图数据结构均是多层图结构,它们涉及的压缩都是多层图的每一层分别压缩,最终得到还是多层图结构。
本发明中的通用的布线资源图压缩方法的流程的顺序可以调整,只要保证初始为多层图结构DevGraph和最终得到的图结构OneLayerGraph即可,中间过程得到的EquGraph类、FanoutGraph类、RouGraph类的图结构的相关操作的顺序可以随意更换,本发明对此不做限制。
需要说明的是,所述技术领域相关技术人员可以了解到,为了描述上的简洁与方便,上述在描述数据存储装置、处理装置的具体工作过程和相关说明,可以参考前述方法实施例中的对应过程,因此在这里不再赘述。
本领域相关技术人员应该能够意识到,结合本发明申请公开的实施例中所描述的各模块示例、方法、步骤,能用以计算机软件、电子硬件或者两者相结合来实现。与相关软件模块、方法和步骤对应的程序代码可以存入包含内存、只读存储器ROM、随机存储器RAM、电可编程ROM、电可擦写可编程ROM、硬盘、可移动硬盘、光盘、寄存器、软盘、磁带、或技术领域内的任意其它形式的存储介质中。在前述说明中按照功能一般性地描述了各示例的步骤与组成,以清楚地说明软件与电子硬件的可互换性。前述功能以软件或电子硬件执行或实现,取决于相应的技术方案以及特定的应用场景与设计需求约束。本领域相关技术人员能够根据应用场景的特定需求来选择使用不同的方法,从而实现所描述的功能,但这种实现不应认为超出本发明的范围。
术语“包含”或者任何类似用语,旨在涵盖非排他性的包含,从而使得包含一系列要素的方法、过程、物品、装置/设备不仅包含所描述的要素,而且还包含没有明确列出的其他相关要素,或者包含这些方法、过程、物品、装置/设备所固有的要素。
综上所述,本发明提出的FPGA布线资源图压缩方法,能有效地解决FPGA的拥挤度约束、异质性约束,并均匀的将所有模块放置在FPGA的合法位置上,获得最优的线长和拥挤度,为FPGA物理设计的后续阶段留下足够大的优化空间。该方法通过提取布线资源图中资源的共有特征,逐步压缩存储布线资源,获得一个较小的布线资源图。该方法根据大小需求可构建任意小的布线资源图,通过压缩布线资源图,减少拥挤度评估问题的规模,加快拥挤度的评估。该方法根据精度需求可构建尽可能小的布线资源图,通过准确的等价特征提取压缩绕线资源,拥挤度评估的精度得到保证。该方法构造了一个DevGraph的压缩方法,基于FPGA芯片构建底层最基本的绕线资源图,供后续压缩及拥挤度评估做准备。该方法构造了一个EquGraph的压缩方法,基于FPGA芯片上等价的逻辑引脚(Pin)进行压缩,供后续压缩及拥挤度评估做准备。该方法构造了一个FanoutGraph的压缩方法,基于FPGA芯片上规则的Segment拓扑结构进行压缩,供后续压缩及拥挤度评估做准备。该方法构造了一个RouGraph的压缩方法,基于FPGA芯片上Device和Route坐标系的对应关系进行压缩,供后续压缩及拥挤度评估做准备。该方法构造了一个OneLayerGraph的压缩方法,基于FPGA芯片上Segment的类型的层次结构进行压缩,供后续压缩及拥挤度评估做准备。该方法可用无物理实现任何阶段,不限于布局中拥挤度的评估。该方法将拥挤度原生问题拆解成层次化问题,每层只专注当前层关心的细节,通过压缩、全局绕线、解压缩的多层次架构准确的评估拥挤度。该方法根据布局的精度及速度要求,自动调节布线资源图的规模,实现准确快速的拥挤度评估布局,优化目标与布线阶段看到的资源信息相匹配。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
Claims (10)
1.一种FPGA布线资源图压缩方法,其特征在于,该方法包含:
步骤一、基于指定的FPGA设备信息而创建的第一类图数据结构,其为初始多层图结构;
步骤二、在压缩的不同阶段得到多个图数据结构,多个图数据结构包括:
根据FPGA中部分引脚的等价性对连接到该部分引脚的节点进行压缩得到的第二类图数据结构;
根据FPGA中线段的驱动属性而创建的第三类图数据结构,所述第三类图数据结构是通过对扇出数目相同且拓扑结构相同的线段进行压缩得到,其中,所述线段用于描述阵列间的电气连接关系,所述扇出数目相同是指线段的输出端口数目相同;
第四类图数据结构,其形成方法包含:将设备坐标系转换成布线资源坐标系,将所述设备坐标系下的若干个Gcell数据结构通过压缩形成布线资源坐标系下的一个新的Gcell数据结构;所述Gcell数据结构包含FPGA中的若干个阵列的节点信息;其中,第一类图数据结构、第二类图数据结构、第三类图数据结构和第四类图数据结构均是多层图结构;
第五类图数据结构,其是通过将多层的相同坐标的Gcell数据结构压缩成一单层的Gcell数据结构得到的单层二维图结构;
步骤三、在压缩得到的所述单层二维图结构上进行全局布线。
2.如权利要求1所述的FPGA布线资源图压缩方法,其特征在于,将所述基于指定的FPGA设备信息而创建的第一类图数据结构作为开始阶段,所述第一类图数据结构处于所述开始阶段,所述第五类图数据结构处于所述压缩的不同阶段中的最后阶段;
所述第二类图数据结构、所述第三类图数据结构和所述第四类图数据结构处于所述压缩的不同阶段中的中间阶段,并且在所述中间阶段中的次序是由三者形成的任意一排列。
3.如权利要求1所述的FPGA布线资源图压缩方法,其特征在于,所述初始多层图结构是根据FPGA设备定义的数据结构,用于描述FPGA芯片底层所有的布线资源图;
基于FPGA设备中线段和可编程的多路复用器的信息创建原始绕线资源图,根据设备坐标系和线段的类型创建所述初始多层图结构。
4.如权利要求1所述的FPGA布线资源图压缩方法,其特征在于,第二类、第三类、第五类图数据结构中的一种或多种所在的坐标系与传入的上一阶段时的图数据结构的坐标系一致。
5.如权利要求1所述的FPGA布线资源图压缩方法,其特征在于,通过对线段的类型为kLUTINPUT的图层进行压缩得到所述第二类图数据结构,其进一步包含:
对FPGA中查找表的等价输入的引脚的节点进行压缩,将连接到查找表的N个输入信号的节点进行压缩以形成一个新的节点,并更新该新的节点的容量;
其中,所述查找表包含N个输入端口和一个输出端口,N>1,N个输入信号分别传入到所述N个输入端口,N个输入信号等价。
6.如权利要求1所述的FPGA布线资源图压缩方法,其特征在于,所述对扇出数目相同且拓扑结构相同的线段进行压缩的方法进一步包含:对Inter类型的阵列与Inter类型的阵列之间的线段中输出端口数目相同并且起点和终点相同的节点进行压缩;
Inter类型的阵列与Inter类型的阵列之间的线段包含双端线段和三端线段。
7.如权利要求1所述的FPGA布线资源图压缩方法,其特征在于,将设备坐标系更换为布线资源坐标系的方法包含以下:
利用第一函数和第二函数将设备坐标转换成布局资源坐标;
当第一函数和第二函数的返回值均不为-1时,直接调用第三函数和第四函数,将设备坐标转换成布线资源坐标;
当第一函数和第二函数的返回值均为-1时,根据设备坐标的信息获取阵列的坐标,将获取的阵列的坐标设为布线资源坐标;
所述第一函数为:transDeviceToPlaceCoordX(int dev_x);
所述第二函数为:transDeviceToPlaceCoordY(int dev_y);
所述第三函数为:transDeviceToRouteCoordX(int dev_x);
所述第四函数为:transDeviceToRouteCoordY(int dev_x)。
8.一种基于如权利要求1~7中任意一项所述的FPGA布线资源图压缩方法的全局布线模块,其特征在于,包含:
建图子模块,根据FPGA设备类型进行建图操作得到初始多层图结构;
压缩子模块,用于对所述初始多层图结构进行不同阶段的压缩,最终得到单层二维图结构;
全局布线子模块,用于在所述单层二维图结构上实现全局布线。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器上存储有计算机程序,所述计算机程序被所述处理器执行时,实现权利要求1至7中任一项所述的FPGA布线资源图压缩方法。
10.一种存储介质,其特征在于,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现权利要求1至7中任一项所述的FPGA布线资源图压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767908.0A CN114065694A (zh) | 2020-08-03 | 2020-08-03 | 一种fpga布线资源图压缩方法和全局布线模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010767908.0A CN114065694A (zh) | 2020-08-03 | 2020-08-03 | 一种fpga布线资源图压缩方法和全局布线模块 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114065694A true CN114065694A (zh) | 2022-02-18 |
Family
ID=80231588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010767908.0A Pending CN114065694A (zh) | 2020-08-03 | 2020-08-03 | 一种fpga布线资源图压缩方法和全局布线模块 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114065694A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114492290A (zh) * | 2022-04-06 | 2022-05-13 | 飞腾信息技术有限公司 | 芯片的电源开关规划方法、装置、设备及存储介质 |
CN115130413A (zh) * | 2022-09-01 | 2022-09-30 | 深圳市国电科技通信有限公司 | 现场可编程门阵列的拓扑结构设计方法和电子设备 |
CN116822452A (zh) * | 2023-08-23 | 2023-09-29 | 芯行纪科技有限公司 | 芯片布局优化方法及相关设备 |
CN116894424A (zh) * | 2023-06-25 | 2023-10-17 | 广东高云半导体科技股份有限公司 | 一种fpga的布线方法及装置 |
CN117422040A (zh) * | 2023-12-18 | 2024-01-19 | 沐曦集成电路(上海)有限公司 | 一种片上网络在芯片版图上的生成方法 |
CN117787172A (zh) * | 2023-12-27 | 2024-03-29 | 苏州异格技术有限公司 | 布线资源图的构建方法、装置、计算机设备及存储介质 |
-
2020
- 2020-08-03 CN CN202010767908.0A patent/CN114065694A/zh active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114492290A (zh) * | 2022-04-06 | 2022-05-13 | 飞腾信息技术有限公司 | 芯片的电源开关规划方法、装置、设备及存储介质 |
CN114492290B (zh) * | 2022-04-06 | 2022-07-01 | 飞腾信息技术有限公司 | 芯片的电源开关规划方法、装置、设备及存储介质 |
CN115130413A (zh) * | 2022-09-01 | 2022-09-30 | 深圳市国电科技通信有限公司 | 现场可编程门阵列的拓扑结构设计方法和电子设备 |
CN116894424A (zh) * | 2023-06-25 | 2023-10-17 | 广东高云半导体科技股份有限公司 | 一种fpga的布线方法及装置 |
CN116894424B (zh) * | 2023-06-25 | 2024-05-17 | 广东高云半导体科技股份有限公司 | 一种fpga的布线方法及装置 |
CN116822452A (zh) * | 2023-08-23 | 2023-09-29 | 芯行纪科技有限公司 | 芯片布局优化方法及相关设备 |
CN116822452B (zh) * | 2023-08-23 | 2023-11-21 | 芯行纪科技有限公司 | 芯片布局优化方法及相关设备 |
CN117422040A (zh) * | 2023-12-18 | 2024-01-19 | 沐曦集成电路(上海)有限公司 | 一种片上网络在芯片版图上的生成方法 |
CN117422040B (zh) * | 2023-12-18 | 2024-02-27 | 沐曦集成电路(上海)有限公司 | 一种片上网络在芯片版图上的生成方法 |
CN117787172A (zh) * | 2023-12-27 | 2024-03-29 | 苏州异格技术有限公司 | 布线资源图的构建方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114065694A (zh) | 一种fpga布线资源图压缩方法和全局布线模块 | |
US5359537A (en) | Automatic synthesis of integrated circuits employing controlled input dependency during a decomposition process | |
US7009421B2 (en) | Field programmable gate array core cell with efficient logic packing | |
US9754061B2 (en) | Method and device for programming a FPGA | |
US7953956B2 (en) | Reconfigurable circuit with a limitation on connection and method of determining functions of logic circuits in the reconfigurable circuit | |
US6470486B1 (en) | Method for delay-optimizing technology mapping of digital logic | |
US20160248428A1 (en) | Mixed-Radix and/or Mixed-Mode Switch Matrix Architecture and Integrated Circuit, and Method of Operating Same | |
US7165230B2 (en) | Switch methodology for mask-programmable logic devices | |
JPS63120439A (ja) | 集積回路及びそのレイアウト方法 | |
CN104182556B (zh) | 芯片的布局方法 | |
CN115859885B (zh) | 一种fpga冗余容错方法及fpga芯片 | |
CN105677525B (zh) | 基于可重复配置单元的fpga局部互联资源自动化测试方法 | |
CN107967372B (zh) | 一种fpga总体布局合法化方法 | |
CN105718679A (zh) | 一种fpga的资源布局方法及装置 | |
Lagadec et al. | Object-oriented meta tools for reconfigurable architectures | |
CN111159967A (zh) | 一种基于网页排名算法的fpga电路布局与资源分配方法 | |
US8694948B2 (en) | Reconfigurable circuit generation device, method, and program | |
Maree et al. | Development of an All-SFQ superconducting field-programmable gate array | |
US8104009B1 (en) | Wire mapping for programmable logic devices | |
CN111027274A (zh) | 一种三维芯片布局的方法 | |
Hu | Cellular synthesis of synchronous sequential machines | |
US11681846B1 (en) | Sub-FPGA level compilation platform with adjustable dynamic region for emulation/prototyping designs | |
US7788623B1 (en) | Composite wire indexing for programmable logic devices | |
US9529957B1 (en) | Multithreaded scheduling for placement of circuit designs using connectivity and utilization dependencies | |
CN115204103B (zh) | 基于cb分类的快速布线方法及装置 |
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 |