CN102171682B - 用于高效fft和fir硬件加速器的计算模块 - Google Patents
用于高效fft和fir硬件加速器的计算模块 Download PDFInfo
- Publication number
- CN102171682B CN102171682B CN200980139643.1A CN200980139643A CN102171682B CN 102171682 B CN102171682 B CN 102171682B CN 200980139643 A CN200980139643 A CN 200980139643A CN 102171682 B CN102171682 B CN 102171682B
- Authority
- CN
- China
- Prior art keywords
- data
- value
- output terminal
- hardware accelerator
- multiplexer
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Discrete Mathematics (AREA)
- Complex Calculations (AREA)
Abstract
一种可运行在FFT模式和FIR模式的硬件加速器。硬件加速器可接收输入数据和系数数据并为所选择的模式执行计算。在FFT模式,计算基2FFT,产生对应于两个复数四个实数输出。在FIR模式,产生一个实数输出。硬件加速器可使用三个复用器从FFT模式向FIR模式转换。所有FIR组件可以在FFT模式中使用。可以增加寄存器来提供流水线操作支持。硬件加速器可以支持多个数值表示系统。
Description
技术领域
本发明涉及一种用于计算FFT和FIR值的加速器。
背景技术
在许多工程应用的信号处理中需要对快速傅里叶变换(FFT)和有限冲激响应(FIR)算法求解。在工程文献中对FFT和FIR的应用都进行了丰富的描述。
FFT是一种计算离散傅里叶变换(DFT)及其逆运算的算法。
FIR滤波器是一类数字滤波器,其冲激响应在充分长时间之后逐渐趋向于零。
在计算FFT和FIR值时提高效率是信号处理系统的设计者坚持不懈的当前目标。
发明内容
描述了用于生成FFT和FIR值的高效硬件加速器的计算模块。硬件加速器具有用于接收数值的输入端和用于选择操作模式(例如FFT模式或者FIR模式)的模式选择器输入端。计算模块由主逻辑运算单元和第二逻辑运算单元构成。主逻辑运算单元处于FIR操作模式时输出FIR值;处于FFT操作模式时输出第一FFT值。主逻辑运算单元给第二逻辑运算单元提供中间值,第二逻辑运算单元输出另外的FFT值而不考虑操作模式。在一些实施例中,可以增加寄存器来提供流水线支持。硬件加速器可以支持多种数值表示系统。
一个方面,硬件加速器包括多个数值输入端,主逻辑运算单元和第二逻辑运算单元。多个数值输入端用于接收数值。主逻辑运算单元被配置为输出中间值和第一结果,第一结果是通过收到第一模式信号时对数值求第一代数表达式的值和收到第二模式信号时求第二代数表达式的值来确定的。第二逻辑运算单元被配置为输出第二结果,第二结果是通过对中间值求第三代数表达式的值来确定的。
在硬件加速器的一些实施例中,主逻辑运算单元包括多个复用器,每个复用器被配置为当收到第一模式信号时选择第一输入端以及当收到第二模式信号时选择第二输入端。在一些实施例中,主逻辑运算单元还包括四个乘法器和三个加法器。
在一些实施例中,数值包括n-1个系数值C0,C1,…,Cn-1和n-1个数据值X0,X1,…,Xn-1,其中n是正整数。当收到第一模式信号时,乘法器、加法器和数值输入端被多个复用器连接来求第一代数表达式的值,第一代数表达式是C0X0+C1X1+C2X2+…+Cn-1Xn-1。
在一些实施例中,当收到第二模式信号时,乘法器、加法器和数值输入端被多个复用器连接来求第二代数表达式的值,第二代数表达式是X0+C0X2+C1X3。在一些实施例中,中间值包括第一中间值I1,此处I1=X1,和第二中间值I2,此处I2=C2X2+C3X3;第二逻辑运算单元包括用于求第三代数表达式值的第二加法器,第三代数表达式是I1+I2。
在一些实施例中,中间值包括第三中间值I3,此处I3=X0,以及第四中间值I4,此处I4=C0X2+C1X3。在一些实施例中,第二逻辑运算单元还包括用于输出第三结果的第一减法器,第三结果通过对中间值求第四代数表达式的值来确定,第四代数表达式是I3-I4;还包括用于输出第四结果的第二减法器,第四结果通过对中间值求第五代数表达式的值来确定,第五表达式是I1-I2。
在硬件加速器的一些实施例中,数值被编码为浮点数。
在硬件加速器的一些实施例中,数值被编码为定点数。
在一些实施例中,硬件加速器还包括多个寄存器,这些寄存器被配置为实现流水线操作。
在另一方面,硬件加速器包括模式选择器输入端,多个数据输入端,多个系数输入端;第一、第二和第三复用器;第一、第二、第三和第四乘法器;第一、第二、第三和第四加法器;以及第一和第二减法器。模式选择器输入端提供模式信号。多个数据输入端接收数字数据值,多个数据输入端包括第一、第二、第三和第四数据输入端。多个系数输入端接收数字系数值,多个系数输入端包括第一、第二、第三和第四系数输入端。第一复用器有第一复用器输出端,第一复用器输出端用于当模式信号处于第一状态时提供从第一数据输入端接收的数字数据值,以及当模式信号处于第二状态时提供从第三数据输入端接收的数字数据值。第二复用器有第二复用器输出端,第二复用器输出端用于当模式信号处于第一状态时提供从第二数据输入端接收的数字数据值,以及当模式信号处于第二状态时提供从第四数据输入端接收的数字数据值。第一乘法器有用于提供第一乘积的第一乘法器输出端,第一乘积是从第一系数输入端接收的数字的系数值与从第一复用器输出端接收的数字数据值的乘积。第二乘法器有用于提供第二乘积的第二乘法器输出端,第二乘积是从第三系数输入端接收的数字系数值与从第三数据输入端接收的数字的数据值乘积。第三乘法器有用于提供第三乘积的第三乘法器输出端,第三乘积是从第二系数输入端接收的数字系数值与从第二复用器输出端接收的数字数据值的乘积。第四乘法器有用于提供第四乘积的第四乘法器输出端,第四乘积是从第四系数输入端接收的数字系数值与从第四数据输入端接收的数字数据值的乘积。第一加法器有用于提供第一和的第一加法器输出端,第一和是从第一乘法器接收的第一乘积与从第三乘法器接收的第三乘积的总和。第二加法器有用于提供第二和的第二加法器输出端,第二和是从第二乘法器接收的第二乘积与从第四乘法器接收的第四乘积的总和。第三复用器有用于提供第三复用器输出数据的第三复用器输出端,当模式信号处于第一状态时,第三复用器输出数据是从第二加法器接收的第二和,以及当模式信号处于第二状态时,第三复用器输出数据是从第一数据输入端接收的数字数据值。第三加法器有用于提供第一输出数据的第一输出端,第一输出数据是从第三复用器接收的第三复用器输出数据与从第一加法器接收的第一和的总和。第四加法器有用于提供第二输出数据的第二输出端,第二输出数据是从第二数据输入端接收的数字数据值与从第二加法器接收的第二和的总和。第一减法器有用于提供第三输出数据的第三输出端,第三输出数据是从第一数据输入端接收的数字数据值与从第一加法器接收的第一和的差。第二减法器有用于提供第四输出数据的第四输出端,第四输出数据是从第二数据输入端接收的数字数据值与从第二加法器接收的第二和的差。
在一些实施例中,硬件加速器还包括多个寄存器,其中所述多个寄存器被配置为实现流水线操作。
在一些实施例中,硬件加速器还包括编码选择器输入端,该编码选择器输入端被配置为提供指定数值编码模式的信号。在一些实施例中,数值编码模式至少在浮点数模式和定点数模式之间可选。
仍在又一方面,硬件加速器包括多个数值输入端,多个数字系数输入端,多个复用器,多个乘法器,第一多个加法器,第二多个加法器以及多个减法器。多个数值输入端各自用于接收数值。多个数字系数输入端各自用于接收数字系数。多个复用器各自由模式信号控制并被连接到多个数值输入端的至少一个。多个乘法器各自被配置为输出一个数字的系数与一个数值之间的乘积。第一多个加法器各自被配置为输出来自多个乘法器输出的两个乘积的总和。第二多个加法器各自被配置为输出一个数值与由第一多个加法器中的一个输出的和之间的总和。多个减法器各自被配置为输出一个数值与由第一多个加法器中的一个输出的和之间的差。
在又一个方面,硬件加速器包括多个数值输入端,主逻辑运算单元和第二逻辑运算单元。多个数值输入端用于接收数值。主逻辑运算单元有第一输出端和多个中间输出端,第一输出端被配置为当模式信号对应于FIR状态时,输出用数值计算出的FIR值,以及当模式信号对应于FFT状态时,输出用数值计算出的第一FFT值;而且,多个中间输出端被配为输出用数值计算出的中间值。第二逻辑运算单元有多个第二输出端用于输出第二FFT值,第二逻辑运算单元被配置为基于中间值计算第二FFT值而不考虑模式信号。
在硬件加速器的一些实施例中,主逻辑运算器还包括四个乘法器,各自被配置为接收两个数值并输出这两个数值的乘积;两个加法器,各自被配置为输出两个乘积之和,这两个乘积从乘法器输出;和第三加法器,被配置为当模式信号对应于FIR状态时,对所述两个加法器的输出求和并且将该和作为FIR值输出。
在一些实施例中,硬件加速器还包括多个寄存器,其中所述多个寄存器被配置为实现流水线操作。
在一些实施例中,硬件加速器还包括编码选择器输入端,该编码选择器输入端被配置为提供指定数值编码模式的信号。在一些实施例中,数值编码模式至少在浮点数模式和定点数模式之间可选。
附图说明
结合附图阅读下述的详细描述可以更好地理解本发明及其实施例。这些附图中,元件并不必须按比例绘制。一般而言,在多个附图中出现的相应元件由相同的参考标记进行标识。在这些附图中:
图1是强调输入端的硬件加速器的实施例的简化框图;
图2是硬件加速器的实施例的框图;
图3是被配置为FIR模式的图2的硬件加速器的实施例的框图;
图4是被配置为FFT模式的图2的硬件加速器的实施例的框图;以及
图5是可流水线操作的硬件加速器的实施例的框图;
具体实施方式
存在高效地计算FFT和FIR值的需求。提出一种用于高效FIR和FFT硬件加速器的计算模块来满足上述需求。这样的硬件加速器可以用在数字信号处理器(DSP)和其他类型的微处理器中。该硬件加速器支持基本上使用相同硬件的FFT模式和FIR模式。在一些实施例中,FIR硬件就是FFT硬件的子集。
图1示出硬件加速器100的实施例。硬件加速器的模式(例如FFT或FIR)可以由例如模式选择器输入端80上的信号的状态来确定。(例如,模式选择信号可以是二进制信号,其用高位或者“1”状态表示选择FIR模式和用低位或者“0”状态表示选择FFT模式,或者反之亦然。)硬件加速器可以接收来自数据输入端20的输入数据。在一些实施例中,数据输入端20包括输入端22、输入端24、输入端26和输入端28。系数数据可由硬件加速器经系数输入端10来接收。在一些实施例中,系数输入端10包括输入端12、输入端14、输入端16和输入端18。硬件加速器100提供输出端60。在一些实施例中,数据输出端60包括输出端62、输出端64、输出端66和输出端68。
输入数据和系数数据可包括以任何适当的形式表示的数值。在一些实施例中,数值表示系统是可选择的。编码选择器输入端90可用于指定硬件加速器100的数值表示系统。进而,输入和输出的解释和使用依赖于被选择的数值表示系统。
一些实施例中,硬件加速器可以被视为具有主逻辑运算单元110和第二逻辑运算单元120。这两个逻辑运算单元可以由接口130操作性地连接。主逻辑运算单元包含以FIR模式计算期望的输出所需的所有硬件。第二逻辑运算单元包含以FTT模式计算需要的附加输出所需的所有附加硬件。
主逻辑运算单元110可以执行输入数据和系数数据的代数运算,并根据操作模式在输出端62上提供FIR输出数据或者第一FFT输出数据。代数运算可由嵌入主逻辑运算单元110的元件来执行和辅助,例如复用器、乘法器、加法器、减法器和类似元件。主逻辑运算单元110也可在中间输出端上经由接口130向第二逻辑运算单元120提供中间数据。
第二逻辑运算单元执行中间数据的代数运算并分别在输出端64、输出端66和输出端68上提供第二、第三和第四FFT数据。代数运算可由嵌入第二逻辑运算单元120的元件来执行和辅助,例如复用器、乘法器、加法器、减法器和类似元件。
在一些实施例中,需要主逻辑运算单元的每个嵌入式元件来执行FIR计算,并且需要主逻辑运算单元和第二逻辑运算单元的每个嵌入元件执行FFT计算。换句话说,在一些实施例中主逻辑运算单元的每个元件用于所有计算,第二逻辑运算单元的每个元件用于每次FFT计算。图2中详细示出了这样的硬件加速器的实施例。
硬件加速器100包括几个不同类型的元件:复用器(MUX)(例如72)、乘法器(例如32)、加法器(例如42)和减法器(例如56)。
复用器72、76和78可以根据控制信号选择左输入信号或者右输入信号,并且复制所选择的信号作为输出信号。乘法器32、34、36和38可以接收第一输入信号和第二输入信号,并产生乘积作为输出。加法器42、44、52和54可以接收第一输入信号和第二输入信号,并产生和作为输出。最后,减法器56和58可以接收第一输入信号和第二输入信号,从第一输入信号减去第二输入信号,并产生差作为输出。
硬件加速器100能进行FIR计算和基2(也称为“radix 2”)FFT计算。加法器54和减法器56和58组成了第二逻辑运算单元120。其他元件组成了主逻辑运算单元110(在图2中未标注)。注意,图2的实施例中,第二逻辑运算单元120没有复用器,并且因此操作可不依赖于模式选择器的模式输入(图1)。
作为复用器操作的示例,参考MUX 72。MUX 72分别从连接到左输入端70的数据输入端22和连接到右输入端71的数据输入端26接收数据。取决于在控制输入端73收到的控制信号,MUX 72复制左输入端79上的输入信号或者右输入端71上的输入信号到输出端75上。在一些实施例中,在控制输入端73、77和79收到的控制信号是从模式选择器输入端80接收的(图1)。
作为乘法器操作的示例,参考乘法器32。乘法器32在输入端30和31上分别接收来自MUX72的输出端和系数输入端12的输入信号。内部执行乘法运算,并且乘积被提供到输出端33上。
作为加法器操作的示例,参考加法器54。加法器54在输入端50和51上分别接收来自输入端24和加法器44的数据。内部执行加法运算,并且和被提供到输出端64上。
作为减法器操作的示例,参考减法器56。减法器56在输入端55和57上分别接收来自数据输入端22和加法器42的输出端的数据。内部执行减法运算,从输入端55上的数据值减去输入端57上的数据值。该差被提供为输出端66上的数据。
本领域技术人员可以明白在图示的实施例中采用的复用器、乘法器和其他组成元件的合适设计。
输入端12、14、16、18、22、24、26和28各自可以携带包含任意数量比特位的数字信号。对于硬件加速器100,输入端12、14、16、18、22、24、26和28分别携带信号C0,C1,C2,C3,X0,X1 X2和X3。这些数字信号包括数值信息,该数值信息可以表示为浮点数、定点数或者由任何其他适当的数值表示系统表示。
在一些实施例中,硬件加速器100可以在各种数值表示系统之间切换。可以任何适当的方法向硬件加速器100指定数值表示系统。在一些实施例中,由编码选择器输入端90接收的信号可以指定数值表示系统。每个元件可以被配置为接收关于数值表示系统的信息以确保合适的计算。在一些实施例中,输入信号和/或系数信号可包含指定数值表示系统的信息。例如,系数信号10可采用指定数值表示系统的头部编码作为开端。
在使用浮点表示的一些实施例中使用24位乘法器和加法器/减法器。在使用定点表示的一些实施例中使用32位乘法器和80位加法器/减法器。然而,本发明及其实施例绝不受操作数大小的限制。
FIR运算
已经描述了硬件加速器100的总体的功能,现提供以FIR模式运算的示例。
在FIR模式,期望的数据输出信号O62是:
O62=C0X0+C1X1+C2X2+C3X3 1
这里,所有符号表示实数。应注意该期望的数据输出要求四个乘法步骤和三个加法步骤。
图3示出了被配置为FIR模式的硬件加速器的运算。X0,X1,X2和X3的数据值分别由数据输入端22、24、26和28提供。类似地,C0,C1,C2和C3的值分别由系数输入端12、14、16和18提供。期望的数据输出信号O62被提供到输出端62上。在FIR模式不需要输出端64、66和68上的数据输出。
模式选择器输入端80(图1)分别向MUX72和76的控制输入端73和77提供信号,这对应于选择左输入端。在图3中,这个选择被图示为MUX72和76的左输入端和输出端之间的连接线101。MUX 72将X0传递到乘法器32,同时MUX76将X1传递到乘法器36。模式选择器输入端80向MUX 78的控制输入端79提供信号,这对应于选择右输入端;即加法器44的输出端。图3中,MUX 78的选择被图示为右输入端和输出端之间的连接线103。
复用器为该配置时,期望的数据输出被提供到输出端62上。应指出只有第二逻辑运算单元120的元件(即,加法器54和减法器56和58)提供未被使用的结果。所有其他元件用于产生公式1的解作为输出端62上的数据。
硬件加速器100(图1)通常可支持任何适当数量的FIR项的计算。FIR输出信号可以数学形式表示为:
其中Xn和Cn分别表示数据值和系数值,以及N是FIR项的适当数量。如图2和3所示硬件加速器100的实施例表示了N=4的情况。
FFT运算
已经描述了硬件加速器100进行FIR模式运算的示例,现提供进行FFT模式运算的示例。
为了计算基2 FFT,采用两个复数A和B作为数据输入,并且采用复数W和其共轭复数W*作为系数输入。复数数据输入A的实部和虚部为AR和AI。明确表示如下:
AR=Re{A}=X0 2
AI=Im{A}=X1
类似地,为B定义BR和BI:
BR=Re{B}=X2 3
BI=Im{B}=X3
最后,为W定义WR和WI:
WR=Re{W}=C0=C3 4
WI=Im{W}=-C1=C2
由于信号被输入硬件加速器100,这些信号与信号标记相关联。
基2FFT的期望输出是A+WB和A-WB。这些都是复数,复数可用四个实数表示。FFT计算的四个数据输出是:
O62=AR+BRWR-BIWI 5
O64=AI+BRWI+BIWR 6
O66=AR-(BRWR-BIWI) 7
O68=AI-(BRWI+BIWR) 8
O62和O64分别是A+WB的实部和虚部;O66和O68分别是A-WB的实部和虚部。
图4示出了FFT模式的硬件加速器100的示例配置。A的实部和虚部分别被写到输入端22(X0=AR)和输入端24(X1=AI)上。B的实部和虚部分别被写到输入端26(X2=BR)和输入端28(X3=BI)上。WR被写到输入端12(C0=WR)和18(C3=WR)上,同时WI和-WI分别被写到输入端14(C2=WI)和16(C1=-WI)。MUX 72和76都处于由连接线102所表示的对应于选择右输入端的状态中。MUX 78处于由连接线104所表示的对应于选择左输入端的状态中。
主逻辑运算单元产生输出O62和中间值I1,I2,I3和I4。中间值与输入值相关:
I1=X1=AI 9
I2=C2X2+C3X3=BRWI+BIWR 10
I3=X0=AR 11
I4=C0X2+C1X3=BRWR-BIWI 12
第二逻辑运算单元组合中间值来产生输出O64,O66,和O68:
O64=I1+I2 13
O66=I3-I4 14
O68=I1-I2 15
容易证实图4中硬件加速器100的配置在输出端62、64、66和68上分别产生信号O62,O64,O66和O68。
其他实施例
可设想硬件加速器的各种其他实施例。
一些实施例支持指令流水线操作。流水线操作可增加硬件加速器整体吞吐量。图5示出了支持流水线操作的实施例,其中硬件加速器100包括寄存器202至238。
对于流水线操作,只要有足够的内存可用,可以等于硬件加速器中最慢部件的速度来写新数据。通过在执行的每个阶段提供内存,在输入端22、24、26和28上的输入数据可以是位于经由输出端62、64、66和68输出的数据上游的几个计算结果。这里FIR的每个输入组,例如X0,X1,X2,X3,C0,C1,C2和C3,作为数据集。
每个寄存器(202至238)有适当数量的内存容量以确保每个数据集可保持同步并且加法器,减法器和乘法器对同一集合里的数据进行运算。可以使用每个部件所需的时间和期望的吞吐量确定寄存器配置。
例如,在一些实施例中,寄存器204比寄存器224存储更多的数据。在来自同一数据集的数据到达寄存器224之前,许多数据值可能在寄存器204进行排队。一旦每个寄存器204、224、226、228和238各自有来自同一数据集的数据,就可以进行加法器52和54以及减法器56和58的运算。
在一些实施例中,第二逻辑运算单元的运算与模式无关;在FIR模式时,第二逻辑运算单元的数据输出可能不提供FIR算法的解。
在一些实施例中,在FIR模式,禁用第二逻辑运算单元120。
在一些实施例中,用CMOS技术实现硬件加速器。
在一些实施例中,MUX 78的输入连接是可转换的:在FIR模式,选择所有复用器的左输入,而在FFT模式,选择所有复用器的右输入。
至此,已描述了至少一个本发明的图示实施例,本领域技术人员可以很容易地进行各种改变、修改和改进。这些改变、修改和改进在本发明范围的预期之中。因此,前面的描述仅仅用于示例,而不意在限定。本发明仅由下述的权利要求及其等同物所限定。
Claims (10)
1.一种硬件加速器,包括:
模式选择器输入端,用于提供模式信号;
多个数据输入端,用于接收数字数据值,所述多个数据输入端包括第一、第二、第三和第四数据输入端;
多个系数输入端,用于接收数字系数值,所述多个系数输入端包括第一、第二、第三和第四系数输入端;
第一复用器,具有第一复用器输出端,所述第一复用器输出端用于当模式信号处于第一状态时提供从第一数据输入端接收的数字数据值,以及当模式信号处于第二状态时提供从第三数据输入端接收的数字数据值;
第二复用器,具有第二复用器输出端,所述第二复用器输出端用于当模式信号处于第一状态时提供从第二数据输入端接收的数字数据值,以及当模式信号处于第二状态时提供从第四数据输入端接收的数字数据值;
第一乘法器,具有用于提供第一乘积的第一乘法器输出端,所述第一乘积是从第一系数输入端接收的数字系数值与从第一复用器输出端接收的数字数据值的乘积;
第二乘法器,具有用于提供第二乘积的第二乘法器输出端,所述第二乘积是从第三系数输入端接收的数字系数值与从第三数据输入端接收的数字数据值的乘积;
第三乘法器,具有用于提供第三乘积的第三乘法器输出端,所述第三乘积是从第二系数输入端接收的数字系数值与从第二复用器输出端接收的数字数据值的乘积;
第四乘法器,具有用于提供第四乘积的第四乘法器输出端,所述第四乘积是从第四系数输入端接收的数字系数值与从第四数据输入端接收的数字数据值的乘积;
第一加法器,具有用于提供第一和的第一加法器输出端,所述第一和是从第一乘法器接收的第一乘积与从第三乘法器接收的第三乘积的总和;
第二加法器,具有用于提供第二和的第二加法器输出端,所述第二和是从第二乘法器接收的第二乘积与从第四乘法器接收的第四乘积的总和;
第三复用器,具有用于提供第三复用器输出数据的第三复用器输出端,当模式信号处于第一状态时,所述第三复用器输出数据是从第二加法器接收的第二和,以及当模式信号处于第二状态时,所述第三复用器输出数据是从第一数据输入端接收的数字数据值;
第三加法器,具有用于提供第一输出数据的第一输出端,所述第一输出数据是从第三复用器接收的第三复用器输出数据与从第一加法器接收的第一和的总和;
第四加法器,具有用于提供第二输出数据的第二输出端,所述第二输出数据是由第二数据输入端接收的数字数据值与从第二加法器接收的第二和的总和;
第一减法器,具有用于提供第三输出数据的第三输出端,所述第三输出数据是由第一数据输入端接收的数字数据值与从第一加法器接收的第一和的差;以及
第二减法器,具有用于提供第四输出数据的第四输出端,所述第四输出数据是由第二数据输入端接收的数字数据值与从第二加法器接收的第二和的差。
2.如权利要求1所述的硬件加速器,还包括多个寄存器,其中所述多个寄存器被配置为实现流水线操作。
3.如权利要求1所述的硬件加速器,还包括编码选择器输入端,被配置为提供指定数值编码模式的信号。
4.如权利要求3所述的硬件加速器,其中数值编码模式至少在浮点数模式和定点数模式之间可选。
5.如权利要求2所述的硬件加速器,其中主逻辑运算单元由第一复用器、第二复用器、第一、第二、第三和第四乘法器,以及第一、第二和第三加法器构成,并且其中第二逻辑运算单元由第四加法器、第一减法器、第二减法器构成。
6.如权利要求1所述的硬件加速器,其中:
所述数字系数值包括n-1个系数值C0,C1,…,Cn-1,和所述数字数据值包括n-1个数据值X0,X1,…,Xn-1,其中n是正整数;以及
当模式信号处于第一状态时,根据以下代数表达式计算所述第一输出数据:
C0X0+C1X1+C2X2+…+Cn-1Xn-1。
7.如权利要求1所述的硬件加速器,所述数字系数值包括n-1个系数值C0,C1,…,Cn-1,和所述数字数据值包括n-1个数据值X0,X1,…,Xn-1,其中n是正整数;
其中当模式信号处于第二状态时,根据以下代数表达式计算所述第一输出数据:
X0+C0X2+C1X3。
8.如权利要求1所述的硬件加速器,其中:
所述数字系数值包括n-1个系数值C0,C1,…,Cn-1,和所述数字数据值包括n-1个数据值X0,X1,...,Xn-1,其中n是正整数;以及
其中根据以下代数表达式计算所述第二输出数据:
X1+C2X2+C3X3。
9.如权利要求1所述的硬件加速器,其中:
所述数字系数值包括n-1个系数值C0,C1,…,Cn-1,和所述数字数据值包括n-1个数据值X0,X1,…,Xn-1,其中n是正整数;
其中根据以下代数表达式计算所述第三输出数据:
X0-(C0X2+C1X3)。
10.如权利要求1所述的硬件加速器,其中:
所述数字系数值包括n-1个系数值C0,C1,…,Cn-1,和所述数字数据值包括n-1个数据值X0,X1,…,Xn-1,其中n是正整数;
其中根据以下代数表达式计算所述第四输出数据:
X1-(C2X2+C3X3)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/188,634 US8239442B2 (en) | 2008-08-08 | 2008-08-08 | Computing module for efficient FFT and FIR hardware accelerator |
US12/188634 | 2008-08-08 | ||
PCT/US2009/004460 WO2010016888A2 (en) | 2008-08-08 | 2009-08-04 | Computing module for efficient fft and fir hardware accelerator |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102171682A CN102171682A (zh) | 2011-08-31 |
CN102171682B true CN102171682B (zh) | 2014-05-07 |
Family
ID=41653893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980139643.1A Active CN102171682B (zh) | 2008-08-08 | 2009-08-04 | 用于高效fft和fir硬件加速器的计算模块 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8239442B2 (zh) |
CN (1) | CN102171682B (zh) |
WO (1) | WO2010016888A2 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8909687B2 (en) * | 2012-01-19 | 2014-12-09 | Mediatek Singapore Pte. Ltd. | Efficient FIR filters |
US9279883B2 (en) * | 2013-02-19 | 2016-03-08 | Infineon Technologies Ag | Method and device for radar applications |
JP6003744B2 (ja) * | 2013-03-22 | 2016-10-05 | 富士通株式会社 | 演算処理装置及び演算処理方法 |
US9785444B2 (en) | 2013-08-16 | 2017-10-10 | Analog Devices Global | Hardware accelerator configuration by a translation of configuration data |
KR102273023B1 (ko) | 2014-10-16 | 2021-07-05 | 삼성전자주식회사 | 화질 개선 알고리즘 처리 방법 및 장치 |
KR102001222B1 (ko) | 2015-07-07 | 2019-07-17 | 삼성전자주식회사 | 신호 처리 장치 및 방법 |
CN105827217B (zh) * | 2016-03-03 | 2018-10-12 | 深圳市紫光同创电子有限公司 | 一种有限长冲激响应滤波电路及可编程逻辑器件 |
CN113010147B (zh) * | 2021-02-24 | 2023-01-06 | 歌尔微电子股份有限公司 | Fft运算装置及麦克风 |
DE102021212453A1 (de) | 2021-11-04 | 2023-05-04 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung eingetragener Verein | Verfahren zur approximativen berechnung von schmetterlingseinheiten einer fourier-transformation eines signales |
DE102021212454A1 (de) | 2021-11-04 | 2023-05-04 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung eingetragener Verein | Verfahren zum trainieren und/oder ausführen eines faltungsbasierten neuronalen netzes mittels einer approximierten schnellen fourier-transformation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549106A (zh) * | 1995-08-31 | 2004-11-24 | ض� | 在分组数据上执行乘-加运算的装置 |
EP1758030A1 (en) * | 2005-08-22 | 2007-02-28 | Matsushita Electric Industrial Co., Ltd. | Dynamically reconfigurable shared baseband engine |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6556044B2 (en) * | 2001-09-18 | 2003-04-29 | Altera Corporation | Programmable logic device including multipliers and configurations thereof to reduce resource utilization |
US6385634B1 (en) * | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
US7346644B1 (en) * | 2000-09-18 | 2008-03-18 | Altera Corporation | Devices and methods with programmable logic and digital signal processing regions |
US7127482B2 (en) * | 2001-11-19 | 2006-10-24 | Intel Corporation | Performance optimized approach for efficient downsampling operations |
US7685405B1 (en) * | 2005-10-14 | 2010-03-23 | Marvell International Ltd. | Programmable architecture for digital communication systems that support vector processing and the associated methodology |
-
2008
- 2008-08-08 US US12/188,634 patent/US8239442B2/en active Active
-
2009
- 2009-08-04 CN CN200980139643.1A patent/CN102171682B/zh active Active
- 2009-08-04 WO PCT/US2009/004460 patent/WO2010016888A2/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1549106A (zh) * | 1995-08-31 | 2004-11-24 | ض� | 在分组数据上执行乘-加运算的装置 |
EP1758030A1 (en) * | 2005-08-22 | 2007-02-28 | Matsushita Electric Industrial Co., Ltd. | Dynamically reconfigurable shared baseband engine |
Also Published As
Publication number | Publication date |
---|---|
WO2010016888A3 (en) | 2011-03-31 |
CN102171682A (zh) | 2011-08-31 |
US20100036898A1 (en) | 2010-02-11 |
US8239442B2 (en) | 2012-08-07 |
WO2010016888A2 (en) | 2010-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102171682B (zh) | 用于高效fft和fir硬件加速器的计算模块 | |
US9104510B1 (en) | Multi-function floating point unit | |
CN104111816B (zh) | Gpdsp中多功能simd结构浮点融合乘加运算装置 | |
US4490807A (en) | Arithmetic device for concurrently summing two series of products from two sets of operands | |
US11042360B1 (en) | Multiplier circuitry for multiplying operands of multiple data types | |
CN101763338B (zh) | 一种点数可变的混合基fft/ifft实现装置及其方法 | |
JP5544240B2 (ja) | マルチmacアーキテクチャにおける低電力firフィルタ | |
CN110221808A (zh) | 向量乘加运算的预处理方法、乘加器及计算机可读介质 | |
KR20220007700A (ko) | 행렬 연산들을 위한 장치 및 방법 | |
US4135249A (en) | Signed double precision multiplication logic | |
CN102707931A (zh) | 一种基于并行数据通道的数字信号处理器 | |
CN102043760A (zh) | 数据处理方法及系统 | |
CN114968173A (zh) | 基于ntt和intt结构的多项式乘法运算方法和多项式乘法器 | |
EP3841461B1 (en) | Digital circuit with compressed carry | |
CN114816335B (zh) | 一种忆阻器阵列符号数乘法实现方法、装置及设备 | |
CN101923459A (zh) | 一种用于数字信号处理的可重构乘加算数运算单元 | |
US6023719A (en) | Signal processor and method for fast Fourier transformation | |
Li et al. | Case studies of logical computation on stochastic bit streams | |
Ke et al. | High-performance montgomery modular multiplier with NTT and negative wrapped convolution | |
CN200976573Y (zh) | 采样率转换器 | |
CN103870437A (zh) | 数字信号处理装置及其处理方法 | |
Nielsen | Number systems and digit serial arithmetic | |
KR100900790B1 (ko) | 재구성형 프로세서 연산 방법 및 장치 | |
JP2696903B2 (ja) | 数値計算装置 | |
JP2008158855A (ja) | 相関演算器及び相関演算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |