CN108153549B - 一种分布式多功能层结构的fpga芯片 - Google Patents
一种分布式多功能层结构的fpga芯片 Download PDFInfo
- Publication number
- CN108153549B CN108153549B CN201711332437.5A CN201711332437A CN108153549B CN 108153549 B CN108153549 B CN 108153549B CN 201711332437 A CN201711332437 A CN 201711332437A CN 108153549 B CN108153549 B CN 108153549B
- Authority
- CN
- China
- Prior art keywords
- functional unit
- functional
- layer
- plf
- data
- 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
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/1778—Structural details for adapting physical parameters
- H03K19/17796—Structural details for adapting physical parameters for physical disposition of blocks
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- 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/17736—Structural details of routing resources
- H03K19/1774—Structural details of routing resources for global signals, e.g. clock, reset
-
- 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/17736—Structural details of routing resources
- H03K19/17744—Structural details of routing resources for input/output signals
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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种分布式多功能层结构的FPGA芯片,包括:至少一个功能单元、至少一个预分配管理器和多个连线段。至少一个功能单元中的每个功能单元包括一个第一功能模块CPE和一个第二功能模块PLF。至少一个预分配管理器之间可通过多个连线段中的一个连线段连接。通过配置至少一个预分配管理器,可以改变多个连线段的数据传输方向。至少一个功能单元与至少一个预分配管理器通过常规线连接。同一功能单元中相邻第一功能模块CPE和第二功能模块PLF通过交叉互联线相连。第二功能模块之间通过常规的绕线系统彼此互连。本发明能在单芯片上实现多种不同的功能区块,不同区块之间可以从电路的任意位置连接,保证连接的低延时。能实现较高的FPGA利用率,降低芯片的功耗,增加逻辑门数。
Description
技术领域
本发明涉及一种FPGA芯片,尤其是涉及一种分布式多功能层结构的FPGA芯片。
背景技术
传统可编程器件主要由逻辑单元阵列和布线结构构成。是一个4x4的可编程器件。功能模块4包括绕线模块(Routing block,RB)和逻辑模块(Logic block,LB)。其中,RB由多个不同位宽的多路选通器mux组成,而LB由多个查表器,寄存器,加法器组成。在垂直方位连接两个RB的连线1,方位可由南向北或者由北向南,长度可跨越1-18个RB+LB。在水平方位连接两个RB的连线3,方位可由东向西或者由西向东,长度可跨越1-18个RB+LB。在同一个功能模块中存在连接RB和LB的连线2。
因为布线结构固定,传统FPGA的冗余超过50%,有面积过大,功耗过高,金属层次太多等缺点。优点是相邻RB连线资源丰富,连线结构简单,延时小。传统的架构限制了做更大尺寸的器件,以及更快的运行速度。
发明内容
本发明为通过在单芯片上实现2种或多种不同的功能区块,保证连接的低延时。同时实现较高的FPGA利用率,增加单位面积的逻辑门数,降低芯片的功耗。
为实现上述目的,本发明提供了一种分布式多功能层结构的FPGA芯片,包括:至少一个功能单元、至少一个预分配管理器和多个连线段。至少一个功能单元中的每个功能单元包括一个第一功能模块CPE和一个第二功能模块PLF。至少一个预分配管理器之间可通过多个连线段中的一个连线段连接。通过配置至少一个预分配管理器,可以改变多个连线段的数据传输方向。至少一个功能单元与至少一个预分配管理器通过常规线连接。同一功能单元中相邻第一功能模块CPE和第二功能模块PLF通过交叉互联线相连。第二功能模块之间通过常规的绕线系统彼此互连。
优选地,至少一个功能单元的第一功能模块CPE之间通过连线段和预分配管理器相连接,构成第一层网络,相邻第二功能模块PLF之间通过传统FPGA连线相连接,构成第二层网络。
优选地,至少一个功能单元包括第一功能单元和第二功能单元;第二功能模块PLF具体包括:第一层多路选择器、第二层多路选择器和逻辑元件。第一功能单元的第一功能模块CPE将数据进行逻辑运算后,传递给第一功能单元的第一层多路选择器,以便选路到第二功能单元的第二功能模块。
优选地,至少一个功能单元包括第一功能单元和第二功能单元;第二功能模块PLF具体包括:第一层多路选择器、第二层多路选择器和逻辑元件。第一功能单元的的第一功能模块CPE将数据进行选通后,传递给第一功能单元的第一层多路选择器,以便选路到第二功能单元的第二功能模块。
优选地,第二功能模块PLF具体包括:第一层多路选择器、第二层多路选择器和逻辑元件。第一功能模块CPE将数据进行逻辑运算后,传递给第二层多路选择器,第二层多路选择器输出传递给逻辑元件,逻辑元件对数据执行运算功能。
优选地,第二功能模块PLF具体包括:第一层多路选择器、第二层多路选择器和逻辑元件。第一功能模块CPE将数据进行选通后,传递给第二层多路选择器,第二层多路选择器输出传递给逻辑元件,逻辑元件对数据执行运算功能。
优选地,至少一个功能单元包括第一功能单元、第二功能单元和第三功能单元;第二功能模块PLF具体包括:第一层多路选择器、第二层多路选择器和逻辑元件。第二功能单元的第一层多路选择器接收来自第一功能单元的第二功能模块PLF的数据,并选路到第三功能单元的第二功能模块。
优选地,至少一个功能单元包括第一功能单元和第二功能单元;第二功能模块PLF具体包括:第一层多路选择器、第二层多路选择器和逻辑元件。第二功能单元的第二层多路选择器接收来自第一功能单元的第二功能模块PLF的数据,第二功能单元的第二层多路选择器将数据输出传递给第二功能单元的逻辑元件执行运算功能,逻辑元件将逻辑运算后的数据传递给第二功能单元的第一层多路选择器,第二功能单元的第一层多路选择器对逻辑运算后的数据实现选通。
优选地,至少一个功能单元包括第一功能单元和第二功能单元;第二功能模块PLF具体包括:第一层多路选择器、第二层多路选择器和逻辑元件。第二功能单元的第一层多路选择器接收来自第一功能单元的第二功能模块PLF的数据,并选路到第二功能单元的第一功能模块CPE;第二功能单元的第一功能模块CPE将数据选路至预分配管理器。
优选地,至少一个功能单元包括第一功能单元和第二功能单元;第二功能模块PLF具体包括:第一层多路选择器、第二层多路选择器和逻辑元件。第二功能单元的第一层多路选择器接收来自第一功能单元的第二功能模块PLF的数据,并选路到第二功能单元的第一功能模块CPE;第二功能单元的第一功能模块CPE将数据进行逻辑运算后,传递至预分配管理器。
优选地,至少一个功能单元包括第一功能单元和第二功能单元;第二功能模块PLF具体包括:第一层多路选择器、第二层多路选择器和逻辑元件。第二功能单元的第二层多路选择器接收来自第一功能单元的第二功能模块PLF的数据,第二功能单元的第二层多路选择器将数据输出传递给第二功能单元的逻辑元件执行运算功能,第二功能单元的逻辑元件将逻辑运算后的数据传递给第二功能单元的第一功能模块CPE,第二功能单元的第一功能模块CPE将数据选路至预分配管理器。
优选地,至少一个功能单元包括第一功能单元和第二功能单元;第二功能模块PLF具体包括:第一层多路选择器、第二层多路选择器和逻辑元件。第二功能单元的第二层多路选择器接收来自第一功能单元的第二功能模块PLF的数据,第二功能单元的第二层多路选择器将数据输出传递给第二功能单元的逻辑元件执行运算功能,第二功能单元的逻辑元件将逻辑运算后的数据传递给第二功能单元的第一功能模块CPE,第二功能单元的第一功能模块CPE将数据进行逻辑运算后,传递至预分配管理器。
优选地,位于同一水平或垂直方向的连线段、预分配管理器和功能单元,处在同一个时钟域中。
优选地,位于同一水平或垂直方向的连线段、预分配管理器和第一功能模块CPE,处在同一个时钟域中。
优选地,位于同一水平或垂直方向的第二功能模块PLF,处在同一个时钟域中。
优选地,不同的时钟域相互没有交集。
优选地,时钟域由比特控制文件进行配置。
优选地,至少一个比特控制文件作为主比特控制文件。
本发明可以在单芯片上实现2种或多种不同的功能区块,2种不同的功能区块之间可以从电路的任意位置连接,保证连接的低延时。能实现较高的FPGA利用率,降低金属层次,增加单位面积的逻辑门数。降低芯片的功耗。
附图说明
图1为一个实施例提供的一种分布式多功能层结构的FPGA芯片示意图;
图2为一个实施例提供的一种高层网络结构示意图;
图3为一个实施例提供的一种预分配管理器示意图;
图4为一个实施例提供的一种预分配管理器结构示意图;
图5为一个实施例提供的一种低层网络结构示意图;
图6为CPE中混合模块实现MUX或LUT的电路图;
图7为同一个单元中CPE和PLF模块的电路实现示意图;
图8为为示意了同一个单元中CPE向PLF传输数据的示意图;
图9为为示意了同一个单元中PLF向CPE传输数据的示意图;
图10为示意了两个不同功能单元中CPE通信示意图;
图11为示意了两个不同功能单元中PLF通信示意图;
图12为示意了多个不同功能单元中CPE与PLF通信示意图;
图13为示意了多个不同功能单元中PLF与CPE通信示意图;
图14为一个实施例提供的一种时钟域示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
如图1所示,为本发明实施例提供的一种分布式多功能层结构的FPGA芯片示意图。
图1展示了本发明的一个实施例,提供了一种分布式多功能层结构的FPGA芯片。在该实施例中,分布式多功能层结构包括多个功能单元、多个预分配管理器N4M和多个连线段。
每个功能单元可包括一个第一功能模块(configurable processing element,简称CPE)和一个第二功能模块(programble logic funciton,简称PLF)。CPE和PLF均能够实现FPGA的基本功能单元。第一功能模块CPE,可以用于处理简单逻辑,大数据并行处理,矩阵运算;第二功能模块PLF,可以用于实现复杂逻辑,在硬件底层实现计算。当然,本领域的技术人员意识到,每个功能单元可包括一个以上的CPE模块和/或一个以上的PLF模块。
预分配管理器N4M可实现不同CPE之间的互连互通。N4M可通过例如四个连线段,与另外的N4M相连,从而构成高层网络通信架构。每个连线段都是可预分配可编程连线段,其选通方向可依编程结果而确定。但值得注意的是某一时刻连线段的方向是确定的,即在一个连线段内,不可同时选通两个方向。
N4M也可以提供进出CPE的通道。CPE与一个N4M之间通过常规线连接,在一个实施例中有8根常规线,其中4根输入、4根输出。
多个连线段,为可预分配可编程连线段,该连线段的可编程性是通过预分配管理器N4M控制,实现选择连线段的数据流通方向。
属于同一个功能单元的CPE和PLF通过多根金属线连接,在一个实施例中同一个功能单元的CPE和PLF可以通过12条交叉互联线连接。
N4M可以是一层结构,也可以是多层结构,每层结构可用于处理来自某个连线段上的一个比特数据。在一个实施例中,可以提供48层N4M,每一层中的N4M都连接四个连线段,保证东南西北四个方向可以传输数据,如此在同一个物理位置上,可以处理同一个方向连线段上的48比特数据。不同层N4M相对独立,单独传输该层数据。当多层N4M与CPE连接时,可以实现多层bit数据传输,实现大数据并行运算处理。值得注意的是,多层N4M物理位置是重叠的,从空间上看层叠在一起。
其中,CPE也可以为多个,与多个N4M通过常规线相连,与PLF通过多根金属线相连接。
为简单起见,下文将仅以单层结构进行描述。
属于不同功能单元的多个CPE之间通过N4M和可预分配可编程连线段建立路径通信,形成第一层网络,或者高层网络;属于不同功能单元的多个相邻PLF之间通过传统FPGA连线进行通信,形成第二层网络,或者低层网络。
高层结构可用于实现简单逻辑,大数据并行处理、矩阵运算等。低层结构可用于实现复杂逻辑,异构计算等传统FPGA逻辑,也有独立配置,控制CPE。上述总线在物理布线上的延迟delay上相同,同时延迟delay也是最短的。可以降低总线的动态消耗。
为清楚起见,首先讨论高层结构的具体情况。
图2示意了高层网络结构。
如图2所示,不同CPE之间通过预分配管理器N4M和可预分配可编程连线段相连接。CPE与N4M之间通过常规线相连,所谓常规线是指方向是确定的,不因编程而改变。在一个实施例中,一个N4M与CPE之间相连的常规线有例如4根输入和4根输出。CPE通过4根输入线将输出输入至N4M中,N4M也可以选通不同的输出线输出给CPE。
N4M根据预分配,控制N4M和N4M之间的数据走向,选通不同方向的连线段输出。可预分配可编程连线段的方向是可设置的,但是同一时刻内同一段可预分配可编程连线段的方向是唯一的。在图2中,N4M和可预分配可编程连线段构成的通信网络可以是多层,在一个实施例中为48层。
如图3所示,一种预分配管理器的连接示意图。
一个N4M可配置有4根CPE的输入线和4根CPE的输出线,同时还配置有4根不同方向的可预分配可编程连线段。其中S、N、W、E分布在N4M的上下左右四个方向上;in0、in1、in2、in3是4根输入CPE的输入线;o0、o1、o2、o3是4根输出CPE的输出线。
如图4所示,为一种预分配管理器的内部结构示意图。
在一个实施例中,每个N4M中包括4个多路选择器MUX,每个MUX有四个输入端和两个输出端。其中MUX1的输入端包括W、E、S和in0,两个输出端输出N或者o0;MUX2的输入端包括W、E、N和in1,两个输出端输出S或者o1;MUX3的输入端包括N、E、S和in2,两个输出端输出W或者o2;MUX4的输入端包括W、S、N和in3,两个输出端输出E或者o3。
每个MUX由6个信号进行控制,存储在SRAM中。其中4个信号为第一组,用于控制MUX中4输入的选择。值得注意的是这4个信号为唯一热点类型,即ONE HOT。仅有0001、0010、0100、1000这四种,哪个信号为1,则选通哪路输入信号作为输出。
6个控制信号中的其他2个信号,作为控制输出的控制信号,同样为唯一热点类型,即ONE HOT。仅有01、10两种,哪个信号为1,则选通该路作为输出路径。这6个控制信号由软件进行控制,当MUX的输入和输出同时选通时,即选中该MUX。
例如,MUX1可选通W,然后向N输出端输出,实现W到N方向的传输。
MUX2可选通E,然后向o1输出端输出,实现E方向数据到CPE的输出。
MUX3可选通in0,然后向W输出端输出,实现CPE的数据到W方向的传输。
如图5所示,示意了低层网络结构。
PLF通过传统的FPGA绕线的方式,实现PLF之间的连接。每个PLF与自己周围的PLF通过方向固定的物理线,实现直连。具体结构可采用各种常规的网络结构,不属于本发明的范畴,不再赘述。
如图6所示,为一种CPE中混合模块实现MUX或LUT的电路图。
CPE中包括多个混合模块用于实现LUT/MUX的功能。
图中最左边部分是SRAM的bit位,用于存储相应数据。其中SRAM bit中的c0-c15表示是当混合模块用作查找表LUT时,混合模块的输入信号。f0-f15表示当混合模块用作多路选择器MUX时,混合模块的输入信号。
SRAM中的每个寄存器单元对应连接输入选择单元中的一个二选一MUX的一个输入端,输入选择单元中的二选一MUX的另一个输入端接收外部选路输入信号f0-f15,通过选择控制位Func_select作为输入选择单元中的二选一MUX的控制信号,输出混合模块的输入信号i0-i15。
控制选择单元中的4个二选一MUX中的每个,其第一输入端接收SRAM中的c0-c3,第二输入端接收外部的任意四输入F0-F3,通过选择控制位Func_select作为控制选择单元中的二选一MUX的控制信号,输出混合模块的控制信号s0-s3。
混合模块包括4层COMS传输门,其中第一层COMS传输门接收输入选择单元的输出信号i0-i15。第一层中相邻的两个COMS传输门两两一组,并且连接方向相反,根据s0信号控制,实现二选一的功能。第二层COMS传输门为8个,接收端接收第一层的输出结果,根据s1信号控制,实现二选一的功能。以此类推,直至第4层COMS传输门为两个,接收来自第三层COMS传输门的输出结果,根据s3信号控制,实现二选一,输出唯一结果。
多路选择模块至少一个多路选择器(图中仅示出1个),每个多路选择器结构相似,只有控制信号不同。多路选择器包括4层COMS传输门。每层COMS传输门根据SRAM bit位控制选通,并且相邻的两个COMS传输门两两一组,连接方向相反。第一层COMS传输门接收外部选路输入信号f0-f15,根据c4信号控制,实现二选一的功能。第二层COMS传输门为8个,接收端接收第一层的输出结果,根据c5信号控制,实现二选一的功能。以此类推,直至第4层COMS传输门为两个,接收来自第三层COMS传输门的输出结果,根据c7信号控制,实现二选一,输出唯一结果。
当Func_select选0时,CPE中的混合模块用作LUT,当Func_select选1时,CPE中的混合模块用作MUX。
如图7所示,为同一个单元中CPE和PLF模块的电路实现示意图。
如图8所示,为示意了同一个单元中CPE向PLF传输数据的示意图。
如图9所示,为示意了同一个单元中PLF向CPE传输数据的示意图。
图7、8、9示意了功能单元中CPE和PLF之间的输入输出。图7中包括CPE和PLF的基本单元实现电路。并且,CPE,PLF可以实现动态的互相控制。
图7示意为同一个功能单元中的CPE和PLF。
最左侧为CPE,里面包括多个LUT/MUX;在一个实施例中,N4M有48层,每层N4M输出对应一个LUT/MUX,在CPE中为总共48个LUT/MUX。根据实际情况,LUT/MUX可具体选择作为LUT或者MUX,当选择为LUT时,CPE执行相应的功能;当选择为MUX时则执行选通功能,即数据经CPE传输进入其它的单元。
每个LUT/MUX有多个输入,比特线bitline将数据先传输到每个输入端。而每个LUT/MUX由第一字线控制总线wordline configurable processing element control bus将控制信号控制传递给其每个LUT/MUX,控制其选通并输出。每个LUT/MUX通过bitline和wordline configurable processing element control bus,共同控制,可以选择任意输入通过任意的LUT/MUX。
PLF中可包括第一层PLF、第二层PLF和一个逻辑元件LOGIC ELEMENT。第一层PLF和第二层PLF是两层MUX,每个MUX都有多个输入,其中由bitline将数据输入至第一层PLF和第二层PLF的MUX的输入,bieline将所有的数据都先传输到每个输入端。之后由第二字线控制总线wordline programble logic control bus将控制信号传递给第一层PLF和第二层PLF的MUX,控制相应MUX的选通。bitline、wordline configurable processing elementcontrol bus和wordline programble logic control bus共同由配置控制器控制。bitline同时控制CPE和PLF的数据传输通道。通过bitline和wordline configurableprocessing element control bus,可以选择选择任意输入CPE的数据通过任意的LUT/MUX;bitline和wordline programble logic control bus,可以选择选择任意输入PLF的数据通过任意的MUX。
其中,CPE可以接收来自与其相连的N4M、同一个功能单元的LOGIC ELEMENT和同一个功能单元的PLF的信息;并且可以将信息传递至与其连接的N4M和同一个功能单元的两层PLF。
第一层PLF可以接收来自同一个功能单元的CPE、其他功能单元的PLF和同一个功能单元的LOGIC ELEMENT的信息;并且可以将信息传递至第二层PLF、同一个功能单元的CPE和其他功能单元的两层PLF。
第二层PLF可以接收来自第一层PLF、同一个功能单元CPE和同一个功能单元的LOGIC ELEMENT的输出信息;并且可以将信息传递至同一个功能单元的LOGIC ELEMENT。
LOGIC ELEMENT可以接收第二层PLF输出的数据,输出端可以输出给同一个功能单元的两层PLF的输入端,也可以输出给同一个功能单元的CPE的输入端。同时反馈给配置控制器,用于改变相应总线对LUT/MUX的控制。
配置控制器通过接收到LOGIC ELEMENT的反馈信息,控制相应bitline、wordlineconfigurable processing element control bus和wordline programble logiccontrol bus实现动态配置CPE、PLF的配置信息。在一个实施例中,PLF可以通过内部的LOGIC ELEMENT反馈配置控制器,去动态配置CPE。在另一个实施例中,CPE可以将信息传递给PLF,再通过LOGIC ELEMENT反馈配置控制器,去动态配置PLF,实现相应功能。CPE和PLF之间的信息传递过程,在下文做出了具体描述。
图8示意了CPE传递PLF的信息传递过程。
其中,来自N4M的数据通过常规线传递给CPE,CPE中的LUT/MUX根据具体需求,当需要实现逻辑功能时,作为LUT使用;当需要实现选通时,可以作为MUX使用。数据经过CPE后可以选择回到与其相连的N4M,也可以选择将数据传递给与其相连的PLF中的两层MUX中。
在一个实施例中,提供了数据经过CPE逻辑运算然后通过PLF绕线到其他PLF中。具体的,来自N4M的数据通过CPE中的LUT实现逻辑功能,输出的数据传递给第一层PLF中的MUX,实现绕线功能,最终传递给其他的PLF。
在另一个实施例中,提供了数据经过CPE绕线然后通过PLF绕线到其他PLF中。具体的,来自N4M的数据通过CPE中的MUX实现绕线功能,输出的数据传递给第一层PLF中的MUX,实现绕线功能,最终传递给其他的PLF。
再一个实施例中,提供了数据经过CPE逻辑运算然后进行PLF逻辑运算。具体的,来自N4M的数据通过CPE中的LUT实现逻辑功能,输出的数据传递给第二层PLF中的MUX,通过第二层PLF中MUX的选通将数据传递给LOGIC ELEMENT,最终实现逻辑功能。
再另一个实施例中,提供了数据经过CPE绕线然后进行PLF逻辑运算。具体的,来自N4M的数据通过CPE中的MUX实现绕线功能,输出的数据传递给第二层PLF中的MUX,通过第二层PLF中MUX的选通将数据传递给LOGIC ELEMENT,最终实现逻辑功能。
图9示意了PLF传递CPE的信息传递过程。
其中,来自其他PLF的数据可以进入第一层PLF,也可以进入第二层PLF中。当进入第一层PLF后,经过MUX的选通,可以将数据传递给与其相连的CPE中。同时,第一层PLF可以作为绕线功能,将数据传递给其他的PLF中。当进入第二层PLF后,可以经过MUX的选通,将数据传递给LOGIC ELEMENT。
在一个实施例中,提供了数据经过PLF绕线然后传递给其他PLF。具体的,来自其他PLF的数据传递给第一层PLF中的MUX,通过相应MUX的选通,传递给其他PLF中,实现绕线功能。
在另一个实施例中,提供了数据经过PLF逻辑运算然后传递给其他PLF。具体的,来自其他PLF的数据传递给第二层PLF中的MUX,通过第二层PLF中MUX的选通将数据传递给LOGIC ELEMENT,实现逻辑功能。然后LOGIC ELEMENT输出的数据传递给第一层PLF,通过相应MUX的选通,传递给其他PLF,实现绕线功能。
在其他实施例中,提供了数据经过PLF绕线然后传递给CPE实现绕线功能。具体的,来自其他PLF的数据传递给第一层PLF中的MUX,通过相应MUX的选通,传递给CPE中的MUX,通过相应MUX的选通,实现绕线功能。
在另一个其他实施例中,提供了数据经过PLF绕线然后传递给CPE实现逻辑功能。具体的,来自其他PLF的数据传递给第一层PLF中的MUX,通过相应MUX的选通,传递给CPE中的LUT,实现逻辑功能。
再一个实施例中,提供了数据经过PLF逻辑运算然后传递给CPE实现绕线功能。具体的,来自其他PLF的数据传递给第二层PLF中的MUX,通过第二层PLF中MUX的选通将数据传递给LOGIC ELEMENT,实现逻辑功能。然后LOGIC ELEMENT输出的数据传递给CPE中的MUX,通过相应MUX的选通,实现绕线功能。
再另一个实施例中,提供了数据经过PLF逻辑运算然后传递给CPE实现逻辑功能。具体的,来自其他PLF的数据传递给第二层PLF中的MUX,通过第二层PLF中MUX的选通将数据传递给LOGIC ELEMENT,实现逻辑功能。然后LOGIC ELEMENT输出的数据传递给CPE中的LUT,实现逻辑功能。
如图10所示,为示意了两个不同功能单元中CPE与PLF通信示意图。
一个实施例中,第一个CPE将数据通过常规线传输给与其连接的N4M,然后通过N4M配置可预分配可编程连线段的方向,经过多个连线段和N4M后通过常规线输出给第二个CPE,第二个CPE通过如图8所示方式,将信息传递给与其相连的第二个PLF。在本实施例中数据向东传递两次后向南传递。
如图11所示,为示意了两个不同功能单元中PLF与CPE通信示意图。
在一个实施例中,第一个功能单元的PLF,通过传统FPGA连线,传递给第二个功能单元的PLF,然后通过如图9所示方法,将信息传递给第二个功能单元的CPE。
如图12所示,为示意了多个不同功能单元中CPE与PLF通信的另一种方式的示意图。
在一个实施例中,第一个功能单元的CPE通过高层网络将数据传输给第二个功能单元的PLF,第二个功能单元的PLF再通过低层网络中的传统FPGA的连线将数据传输给第三个功能单元的PLF。
如图13所示,为示意了多个不同功能单元中PLF与CPE通信示意图。
在一个实施例中,第一个功能单元的PLF通过低层网络中的传统FPGA的连线将数据传输给第二个功能单元的CPE,第二个功能单元的CPE再通过高层网络将数据传输给第三个功能单元的CPE。
上述如图10-13,示意了位于同一多功能层中不同位置数据的传输,实现分布式计算。多个不用的时钟域实现不同的功能,实现多功能层特点,在一个芯片中,展现了分布式多功能层可编程器件。值得注意的是,上述方法具体根据实际情况的权重以及需求,由软件进行路径选择。
如图14所示,为一个实施例提供的一种时钟域示意图。
在一个实施例中,处于同一水平或垂直方向上的CPE和N4M以及可预分配可编程连线段,可以为一个时钟域;处于同一水平或垂直方向上通过传统FPGA绕线连接的PLF也可以为一个时钟域;处于同一水平或垂直方向上的CPE、N4M、可预分配可编程连线段和PLF同样可以为一个时钟域。在一个实施例中,如图14所示,整体可以为1个时钟域;整体最多也可以分为8个时钟域。例如,相邻水平或垂直方向CPE之间和相邻水平或垂直方向PLF之间,共为8个时钟域;或如图14最上方同一水平方向的CPE和PLF为1个时钟域,其他同一水平方向的CPE为1个时钟域,其他同一水平方向的PLF为1个时钟域,共为7个时钟域;或如图14最上方同一水平方向的两行CPE为1个时钟域,其他同一水平方向的CPE为1个时钟域,其他同一水平方向的PLF为1个时钟域,共为7个时钟域。
在另一个实施例中,所有的PLF可以为一个时钟域,所有的CPE也可以为一个时钟域。要注意,在上述实施例中,时钟域的个数可以为相邻的上述几种时钟域的任意组合。
每个时钟域都有一个比特控制文件,即bitfile。选取其中一个作为主比特控制文件master bitfile。一般选取PLF的一个时钟域作为master bitfile,也可以选取CPE的一个时钟域。master bitfile用于控制其他所有bitfile的加载以及重配置。
每个时钟域中都有独立的bitline、wordline configurable processingelement control bus、wordline programble logic control bus和配置控制器。
不同的时钟域可以用作不同的功能,从而实现多功能层的特点。在一个实施例中,CPE和PLF分布在整个芯片上,实现分布式特点。每个CPE和PLF有独立的连接。通过不同时钟域实现多功能层的特点,让单一的可编程芯片实现传统FPGA+CPU/GPU……功能。
在一个实施例中,首先将能实现的主要功能的主比特控制文件master bitfile通过相应的bitline和wordline programble logic control bus写入至PLF中,形成PLF所在的时钟域的一个主要功能,PLF通过内部的LOGIC ELEMENT请求加载CPE的比特控制文件bitfile,将数据反馈给配置控制器,通过配置控制器实现对bitline和wordlineconfigurable processing element control bus的控制,最终将CPE的比特控制文件bitfile写入至CPE中,实现相应功能。本实施例实现了典型的PLF作为MASTER去控制CPE的动态加载。本领域技术人员应当注意,本实施例仅为一种实现可能,也可以选取CPE的一个时钟域或其他时钟域作为MASTER,去配置其他时钟域的动态加载。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (17)
1.一种分布式多功能层结构的FPGA芯片,其特征在于,包括:至少一个功能单元、至少一个预分配管理器和多个连线段;
所述至少一个功能单元中的每个功能单元包括一个第一功能模块(CPE)和一个第二功能模块(PLF);
所述至少一个预分配管理器之间可通过所述多个连线段中的一个连线段连接;通过配置所述至少一个预分配管理器,可以改变多个连线段的数据传输方向;
所述至少一个功能单元与所述至少一个预分配管理器通过常规线连接;
同一所述功能单元中相邻所述第一功能模块(CPE)和所述第二功能模块(PLF)通过交叉互联线相连;
第二功能模块之间通过常规的绕线系统彼此互连;
至少一个功能单元的所述第一功能模块(CPE)之间通过所述连线段和所述预分配管理器相连接,构成第一层网络,相邻所述第二功能模块(PLF)之间通过传统FPGA连线相连接,构成第二层网络。
2.根据权利要求1所述的FPGA芯片,其特征在于,所述至少一个功能单元包括第一功能单元和第二功能单元;所述第二功能模块(PLF)具体包括:第一层多路选择器、第二层多路选择器和逻辑元件;
第一功能单元的所述第一功能模块(CPE)将数据进行逻辑运算后,传递给第一功能单元的所述第一层多路选择器,以便选路到第二功能单元的第二功能模块。
3.根据权利要求1所述的FPGA芯片,其特征在于,所述至少一个功能单元包括第一功能单元和第二功能单元;所述第二功能模块(PLF)具体包括:第一层多路选择器、第二层多路选择器和逻辑元件;
第一功能单元的所述第一功能模块(CPE)将数据进行选通后,传递给第一功能单元的所述第一层多路选择器,以便选路到第二功能单元的第二功能模块。
4.根据权利要求1所述的FPGA芯片,其特征在于,所述第二功能模块(PLF)具体包括:第一层多路选择器、第二层多路选择器和逻辑元件;
所述第一功能模块(CPE)将数据进行逻辑运算后,传递给所述第二层多路选择器,所述第二层多路选择器输出传递给所述逻辑元件,逻辑元件对数据执行运算功能。
5.根据权利要求1所述的FPGA芯片,其特征在于,所述第二功能模块(PLF)具体包括:第一层多路选择器、第二层多路选择器和逻辑元件;
所述第一功能模块(CPE)将数据进行选通后,传递给所述第二层多路选择器,所述第二层多路选择器输出传递给所述逻辑元件,逻辑元件对数据执行运算功能。
6.根据权利要求1所述的FPGA芯片,其特征在于,所述至少一个功能单元包括第一功能单元、第二功能单元和第三功能单元;所述第二功能模块(PLF)具体包括:第一层多路选择器、第二层多路选择器和逻辑元件;
第二功能单元的所述第一层多路选择器接收来自第一功能单元的第二功能模块(PLF)的数据,并选路到第三功能单元的第二功能模块。
7.根据权利要求1所述的FPGA芯片,其特征在于,所述至少一个功能单元包括第一功能单元和第二功能单元;所述第二功能模块(PLF)具体包括:第一层多路选择器、第二层多路选择器和逻辑元件;
第二功能单元的所述第二层多路选择器接收来自第一功能单元的所述第二功能模块(PLF)的数据,第二功能单元的所述第二层多路选择器将数据输出传递给第二功能单元的所述逻辑元件执行运算功能,所述逻辑元件将逻辑运算后的数据传递给第二功能单元的所述第一层多路选择器,第二功能单元的所述第一层多路选择器对逻辑运算后的数据实现选通。
8.根据权利要求1所述的FPGA芯片,其特征在于,所述至少一个功能单元包括第一功能单元和第二功能单元;所述第二功能模块(PLF)具体包括:第一层多路选择器、第二层多路选择器和逻辑元件;
第二功能单元的所述第一层多路选择器接收来自第一功能单元的所述第二功能模块(PLF)的数据,并选路到第二功能单元的所述第一功能模块(CPE);第二功能单元的所述第一功能模块(CPE)将数据选路至所述预分配管理器。
9.根据权利要求1所述的FPGA芯片,其特征在于,所述至少一个功能单元包括第一功能单元和第二功能单元;所述第二功能模块(PLF)具体包括:第一层多路选择器、第二层多路选择器和逻辑元件;
第二功能单元的所述第一层多路选择器接收来自第一功能单元的所述第二功能模块(PLF)的数据,并选路到第二功能单元的所述第一功能模块(CPE);第二功能单元的所述第一功能模块(CPE)将数据进行逻辑运算后,传递至所述预分配管理器。
10.根据权利要求1所述的FPGA芯片,其特征在于,所述至少一个功能单元包括第一功能单元和第二功能单元;所述第二功能模块(PLF)具体包括:第一层多路选择器、第二层多路选择器和逻辑元件;
第二功能单元的所述第二层多路选择器接收来自第一功能单元的所述第二功能模块(PLF)的数据,第二功能单元的所述第二层多路选择器将数据输出传递给第二功能单元的所述逻辑元件执行运算功能,第二功能单元的所述逻辑元件将逻辑运算后的数据传递给第二功能单元的所述第一功能模块(CPE),第二功能单元的所述第一功能模块(CPE)将数据选路至所述预分配管理器。
11.根据权利要求1所述的FPGA芯片,其特征在于,所述至少一个功能单元包括第一功能单元和第二功能单元;所述第二功能模块(PLF)具体包括:第一层多路选择器、第二层多路选择器和逻辑元件;
第二功能单元的所述第二层多路选择器接收来自第一功能单元的所述第二功能模块(PLF)的数据,第二功能单元的所述第二层多路选择器将数据输出传递给第二功能单元的所述逻辑元件执行运算功能,第二功能单元的所述逻辑元件将逻辑运算后的数据传递给第二功能单元的所述第一功能模块(CPE),第二功能单元的所述第一功能模块(CPE)将数据进行逻辑运算后,传递至所述预分配管理器。
12.根据权利要求1所述的FPGA芯片,其特征在于,位于同一水平或垂直方向的所述连线段、所述预分配管理器和所述功能单元,处在同一个时钟域中。
13.根据权利要求1所述的FPGA芯片,其特征在于,位于同一水平或垂直方向的所述连线段、所述预分配管理器和所述第一功能模块(CPE),处在同一个时钟域中。
14.根据权利要求1所述的FPGA芯片,其特征在于,位于同一水平或垂直方向的第二功能模块(PLF),处在同一个时钟域中。
15.根据权利要求12或13或14所述的FPGA芯片,其特征在于,不同的时钟域相互没有交集。
16.根据权利要求12或13或14所述的FPGA芯片,其特征在于,所述时钟域由比特控制文件进行配置。
17.根据权利要求16所述的FPGA芯片,其特征在于,至少一个比特控制文件作为主比特控制文件。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711332437.5A CN108153549B (zh) | 2017-12-13 | 2017-12-13 | 一种分布式多功能层结构的fpga芯片 |
US16/769,061 US11211933B2 (en) | 2017-12-13 | 2018-01-08 | FPGA chip with distributed multifunctional layer structure |
PCT/CN2018/071736 WO2019114070A1 (zh) | 2017-12-13 | 2018-01-08 | 一种分布式多功能层结构的fpga芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711332437.5A CN108153549B (zh) | 2017-12-13 | 2017-12-13 | 一种分布式多功能层结构的fpga芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108153549A CN108153549A (zh) | 2018-06-12 |
CN108153549B true CN108153549B (zh) | 2020-08-28 |
Family
ID=62466157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711332437.5A Active CN108153549B (zh) | 2017-12-13 | 2017-12-13 | 一种分布式多功能层结构的fpga芯片 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11211933B2 (zh) |
CN (1) | CN108153549B (zh) |
WO (1) | WO2019114070A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170168792A1 (en) * | 2015-12-15 | 2017-06-15 | Futurewei Technologies, Inc. | Space and time aware organization and isolation of components in real time systems |
CN112731823A (zh) * | 2019-10-28 | 2021-04-30 | 深圳市国微电子有限公司 | Fpga互连线电路及fpga互连线延时降低方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998038740A1 (en) * | 1997-02-26 | 1998-09-03 | Xilinx, Inc. | Fpga having logic element carry chains capable of generating wide xor functions |
CN101043213A (zh) * | 2007-03-15 | 2007-09-26 | 复旦大学 | 一种现场可编程逻辑阵列布线资源结构及其建模方法 |
CN101682329A (zh) * | 2008-01-30 | 2010-03-24 | 雅格罗技(北京)科技有限公司 | 一种具有改进的逻辑单元的集成电路 |
CN102176673A (zh) * | 2011-02-25 | 2011-09-07 | 中国科学院半导体研究所 | 4输入查找表、fpga逻辑单元和fpga逻辑块 |
CN103390071A (zh) * | 2012-05-07 | 2013-11-13 | 北京大学深圳研究生院 | 一种可重构算子阵列的层次化互连结构 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6270350B1 (en) * | 1999-04-28 | 2001-08-07 | I-Sim Corporation | Reconfigurable hardware interface for vehicle driving simulators using a field-programmable gate array |
US8362793B2 (en) | 2006-11-07 | 2013-01-29 | Apple Inc. | Circuit boards including removable test point portions and configurable testing platforms |
CN101546302A (zh) | 2009-05-07 | 2009-09-30 | 复旦大学 | 一种多核处理器的互连结构及基于该结构的层次化互连设计方法 |
CN102214158B (zh) | 2011-06-08 | 2013-05-22 | 清华大学 | 一种全互联路由结构动态可重构处理器 |
CN106712751A (zh) | 2016-11-25 | 2017-05-24 | 深圳市紫光同创电子有限公司 | 互联装置、现场可编程门阵列器件及其信号传输控制方法 |
-
2017
- 2017-12-13 CN CN201711332437.5A patent/CN108153549B/zh active Active
-
2018
- 2018-01-08 WO PCT/CN2018/071736 patent/WO2019114070A1/zh active Application Filing
- 2018-01-08 US US16/769,061 patent/US11211933B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998038740A1 (en) * | 1997-02-26 | 1998-09-03 | Xilinx, Inc. | Fpga having logic element carry chains capable of generating wide xor functions |
CN101043213A (zh) * | 2007-03-15 | 2007-09-26 | 复旦大学 | 一种现场可编程逻辑阵列布线资源结构及其建模方法 |
CN101682329A (zh) * | 2008-01-30 | 2010-03-24 | 雅格罗技(北京)科技有限公司 | 一种具有改进的逻辑单元的集成电路 |
CN102176673A (zh) * | 2011-02-25 | 2011-09-07 | 中国科学院半导体研究所 | 4输入查找表、fpga逻辑单元和fpga逻辑块 |
CN103390071A (zh) * | 2012-05-07 | 2013-11-13 | 北京大学深圳研究生院 | 一种可重构算子阵列的层次化互连结构 |
Also Published As
Publication number | Publication date |
---|---|
US11211933B2 (en) | 2021-12-28 |
US20210234545A1 (en) | 2021-07-29 |
WO2019114070A1 (zh) | 2019-06-20 |
CN108153549A (zh) | 2018-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10673440B1 (en) | Unified programmable computational memory and configuration network | |
US8471593B2 (en) | Logic cell array and bus system | |
EP0824791B1 (en) | Scalable multiple level interconnect architecture | |
EP0824792B1 (en) | Floor plan for scalable multiple level interconnect architecture | |
US6975137B1 (en) | Programmable logic devices with integrated standard-cell logic blocks | |
US6810513B1 (en) | Method and apparatus of programmable interconnect array with configurable multiplexer | |
US8503466B2 (en) | Network on chip input/output nodes | |
US20040128474A1 (en) | Method and device | |
US11489788B2 (en) | Interconnection network with adaptable router lines for chiplet-based manycore architecture | |
CN108153549B (zh) | 一种分布式多功能层结构的fpga芯片 | |
JP3576837B2 (ja) | プログラマブルロジックlsiの基本セル及び基本セル2次元アレイ | |
US20180300278A1 (en) | Array Processor Having a Segmented Bus System | |
CN113793632A (zh) | 非易失可编程芯片 | |
CN113626373A (zh) | 一种集成芯片 | |
US8593818B2 (en) | Network on chip building bricks | |
CN108287935B (zh) | 一种包含可预分配布线结构的可编程器件 | |
US6320412B1 (en) | Architecture and interconnect for programmable logic circuits | |
CN216118777U (zh) | 一种集成芯片 | |
CN109933370B (zh) | 连接fpga和人工智能模块的系统芯片 | |
US6980029B1 (en) | Programmable integrated circuit architecture | |
US9626325B2 (en) | Array processor having a segmented bus system | |
CN116738910A (zh) | 一种fpga芯片 | |
CN113626372A (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 |