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

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

Info

Publication number
CN110289849B
CN110289849B CN201910412119.2A CN201910412119A CN110289849B CN 110289849 B CN110289849 B CN 110289849B CN 201910412119 A CN201910412119 A CN 201910412119A CN 110289849 B CN110289849 B CN 110289849B
Authority
CN
China
Prior art keywords
signal processing
integrated circuit
circuit device
array
programmable integrated
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
Application number
CN201910412119.2A
Other languages
English (en)
Other versions
CN110289849A (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 CN110289849A publication Critical patent/CN110289849A/zh
Application granted granted Critical
Publication of CN110289849B publication Critical patent/CN110289849B/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

用于信号处理的混合架构
分案申请说明
本申请是申请日为2014年09月22日、申请号为201480063411.3的发明专利申请(名称为“用于信号处理的混合架构”)的分案申请。
背景技术
一般地,诸如现场可编程门阵列(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、FPGA 108和信号处理加速器阵列(SPA)110。HPS 104通过连接106a-106b(一般地,连接106)与FPGA 108通信并且通过连接107与SPA阵列110通信,并且FPGA 108通过连接109SPA阵列110通信。
SPA阵列110包括七个SPA 111a-111g(一般地,SPA 111),其中的每一个处理输入数据并且由SPA控制器112控制。每个SPA 111是基本上能够支持滤波和相关DSP功能的可编程滤波块。这样的功能的示例包括但不限于多项式操纵(假如包含例如数字预失真(DPD)、NCO、三角法或者任何其他适合的过程)、简单增益或者混合或者其他算术功能诸如xn、1/x、log、平方根、绝对值或者x/y。SPA 111阵列110不要求任何软逻辑。
关于图3-9示出并且描述了每个SPA111或者SPA阵列110的部件的各种示例。特别地,SPA 111可以布置在类块结构阵列中、具有互相的可编程连接性并且具有用于存储数据,诸如系数数据的嵌入式存储器。如关于图6-8更详细描述的,SPA 111可以支持诸如滤波的功能,包括复数滤波、多项式操纵、定点算术、平方根、除法和其他类似功能。
在图1中,阵列110在区域122上,并且FPGA 108和HPS 104形成在另一区域120上。SPA阵列110通过连接109与FPGA 108通信,所述连接109可以包括一个或多个连接总线。当区域120和122形成在分离的裸片上时,连接109可以是存在于两个裸片之间的插入器121的一部分。备选地,区域120和122可以形成在相同裸片上。一般而言,阵列110(或者其一部分)可以形成在与FPGA 108相同裸片或者不同裸片上。
HPS 104可以包括一个或多个嵌入式CPU 101和102,其相应地通过连接105a和105b与片上网络(NoC)103通信。NoC 103用作嵌入式CPU 101和102与FPGA 108之间和嵌入式CPU 101和102与SPA控制器112之间的接口。HPS 104可以执行诸如与控制有关的任何软件功能或者专用功能的功能。特别地,嵌入式CPU 101和102可以被配置为通过连接107对SPA控制器112进行编程,使得SPA控制器112可以将适合的指令发送给阵列110中的SPA 111中的每一个SPA 111。在一些实施例中,HPS 104是可选的处理器子系统并且可以不包括在本文所描述的系统中。
在图1的平面布置图100中,实现两个CPU 101和102和七个SPA 111。一般而言,本领域的普通技术人员将理解到,在不脱离本公开的范围情况下,可以实现图1中的任何数目的部件中的任一个。
图1的混合系统可以被设计用于实现数字前端(DFE)系统。在这种情况下,SPA 111的阵列110支持针对数字上变频(DUC)、数字下变频(DDC)、数值控制振荡器(NCO)、峰值因数缩减(CFR)和数字预失真(DPD)的滤波和多项式操纵中所执行的处理。HPS 104支持与控制和监视有关的功能性,并且分离的硬DSP子系统(在图1中未明确示出)可以支持与矩阵求逆、FFT处理、低采样率DSP和浮点算术有关的功能性。最后,FPGA 108支持任何I/O协议(诸如例如CPRI或JESD204B)、开关和任何其他适合的功能性。
图2是根据实施方式的包括DSP处理器区域的混合系统的说明性平面布置图200。平面布置图200与图1的平面布置图100类似,外加替换图1中的连接107的DSP或者处理器区域240。处理器区域240可以是与在其上形成区域220(其安置HPS 104和FPGA 108)的裸片相同的裸片的一部分,或者处理器区域240可以形成在分离的裸片上。
如图2中所示,处理器区域240包括四个DSP处理器204a-204d(一般地,DSP处理器204)以及单元206,其可以是池式存储器单元或者诸如前向纠错(FEC)块的专用处理器。处理器区域240还包括用作DSP处理器204之间的接口的NoC 202、单元206、SPA 111阵列、SPA控制器112和NoC 103。诸如单元206的附加单元可以连接通过到NoC 202。例如,任何数目的专用加速器或者处理器、存储器单元和/或DSP处理器可以连接到NoC 202。每个DSP处理器204使用连接207a-207d(一般地,连接207)连接到NoC 202,所述连接207可以包括一个或多个AXI总线。当处理器区域240在与区域220分离的裸片上时,连接201(其可以包括一个或多个AXI总线)将NoC 202和103连接。
如关于图1所描述的,平面布置图200中的FPGA 108可以直接将数据传送给SPA111和从SPA 111传送数据。DSP处理器204可以通过NoC 202和连接209将数据传送给SPA111和从SPA 111传送数据,并且可以通过NoC 202和连接208将程序数据加载到SPA控制器112中。在平面布置图200中所示的系统中,DSP处理器204可以执行信号处理中的一些或者全部信号处理,并且可以使用SPA区域230卸载一些更简单但是计算密集的功能,诸如FIR滤波器、多项式操纵或者算术功能。而且,可以通过单元206(其可以是专用加速器)或者通过SPA区域230执行其他类型的更复杂的信号处理加速(诸如前向纠错)。
图3是根据说明性实施方式的SPA 310和其输入和输出的说明性框图。图3的SPA310可以被用于实现关于图1和2所示和所描述的SPA 111中的任何或者全部SPA 111。SPA310具有相对小数目的输入端口和小数目的输出端口。相对小数目的输入和输出端口使得SPA 310能够比针对诸如FIR滤波的应用的现有FPGA更不灵活但是更高效。特别地,针对SPA的输入和输出端口的数目可以取决于SPA阵列或者网格的尺寸,其中,阵列或者网格越大,输入和输出端口的数目越高。在示例中,SPA可以仅具有四个输入和输出端口,并且全部输入和输出端口可以具有相同宽度,其可以是18位宽。相反,现有FPGA可以被配置为能够路由至和自芯片上的任何地方。通过限制SPA的输入和输出的数目和将SPA布置在阵列或者网格中,本公开限制连接的灵活性但是节省功耗并且改进效率。
如图3中所示,仅示出了来自输入存储器300的一个输入和到输出存储器301的一个输出,但是一般而言,可以使用来自任何数目的输入存储器的任何数目的输入和到任何数目的输出存储器的任何数目的输出。输入的数目可以或者可以不匹配输出的数目。类似地,输入存储器的数目可以或者可以不匹配输出存储器的数目。
在一些实施例中,SPA 310通过支持数据的突发的一个或多个接口直接连接到其信源和信宿(sink)。特别地,可以提供输入存储器300、输出存储器301或者二者以平衡在SPA 310内外的数据的流动。例如,输入存储器300和输出存储器301之一或二者可以被实现为FIFO缓冲器,使得在SPA 310内外的数据流得以平衡。换句话说,FIFO缓冲器的存在可以虑及SPA 310处置数据流的突发。
例如,可以突然地使大量的数据可用于SPA 310处理,但是SPA 310可能忙于处理其他数据。当SPA 310完成处理其他数据时,大量的数据可以保持在由输入存储器300所实现的队列中,使得当其他数据的处理完成时,SPA 310可以处理大量的数据。类似地,如果在单元准备就绪以处理数据之前,将由SPA所输出的数据传送给诸如DSP处理器的另一单元,则输出数据可以暂时存储在输出存储器301中,直到单元准备就绪。输入存储器300和输出存储器301的包括对于SPA 310的数据流的平衡有用,只要通常未以比SPA 310可以将数据读出更快的速率将数据写到输入存储器300中。类似地,SPA 310不应当以比数据读出更快的速率将数据写到输出存储器301中。
图3示出了一个SPA 310,其可以被实现为包括一组多个较小的加速器。关于图4和5示出并且描述了可以如何组合多个加速器以形成较大的加速器和SPA集。
图4是连接以形成加速器的网络400的多个较小的加速器的说明性框图。加速器的网络400可以在本文中被描述为网格路由构造,并且可以被用于替换图3中所示的SPA 310或者替换图1和2中所示的SPA 111中的任一个。在网络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是SPA 600的部件的示例框图。SPA 600包括三个存储器块601、602和603、加法器604、乘法器605和累加器606。两个输入数据提供给SPA 600,其将输入数据存储在存储器块601和602中。诸如图1中所示的SPA控制器112的控制器(未示出)可以访问存储在存储器块601和602中的数据,并且可以将指令传送给SPA 600以执行由SPA 600中的功能单元所支持的操作。例如,这些操作可以利用存储器块601-603、加法器604、乘法器605、累加器606或者其任何适合的组合。
特别地,加法器604执行将存储在存储器块601和602中的数据求和的操作,乘法器605执行将存储在存储器块603中的数据与由加法器604所产生的和相乘的操作,并且累加器606执行将乘法器605的输出累加的操作。累加器606的输出可以提供到图4的网格路由构造,并且结果可以从其他块(未示出)输入到存储器块603中。在一些实施例中,在提供累加器606的输出之前,可以执行由加法器604所执行的求和、由乘法器605所执行的乘法和由累加器606所执行的累加的多个迭代。
图7是包括连接在一起的两个SPA的系统700的示例框图。第一SPA 707a可以与关于图6所示和所描述的SPA 600相同,并且包括三个存储器块701a、702a和703a、加法器704a、乘法器705a和累加器706a。第二SPA 707b可以与SPA 707a类似,但是取代包括三个存储器块,第二SPA 707b包括两个存储器块701b和702b。与第一SPA 707a类似,第二SPA 707b包括加法器704b、乘法器705b和累加器706b。
存储器块701a和702a相应地向存储器块701b和702b提供输入,并且存储器块703向这两个SPA中的乘法器705a和705b二者提供输入。图7中所示的SPA间连接虑及SPA 707a和707b二者处理相同数据。当以这种方式配置时,一对(或者多个)SPA可以高效地支持其中期望对同一组数据实现多个过程的应用。作为示例,脉冲多普勒信号处理可以包含对I和Q信号的处理,使得SPA 707a可以处理I信号并且SPA 707b可以处理Q信号。如图7中所示,SPA间路由(例如,SPA 707a与707b之间的直接连接)通过SPA基础对提供在一对SPA上。然而,SPA间路由可以提供在逐SPA(SPA-by-SPA)基础上。
图8是包括连接在一起并且被用于复数滤波的两个SPA 810a和810b的系统800的示例框图。除SPA 810a和810b各自包括附加乘法器外,每个SPA 810a和810b与关于图6所示和所描述的SPA 600类似。特别地,SPA 810a包括三个存储器块801a、802a和803a、加法器804a、两个乘法器805a和807a和累加器806a。类似地,SPA 810b包括三个存储器块801b、802b和803b、加法器804b、两个乘法器805b和807b和累加器806b。
为了简单,如果存储在存储器802a中的数据是“a”,存储在存储器803a中的数据是“c”,存储在存储器802b中的数据是“b”,并且存储在存储器803b中的数据是“d”,那么图8的存储器和功能单元的配置实现复数乘法或者(ac-bd)+j(ad+bc)。特别地,SPA控制器112可以将指令传送给SPA 810a和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示出了在一组SPA 910上分区的示例信号处理加速系统。特别地,可以在12×12网格(未示出所有144个SPA)中配置一组SPA 910。该组SPA 910分区为五个网格:网格900、901、902、903和904,并且分区可以是静态的,使得组不能动态地改变。网格900是4×4网格,其包括十六个SPA并且接收来自FPGA(诸如FPGA 108)或者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形成提供九个SPA 401-409中的SPA对之间的连接的网格路由构造。如关于图4所描述的,网络400可以被用于替换图3中所示的SPA 310或者替换图1和2中所示的SPA111中的任一个。可配置的互连网络可以包括确定如何连接SPA 401-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(诸如HPS 104)接收编程指令。如图1和2中所示,HPS 104可以包括NoC 103和至少一个CPU,其可以被配置为经由NoC 103与SPA控制器112通信。而且,HPS 104上的NoC 103可以经由包括多个DSP处理器204的处理器区域202中的另一NoC 202与SPA控制器112通信。
术语“FPGA”的以上使用是示例性的,并且应当被认为包括各种类型的集成电路,包括但不限于商业FPGA器件、复杂可编程逻辑器件(CPLD)器件、可配置专用集成电路(ASSP)器件、可配置数字信号处理(DSP)和图形处理单元(GPU)器件、混合专用集成电路(ASIC)、被描述为具有可编程逻辑核心的ASIC或者具有嵌入式ASIC或者ASSP核心的可编程逻辑器件的(一个或多个)可编程器件。
基于本文的公开内容和教导,对于本领域的普通技术人员而言将明显的是,可以以附图中所图示的实施方式中的软件、固件和硬件的许多不同形式实现如上文所描述的所公开的技术的方面。实现与所公开的技术的原理一致的方面所使用的实际软件代码或者专用硬件是非限制性的。因此,在未参考特定软件代码的情况下描述所公开的技术的方面的操作和行为——应当理解,本领域的普通技术人员将能够设计实现基于本文的描述的方面的软件和硬件。

Claims (18)

1.一种可编程集成电路设备,包括:
在所述可编程集成电路设备的第一区域中的可配置的电路装置;
在所述可编程集成电路设备的第二区域中的信号处理加速器阵列,所述第二区域不同于所述第一区域,其中所述信号处理加速器阵列被可通信地耦合到所述可配置的电路装置并且接收至少一个指令,以至少部分地基于所述一个指令执行针对输入数据的至少一个算术功能,以获得输出数据;以及
互连网络,所述互连网络确定所述信号处理加速器阵列中的信号处理加速器之间的连接。
2.根据权利要求1所述的可编程集成电路设备,其中所述算术功能包括滤波功能。
3.根据权利要求1所述的可编程集成电路设备,包括控制器,所述控制器向所述信号处理加速器发送指令。
4.根据权利要求3所述的可编程集成电路设备,包括片上网络,所述片上网络被可通信地耦合到所述控制器并且传递所述指令。
5.根据权利要求3所述的可编程集成电路设备,其中所述指令包括控制字。
6.根据权利要求1所述的可编程集成电路设备,包括片上网络,所述片上网络被可通信地耦合到所述可配置的电路装置、处理器以及所述信号处理加速器阵列之间并且被用于传递所述指令。
7.根据权利要求1所述的可编程集成电路设备,其中所述信号处理加速器阵列被布置在所述信号处理加速器的二维网格中。
8.根据权利要求1所述的可编程集成电路设备,其中所述可编程集成电路设备包括多个存储器缓冲器,所述多个存储器缓冲器中的每个存储器缓冲器接收来自所述互连网络的数据。
9.根据权利要求8所述的可编程集成电路设备,其中所述多个存储器缓冲器中的每个存储器缓冲器向相应的信号处理加速器提供所接收的数据。
10.根据权利要求9所述的可编程集成电路设备,其中所述可编程集成电路设备包括多个输出存储器缓冲器,所述多个输出存储器缓冲器中的每个输出存储器缓冲器接收来自相应的信号处理加速器的输出数据并且向所述互连网络输出所述输出数据。
11.根据权利要求1所述的可编程集成电路设备,其中所述信号处理加速器中的至少两个信号处理加速器被配置为处理相同的数据。
12.根据权利要求1所述的可编程集成电路设备,包括:
处理器;以及
在所述处理器和所述信号处理加速器阵列之间的连接。
13.根据权利要求1所述的可编程集成电路设备,其中所述信号处理加速器阵列是可配置的,以执行前向纠错或接收前向纠错计算。
14.根据权利要求1所述的可编程集成电路设备,其中所述互连网络多个复用器,并且根据所述复用器的确定性配置确定所述信号处理加速器之间的所述连接。
15.一种可编程逻辑系统,包括:
处理系统;
可编程逻辑设备,被可通信地耦合至所述处理系统;以及
信号处理区域,被可通信地耦合至所述可编程逻辑设备和所述处理系统,其中所述信号处理区域包括:
信号处理加速器阵列,其中所述信号处理加速器阵列接收至少一个指令,以至少部分地基于所述一个指令执行针对输入数据的至少一个算术功能,以获得输出数据;以及
互连网络,所述互连网络确定所述信号处理加速器阵列中的信号处理加速器之间的连接。
16.根据权利要求15所述的可编程逻辑系统,其中所述可编程逻辑设备包括现场可编程门阵列。
17.根据权利要求15所述的可编程逻辑系统,包括片上网络,所述片上网络有助于所述处理系统和所述可编辑逻辑设备之间的通信。
18.根据权利要求15所述的可编程逻辑系统,其中所述信号处理加速器以二维网格被布置在所述信号处理加速器阵列中。
CN201910412119.2A 2013-09-20 2014-09-22 用于信号处理的混合架构 Active CN110289849B (zh)

Priority Applications (1)

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

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201361880275P 2013-09-20 2013-09-20
US61/880,275 2013-09-20
CN201910412119.2A CN110289849B (zh) 2013-09-20 2014-09-22 用于信号处理的混合架构
CN201480063411.3A CN105745843B (zh) 2013-09-20 2014-09-22 用于信号处理的混合架构
US14/492,717 US9553591B2 (en) 2013-09-20 2014-09-22 Hybrid architecture for signal processing
PCT/US2014/056803 WO2015042533A1 (en) 2013-09-20 2014-09-22 Hybrid architecture for signal processing

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
CN110289849A CN110289849A (zh) 2019-09-27
CN110289849B true CN110289849B (zh) 2023-08-11

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 Before (1)

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

Country Status (3)

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

Families Citing this family (6)

* 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
US10268605B1 (en) * 2014-04-30 2019-04-23 Altera Corporation Hybrid architecture for signal processing and signal processing accelerator
US10606779B2 (en) * 2016-09-16 2020-03-31 Altera Corporation Methods and apparatus for performing partial reconfiguration in a pipeline-based network topology
CN109120241B (zh) * 2017-06-23 2022-03-22 北京遥感设备研究所 一种实数交叉型复系数fir滤波器
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201733292U (zh) * 2010-07-14 2011-02-02 深圳信息职业技术学院 一种信号处理系统及数字接收机

Family Cites Families (17)

* 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
DE60210720T2 (de) * 2001-09-21 2006-11-16 Interuniversitair Microelektronica Centrum Vzw Eine 2D FIFO-Vorrichtung für blockbasierte Kodierung und Verfahren dazu
US7224721B2 (en) 2002-10-11 2007-05-29 The Mitre Corporation System for direct acquisition of received signals
US6680476B1 (en) * 2002-11-22 2004-01-20 Agilent Technologies, Inc. Summed time-of-flight mass spectrometry utilizing thresholding to reduce noise
US8495122B2 (en) * 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
US20060230213A1 (en) * 2005-03-29 2006-10-12 Via Technologies, Inc. Digital signal system with accelerators and method for operating the same
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
US8374986B2 (en) 2008-05-15 2013-02-12 Exegy Incorporated Method and system for accelerated stream processing
US8543635B2 (en) * 2009-01-27 2013-09-24 Xilinx, Inc. Digital signal processing block with preadder stage
US8824973B2 (en) * 2009-12-10 2014-09-02 Telefonaktiebolaget L M Ericsson (Publ) Filtering of a measurement quantity in a mobile communication network
US8369177B2 (en) 2010-03-05 2013-02-05 Micron Technology, Inc. Techniques for reading from and/or writing to a semiconductor memory device
US8710864B2 (en) * 2010-04-23 2014-04-29 Utah State University Dynamically reconfigurable systolic array accelorators
CN103038751B (zh) * 2010-05-28 2016-04-27 爱德万测试公司 具有可变并行性和固件可升级性的灵活存储接口测试器
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201733292U (zh) * 2010-07-14 2011-02-02 深圳信息职业技术学院 一种信号处理系统及数字接收机

Also Published As

Publication number Publication date
US9553591B2 (en) 2017-01-24
CN110289849A (zh) 2019-09-27
CN105745843B (zh) 2019-06-14
WO2015042533A1 (en) 2015-03-26
CN105745843A (zh) 2016-07-06
US20150088948A1 (en) 2015-03-26

Similar Documents

Publication Publication Date Title
CN110289849B (zh) 用于信号处理的混合架构
US10572224B2 (en) Methods and apparatus for sequencing multiply-accumulate operations
CN110383237B (zh) 可重新配置的矩阵乘法器系统和方法
US10673440B1 (en) Unified programmable computational memory and configuration network
US9747110B2 (en) Pipelined cascaded digital signal processing structures and methods
US11334504B2 (en) Hybrid architecture for signal processing and signal processing accelerator
JP5408913B2 (ja) 高速かつ効率的な行列乗算ハードウェアモジュール
US7906987B2 (en) Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus
US20220391274A1 (en) Reconfigurable processor and reconfigurable processor system
US7734896B2 (en) Enhanced processor element structure in a reconfigurable integrated circuit device
CN113811859A (zh) 控制流屏障以及可重构数据处理器
JPH07273638A (ja) 複数広域入力機能のためのプログラム式専用fpga機能ブロックを備えたfpgaアーキテクチャ
CN109902063B (zh) 一种集成有二维卷积阵列的系统芯片
US9553590B1 (en) Configuring programmable integrated circuit device resources as processing elements
US20040054818A1 (en) Flexible results pipeline for processing element
EP3047572B1 (en) Hybrid architecture for signal processing
US11016822B1 (en) Cascade streaming between data processing engines in an array
US20100097098A1 (en) Configurable logic device
Chen et al. Fpga framework for agent systems using dynamic partial reconfiguration
JP2013520074A (ja) ミラーリングされた相互接続構造を有するプログラマブル集積回路
US20230267169A1 (en) Sparse matrix dense vector multliplication circuitry
CN112486905A (zh) 可重构异构化pea互连方法
Krichene et al. SCAC-Net: Reconfigurable Interconnection Network in SCAC Massively parallel SoC
CN114443146A (zh) 基于存算一体存储器的矢量处理器及其运行方法
Mushtaq et al. PNOC: Implementation on Verilog for FPGA

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