CN114968383A - Fpga相邻输出多路复用器直接连接以最小化路由跳 - Google Patents
Fpga相邻输出多路复用器直接连接以最小化路由跳 Download PDFInfo
- Publication number
- CN114968383A CN114968383A CN202210163187.1A CN202210163187A CN114968383A CN 114968383 A CN114968383 A CN 114968383A CN 202210163187 A CN202210163187 A CN 202210163187A CN 114968383 A CN114968383 A CN 114968383A
- Authority
- CN
- China
- Prior art keywords
- logic block
- tiles
- block tiles
- output
- fpga
- 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17724—Structural details of logic blocks
- H03K19/17728—Reconfigurable logic blocks, e.g. lookup tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
描述了提供FPGA相邻输出多路复用器直接连接以减少和潜在地最小化路由跳的方法和设备。本文描述的实施例包括添加从一个瓦片到相邻瓦片的输出多路复用的直接连接。一种FPGA设备包括多个逻辑块瓦片。一个或多个直接连接从多个逻辑块瓦片的一个或多个逻辑块瓦片延伸到一个或多个相邻逻辑块瓦片的输出多路复用器的一个或多个输入端。一个或多个直接连接被配置为驱动起始于一个或多个相邻逻辑块瓦片的一个或多个线。
Description
相关申请的交叉引用
本申请要求于2021年2月22日提交的、名称为“FPGA相邻输出多路复用器直接连接以最小化路由跳(FPGA NEIGHBOR OUTPUT MUX DIRECT CONNECTIONS TO MINIMIZEROUTING HOPS)”、申请号为63/152,122的美国临时专利申请的权益,该美国临时专利申请通过引用整体并入本文。
技术领域
如本文所述的实施例涉及一种可编程门架构的领域,并且特别地,涉及具有相邻输出多路复用器直接连接以最小化路由跳(routing hops)的可编程门架构。
背景技术
现场可编程门阵列(FPGA)使用重复的瓦片(tile)构建,重复的瓦片中的每一个实施一些逻辑并连接到在该瓦片处被驱动的一些线。每个逻辑块可以通过使用起始于该逻辑块的起始线以及连接到起始线的任何线中的任何一个来连接到其他逻辑块。
FPGA架构师选择线段(wire segment)长度以优化速度、面积和路由灵活性。线通常仅在它们的端点处驱动其他线,同时线沿其长度(不仅仅是在其端点)驱动逻辑块中的一些。当选择线段长度使它只跨越一个瓦片时,则该线段可以用于启动可以访问芯片上任何逻辑块的线的组合。然而,走更长的距离需要遍历许多线和许多多路复用器(multiplexors(muxes)),这是较慢的。
更长的线段长度可以用于减少多路复用面积并提高速度,但是这是以路由灵活性为代价。完全由跨越2个瓦片的线段组成的路由网络将使得每隔一个逻辑块都不可访问。出于该原因,使用了不同线段的一些组合,并且这些线段长度之间的连接允许每个瓦片都可以被每个其他瓦片访问。
对于现有技术,即使在使用混合的线段时,从一个瓦片到任何其他瓦片所需的跳数也是可变的,并且不会随着瓦片之间的距离而单调增加。线段混合意味着可以非常直接访问一些瓦片(例如,当使用长度为10的线时,访问多达10个瓦片)或非常间接访问一些瓦片(例如,当使用长度为10和长度为1的线段的混合时,访问超过1个并多达9个瓦片)。对于现有技术,软件难以在满足设置约束的同时将设计映射到FPGA上。
发明内容
描述了提供FPGA相邻输出多路复用器直接连接以最小化路由跳(routing hop)的方法和设备。本文描述的实施例包括添加从一个瓦片到相邻瓦片的输出多路复用的直接连接。在至少一些实施例中,一种FPGA设备包括多个逻辑块瓦片。一个或多个直接连接从多个逻辑块瓦片的一个或多个逻辑块瓦片延伸到一个或多个相邻逻辑块瓦片的输出多路复用器的一个或多个输入端。一个或多个直接连接被配置为驱动起始于一个或多个相邻逻辑块瓦片的一个或多个线。
在至少一些实施例中,一种设备包括存储器;以及联接到存储器的处理器。处理器被配置为确定多个FPGA逻辑块瓦片中的一个或多个逻辑块瓦片,确定多个FPGA逻辑块瓦片中的一个或多个相邻逻辑块瓦片,以及将一个或多个逻辑块瓦片直接连接到一个或多个相邻逻辑块瓦片的输出多路复用器的一个或多个输入端以驱动起始于该一个或多个相邻逻辑块瓦片的一个或多个线。
在至少一些实施例中,提供了一种非暂时性机器可读介质。该非暂时性机器可读介质存储指令,该指令使数据处理系统执行操作,该操作包括确定多个FPGA逻辑块瓦片中的一个或多个逻辑块瓦片,确定多个FPGA逻辑块瓦片中的一个或多个相邻逻辑块瓦片,以及将一个或多个逻辑块瓦片直接连接到一个或多个相邻逻辑块瓦片的输出多路复用器的一个或多个输入端以驱动起始于该一个或多个相邻逻辑块瓦片的一个或多个线。
还描述了提供FPGA相邻输出多路复用器直接连接的其他设备、方法和机器可读介质。
附图说明
本申请的实施例可以通过参考下面的描述以及用于说明本申请的实施例的附图来得到最好的理解。在附图中:
图1是根据本公开的一个实施例的现场可编程门阵列(FPGA)系统架构的示图100。
图2是根据本公开的一个实施例的现场可编程门阵列(FPGA)系统架构的一部分的示图200。
图3是根据本公开的一个实施例的开关块(SB)300的示图。
图4是根据本公开的一个实施例的包括FPGA直接相邻输出多路复用器连接的设备400的示图。
图5是表示根据本公开的一个实施例的没有直接输出多路复用器连接的FGPA架构的映射500。
图6是表示根据本公开的一个实施例的具有直接输出多路复用器连接的FGPA架构的映射600。
图7是根据本公开的一个实施例的提供FPGA相邻输出多路复用器直接连接以最小化路由跳的方法700的流程图。
具体实施方式
描述了提供FPGA相邻输出多路复用器直接连接以最小化路由跳的方法和设备。本文描述的实施例包括添加从一个瓦片到相邻瓦片的输出多路复用器的直接连接。与常规技术相比,添加了从FPGA逻辑块到相邻FPGA逻辑块的输出多路复用器的直接连接,以提高FPGA路由网络的灵活性、面积效率和速度。
在至少一些实施例中,源瓦片可以访问起始于相邻瓦片的起始线。与现有技术相比,这创建了路由跳的数量与两个路由瓦片之间的距离的更平滑的函数。另外,将设计映射到FPGA上的软件在尝试将两个逻辑块布置在附近而它们之间的跳尽可能少时具有更多的选择。使跳的数量与距离的函数平滑使软件更易于将设计映射到FPGA上,同时满足设置约束。另外,增加通过少量的跳即可访问的瓦片的数量有助于软件同时满足多条路径上的设置约束。
在至少一些实施例中,一种FPGA设备包括多个逻辑块瓦片,多个逻辑块瓦片包括一个或多个第一逻辑块瓦片以及一个或多个第二逻辑块瓦片。一个或多个线起始于一个或多个第一逻辑块瓦片。一个或多个直接连接从一个或多个第一逻辑块瓦片延伸到一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端,该一个或多个第二逻辑块瓦片是与该一个或多个第一逻辑块瓦片相邻的逻辑块瓦片。如下文进一步详细描述的,一个或多个直接连接被配置为驱动起始于一个或多个第二逻辑块瓦片的一个或多个线。
在至少一些实施例中,向任意数量的相邻瓦片建立直接输出多路复用器连接。增加直接连接的数量可以使跳与距离的函数平滑,但是以增加相邻瓦片中多路复用器的大小为代价。在一个实施例中,有多少直接连接以及将它们添加到哪些相邻的决定与FPGA逻辑块架构和线段架构相关联。FPGA架构师还可以决定在相邻瓦片内的何处连接直接连接。在至少一些实施例中,对于具有多级输出多路复用的逻辑块,可以建立到较早的多路复用器级或较晚的多路复用级的直接连接,这是与FPGA逻辑块架构和线段架构相关的平衡。
在至少一些实施例中,引入直接输出多路复用器连接提高了在FPGA上实施的典型电路的操作频率。另外,如下文进一步详细描述的,由于通过添加输出多路复用器直接连接而引入的附加灵活性,因此可以选择不太灵活的线段架构。
将参考下面讨论的细节来描述本公开的各个实施例和各个方面,并且附图将说明各个实施例。下面的描述和附图是对本公开的说明,而不应被解释为对本公开的限制。描述了许多具体细节以提供对本公开的各个实施例的透彻理解。然而,在某些情况下,没有描述公知的或常规的细节以便提供对本公开实施例的简明讨论。
在说明书中对“一个实施例”或“实施例”的引用是指结合该实施例描述的特定特征、结构或特性可以被包括在本公开的至少一个实施例中。在说明书的各个位置出现的短语“在一个实施例中”不一定都指同一实施例。
图1是根据一个实施例的现场可编程门阵列(FPGA)系统架构的示图100。例如,FPGA系统包括多个FPGA瓦片,诸如FPGA瓦片101、102、103、104、105和111。在一些实施例中,FPGA瓦片101、102、103和104是逻辑块(LB),瓦片105和111是开关块(SB)。瓦片使用线来连接。如图1所示,瓦片101通过线107连接到路由路线106的线。路由路线106的线穿过瓦片105。瓦片102通过线108连接到路由路线112的线。该路由路线的线穿过瓦片111。
在至少一些实施例中,LB瓦片101包括到一个或多个其他LB瓦片的输出多路复用器的一个或多个输入端的一个或多个直接连接109。在至少一些实施例中,其他LB瓦片是瓦片101的相邻LB瓦片,例如LB瓦片102、103和104。通常,如果瓦片A与瓦片B物理相邻,则该瓦片A被称为瓦片B的相邻瓦片。水平相邻瓦片A是其中瓦片A位于瓦片B的正东或正西并且瓦片A和B之间没有其他瓦片的瓦片。对角瓦片A是其中瓦片A位于瓦片B的正东北、正西北、正东南或正西南并且A和B之间没有其他瓦片的瓦片。垂直相邻瓦片A是其中瓦片A位于瓦片B的正北或正南并且瓦片A和B之间没有其他瓦片的瓦片。示图113表示FPGA架构图上的北方向、南方向、东方向和西方向。如图1所示,瓦片102在瓦片101的正东,瓦片103在瓦片101的正东南,瓦片104在瓦片101的正南。
在至少一些实施例中,一个或多个直接连接109包括一个或多个线(未示出)。在至少一些实施例中,直接连接109中的一个或多个被配置为驱动起始于一个或多个其他LB瓦片的一个或多个线(未示出)。在至少一些实施例中,LB瓦片101包括具有一个或多个输出多路复用器(未示出)的LB,并且相邻逻辑块瓦片包括具有一个或多个输出多路复用器的逻辑块,并且LB瓦片101的一个或多个输出多路复用器的输出端直接连接到相邻LB瓦片的一个或多个输出多路复用器的输入端。在至少一些实施例中,一个或多个直接连接109包括一个或多个线。在至少一些实施例中,一个或多个直接连接109包括从LB瓦片101的查找表(LUT)的输出端到一个或多个相邻逻辑块瓦片的输出多路复用器的一个或多个输入端中的输入端的直接连接。在至少一些实施例中,一个或多个直接连接109是到与瓦片101在同一行的LB瓦片102的水平连接。在至少一些实施例中,一个或多个直接连接109是到与瓦片101在同一列的瓦片104的垂直连接。在至少一些实施例中,例如,诸如直接连接109的一个或多个直接连接是到与瓦片101处于相邻列和相邻行的瓦片103的对角连接。在至少一些实施例中,从LB瓦片101提供一个或多个直接连接109的其他LB瓦片(102、103或104)是基于电路设计的时间和频率中的一项或两者来确定的。在至少一些实施例中,一个或多个直接连接109的数量(量)是基于电路设计约束来确定的。在至少一些实施例中,一个或多个直接连接109的数量增加以增加可达性,减少时序延迟以及增加信号和电路执行的速度。在至少一些实施例中,从LB瓦片101提供一个或多个直接连接109的其他LB瓦片(102、103或104)是基于对芯片面积和多路复用器速度的负面影响与路由灵活性的提高之间的平衡而确定的,这可以导致在FPGA上实施的设计的线使用和电路频率的改进。
通常,路由架构包括可编程开关和线。路由提供输入/输出(I/O)块和逻辑块之间以及一个逻辑块和另一个逻辑块之间的连接。路由架构的类型确定路由所占用的面积和逻辑块的密度。与逻辑块所消耗的面积相比,FPGA中使用的路由技术可以确定线段和可编程开关所使用的面积量。线段可以指之间没有可编程开关的互连的两个端点。FPGA中一个或多个线段的序列(sequence)可以被称为路线(track)。通常,FPGA具有逻辑块、互连和I/O块。I/O块位于逻辑块和互连的外围。线段通过连接块将I/O块连接到线段。连接块连接到逻辑块,根据设计要求,一个逻辑块连接到另一个逻辑块,依此类推。
通常,FPGA架构包括线,线具有起点(这些线被多路复用器驱动的位置)和终点(被该线驱动的最远多路复用器输入端的位置)。例如,由逻辑上位于网格位置(4,5)的多路复用器驱动并且在位置(4,10)驱动不同多路复用器的线的长度为5。通常,FPGA上存在多种不同的线类型,每种类型具有不同的长度。例如,FPGA可以具有三种不同的线类型,其中一种长度为1,其中一种长度为5,并且其中一种长度为14。在至少一些其他实施例中,FPGA架构具有长度1的线、长度2的线、长度3的线、长度4的线、长度5的线、其他长度的线或它们的任意组合中的一种或多种。
图2是根据一个实施例的现场可编程门阵列(FPGA)系统架构的一部分的示图200。示图200示出了LB瓦片201、SB瓦片202、路由路线206和路由路线207。LB瓦片201包括输入多路复用器,例如输入多路复用器203。在至少一些实施例中,如上面关于图1所描述的,LB瓦片201、SB瓦片202、路由路线206和路由路线207代表FPGA系统的路由路线和瓦片。如图2所示,LB瓦片201的输入多路复用器使用线204连接到路由路线206的线。LB瓦片201的输入多路复用器使用线205连接到路由路线207的线。路由路线207连接到SB瓦片202。线204和205中的每一个驱动多路复用器203的单独输入端,如图2所示。
如图2所示,LB瓦片201包括到相邻LB瓦片(未示出)的输出多路复用器的一个或多个输入端的一个或多个直接连接208。在至少一些实施例中,一个或多个直接连接208包括一个或多个输出多路复用器(未示出)。在至少一些实施例中,LB瓦片201的一个或多个输出多路复用器的输出端使用线直接连接到相邻LB瓦片的一个或多个输出多路复用器的输入端。在至少一些实施例中,一个或多个直接连接208包括直接连接到相邻LB瓦片(未示出)的多路复用器的输入端的线211以及驱动其他LB瓦片的线209。在至少一些实施例中,线211上的信号与线209上的信号相同。在至少一些实施例中,如下文进一步详细描述的,一个或多个直接连接208包括从瓦片201的查找表(LUT)的输出端到一个或多个相邻逻辑块瓦片的输出多路复用器的一个或多个输入端中的输入端的直接连接。
图3是根据一个实施例的开关块(SB)300的示图。示图316表示FPGA架构图上的北方向、南方向、东方向和西方向。在SB 300处结束的线可以驱动SB 300中的一个或多个多路复用器,该一个或多个多路复用器驱动起始于该位置的一个或多个线。另外,与开关块位于同一位置的逻辑块可以驱动SB中的一个或多个多路复用器。如图3所示,SB包括多个多路复用器302、303、304和305。多路复用器302、303、304和305中的每一个具有多个输入端和一个输出端。在一些实施例中,多路复用器302、303、304和305中的每一个由一个或多个线驱动,该一个或多个线结束于并联接到该多路复用器的输入端。如图3所示,逻辑块线306、东线307、北线308、西线309在SB 300处结束。逻辑块线306、东线307、北线308、西线309中的每一个在多路复用器302的相应输入端处结束。在一些实施例中,起始于SB 300的每个线由多路复用器驱动。如图3所示,多路复用器302驱动起始于多路复用器302的输出端的北线311。多路复用器303驱动起始于多路复用器303的输出端的西线314。多路复用器304驱动起始于多路复用器304的输出端的东线312。多路复用器305驱动起始于多路复用器305的输出端的南线313。如图3所示,一个或多个线315穿过SB。一个或多个线315绕过SB 300中的多路复用器。
图4是根据一个实施例的包括FPGA直接相邻输出多路复用器连接的设备400的示图。设备400包括多个FPGA逻辑块瓦片,例如瓦片401和瓦片406。在至少一些实施例中,瓦片406是瓦片401的相邻瓦片。瓦片401包括逻辑块402,并且瓦片406包括逻辑块407。在一些实施例中,逻辑块402和407中的每一个包括一个或多个查找表(LUT)和触发器(flip flop,FF)。例如,瓦片401包括诸如输入多路复用器403的输入多路复用器和诸如输出多路复用器404的输出多路复用器。瓦片401的输出多路复用器将线405驱动到其他FPGA逻辑块瓦片。例如,瓦片406包括诸如输入多路复用器411的输入多路复用器和诸如输出多路复用器408的输出多路复用器。瓦片406的输出多路复用器驱动线413。
如图4所示,线405起始于逻辑块瓦片401,并且线413起始于逻辑块瓦片406。在至少一些实施例中,输入多路复用器403和411表示如上文关于图2描述的输入多路复用器。在至少一些实施例中,输出多路复用器404和408表示如上文关于图2描述的输出多路复用器。生成从FPGA逻辑块瓦片401到输出多路复用器408的一个或多个输入端的一个或多个直接连接,例如,连接409、连接412。在至少一些实施例中,连接409被添加到驱动线405的多路复用器404的输出端。如图4所示,线405和线409连接到多路复用器404的输出端。连接409是从多路复用器404的输出端到输出多路复用器408的输入端以驱动线413的直接连接。在至少一些实施例中,连接412是从逻辑块402的LUT的输出端到输出多路复用器408的输入端以驱动线413的直接连接。在至少一些实施例中,直接连接409包括线。在至少一些实施例中,直接连接412包括线。在至少一些实施例中,其中直接连接409承载与驱动另一个逻辑块瓦片的线405上的信号相同的信号,使得输出多路复用器资源在不同逻辑块之间共享。在至少一些实施例中,逻辑单元具有直接驱动起始于相邻单元处的线的能力。例如,线的驱动器是具有多个输入端的多路复用器,并且该多路复用器的输入端中的至少一些直接连接到一个或多个相邻逻辑单元。再例如,FPGA逻辑单元具有输出多路复用器,多路复用器驱动起始于该位置处的线。从这些输出多路复用器到相邻单元的多路复用器的输入端添加直接连接,以驱动起始于相邻单元处的线。这样,电路可以仅通过一个额外的多路复用器来直接驱动起始于不同位置处的其他线,从而大大减少电路的时间延迟。
通常,将电路设计映射(例如,布置、路由)到FPGA上需要满足预定的设计约束。在至少一些实施例中,提供直接连接(例如,直接连接409、直接连接412)的逻辑块瓦片是基于电路设计约束(例如,时间、频率或者时间和频率两者)来确定的。在至少一些实施例中,直接连接的数量(例如,需要生成多少直接连接409、412)是基于用于路由电路的FPGA线段的长度来确定的。在至少一些实施例中,增加一个或多个直接连接409、412的数量以增加可达性,减少时序延迟以及增加信号和电路执行的速度。如图4所示,建立从逻辑块的输出端到相邻逻辑块的输出多路复用器的输入端的连接。如图4所示,每个逻辑块还连接到线,线的长度由FPGA线段架构定义。这具有在不同逻辑块之间共享输出多路复用器资源的效果。
图5是表示根据本公开的一个实施例的没有直接输出多路复用器连接的FGPA架构的映射500。映射500示出了在没有相邻输出多路复用器直接连接的情况下到达逻辑块所需要使用的线跳的数量。如图5所示,FPGA架构包括81个瓦片。映射示图500示出了从9瓦片×9瓦片网格中心的源FPGA瓦片511到达每个FPGA瓦片所需的跳(例如,线段)的量。该映射示出了在芯片上从一个位置到每个其他位置需要多少延迟(跳)。对于本示例,FPGA线段架构的长度为2个线。
如图5所示,诸如FPGA瓦片501的8个FPGA瓦片可以从FPGA瓦片511通过一跳(一个长度为2的线)到达。如图5所示,诸如FPGA瓦片502的20个FPGA瓦片可以从FPGA瓦片511通过两跳(两个长度为2的线)到达。如图5所示,诸如FPGA瓦片503的24个FPGA瓦片可以从FPGA瓦片511通过三跳(三个长度为2的线)到达。如图5所示,诸如FPGA瓦片504的12个FPGA瓦片可以从FPGA瓦片511通过四跳(四个长度为2的线)到达。如图5所示,诸如FPGA瓦片505的16个FPGA瓦片无法从FPGA瓦片511到达。也就是说,在没有直接输出多路复用器连接的情况下,映射500上的一些位置无法通过长度为2的线到达。
图6是表示根据本公开的一个实施例的具有直接输出多路复用器连接的FGPA架构的映射600。映射600示出了在相邻输出多路复用器直接连接的情况下到达逻辑块的所需要使用的线跳的数量。映射600与映射500的不同之处在于,在网格中心的源FPGA瓦片611与FPGA瓦片611的南/东的FPGA瓦片607之间添加了直接连接606。直接连接606驱动FPGA瓦片607的输出多路复用器。如图6所示,例如,诸如FPGA瓦片601的14个FPGA瓦片可以从FPGA瓦片611通过一跳到达。如图6所示,例如,诸如FPGA瓦片602的28个FPGA瓦片可以从FPGA瓦片611通过两跳到达。如图6所示,例如,诸如FPGA瓦片603的28个FPGA瓦片可以从FPGA瓦片611通过三跳到达。如图6所示,例如,诸如FPGA瓦片604的12个FPGA瓦片可以从FPGA瓦片611通过四跳到达。注意的是,到达FPGA上的其他瓦片中的每一个所需的线段的数量已经减少或保持不变。另外,现在可以到达所有逻辑块。在映射600中,不存在无法从FPGA瓦片611到达的瓦片。因为在路由跳与距离的函数中存在更少的不连续性,所以映射600比映射500更平滑。与常规技术相比,从源逻辑块瓦片(source logic block tile)到相邻逻辑块瓦片的直接输出多路复用器连接使跳(延迟)映射平滑。与常规技术相比,从源逻辑块瓦片到相邻逻辑的直接输出多路复用器连接简化了线的布置和路由,提供了更大的灵活性,并且解决了FPGA电路中的时序和频率约束。
图7是根据本公开的一个实施例的提供FPGA相邻输出多路复用器直接连接以减少和潜在地最小化路由跳的方法700的流程图。方法700从操作701开始,操作701涉及确定多个FPGA逻辑块瓦片中的一个或多个第一逻辑块瓦片的路由,该一个或多个第一逻辑块瓦片包括一个或多个第一线,该一个或多个第一线起始于并联接到该一个或多个第一逻辑块瓦片的一个或多个输出端,如上所述。在至少一些实施例中,一个或多个第一逻辑块瓦片是源逻辑块瓦片。操作702涉及确定多个FPGA逻辑块瓦片中的一个或多个第二逻辑块瓦片的路由,该一个或多个第二逻辑块瓦片是一个或多个第一逻辑块瓦片的相邻块瓦片,如上所述。在至少一些实施例中,一个或多个第二逻辑块瓦片是宿逻辑块瓦片(sink logic blocktile)。在操作703,一个或多个第一逻辑块瓦片的一个或多个输出端直接连接到一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端以驱动一个或多个第二线,该一个或多个第二线起始于并联接到该一个或多个第二逻辑块瓦片的一个或多个输出端,如上所述。在至少一些实施例中,一个或多个第一逻辑块瓦片包括具有一个或多个第一输出多路复用器的第一逻辑块,并且一个或多个第二逻辑块瓦片包括具有一个或多个第二输出多路复用器的第二逻辑块,其中一个或多个第一输出多路复用器的输出端直接连接到一个或多个第二输出多路复用器的输入端,如上所述。在至少一些实施例中,一个或多个第一逻辑块瓦片中的至少一个的查找表(LUT)的输出端直接连接到一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端中的输入端,如上所述。在至少一些实施例中,一个或多个第一逻辑块瓦片使用一个或多个线直接连接到一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端,如上所述。
上面详细描述的一些部分是根据对计算机存储器内的数据位的操作的算法和符号表示来呈现的。这些算法描述和表示是数据处理领域的技术人员用来最有效地将他们的工作内容传达给本领域的其他技术人员的手段。此处,算法通常被认为是导致期望结果的自洽(self-consistent)操作序列。这些操作是那些需要对物理量进行物理操纵的操作。通常,尽管不一定,这些量采用能够存储、传输、组合、比较和其他操纵方式的电或磁信号的形式。有时主要出于通用的原因,将这些信号称为位、值、元素、符号、字符、术语、数字等已被证明是方便的。
然而,应该记住的是,所有这些和类似的术语都将与适当的物理量相关联并且仅仅是应用于这些量的方便的标签。除非从下面的讨论中另外明确说明,否则应当理解,在整个描述中,使用诸如“处理”或“计算”或“计量”或“确定”或“显示”等术语的讨论是指计算机系统或类似电子计算装置的动作和过程,该动作和过程将被表示为计算机系统寄存器和存储器内的物理(电子)量的数据操纵和转换为被类似地表示为计算机系统存储器或寄存器或其他这种信息存储、传输或显示装置内的物理量。
本发明还涉及一种用于执行本文操作的设备。该设备可以为所需目的专门构造,或者该设备可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可以存储在计算机可读存储介质中,例如但不限于任何类型的磁盘(包括软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或者任何类型的适合存储电子指令的介质,并且每个介质都连接到计算机系统总线。
本文呈现的算法和显示与任何特定的计算机或其他设备没有内在的关系。根据本文教导,各种通用系统可以与程序一起使用,或者可以证明构造更专业的设备来执行所需的方法操作是很方便的。这些多种系统所需的结构将从本文的描述而出现。另外,没有参考任何特定的编程语言来描述本公开的实施例。应当理解,可以使用多种编程语言来实施本文描述的实施例的教导。
机器可读介质包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制。例如,机器可读介质包括只读存储器(“ROM”);随机存取存储器(“RAM”);磁盘存储介质;光存储介质;闪速存储器装置;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等);等。
在前述说明书中,本公开的实施例已经参考其具体示例性实施例进行了描述。显而易见的是,在不脱离所附权利要求中阐述的本公开的更广泛的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被视为说明性意义而非限制性意义。
Claims (26)
1.一种现场可编程门阵列设备即FPGA设备,包括:
多个逻辑块瓦片,包括一个或多个第一逻辑块瓦片以及一个或多个第二逻辑块瓦片,其中一个或多个第一线联接到所述一个或多个第一逻辑块瓦片的一个或多个输出端;以及
一个或多个直接连接,从所述一个或多个第一逻辑块瓦片的一个或多个输出端延伸到所述一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端,其中所述一个或多个第二逻辑块瓦片是所述一个或多个第一逻辑块瓦片的相邻逻辑块瓦片,并且其中所述一个或多个直接连接用于驱动一个或多个第二线,所述一个或多个第二线联接到所述一个或多个第二逻辑块瓦片的一个或多个输出端。
2.根据权利要求1所述的设备,其中所述一个或多个第一逻辑块瓦片包括具有一个或多个第一输出多路复用器的第一逻辑块,并且所述一个或多个第二逻辑块瓦片包括具有一个或多个第二输出多路复用器的第二逻辑块,其中所述一个或多个第一输出多路复用器的输出端直接连接到所述一个或多个第二输出多路复用器的输入端。
3.根据权利要求1所述的设备,其中所述一个或多个直接连接包括一个或多个第三线。
4.根据权利要求1所述的设备,其中所述一个或多个直接连接包括从所述一个或多个第一逻辑块瓦片中的至少一个的查找表即LUT的输出端到所述一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端中的输入端的直接连接。
5.根据权利要求1所述的设备,其中所述一个或多个直接连接是水平连接、垂直连接或对角连接中的至少一种。
6.根据权利要求1所述的设备,其中所述一个或多个直接连接承载信号,所述信号是在所述一个或多个第一线上的信号。
7.根据权利要求1所述的设备,其中所述一个或多个第二逻辑块瓦片是基于时间和频率中的一项或多项来确定的。
8.根据权利要求1所述的设备,其中所述一个或多个直接连接的数量是基于设计约束来确定的。
9.一种设备,包括:
存储器;以及
处理器,联接到所述存储器,其中所述处理器被配置为:
确定多个FPGA逻辑块瓦片中的一个或多个第一逻辑块瓦片的路由,其中一个或多个第一线联接到所述一个或多个第一逻辑块瓦片的一个或多个输出端;
确定所述多个FPGA逻辑块瓦片中的一个或多个第二逻辑块瓦片的路由,所述一个或多个第二逻辑块瓦片是所述一个或多个第一逻辑块瓦片的相邻块瓦片;
将所述一个或多个第一逻辑块瓦片的一个或多个输出端直接连接到所述一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端,以驱动一个或多个第二线,所述一个或多个第二线联接到所述一个或多个第二逻辑块瓦片的一个或多个输出端。
10.根据权利要求9所述的设备,其中所述一个或多个第一逻辑块瓦片包括具有一个或多个第一输出多路复用器的第一逻辑块,并且所述一个或多个第二逻辑块瓦片包括具有一个或多个第二输出多路复用器的第二逻辑块,其中所述处理器进一步被配置为将所述一个或多个第一输出多路复用器的输出端直接连接到所述一个或多个第二输出多路复用器的输入端。
11.根据权利要求9所述的设备,其中所述处理器进一步被配置为使用一个或多个第三线将所述一个或多个第一逻辑块瓦片直接连接到所述一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端。
12.根据权利要求9所述的设备,其中所述处理器进一步被配置为将所述一个或多个第一逻辑块瓦片中的至少一个的查找表即LUT的输出端直接连接到所述一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端中的输入端。
13.根据权利要求9所述的设备,其中所述一个或多个直接连接是水平连接、垂直连接或对角连接中的至少一种。
14.根据权利要求9所述的设备,其中所述一个或多个直接连接承载信号,所述信号是在所述一个或多个第一线上的信号。
15.根据权利要求9所述的设备,其中所述处理器进一步被配置为基于时间和频率中的一项或多项来确定一个或多个第二逻辑块瓦片。
16.根据权利要求9所述的设备,其中所述处理器进一步被配置为基于设计约束来确定所述一个或多个直接连接的数量。
17.根据权利要求9所述的设备,其中所述处理器进一步被配置为增加所述一个或多个直接连接的数量以增加信号可达性。
18.一种非暂时性机器可读介质,所述非暂时性机器可读介质存储指令,所述指令使数据处理系统执行操作,所述操作包括:
确定多个FPGA逻辑块瓦片中的一个或多个第一逻辑块瓦片的路由,其中一个或多个第一线联接到所述一个或多个第一逻辑块瓦片的一个或多个输出端;
确定所述多个FPGA逻辑块瓦片中的一个或多个第二逻辑块瓦片的路由,所述一个或多个第二逻辑块瓦片是所述一个或多个第一逻辑块瓦片的相邻块瓦片;并且
将所述一个或多个第一逻辑块瓦片的一个或多个输出端直接连接到所述一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端,以驱动一个或多个第二线,所述一个或多个第二线联接到所述一个或多个第二逻辑块瓦片的一个或多个输出端。
19.根据权利要求18所述的非暂时性机器可读介质,其中所述一个或多个第一逻辑块瓦片包括具有一个或多个第一输出多路复用器的第一逻辑块,并且所述一个或多个第二逻辑块瓦片包括具有一个或多个第二输出多路复用器的第二逻辑块,其中所述处理器进一步被配置为将所述一个或多个第一输出多路复用器的输出端直接连接到所述一个或多个第二输出多路复用器的输入端。
20.根据权利要求18所述的非暂时性机器可读介质,其中所述指令进一步使所述数据处理系统执行操作,所述操作包括:
使用一个或多个第三线将所述一个或多个第一逻辑块瓦片直接连接到所述一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端。
21.根据权利要求18所述的非暂时性机器可读介质,其中所述指令进一步使所述数据处理系统执行操作,所述操作包括:
将所述一个或多个第一逻辑块瓦片中的至少一个的查找表即LUT的输出端直接连接到所述一个或多个第二逻辑块瓦片的输出多路复用器的一个或多个输入端中的输入端。
22.根据权利要求18所述的非暂时性机器可读介质,其中所述一个或多个直接连接是水平连接、垂直连接或对角连接中的至少一种。
23.根据权利要求18所述的非暂时性机器可读介质,其中所述一个或多个直接连接承载信号,所述信号是在所述一个或多个第一线上的信号。
24.根据权利要求18所述的非暂时性机器可读介质,其中所述指令进一步使所述数据处理系统执行操作,所述操作包括:
基于时间和频率中的一项或多项来确定一个或多个第二逻辑块瓦片。
25.根据权利要求18所述的非暂时性机器可读介质,其中所述指令进一步使所述数据处理系统执行操作,所述操作包括:
基于设计约束来确定所述一个或多个直接连接的数量。
26.根据权利要求18所述的非暂时性机器可读介质,其中所述指令进一步使所述数据处理系统执行操作,所述操作包括:
增加所述一个或多个直接连接的数量以增加信号可达性。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163152122P | 2021-02-22 | 2021-02-22 | |
US63/152,122 | 2021-02-22 | ||
US17/650,960 US20220272026A1 (en) | 2021-02-22 | 2022-02-14 | Fpga neighbor output mux direct connections to minimize routing hops |
US17/650,960 | 2022-02-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968383A true CN114968383A (zh) | 2022-08-30 |
Family
ID=82901058
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210163187.1A Pending CN114968383A (zh) | 2021-02-22 | 2022-02-22 | Fpga相邻输出多路复用器直接连接以最小化路由跳 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220272026A1 (zh) |
CN (1) | CN114968383A (zh) |
-
2022
- 2022-02-14 US US17/650,960 patent/US20220272026A1/en active Pending
- 2022-02-22 CN CN202210163187.1A patent/CN114968383A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220272026A1 (en) | 2022-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5530813A (en) | Field-programmable electronic crossbar system and method for using same | |
US6788104B2 (en) | Field programmable logic device with efficient memory utilization | |
US6526461B1 (en) | Interconnect chip for programmable logic devices | |
US6650142B1 (en) | Enhanced CPLD macrocell module having selectable bypass of steering-based resource allocation and methods of use | |
JP3948497B2 (ja) | Fpga繰返し可能相互接続構成体 | |
US5847579A (en) | Programmable logic array with improved interconnect structure | |
US9825633B2 (en) | Heterogeneous segmented and direct routing architecture for field programmable gate array | |
US7047509B1 (en) | Programmable logic device with time-multiplexed interconnect | |
US6690195B1 (en) | Driver circuitry for programmable logic devices | |
US7355442B1 (en) | Dedicated crossbar and barrel shifter block on programmable logic resources | |
US8082526B2 (en) | Dedicated crossbar and barrel shifter block on programmable logic resources | |
US20070025382A1 (en) | System of virtual data channels in an integrated circuit | |
US6064225A (en) | Global signal distribution with reduced routing tracks in an FPGA | |
US20060267661A1 (en) | Clock signal networks for structured ASIC devices | |
US6259272B1 (en) | Programmable logic array integrated circuit architectures | |
JPH10233676A (ja) | 論理アレイブロック内でローカル相互接続ラインを配列する方法およびプログラマブル論理回路 | |
US6630842B1 (en) | Routing architecture for a programmable logic device | |
US20100241800A1 (en) | System and method for providing a virtual memory architecture narrower and deeper than a physical memory architecture | |
CN114968383A (zh) | Fpga相邻输出多路复用器直接连接以最小化路由跳 | |
JP5313531B2 (ja) | 互い違いにされた論理アレイブロックのアーキテクチャ | |
CN113270125A (zh) | 将时钟结构用于组织成多个时钟区域的fpga的方法和装置 | |
US7256613B1 (en) | Programmable interconnect architecture for programmable logic devices | |
JP4283220B2 (ja) | ビルディングブロックを有する集積回路 | |
US7576563B1 (en) | High fan-out signal routing systems and methods | |
US6970014B1 (en) | Routing architecture for a programmable logic device |
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 |