CN105745843A - 用于信号处理的混合架构 - Google Patents

用于信号处理的混合架构 Download PDF

Info

Publication number
CN105745843A
CN105745843A CN201480063411.3A CN201480063411A CN105745843A CN 105745843 A CN105745843 A CN 105745843A CN 201480063411 A CN201480063411 A CN 201480063411A CN 105745843 A CN105745843 A CN 105745843A
Authority
CN
China
Prior art keywords
spa
array
integrated circuit
programmable integrated
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.)
Granted
Application number
CN201480063411.3A
Other languages
English (en)
Other versions
CN105745843B (zh
Inventor
S·佩里
M·朗哈默
R·梅登
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Altera Corp
Original Assignee
Altera Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Altera Corp filed Critical Altera Corp
Priority to CN201910412119.2A priority Critical patent/CN110289849B/zh
Publication of CN105745843A publication Critical patent/CN105745843A/zh
Application granted granted Critical
Publication of CN105745843B publication Critical patent/CN105745843B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17748Structural details of configuration resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Logic Circuits (AREA)
  • Advance Control (AREA)

Abstract

配置可编程集成电路的系统和方法。信号处理加速器(SPA)阵列包括在可编程集成电路中。SPA阵列与现场可编程门阵列(FPGA)分离,并且SPA阵列被配置为接收来自FPGA的输入数据并且可编程为至少对输入数据执行滤波功能以获得输出数据。

Description

用于信号处理的混合架构
相关申请的交叉引用
本公开要求于2013年9月20日提交的美国临时申请号61/880,275和于2014年9月22日提交的美国申请号14/492,717的优先权,其以整体内容通过引用并入本文。
背景技术
一般地,诸如现场可编程门阵列(FPGA)的可编程逻辑器件(PLD)包括执行逻辑操作的成千上万的可编程逻辑单元。例如,每个这样的逻辑元件(“LE”)可以包括查找表(“LUT”)、寄存器和少量的其他电路装置。LUT可以编程为产生逻辑信号,其是LUT的输入的任何逻辑组合或功能。LE可以关于是否和如何使用寄存器和什么控制信号(例如,时钟、时钟使能、清除等等)被选择用于施加给寄存器可以是可编程的。除LE外,FPGA通常包括用于以许多不同方式中的任一种传达至LE、自LE和/或LE之间的信号的互连电路装置。这允许单独的LE的相对简单的逻辑能力连结以执行相当大的复杂性的逻辑任务。
在FPGA架构中已经变得日益标准的是,将专用或“硬”块添加到可编程逻辑以将共同功能性添加到FPGA。这些功能块包含适于特定逻辑操作的专用逻辑器件,诸如串行器、解串器、滤波器、加法器、乘法与累加(MAC)电路和锁相环(PLL)。逻辑单元和功能块通过可配置的互连网络相互连接。可配置的互连网络选择性地路由逻辑单元与功能块之间和中间的连接。通过配置逻辑单元、功能块和互连网络的组合,可编程器件可以适于实际上执行任何类型的信息处理功能。添加到FPGA的专用块可以减少功能的大小或改进临界速度块的性能。专用块的进一步的吸引力在于,固定实施方式提供一致的实施方式的益处,这减少时序收敛的工作量。
专用块的主要特性之一在于,其往往在使用时提供戏剧性益处。然而,罕见的是,使用所有专用块并且有时根本不使用专用块。在将专用块添加到FPGA中的一些主要障碍在于1)专用块对于一些用户而言是极大的优点,但是可能有时对于其他用户而言是浪费的区域,和2)利用太多不同的构件和变型制造FPGA的家族不是成本效益的,并且常常直到定义专用块应当包括在设计中的器件之后很久才知道。
发明内容
本公开涉及集成电路器件,并且特别地涉及具有用于信号处理的混合架构的这样的器件。
根据本发明的实施例,公开了用于配置可编程集成电路器件的系统和方法。可编程集成电路包括信号处理加速器(SPA)阵列。SPA阵列与现场可编程门阵列(FPGA)分离,并且SPA阵列被配置为接收来自FPGA的输入数据并且可编程为至少执行对输入数据的过滤功能以获得输出数据。
在一些实施例中,可编程集成电路包括配置SPA阵列中的SPA对之间的连接的可配置的互连网络,其中,SPA阵列布置在SPA的二维网格中。SPA阵列可以布置在SPA的至少两个二维网格中,并且可配置的互连网络可以包括至少两个二维网格之间的一个或多个连接,使得在可配置的互连网络的特定配置中绕过至少两个二维网格中的至少一个二维网格。当配置FPGA时,可以设定可配置的互连网络。
可编程集成电路可以包括将数据提供给SPA阵列中的第一SPA的至少一个输入存储器缓冲器、接收来自SPA阵列中的第一SPA的数据的至少一个输出存储器缓冲器或者二者。当存在至少一个输入存储器缓冲器和至少一个输出存储器缓冲器二者时,接收来自输入存储器缓冲器的数据的SPA可以或者可以不与将数据提供给输出存储器缓冲器的SPA相同。SPA阵列中的SPA中的至少一些SPA可以各自包括至少三个存储器块、加法器、乘法器和累加器。在一些实施例中,SPA阵列中的至少两个SPA被布置为处理相同输入数据。
在一些实施例中,可编程集成电路包括将指令提供给SPA阵列的SPA控制器。SPA控制器可以从与FPGA共享裸片的硬处理器子系统接收编程指令。硬处理器子系统可以包括片上网络和经由片上网络与SPA控制器通信的至少一个CPU。硬处理器子系统上的片上网络可以经由包括多个数字信号处理器(DSP)的处理器区域中的另一片上网络与SPA控制器通信。
附图说明
所公开的技术的进一步的特征、其性质和各种优点基于结合附图取得的以下详细描述的考虑将是明显的,其中,相同附图标记自始至终指代相同部分,并且其中:
图1示出了根据实施方式的混合系统的说明性平面布置图;
图2示出了根据实施方式的包括DSP处理器区域的混合系统的说明性平面布置图;
图3示出了根据说明性实施方式的SPA和其输入和输出的说明性框图;
图4示出了根据说明性实施方式的连接以形成加速器的网络400的多个较小的加速器的说明性框图;
图5示出了根据实施方式的加速器的多个网格的示例框图;
图6示出了根据实施方式的SPA的部件的示例框图;
图7示出了根据实施方式的包括两个相互连接的SPA的系统的示例框图;
图8示出了根据实施方式的包括被用于复数滤波的两个相互连接的SPA的系统的示例框图;
图9示出了根据实施方式的在一组SPA上分区的信号处理加速系统的示例图;以及
图10示出了根据实施方式的用于配置可编程集成电路的过程的说明性流程图。
具体实施方式
本公开的系统和方法包括用于信号处理的集成电路的混合架构。不同类型的嵌入式特征可以一致地通过专用总线诸如片上网络(NoC)系统操作。附加地或者备选地,一个特征可以以可配置的方式连接到具有相同类型的另一特征,从而构建更强大的专用加速器。
一般能够期望的是,创建更便宜并且消耗更少电力的集成电路,同时能够提供期望的功能性并且维持可编程性的水平。本文所描述的混合架构包括可编程元件(诸如例如FPGA、加速器和处理器)的混合物的可编程架构。基本上,本文所描述的混合架构具有ASIC的低成本和低功耗特性,但是具有FPGA的可编程性。
图1描绘了根据实施方式的混合系统的说明性平面布置图100。平面布置图100描绘了混合系统的各种说明性框。平面布置图100包括硬处理器子系统(HPS)104、FPGA108和信号处理加速器阵列(SPA)110。HPS104通过连接106a-106b(一般地,连接106)与FPGA108通信并且通过连接107与SPA阵列110通信,并且FPGA108通过连接109SPA阵列110通信。
SPA阵列110包括七个SPA111a-111g(一般地,SPA111),其中的每一个处理输入数据并且由SPA控制器112控制。每个SPA111是基本上能够支持滤波和相关DSP功能的可编程滤波块。这样的功能的示例包括但不限于多项式操纵(假如包含例如数字预失真(DPD)、NCO、三角法或者任何其他适合的过程)、简单增益或者混合或者其他算术功能诸如xn、1/x、log、平方根、绝对值或者x/y。SPA111阵列110不要求任何软逻辑。
关于图3-9示出并且描述了每个SPA111或者SPA阵列110的部件的各种示例。特别地,SPA111可以布置在类块结构阵列中、具有互相的可编程连接性并且具有用于存储数据,诸如系数数据的嵌入式存储器。如关于图6-8更详细描述的,SPA111可以支持诸如滤波的功能,包括复数滤波、多项式操纵、定点算术、平方根、除法和其他类似功能。
在图1中,阵列110在区域122上,并且FPGA108和HPS104形成在另一区域120上。SPA阵列110通过连接109与FPGA108通信,所述连接109可以包括一个或多个连接总线。当区域120和122形成在分离的裸片上时,连接109可以是存在于两个裸片之间的插入器121的一部分。备选地,区域120和122可以形成在相同裸片上。一般而言,阵列110(或者其一部分)可以形成在与FPGA108相同裸片或者不同裸片上。
HPS104可以包括一个或多个嵌入式CPU101和102,其相应地通过连接105a和105b与片上网络(NoC)103通信。NoC103用作嵌入式CPU101和102与FPGA108之间和嵌入式CPU101和102与SPA控制器112之间的接口。HPS104可以执行诸如与控制有关的任何软件功能或者专用功能的功能。特别地,嵌入式CPU101和102可以被配置为通过连接107对SPA控制器112进行编程,使得SPA控制器112可以将适合的指令发送给阵列110中的SPA111中的每一个SPA111。在一些实施例中,HPS104是可选的处理器子系统并且可以不包括在本文所描述的系统中。
在图1的平面布置图100中,实现两个CPU101和102和七个SPA111。一般而言,本领域的普通技术人员将理解到,在不脱离本公开的范围情况下,可以实现图1中的任何数目的部件中的任一个。
图1的混合系统可以被设计用于实现数字前端(DFE)系统。在这种情况下,SPA111的阵列110支持针对数字上变频(DUC)、数字下变频(DDC)、数值控制振荡器(NCO)、峰值因数缩减(CFR)和数字预失真(DPD)的滤波和多项式操纵中所执行的处理。HPS104支持与控制和监视有关的功能性,并且分离的硬DSP子系统(在图1中未明确示出)可以支持与矩阵求逆、FFT处理、低采样率DSP和浮点算术有关的功能性。最后,FPGA108支持任何I/O协议(诸如例如CPRI或JESD204B)、开关和任何其他适合的功能性。
图2是根据实施方式的包括DSP处理器区域的混合系统的说明性平面布置图200。平面布置图200与图1的平面布置图100类似,外加替换图1中的连接107的DSP或者处理器区域240。处理器区域240可以是与在其上形成区域220(其安置HPS104和FPGA108)的裸片相同的裸片的一部分,或者处理器区域240可以形成在分离的裸片上。
如图2中所示,处理器区域240包括四个DSP处理器204a-204d(一般地,DSP处理器204)以及单元206,其可以是池式存储器单元或者诸如前向纠错(FEC)块的专用处理器。处理器区域240还包括用作DSP处理器204之间的接口的NoC202、单元206、SPA111阵列、SPA控制器112和NoC103。诸如单元206的附加单元可以连接通过到NoC202。例如,任何数目的专用加速器或者处理器、存储器单元和/或DSP处理器可以连接到NoC202。每个DSP处理器204使用连接207a-207d(一般地,连接207)连接到NoC202,所述连接207可以包括一个或多个AXI总线。当处理器区域240在与区域220分离的裸片上时,连接201(其可以包括一个或多个AXI总线)将NoC202和103连接。
如关于图1所描述的,平面布置图200中的FPGA108可以直接将数据传送给SPA111和从SPA111传送数据。DSP处理器204可以通过NoC202和连接209将数据传送给SPA111和从SPA111传送数据,并且可以通过NoC202和连接208将程序数据加载到SPA控制器112中。在平面布置图200中所示的系统中,DSP处理器204可以执行信号处理中的一些或者全部信号处理,并且可以使用SPA区域230卸载一些更简单但是计算密集的功能,诸如FIR滤波器、多项式操纵或者算术功能。而且,可以通过单元206(其可以是专用加速器)或者通过SPA区域230执行其他类型的更复杂的信号处理加速(诸如前向纠错)。
图3是根据说明性实施方式的SPA310和其输入和输出的说明性框图。图3的SPA310可以被用于实现关于图1和2所示和所描述的SPA111中的任何或者全部SPA111。SPA310具有相对小数目的输入端口和小数目的输出端口。相对小数目的输入和输出端口使得SPA310能够比针对诸如FIR滤波的应用的现有FPGA更不灵活但是更高效。特别地,针对SPA的输入和输出端口的数目可以取决于SPA阵列或者网格的尺寸,其中,阵列或者网格越大,输入和输出端口的数目越高。在示例中,SPA可以仅具有四个输入和输出端口,并且全部输入和输出端口可以具有相同宽度,其可以是18位宽。相反,现有FPGA可以被配置为能够路由至和自芯片上的任何地方。通过限制SPA的输入和输出的数目和将SPA布置在阵列或者网格中,本公开限制连接的灵活性但是节省功耗并且改进效率。
如图3中所示,仅示出了来自输入存储器300的一个输入和到输出存储器301的一个输出,但是一般而言,可以使用来自任何数目的输入存储器的任何数目的输入和到任何数目的输出存储器的任何数目的输出。输入的数目可以或者可以不匹配输出的数目。类似地,输入存储器的数目可以或者可以不匹配输出存储器的数目。
在一些实施例中,SPA310通过支持数据的突发的一个或多个接口直接连接到其信源和信宿(sink)。特别地,可以提供输入存储器300、输出存储器301或者二者以平衡在SPA310内外的数据的流动。例如,输入存储器300和输出存储器301之一或二者可以被实现为FIFO缓冲器,使得在SPA310内外的数据流得以平衡。换句话说,FIFO缓冲器的存在可以虑及SPA310处置数据流的突发。
例如,可以突然地使大量的数据可用于SPA310处理,但是SPA310可能忙于处理其他数据。当SPA310完成处理其他数据时,大量的数据可以保持在由输入存储器300所实现的队列中,使得当其他数据的处理完成时,SPA310可以处理大量的数据。类似地,如果在单元准备就绪以处理数据之前,将由SPA所输出的数据传送给诸如DSP处理器的另一单元,则输出数据可以暂时存储在输出存储器301中,直到单元准备就绪。输入存储器300和输出存储器301的包括对于SPA310的数据流的平衡有用,只要通常未以比SPA310可以将数据读出更快的速率将数据写到输入存储器300中。类似地,SPA310不应当以比数据读出更快的速率将数据写到输出存储器301中。
图3示出了一个SPA310,其可以被实现为包括一组多个较小的加速器。关于图4和5示出并且描述了可以如何组合多个加速器以形成较大的加速器和SPA集。
图4是连接以形成加速器的网络400的多个较小的加速器的说明性框图。加速器的网络400可以在本文中被描述为网格路由构造,并且可以被用于替换图3中所示的SPA310或者替换图1和2中所示的SPA111中的任一个。在网络400中,九个加速器401-409形成3x3网格,并且可以被称为子加速器。网络400仅以说明性示例的方式示出,并且一般而言,可以使用任何数目的加速器。特别地,可以使用许多更多的加速器,并且结构的纵横比可以与如所示的栅格不同。例如,网络400可以包括4×4、4×16、1×64等等加速器的栅格。
如图4中所示,十二个多路复用器411-422将输入提供给加速器401-409的输入和/或接收加速器401-409的输出并且有效地形成确定如何连接加速器401-409的可配置的互连网络。当在FPGA的配置时间处对器件进行编程时,可以设定被用于选择多路复用器411-422的适当的输入的控制信号。图4中的连接可以包括一个或多个数据总线并且指示每个加速器401-409可以接收来自其最近的邻居的输入或者其可以完全绕开。这样,加速器401-409可选地包含在处理器中,其虑及数据的灵活路由。
而且定位在行或列的端点处的每个加速器可以被配置为接受来自该行或列的另一端点的输入,从而将网格或者类网格结构提供给网络400。可以多次使用图4中所示的网格架构以形成关于图5中所描述的层次结构。
图5是加速器的多个网格的示例框图。特别地,一组三个510、510和512被配置为互相接收输入和提供输出。每个网格510、511和512可以包括如图4中所示的那些的子加速器的网格或者任何其他适合的网格或者若干小加速器的网格。存储器块500-505可以被实现为FIFO和提供针对到网格510、511和512的输入和来自网格510、511和512的输出的存储。而且,如关于图3所描述的,存储器块500-505可以向网格510、511和512的吞吐量提供平衡。
一组三个输入多路复用器520、522和524相应地向三个网格510、511和512中的每一个提供输入,并且一组三个输出多路复用器521、521和523接收三个网格510、511和512的输出。如图5中所示,每个输出多路复用器521、522和523仅接收单个输入,但是一般而言,输出多路复用器521、522和523可以接收用于附加灵活性的其他输入。备选地,输出多路复用器521、522和523可以不包括在图5中所示的系统中。
如图5中所示,网格510可选地接收来自存储器500的输入或者来自网格512的输出,网格511可选地接收来自存储器501的输入或者网格510的输出,并且网格512可选地接收来自存储器502的输入或者网格511的输出。通过以这种方式配置网格510、511和512,允许网格以受限的方式彼此通信,并且图5中所示的架构有利地限制每个网格的输入和输出端口的数目以节省成本和功耗。
每个网格510、511和512内的单独的加速器不与其他网格中的单独的加速器直接通信。例如,网格510中的加速器不能与网格511中的加速器直接通信,并且反之亦然。以这种方式的多个网格的配置有效地构建可以被用于建造更复杂的滤波器结构的连接性的层次。而且,跨越不同网格中的单独的加速度的通用连接性的缺乏虑及物理区域的高效使用并且与具有通用连接性的系统相比较,减少了功耗。
在图5中示出了连接性的层次的两个层级——SPA间层级和网格间层级。一般而言,本领域的普通技术人员将理解到,在不脱离本公开的范围的情况下,附加层级可以使用在连接性的层次中。特别地,附加层级可以被用于支持更复杂的系统功能,诸如例如DFE系统或者NCO子系统。
图6是SPA600的部件的示例框图。SPA600包括三个存储器块601、602和603、加法器604、乘法器605和累加器606。两个输入数据提供给SPA600,其将输入数据存储在存储器块601和602中。诸如图1中所示的SPA控制器112的控制器(未示出)可以访问存储在存储器块601和602中的数据,并且可以将指令传送给SPA600以执行由SPA600中的功能单元所支持的操作。例如,这些操作可以利用存储器块601-603、加法器604、乘法器605、累加器606或者其任何适合的组合。
特别地,加法器604执行将存储在存储器块601和602中的数据求和的操作,乘法器605执行将存储在存储器块603中的数据与由加法器604所产生的和相乘的操作,并且累加器606执行将乘法器605的输出累加的操作。累加器606的输出可以提供到图4的网格路由构造,并且结果可以从其他块(未示出)输入到存储器块603中。在一些实施例中,在提供累加器606的输出之前,可以执行由加法器604所执行的求和、由乘法器605所执行的乘法和由累加器606所执行的累加的多个迭代。
图7是包括连接在一起的两个SPA的系统700的示例框图。第一SPA707a可以与关于图6所示和所描述的SPA600相同,并且包括三个存储器块701a、702a和703a、加法器704a、乘法器705a和累加器706a。第二SPA707b可以与SPA707a类似,但是取代包括三个存储器块,第二SPA707b包括两个存储器块701b和702b。与第一SPA707a类似,第二SPA707b包括加法器704b、乘法器705b和累加器706b。
存储器块701a和702a相应地向存储器块701b和702b提供输入,并且存储器块703向这两个SPA中的乘法器705a和705b二者提供输入。图7中所示的SPA间连接虑及SPA707a和707b二者处理相同数据。当以这种方式配置时,一对(或者多个)SPA可以高效地支持其中期望对同一组数据实现多个过程的应用。作为示例,脉冲多普勒信号处理可以包含对I和Q信号的处理,使得SPA707a可以处理I信号并且SPA707b可以处理Q信号。如图7中所示,SPA间路由(例如,SPA707a与707b之间的直接连接)通过SPA基础对提供在一对SPA上。然而,SPA间路由可以提供在逐SPA(SPA-by-SPA)基础上。
图8是包括连接在一起并且被用于复数滤波的两个SPA810a和810b的系统800的示例框图。除SPA810a和810b各自包括附加乘法器外,每个SPA810a和810b与关于图6所示和所描述的SPA600类似。特别地,SPA810a包括三个存储器块801a、802a和803a、加法器804a、两个乘法器805a和807a和累加器806a。类似地,SPA810b包括三个存储器块801b、802b和803b、加法器804b、两个乘法器805b和807b和累加器806b。
为了简单,如果存储在存储器802a中的数据是“a”,存储在存储器803a中的数据是“c”,存储在存储器802b中的数据是“b”,并且存储在存储器803b中的数据是“d”,那么图8的存储器和功能单元的配置实现复数乘法或者(ac-bd)+j(ad+bc)。特别地,SPA控制器112可以将指令传送给SPA810a和810b以使用或者不使用图8中所示的连接中的任一个。例如,SPA控制器112可以指令不使用从存储器801a到加法器804a的连接和从存储器801b到加法器804b的连接。而且,来自SPA控制器112的指令可以包括指定对功能单元的一个或多个修改的控制字,诸如将加法器或者累加器用作减法器。而且,乘法器807a和807b的使用可以是可选的,使得其收入和/或输出可以归零以实现实数乘法而不是复数乘法。
图8中所示的SPA架构可以被优化用于执行复数滤波,并且与图6或7中所示的SPA相比较不要求任何附加的存储器块。相反,每SPA仅使用一个附加乘法器(例如,乘法器807a和807b)。在一些实施例中,附加乘法器807a或者807b的存在不必使算术数据路径的宽度加倍。特别地,可以合并与乘法器805a和807a相对应的压缩器树,使得仅需要一个进位传播加法器(CPA)。
图9示出了在一组SPA910上分区的示例信号处理加速系统。特别地,可以在12×12网格(未示出所有144个SPA)中配置一组SPA910。该组SPA910分区为五个网格:网格900、901、902、903和904,并且分区可以是静态的,使得组不能动态地改变。网格900是4×4网格,其包括十六个SPA并且接收来自FPGA(诸如FPGA108)或者DSP处理器(诸如DSP处理器204)的输入数据。网格900处理输入数据并且将输出数据提供给网格902,其是包括42个SPA的6×7网格。网格902使用另一过程处理数据,并且将输出数据提供给FPGA或者DSP处理器。
网格903是6×2网格,其不接收输入数据和相反生成输出数据(诸如例如与NCO相关联的数据)并且将输出数据提供给FPGA或者DSP处理器区域。由网格903所执行的处理和网格903提供的输出数据绕过其他网格900、901、902和904。网格904是6×9网格,其接收来自FPGA或者DSP处理器区域的数据、处理数据并且然后将输出数据提供给FPGA或者DSP处理器区域。
如图9中所示,未使用网格901,因为网格901既不接收数据也不提供任何输出数据。在一些实施例中,未使用网格901,因为已经通过其他网格900、902、903和904实现所有期望的功能。在一些实施例中,未使用网格901,因为针对网格900、902、903和904的路由要求不虑及足够的剩余路由以用于路由网格901的输入和输出(例如,输入端口和输出端口的数目是相对有限的)。
图10示出了用于配置可编程集成电路的过程1000的说明性流程图。特别地,图10图示了配置包括与FPGA分离的SPA阵列的集成电路的过程。
在1002处,SPA阵列被配置为接收来自FPGA的输入数据并且至少对输入数据执行滤波功能以获得输出数据。如关于图1所描述的,每个SPA基本上是能够支持滤波和相关的DSP功能的可编程滤波块。这样的功能的示例包括但不限于多项式操纵(假如包含例如数字预失真(DPD)、NCO、三角法或者任何其他适合的过程)、简单增益或者混合或者其他算术功能诸如xn、1/x、log、平方根或者x/y。SPA阵列中的SPA可以以图5中所示的类网格方式布置在图5中所示的层次网格结构、图9中所示的分组结构或者其任何适合的组合中。而且,每个SPA的部件可以与图6-8中所示那样,并且特别地,阵列中的多个SPA可以处理与图7中所示相同的数据。
在1004处,可配置的互连网络被用于SPA阵列中的SPA对之间的连接,其中,SPA阵列布置在SPA的二维网格中。例如,关于图4所示和所描述的网络400是SPA的二维网格的一个示例。网格400形成提供九个SPA401-409中的SPA对之间的连接的网格路由构造。如关于图4所描述的,网络400可以被用于替换图3中所示的SPA310或者替换图1和2中所示的SPA111中的任一个。可配置的互连网络可以包括确定如何连接SPA401-409的一组多路复用器(诸如图4中的多路复用器411-422),并且可以在FPGA的配置时间处设定用于多路复用器的选择控制信号。
在一些实施例中,SPA阵列布置在SPA的至少两个二维网格中,并且可配置的互连网络包括至少两个二维网格之间的一个或多个连接,使得在可配置的互连网络的特定配置中绕过至少两个二维网格中的至少一个。特别地,如关于图5所描述的,每个网格510、511和512可以包括子加速器(诸如图4中所示的那些)的网格或者任何其他适合的网格或者若干小加速器的网格。而且,取决于形成可配置的互连网络的图4和5中的多路复用器的特定配置,可以绕过网格中的任一个。
在一些实施例中,可编程集成电路还包括至少一个输入存储器缓冲器和至少一个输出存储器缓冲器,所述输入存储器缓冲器将数据提供给SPA阵列中的第一SPA,并且所述输出存储器缓冲器接收来自SPA阵列中的第二SPA的数据。特别地,如关于图3所描述的,输入和输出存储器缓冲器可以被实现为平衡在SPA的内外的数据的流动的FIFO缓冲器并且使得数据流的突发能够处置。
在一些实施例中,过程1000还包括将SPA控制器(诸如SPA控制器112)配置为将指令传送给SPA阵列和从与FPGA共享裸片的HPS(诸如HPS104)接收编程指令。如图1和2中所示,HPS104可以包括NoC103和至少一个CPU,其可以被配置为经由NoC103与SPA控制器112通信。而且,HPS104上的NoC103可以经由包括多个DSP处理器204的处理器区域202中的另一NoC202与SPA控制器112通信。
术语“FPGA”的以上使用是示例性的,并且应当被认为包括各种类型的集成电路,包括但不限于商业FPGA器件、复杂可编程逻辑器件(CPLD)器件、可配置专用集成电路(ASSP)器件、可配置数字信号处理(DSP)和图形处理单元(GPU)器件、混合专用集成电路(ASIC)、被描述为具有可编程逻辑核心的ASIC或者具有嵌入式ASIC或者ASSP核心的可编程逻辑器件的(一个或多个)可编程器件。
基于本文的公开内容和教导,对于本领域的普通技术人员而言将明显的是,可以以附图中所图示的实施方式中的软件、固件和硬件的许多不同形式实现如上文所描述的所公开的技术的方面。实现与所公开的技术的原理一致的方面所使用的实际软件代码或者专用硬件是非限制性的。因此,在未参考特定软件代码的情况下描述所公开的技术的方面的操作和行为——应当理解,本领域的普通技术人员将能够设计实现基于本文的描述的方面的软件和硬件。

Claims (24)

1.一种可编程集成电路,包括:
信号处理加速器(SPA)阵列,所述信号处理加速器阵列与现场可编程门阵列(FPGA)分离,其中所述SPA阵列被配置为接收来自所述FPGA的输入数据并且可编程为对所述输入数据至少执行滤波功能以获得输出数据。
2.根据权利要求1所述的可编程集成电路,还包括可配置的互连网络,所述可配置的互联网络配置所述SPA阵列中的SPA对之间的连接,其中所述SPA阵列被布置在SPA的二维网格中。
3.根据权利要求2所述的可编程集成电路,其中:
所述SPA阵列布置在SPA的至少两个二维网格中;
所述可配置的互连网络包括所述至少两个二维网格之间的一个或多个连接,使得在所述可配置的互连网络的特定配置中绕过所述至少两个二维网格中的至少一个二维网格。
4.根据权利要求2所述的可编程集成电路,其中当配置所述FPGA时,设定所述可配置的互连网络。
5.根据权利要求1所述的可编程集成电路,还包括至少一个输入存储器缓冲器,所述至少一个输入存储器缓冲器将数据提供给所述SPA阵列中的第一SPA。
6.根据权利要求1所述的可编程集成电路,还包括至少一个输出存储器缓冲器,所述至少一个输出存储器缓冲器接收来自所述SPA阵列中的第一SPA的数据。
7.根据权利要求1所述的可编程集成电路,其中所述SPA阵列中的所述SPA中的至少一些SPA各自包括至少三个存储器块、加法器、乘法器和累加器。
8.根据权利要求1所述的可编程集成电路,其中所述SPA阵列中的至少两个SPA被布置为处理相同的所述输入数据。
9.根据权利要求1所述的可编程集成电路,还包括SPA控制器,所述SPA控制器将指令传送给所述SPA阵列,其中所述SPA控制器接收来自与所述FPGA共享裸片的硬处理器子系统的编程指令。
10.根据权利要求9所述的可编程集成电路,其中,所述硬处理器子系统包括片上网络和经由所述片上网络与所述SPA控制器通信的至少一个CPU。
11.根据权利要求10所述的可编程集成电路,其中所述硬处理器子系统上的所述片上网络经由包括多个数字信号处理器(DSP)的处理器区域中的另一片上网络与所述SPA控制器通信。
12.根据权利要求1所述的可编程集成电路,还包括所述FPGA。
13.一种用于配置可编程集成电路的方法,所述可编程集成电路包括:
信号处理加速器(SPA)阵列,所述信号处理加速器阵列与现场可编程门阵列(FPGA)分离;所述方法包括:
将所述SPA阵列配置为接收来自所述FPGA的输入数据和对所述输入数据至少执行滤波功能以获得输出数据。
14.根据权利要求13所述的方法,还包括:
使用可配置的互连网络配置所述SPA阵列中的SPA对之间的连接,其中所述SPA阵列布置在SPA的二维网格中。
15.根据权利要求14所述的方法,其中:
所述SPA阵列布置在SPA的至少两个二维网格中;
所述可配置的互连网络包括所述至少两个二维网格之间的一个或多个连接,使得在所述可配置的互连网络的特定配置中绕过所述至少两个二维网格中的至少一个二维网格。
16.根据权利要求14所述的方法,还包括当配置所述FPGA时,设定所述可配置的互连网络。
17.根据权利要求13所述的方法,其中所述可编程集成电路还包括至少一个输入存储器缓冲器,所述至少一个输入存储器缓冲器将数据提供给所述SPA阵列中的第一SPA。
18.根据权利要求13所述的方法,其中所述可编程集成电路还包括至少一个输出存储器缓冲器,所述至少一个输出存储器缓冲器接收来自所述SPA阵列中的第一SPA的数据。
19.根据权利要求13所述的方法,其中,所述SPA阵列中的所述SPA中的至少一些SPA各自包括至少三个存储器块、加法器、乘法器和累加器。
20.根据权利要求13所述的方法,还包括将所述SPA阵列中的至少两个SPA布置为处理相同的所述输入数据。
21.根据权利要求13所述的方法,还包括将SPA控制器配置为将指令传送给所述SPA阵列和接收来自与所述FPGA共享裸片的硬处理器子系统的编程指令。
22.根据权利要求21所述的方法,其中,所述硬处理器子系统包括片上网络和至少一个CPU,所述方法还包括将所述CPU配置为经由所述片上网络与所述SPA控制器通信。
23.根据权利要求22所述的方法,还包括所述硬处理器子系统上的所述片上网络经由包括多个数字信号处理器(DSP)的处理器区域中的另一片上网络与所述SPA控制器通信。
24.根据权利要求13所述的方法,其中,所述可编程集成电路还包括所述FPGA。
CN201480063411.3A 2013-09-20 2014-09-22 用于信号处理的混合架构 Active CN105745843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910412119.2A CN110289849B (zh) 2013-09-20 2014-09-22 用于信号处理的混合架构

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361880275P 2013-09-20 2013-09-20
US61/880,275 2013-09-20
PCT/US2014/056803 WO2015042533A1 (en) 2013-09-20 2014-09-22 Hybrid architecture for signal processing
US14/492,717 2014-09-22
US14/492,717 US9553591B2 (en) 2013-09-20 2014-09-22 Hybrid architecture for signal processing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910412119.2A Division CN110289849B (zh) 2013-09-20 2014-09-22 用于信号处理的混合架构

Publications (2)

Publication Number Publication Date
CN105745843A true CN105745843A (zh) 2016-07-06
CN105745843B CN105745843B (zh) 2019-06-14

Family

ID=52689507

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480063411.3A Active CN105745843B (zh) 2013-09-20 2014-09-22 用于信号处理的混合架构
CN201910412119.2A Active CN110289849B (zh) 2013-09-20 2014-09-22 用于信号处理的混合架构

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910412119.2A Active CN110289849B (zh) 2013-09-20 2014-09-22 用于信号处理的混合架构

Country Status (3)

Country Link
US (1) US9553591B2 (zh)
CN (2) CN105745843B (zh)
WO (1) WO2015042533A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109120241A (zh) * 2017-06-23 2019-01-01 北京遥感设备研究所 一种实数交叉型复系数fir滤波器
CN109690515A (zh) * 2016-09-16 2019-04-26 阿尔特拉公司 用于在基于管线的网络拓扑中执行部分重新配置的方法和设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9553591B2 (en) * 2013-09-20 2017-01-24 Altera Corporation Hybrid architecture for signal processing
US9647667B1 (en) * 2014-04-30 2017-05-09 Altera Corporation Hybrid architecture for signal processing and signal processing accelerator
CN107870885A (zh) * 2017-11-28 2018-04-03 国网技术学院 通信系统、装置及方法
US10579557B2 (en) * 2018-01-16 2020-03-03 Advanced Micro Devices, Inc. Near-memory hardened compute blocks for configurable computing substrates

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6680476B1 (en) * 2002-11-22 2004-01-20 Agilent Technologies, Inc. Summed time-of-flight mass spectrometry utilizing thresholding to reduce noise
CN1818856A (zh) * 2005-03-29 2006-08-16 威盛电子股份有限公司 具有加速器的数字信号系统及其操作方法
US7149362B2 (en) * 2001-09-21 2006-12-12 Interuniversitair Microelektronica Centrum (Imec) Vzw 2D FIFO device and method for use in block based coding applications
WO2009140363A1 (en) * 2008-05-15 2009-11-19 Exegy Incorporated Method and system for accelerated stream processing
US20110264888A1 (en) * 2010-04-23 2011-10-27 Utah State University Dynamically Reconfigurable Systolic Array Accelorators
WO2011150409A2 (en) * 2010-05-28 2011-12-01 Verigy (Singapore) Pte. Ltd Solution for full speed, parallel dut testing
US20120264476A1 (en) * 2009-12-10 2012-10-18 Thomas Kleinhenz Filtering of a Measurement Quantity in a Mobile Communication Network

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020010817A1 (en) * 1999-01-29 2002-01-24 Han-Chung Yeh Host signal processing modem with a signal processing accelerator
US6150838A (en) 1999-02-25 2000-11-21 Xilinx, Inc. FPGA configurable logic block with multi-purpose logic/memory circuit
US7224721B2 (en) 2002-10-11 2007-05-29 The Mitre Corporation System for direct acquisition of received signals
US8495122B2 (en) * 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
EP1750192B1 (de) 2005-08-05 2011-02-16 Integrated Dynamics Engineering GmbH Steuerung eines aktiven Schwingungsisolationssystems
US7500083B2 (en) 2005-08-15 2009-03-03 Silicon Informatics Accelerated processing with scheduling to configured coprocessor for molecular data type by service and control coprocessor upon analysis of software code
US8543635B2 (en) * 2009-01-27 2013-09-24 Xilinx, Inc. Digital signal processing block with preadder stage
US8369177B2 (en) 2010-03-05 2013-02-05 Micron Technology, Inc. Techniques for reading from and/or writing to a semiconductor memory device
CN201733292U (zh) * 2010-07-14 2011-02-02 深圳信息职业技术学院 一种信号处理系统及数字接收机
GB2484670B (en) * 2010-10-18 2018-04-25 Dyson Technology Ltd A fan assembly
US9553591B2 (en) * 2013-09-20 2017-01-24 Altera Corporation Hybrid architecture for signal processing

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149362B2 (en) * 2001-09-21 2006-12-12 Interuniversitair Microelektronica Centrum (Imec) Vzw 2D FIFO device and method for use in block based coding applications
US6680476B1 (en) * 2002-11-22 2004-01-20 Agilent Technologies, Inc. Summed time-of-flight mass spectrometry utilizing thresholding to reduce noise
CN1818856A (zh) * 2005-03-29 2006-08-16 威盛电子股份有限公司 具有加速器的数字信号系统及其操作方法
WO2009140363A1 (en) * 2008-05-15 2009-11-19 Exegy Incorporated Method and system for accelerated stream processing
US20120264476A1 (en) * 2009-12-10 2012-10-18 Thomas Kleinhenz Filtering of a Measurement Quantity in a Mobile Communication Network
US20110264888A1 (en) * 2010-04-23 2011-10-27 Utah State University Dynamically Reconfigurable Systolic Array Accelorators
WO2011150409A2 (en) * 2010-05-28 2011-12-01 Verigy (Singapore) Pte. Ltd Solution for full speed, parallel dut testing

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109690515A (zh) * 2016-09-16 2019-04-26 阿尔特拉公司 用于在基于管线的网络拓扑中执行部分重新配置的方法和设备
CN109690515B (zh) * 2016-09-16 2024-01-30 阿尔特拉公司 用于在基于管线的网络拓扑中执行部分重新配置的方法和设备
CN109120241A (zh) * 2017-06-23 2019-01-01 北京遥感设备研究所 一种实数交叉型复系数fir滤波器
CN109120241B (zh) * 2017-06-23 2022-03-22 北京遥感设备研究所 一种实数交叉型复系数fir滤波器

Also Published As

Publication number Publication date
US20150088948A1 (en) 2015-03-26
CN105745843B (zh) 2019-06-14
CN110289849A (zh) 2019-09-27
US9553591B2 (en) 2017-01-24
CN110289849B (zh) 2023-08-11
WO2015042533A1 (en) 2015-03-26

Similar Documents

Publication Publication Date Title
CN105745843A (zh) 用于信号处理的混合架构
US10417004B2 (en) Pipelined cascaded digital signal processing structures and methods
JP2852808B2 (ja) アレイプロセッサ
US10678715B2 (en) Hybrid architecture for signal processing and signal processing accelerator
US7827386B2 (en) Controlling memory access devices in a data driven architecture mesh array
US20200228121A1 (en) Method and apparatus for implementing configurable streaming networks
US20100070738A1 (en) Flexible results pipeline for processing element
CN113811859A (zh) 控制流屏障以及可重构数据处理器
JP2023523587A (ja) 計算データフローアーキテクチャ
US10489116B1 (en) Programmable integrated circuits with multiplexer and register pipelining circuitry
US9553590B1 (en) Configuring programmable integrated circuit device resources as processing elements
US9787290B2 (en) Resource-saving circuit structures for deeply pipelined systolic finite impulse response filters
US11016822B1 (en) Cascade streaming between data processing engines in an array
EP3047572B1 (en) Hybrid architecture for signal processing
CN103914429A (zh) 用于粗粒度动态可重构阵列的多模式数据传输互连器
Lusala et al. Noc implementation in fpga using torus topology
US10452392B1 (en) Configuring programmable integrated circuit device resources as processors
WO2008061162A1 (en) Hybrid computing platform having fpga components with embedded processors
Joshi et al. Multi-core image processing system using network on chip interconnect
JP7243006B1 (ja) ネットワークオンチップリコンフィギュアビリティ
Ribot González et al. IPDeN 2.0: Real-time NoC with selective flit deflection and buffering
JP2013009044A (ja) 制御装置、処理装置、処理システム、制御プログラム
Fukase et al. A study on Inter-Board Data Transmission of FPGA Cluster
Srini et al. Parallel DSP with memory and I/O processors
Mushtaq et al. PNOC: Implementation on Verilog for FPGA

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant