CN101847137A - 一种实现基2fft计算的fft处理器 - Google Patents
一种实现基2fft计算的fft处理器 Download PDFInfo
- Publication number
- CN101847137A CN101847137A CN200910097236A CN200910097236A CN101847137A CN 101847137 A CN101847137 A CN 101847137A CN 200910097236 A CN200910097236 A CN 200910097236A CN 200910097236 A CN200910097236 A CN 200910097236A CN 101847137 A CN101847137 A CN 101847137A
- Authority
- CN
- China
- Prior art keywords
- multiplexing
- computing
- dish
- multiplexing module
- level
- 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
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
公开一种实现基2FFT计算的FFT处理器,对于Nn点的基2FFT处理器,包括:地址映射模块,第一、二级复用模块,第三、……、log2N级复用模块,N为2的整数次幂。该实现方法采用一种同址运算结构,其优势在于每级复用模块结构相同,在第一级复用模块输入数据进行一次地址映射变换,以后各级通过简单复用完成地址映射,降低硬件的复杂度,第一、二级为单列复用,既减少硬件面积,又提高FFT工作频率,第三至第log2N级复用模块采用一种改进型碟形运算单元。本发明的改进型碟形运算单元仅用1个乘法器和2个加法器在6个时钟周期内完成一级复用模块的整个碟形运算。与已有技术的基2-FFT中一级模块碟形运算单元结构配置了4个乘法器和6个加法器相比,增加4个时钟周期,但硬件电路和芯片面积以及器件功耗均可大幅度减小。
Description
技术领域
本发明属于信号处理领域,涉及FFT处理器结构,具体涉及基2FFT处理器的硬件实现方法。
背景技术
快速傅立叶变换FFT在图形处理,信号分析,数字信号处理,GPS卫星定位,医学图象处理,物理学、数论、组合数学、信号处理、概率论、统计学、密码学、声学、光学、海洋学、结构动力学等领域都有着广泛的应用。由于用硬件实现FFT有软件不可比拟的速度优势。通常,用基2FFT算法来处理长度为2n信号的FFT运算。N点基2的快速傅立叶变换因为其广泛的用途和自身的特殊性,要求其硬件实现的运算速度快,并且要兼顾硬件面积,两者之间必须有良好的均衡。
为解决上述技术问题,现有技术中,如2009年1月28日公开的,公开号为200810046075.8,名称为“一种蝶形运算FFT处理器”的中国发明专利,公开了一种用CORDIC旋转算法实现的基4FFT运算方法。该方法通过12阶旋转运算才能完成一次复数乘法运算。如果再加上此后进行的复数加减法运算,需要13个时钟周期才能完成一次蝶形运算,这很难满足FFT处理器工作频率较高的要求。该发明方法为了避免复数乘法运算而采用复杂的控制逻辑,用于硬件实施复杂的控制逻辑必然要增加额外的硬件成本,从而导致该电路结构的IC芯片面积加大。
发明内容
本发明的目的是为了克服现有技术的缺陷,在分析算法特点的基础上作了研究和改进,提出一种基2FFT算法的FFT处理硬件电路结构及其实现方法,实现了运算速度和硬件面积的有效均衡,并将蝶形运算单元的电路结构移植到其他2n点的多点FFT运算硬件结构中,一一得以实现。
本发明目的是通过以下的技术方案来实现。
一种实现基2FFT计算的FFT处理器,包括地址映射单元,其在于还包括:
(1)基2的N点的FFT处理器由1~log2N级组成,N为FFT运算点数;
(2)第1、2级为单列的一类复用模块,第1、第2两级复用单列的一类复用模块;
(3)单列的一类复用模块中包含有一个简化型碟形运算单元;
(4)第3~第log2N级的{(log2N)-2}级复用的另一类复用模块;
(5)另一类复用模块中包含有一个改进型碟形运算单元;
(6)每级采用一种同址运算结构。
所述第1、2级单列的一类复用模块中的简化型碟形运算单元,其蝶形运算仅为加法运算。第1、2级旋转因子简单,不用复数乘法运算,将第1、2两级独立出来,仅用加法运算即可以完成蝶形运算,而且第1、2级复用该单列的一类复用模块,和不单列、不复用的碟形运算单元相比,减少了硬件芯片面积,并能提高工作频率。与已有技术将第1、2级与第3、……、log2N作为一类进行复用相比,减少了完成FFT运算所需的时钟周期。
所述第1、2级单列的复用结构为复用模块,该复用模块的电路结构是一个碟形运算单元,它包括两个加法器、两个寄存器以及一个多路选择器;两个输入信号端与两个加法器的一个输入端相连接,每个加法器的输出端连接到对应的一个寄存器,并使各寄存器的输出通过一个多路选择器反馈到对应加法器的另一个输入端,该单列的一类复用模块的电路结构能够实现加法运算和碟形运算相结合的运算,与将加法和碟形运算的加减法分开运算相比,能使硬件电路芯片的面积缩小。
所述第3~第log2N级复用的另一类复用模块,该复用模块为一个独立的硬件;第3~log2N级的每一级的旋转因子为复数,各级的碟形运算都有复数乘法运算,每级所需的硬件电路结构相同,各级碟形运算都复用这一级独立的硬件,第3~第log2N级的每一级复用该另一类复用模块是通过状态机控制多路选择器来实现数据输入和旋转因子的选择控制,从而完成第3~第log2N各级的运算,该复用结构和不复用相比,简化了地址映射单元的结构,减少了硬件芯片面积。
所述另一类复用模块中的改进型碟形运算单元的电路结构包括一个乘法器、两个加法器、两个寄存器以及一个多路选择器;乘法器的输出和两个加法器的一个输入端相连接,每个加法器的输出端连接到对应的一个寄存器,并使各寄存器的输出通过一个多路选择器反馈到对应加法器的另一个输入端;该复用模块结构实现复数乘法和碟形运算相结合的运算,与将复数乘法和碟形运算的加减法分开的其他算法相比,能使硬件电路芯片的面积成倍缩小。
所述同址运算结构为在输入数据进行一次地址映射变换之后,以后同类各级结构相同,通过简单的复用完成地址映射的运算结构;第一、二级一类的每级和第3、……、log2N级一类的每级采用一种同址运算结构,其优势在于每级结构相同,硬件的复杂度得以降低和简化。
所述同址运算结构为采用按时间抽取算法的通用性运算结构,蝶形运算采用包括一个乘法器、两个加法器、两个寄存器以及一个多路选择器的改进型碟形运算单元作流水运算,得到规格化的运算结果,完成一次蝶形运算花费6个系统时钟周期,增加或减少运算点数N只需要增加存储空间和地址发生器位数。
由按时间抽区(DIT)FFT基本运算可知,基2的N点的FFT由log2N级组成,而且每级会有N/2个的蝶形运算单元。FFT第1级的旋转因子由:WN 0=1构成,第2级旋转因子由:WN 0=1和W2 1=-i组成。前两级运算为一般乘法,无须进行复数乘法运算,可以直接使用加法器完成整个碟形运算。将第一级和第二级独立单列为作加法运算,而将其他级另列为作复数乘法运算。
第3、......、log2N各级的蝶形运算中都有较复杂的复数乘法,本发明提出一种同址运算结构,第3、......、log2N各级的蝶形运算中的复数乘法,各级采用同址运算结构,统一用一级电路对各级进行复用,使该电路结构的IC芯片面积得以减少。
每级采用一种同址运算结构,该同址运算结构是由最基本的FFT运算变换而来,以8点基2FFT运算为例,最基本FFT运算结构和经变换后的同址运算结构如图10所示。
第3、......、log2N级的复用结构中包含了一种改进型碟形运算单元。改进型碟形运算单元包括一个碟形运算单元、一个复数加法器、一个复数减法器。最基本FFT运算的蝶形运算模式为如图6所示,一个碟形运算单元是由一个复数乘法器完成图6中603所示的运算,一个复数加法器完成图6中602所示的运算,一个复数减法器完成图6中的604所示的运算构成。已有技术复数乘法器包含四个实数乘法器和三个实数加法器,结构尤显复杂。本方案提出一种改进型蝶形运算单元,其结构是将复数乘法内部的加法器和碟形运算的加法器合二为一,在碟形运算外部状态机的控制下将复数乘法和碟形运算的元件进行公用,从而,有效的减少芯片面积。如图7所示为改进型碟形运算单元。
本发明的实质性效果:
1、本发明采用第1、2级单列和第3、……、log2N级复用模块和改进型碟形运算单元电路结构,IC芯片面积成倍的减小。
2、本发明的各级结构采用相同的同址运算结构,输入数据进行一次地址映射变换,以后通过简单的复用完成地址映射,使硬件的复杂度得以降低。
3、本发明构成的硬件电路实现了运算速度快,兼顾硬件面积小,两者之间得到了良好的均衡。
4、新型蝶形运算单元的电路结构可以移植到其他2n点的多点FFT运算硬件结构中,具有良好的应用前景。
附图说明
图1是以32点基2FFT为例的现有技术基2FFT处理器结构。
图2是以32点基2FFT为例的本发明改进的基2FFT处理器结构。
图3是以32点基2FFT为例的本发明中第1、2级独立分列的复用结构图。
图4是以32点基2FFT为例的本发明使用的地址映射单元的地址映射示意图。
图5是以32点基2FFT为例的本发明中第3、4、5级的复用模块结构组成框图。
图6是现有技术碟形运算单元的碟形运算模式示意图。
图7是本发明实施例的改进型碟形运算单元电路结构组成框图。
图8是本发明中完成一级碟形运算的时序数据流示意图。
图9是本发明基2FFT处理器结构组成框图。
图10a为以8点基2FFT为现有技术采用的碟形运算图。
图10b为以8点基2FFT为实施例的本发明采用的碟形运算图。
具体实施方式
为更好的理解和更清晰的阐述本发明,下面以32点基2FFT为例,结合具体实施方式对本发明进行更为详细的描述。
图1是现有技术基2FFT处理器结构,该结构采用decimation-in-timeradix-2FFT算法,其计算公式如下:
式中:X(k)为离散傅立叶变换前N/2点的值;为离散傅立叶变换后N/2点的值;k=1,2,…,N/2-1;n为基2数据的比特值。
图2是本发明所采用的改进型基2FFT处理器结构。以32点基2FFT为例,将32位输入数据进行重新排序的过程,采用bit-reversal方法。32=25,对于0≤n≤31的数据可以用5比特的二进制数来表示:
n=(b4 b3 b2 b1 b0)≡b424+b323+b222+b121+b020,参见表一。显然,采用bit-reversal将原32位输入数据重新排序后,形成地址映射。
在本实施例中采用五级结构,各级结构相同,即各级的相临x(n),x(n+1)进行蝶形运算(n=1,3,5……31),输出结果按照以下规则执行:若X(K),K为偶数,则发送到x(K/2)的下级;若K为奇数,则发送到x(16+(k-1)/2),进行下一级的碟形运算。改规则简单,而且各级情况相同,避免了图1中所示现有技术基2FFT处理器的复杂的数据交替和旋转系数选择。
图3所示的第一、二两级结构是独立单列的复用模块结构,地址映射单元输出301连接多路选择器302的输入端,外部状态机303的控制输出连接多路选择器302的控制端,多路选择器302的输出端连接到碟形运算单元的输入端304,数据输入后(参见304)、进行数据运算取得中间结果(参见305)以及和映射地址(参见306);形成映射地址的输出连接判断器307,判断是否是第二级?若是第二级,由308线接到第三级输入端;若不是第二级,发送到309,将虚数部分取其补并与实数交换位置,同时,将交换位置后的输出部分,经310线反馈到多路选择器302。外部状态机是本复用模块之外的部件,其输出的控制信号由时钟信号CLK提供。
经过地址映射之后的初始输入数据301加到多路选择器302,在外部状态机303的控制下,控制多路选择器302对地址映射单元输出301送来的输入数据进行选择,多路选择器302将输入数据排列为304形式,由308形成数据运算的中间结果,中间结果的排列为305形式,再对中间结果进行地址映射,地址映射后的数据重排为306形式,数据运算结果从306输出,经过307判断,如果是第1级的数据运算完成,则把数据的虚部取其补码与实部交换位置后,经由310传输到302进行第2级运算数据处理。如果307判断,为第2级数据运算完成,则把数据输出经由308送到第3级。前两级旋转因子简单,可以独立出来进行运算,避免采用复杂的复数乘法。而且,第1和第2两级结构相同,用一个多路选择器302对第1、2级进行复用。第1级系数为1,第2级系数为1和-i,对第2级中系数为-i的运算用将其虚部取补再与实部交换位置的方法进行。显而易见,整个第1、第2两级的运算完全避免采用复数乘法的运算。
图4为以32点基2FFT为例的地址映射单元示意图,32点基2FFT的地址映射关系如图4所示。输入数据的排列为401形式,进行地址变换后,输出部分数据的排列如402所示,其地址映射关系表达式:
r=bitrev(n)=n=(b0 b1 b2 b3 b4)≡b024+b123+b222+b321+b420。
图5所示为本发明中第3、4、5级复用模块的结构。该复用模块的结构包括第3级输入501、多路选择器502、外部状态机503、碟形运算单元504、旋转因子存储单元505、数据地址变换映射器506和数据寄存器507。复用模块结构中的碟形运算单元504,是复用结构中最关键的单元。多路选择器502连接第3级运算的数据输入501、外部状态机503控制输出端和数据寄存器507的输出端,碟形运算单元504连接多路选择器502输出端和旋转因子存储单元505读数端,碟形运算单元504输出端连接数据地址变换映射器506,数据地址变换映射器506输出端连接数据寄存器507。
现有技术中的碟形运算单元的结构,通常包括1个复数乘法器即4个实数乘法器,2个复数加法器即6个实数加法器。图6为现有技术碟形运算单元的碟形运算模式示意图。参见图6,601表示为一个输入数据Ar+jAi,603表示为另一个输入信号Br+jBi与旋转因子相乘结果,它是用复数乘法器来完成,602表示为蝶形运算单元的一个分支输出数据 和604表示为碟形运算单元的另一个分支输出 它们都是用一个复数加法器来完成,605“-1”表示为604和602输出不同之处在于602用复数加法运算,而604用复数减法运算。
本发明中的改进型蝶行运算单元的结构组成如图7所示,它是一种改进型蝶行运算单元电路结构。该电路结构利用了蝶形运算中复数乘法必须比复数加法先完成这个特点,将复数乘法中的加法器在复数乘法完成之后复用给复数加法运算,这样仅用1个实数乘法器,2个实数加法器就可全部完成整个蝶形运算。改进型蝶行运算单元由A信号端口701和B信号端口702,实数乘法器703,实数加法器704和705,多路选择器706、711和714,寄存器707、708组成,其运算部件还包括寄存器712、713、715、716以及内部状态机709组成,其中712、713、715、716是外部寄存器R3、R4、R5、R6,内部状态机709为各多路选择器提供状态控制信号。A信号端口701和B信号端口702的数据加到实数乘法器703进行乘法运算,实数乘法器703的输出分两路分别连接加法器704和705的一个输入端,加法器704和705的另一个输入端连接多路选择器706的选择输出,而多路选择器706的三个输入端:一个是由加法器704经过R1寄存器707输出的反馈信号,另一个是由加法器705经过R2寄存器708输出的反馈信号,第三个输入端“0”是STATE状态复位信号710。加法器704的输出同时加到多路选择器711的输入端,加法器705的输出同时加到多路选择器714的输入端,内部状态机709控制输出端连接多路选择器711和714的控制端,为多路选择器711和714提供的状态控制信号,控制多路选择器711选择输出到R3外部寄存器712或R4外部寄存器713,同样,控制多路选择器714选择输出到R5外部寄存器715或R6外部寄存器716。显而易见,改进型蝶行运算单元的电路仅有一个实数乘法器703,二个加法器704和705,二个寄存器707和708,以及多路选择器706、711和714,改进后的电路构成十分简单。
图8示出了改进型碟形运算单元的时序流程图。参见图8,改进型蝶行运算单元的工作过程按整体数据流简述如下:图8中的801和802所示为二个蝶行运算周期之始,蝶行运算是以CLK时钟周期为数据流的控制信号,以32点基2FFT蝶行运算为例,状态机提供括从0到5共6个状态控制。0状态时,输入数据Br,Wr分别经过A端口701和B端口702输入。1状态时,数据Br,Wr完成乘法运算,运算结果为Br*Wr,并存储到R1寄存器707和R2寄存器708,在此状态,多路选择器706选择的是0输入,即不进行加法运算,端口A、B输入数据变为Bi、Wi。2状态时,端口A的输入变为Ar,端口B的输入变为1,多路选择器706选择输出R1和R2中的值分别输出到加法器704和705,在加法器704和705中与已经完成乘法运算的Bi*Wi值取补,进行加法运算,所得结果存回R1,R2中。3状态时,端口A,B的输入数据变为Br,Wi,多路选择器706选择输出R1,R2中的值,其中R1的值为加法器704的一个输入,加法器704的另一个输入为Ar,在加法器704完成Ar+Br*Wr-Bi*Wi的运算;R2的值取补之后为加法器705的一个输入,R2的另一个值为Ar,在加法器705完成Ar-(Br*Wr-Bi*Wi)的运算。4状态时,端口A,B的输入数据变为Wr,Bi,运算Br*Wi的结果存入R1寄存器707,R2寄存器708中,同时将上一状态的结果分别输出到R3外部寄存器710,R5外部寄存器712中。5状态时,输入端口A,B的输入数据值分别为Ai,1,多路选择器706选择输出R1、R2中的值分别输出到加法器704,705中和已经完成的乘法运算的Br*Wi进行加法运算,运算结果Bi*Wr+Br*Wi返回存入R1、R2中。在下一级的0状态时,把R5外部寄存器712中的数据当作端口A的输入,端口B的输入为下一级碟形运算所需的旋转因子的实数部分Wr,此时多路选择器706选择输出R1,R2中的值,其中R1的值为加法器704的一个输入,加法器704的另一个输入为Ar,在加法器704完成Ai+Br*Wi+Bi*Wr的运算;R2的值取补之后为加法器705的一个输入,R2的另一个值为Ar,在加法器705完成Ai-(Br*Wi+Bi*Wr)的运算,然后将运算所得数据分别存入外部寄存器R4、R6中。这样一级碟形运算全部结束,而且为下一级碟形运算端口也准备好数据,可以继续进行下一级碟形运算。
本发明实施例基2FFT处理器结构组成如图9所示。基2FFT处理器由依次连接的地址映射单元902,第1、2级复用模块903和第3~log2N级复用模块904组成,地址映射单元902的输入端连接N点数据输入901,第3~log2N级复用模块904的输出为FFT运算结果输出。参见图7,复用模块整个碟形运算是由内部状态机709控制信号进行控制,按照图6所示的碟形运算模式进行碟形运算。在初始状态801,碟形运算开始,状态机控制信号709为STATE=0,各端口和寄存器值为初值,A端口701输入数据Br,B端口702输入数据Wr,各寄存器值为0。状态机控制信号709为STATE=1,进入状态1,乘法器703输出为Br*Wr,多路选择器706控制将一个加数为Br*Wr和另一个加数为“0”分别送到加法器704和705的输入端,加法器704和705把输出的Br*Wr值分别存入寄存器R1和寄存器R2中,同时变化输入,在A端口输入数据为Bi,在B端口的输入数据为Wi。在进入状态2(STATE=2)后,在A端口输入为Ar,在B端口输入为1,多路选择器706受控制分别将一个加数为寄存器R1、R2中的值和另一个加数为Bi*Wi的补码,送到加法器704和705,加法器704和705将得到的结果Br*Wr-Bi*Wi寄存到寄存器R1、R2中。在进入状态3(STATE=3)后,A端口输入为Br,端口B输入为Wi,多路选择器706控制送到加法器704的一个加数为Ar,另一个加数为寄存器R1中的Rr*Wr-Bi*Wi,于是加法器704得到结果为Ar+(Rr*Wr-Bi*Wi)的值,存到寄存器R1。同时,多路选择器706控制送到加法器705的一个加数为Ar,另一个加数为R2中的Rr*Wr-Bi*Wi的补码值,这样加法器705输出得到Ar-(Rr*Wr-Bi*Wi)的值,存到寄存器R2。进入状态4(STATE=4)后,A端口输入为Bi,B端口输入为Wr,将寄存器R1中的数据Ar+(Rr*Wr-Bi*Wi)转存到外部寄存器R3,将寄存器R2中的数据Ar-(Rr*Wr-Bi*Wi)转存到外部寄存器R5,并将Wi*Br再存入寄存器R1和R2中。进入状态5(STATE=5)后,A端口的输入为Ai,B端口的输入为1,同时运算Br*Wi+Bi*Wr,并分别存入寄存器R1和R2中,进入状态5(STATE=5)后,运算Ai+(Wi*Br+Bi*Wr)存入寄存器R1中,因为补码的加法运算与原码的减法运算相同,所以可以用加法器得到Ai-(Wi*Br+Wr*Bi)的结果存入寄存器R2中,一个蝶形运算完成。接下来,进入802,第二个碟形运算开始,(请修改)状态机控制信号709又为STATE=0,将寄存器R5中的Ai-(Wi*Br+Wr*Bi)数据送到A端口,B端口的输入数据Wr’,各外部寄存器值又为0,运算Ai+(Wi*Br+Bi*Wr)存入寄存器R1中,运算Ai-(Wi*Br+Wr*Bi)存入寄存器R2中。状态机控制信号709为STATE=1,进入状态1,同时变化输入,在A端口输入数据为Wr’,将寄存器R2中Ai-(Wi*Br+Wr*Bi)数据加到B端口,寄存器R1中Ai+(Wi*Br+Bi*Wr)存入寄存器R4中,寄存器R2中的Ai-(Wi*Br+Wr*Bi)存入寄存器R6中。以此类推,完成一个个蝶形运算。当A端口和B端口的输入信号为0,不再进行下一个蝶形运算,则整个蝶形运算完成。
以8点基2FFT运算为例,最基本FFT运算结构参见图10a,经变换后本发明的同址运算结构如图10b所示。图10a中1001所示为现有技术中FFT运算采用的整体结构图,图10b中1003所示为本发明采用的FFT同址运算整体结构图,两者运算结构不同,但是运算结果图10a中1002和图10b中1004所示的运算结果完全相同。现有技术中不采用复用的碟形运算图和本发明采用复用的碟形运算图对比,由于本发明将第1、2级独立出来进行复用,这样和现有技术不把1、2级独立出来复用相比会带来工作频率的提高,将第3、……、log2N独立出来进行复用,这样和现有技术没有进行复用的相比会带所用的硬件芯片面积减少。
本发明的蝶形运算单元的电路结构移植到其他2n点的多点FFT运算硬件结构中,可应用于任何包含基2的碟形运算,如混合基中同时有基4,基8,基2的FFT运算。
尽管上面对本发明的具体实施方式进行描述,但本发明不限具体实施方式范围,对本技术领域的普通技术人员来讲,只要各种变化在权利要求所限定和确定的本发明的构思和技术方案范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
表一
输入二进制形式 | 输入地址 | 输出映射地址 | 输出二进制形式 |
00000 | 0 | 0 | 00000 |
00001 | 1 | 16 | 10000 |
00010 | 2 | 8 | 01000 |
00011 | 3 | 24 | 11000 |
00100 | 4 | 4 | 00100 |
00101 | 5 | 20 | 10100 |
00110 | 6 | 12 | 01100 |
输入二进制形式 | 输入地址 | 输出映射地址 | 输出二进制形式 |
00111 | 7 | 28 | 11100 |
01000 | 8 | 2 | 00010 |
01001 | 9 | 18 | 10010 |
01010 | 10 | 10 | 01010 |
01011 | 11 | 26 | 11010 |
01100 | 12 | 6 | 00110 |
01101 | 13 | 22 | 10110 |
01110 | 14 | 14 | 01110 |
01111 | 15 | 30 | 11110 |
10000 | 16 | 1 | 00001 |
10001 | 17 | 17 | 10001 |
10010 | 18 | 9 | 01001 |
10011 | 19 | 25 | 11001 |
10100 | 20 | 5 | 00101 |
10101 | 21 | 21 | 10101 |
10110 | 22 | 13 | 01101 |
10111 | 23 | 29 | 11101 |
11000 | 24 | 3 | 00011 |
11001 | 25 | 19 | 10011 |
11010 | 26 | 11 | 01011 |
11011 | 27 | 27 | 11011 |
11100 | 28 | 7 | 00111 |
输入二进制形式 | 输入地址 | 输出映射地址 | 输出二进制形式 |
11101 | 29 | 23 | 10111 |
11110 | 30 | 15 | 01111 |
11111 | 31 | 31 | 11111 |
Claims (8)
1.一种实现基2FFT计算的FFT处理器包括地址映射单元,其特征在于,还包括:
(1)基2的N点的FFT处理器由1~log2N级组成,N为FFT运算点数;
(2)第1、2级为单列的一类复用模块,第1、第2两级复用单列的一类复用模块;
(3)单列的一类复用模块中包含有一个简化型碟形运算单元;
(4)第3~第log2N级的{(log2N)-2}级复用的另一类复用模块;
(5)另一类复用模块中包含有一个改进型碟形运算单元;
(6)每级采用一种同址运算结构。
2.根据权利要求书1所述的一种实现基2FFT计算的FFT处理器,其特征在于,所述第1、2级单列的一类复用模块中的简化型碟形运算单元,其蝶形运算仅为加法运算;
第1、2级旋转因子简单,不用复数乘法运算,将第1、2两级独立出来,仅用加法运算就能完成蝶形运算,而且第1、2级复用该单列的一类复用模块,和不单列、不复用的碟形运算单元相比,减少了硬件芯片面积,并能提高工作频率。
3.根据权利要求书1或2所述的一种实现基2FFT计算的FFT处理器,其特征还在于,所述单列的的一类复用模块中的简化型碟形运算单元的电路结构包括两个加法器、两个寄存器以及一个多路选择器;两个输入信号端与两个加法器的一个输入端相连接,每个加法器的输出端连接到对应的一个寄存器,并使各寄存器的输出通过一个多路选择器反馈到对应加法器的另一个输入端;该单列的一类复用模块的电路结构能够实现加法运算和碟形运算相结合的运算,与将加法和碟形运算的加减法分开运算相比,能使硬件电路芯片的面积缩小。
4.根据权利要求书1所述的一种实现基2FFT计算的FFT处理器,其特征还在于,所述第3~第log2N级复用的另一类复用模块,该复用模块为一个独立的硬件;第3~log2N级的每一级的旋转因子为复数,各级的碟形运算都有复数乘法运算,每级所需的硬件电路结构相同,各级碟形运算都复用这一级独立的硬件,第3~第log2N级的每一级复用该另一类复用模块是通过状态机控制多路选择器来实现数据输入和旋转因子的选择控制,从而完成第3~第log2N各级的运算,该复用结构和不复用相比,简化了地址映射单元的结构,减少了硬件芯片面积。
5.根据权利要求书1或4所述的一种实现基2FFT计算的FFT处理器,其特征还在于,所述另一类复用模块中的改进型碟形运算单元的电路结构包括一个乘法器、两个加法器、两个寄存器以及一个多路选择器;乘法器的输出和两个加法器的一个输入端相连接,每个加法器的输出端连接到对应的一个寄存器,并使各寄存器的输出通过一个多路选择器反馈到对应加法器的另一个输入端;该复用模块结构实现复数乘法和碟形运算相结合的运算,与将复数乘法和碟形运算的加减法分开的其他算法相比,能使硬件电路芯片的面积成倍缩小。
6.根据权利要求书1或2或3或4所述的一种实现基2FFT计算的FFT处理器,其特征还在于,所述同址运算结构是在输入数据进行一次地址映射变换之后,以后同类各级结构相同,通过简单的复用完成地址映射的运算结构;同类每级采用一种同址运算结构,其优势在于每级结构相同,硬件的复杂度得以降低。
7.根据权利要求书5所述的一种实现基2FFT计算的FFT处理器,其特征还在于,所述同址运算结构是在输入数据进行一次地址映射变换之后,以后同类各级结构相同,通过简单的复用完成地址映射的运算结构;同类每级采用一种同址运算结构,其优势在于每级结构相同,硬件的复杂度得以降低。
8.根据权利要求书1或7所述的一种实现基2FFT计算的FFT处理器,其特征还在于,所述同址运算结构为采用按时间抽取算法的通用性运算结构,蝶形运算采用包括一个乘法器、两个加法器、两个寄存器以及一个多路选择器的改进型碟形运算单元作流水运算,得到规格化的运算结果,完成一次蝶形运算花费6个系统时钟周期,增加或减少运算点数N只需要增加存储空间和地址发生器位数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910097236 CN101847137B (zh) | 2009-03-27 | 2009-03-27 | 一种实现基2fft计算的fft处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910097236 CN101847137B (zh) | 2009-03-27 | 2009-03-27 | 一种实现基2fft计算的fft处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101847137A true CN101847137A (zh) | 2010-09-29 |
CN101847137B CN101847137B (zh) | 2013-04-24 |
Family
ID=42771761
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910097236 Expired - Fee Related CN101847137B (zh) | 2009-03-27 | 2009-03-27 | 一种实现基2fft计算的fft处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101847137B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105528191A (zh) * | 2015-12-01 | 2016-04-27 | 中国科学院计算技术研究所 | 数据累加装置、方法及数字信号处理装置 |
CN105608055A (zh) * | 2016-01-27 | 2016-05-25 | 南京阿尔法莱瑞通信技术有限公司 | 一种基于位串架构的蝶形运算单元、fft处理器及方法 |
CN108319804A (zh) * | 2018-04-17 | 2018-07-24 | 福州大学 | 一种低资源调用的8192点基2 dit asic电路设计方法 |
CN111562900A (zh) * | 2020-07-20 | 2020-08-21 | 长沙海格北斗信息技术有限公司 | 用于高精度导航的fft计算方法、计算模块及其芯片 |
CN112383497A (zh) * | 2020-11-10 | 2021-02-19 | 展讯半导体(成都)有限公司 | 5g系统中ofdm变换方法及相关产品 |
CN112732339A (zh) * | 2021-01-20 | 2021-04-30 | 上海微波设备研究所(中国电子科技集团公司第五十一研究所) | 一种分时复用时间抽取fft实现方法、系统及介质 |
CN112765536A (zh) * | 2021-01-26 | 2021-05-07 | 中国科学院半导体研究所 | 一种可配置的fft架构系统 |
CN113378108A (zh) * | 2020-02-25 | 2021-09-10 | 珠海市煊扬科技有限公司 | 音频处理装置的快速傅立叶变换电路 |
CN113625048A (zh) * | 2021-08-19 | 2021-11-09 | 杭州万高科技股份有限公司 | 一种智能电表芯片及智能电表 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100378719C (zh) * | 2005-06-16 | 2008-04-02 | 中国航天时代电子公司第七七一研究所 | 基2单路深度延时反馈的流水线构成fft处理器的实现方法 |
-
2009
- 2009-03-27 CN CN 200910097236 patent/CN101847137B/zh not_active Expired - Fee Related
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105528191B (zh) * | 2015-12-01 | 2017-04-12 | 中国科学院计算技术研究所 | 数据累加装置、方法及数字信号处理装置 |
CN105528191A (zh) * | 2015-12-01 | 2016-04-27 | 中国科学院计算技术研究所 | 数据累加装置、方法及数字信号处理装置 |
CN105608055A (zh) * | 2016-01-27 | 2016-05-25 | 南京阿尔法莱瑞通信技术有限公司 | 一种基于位串架构的蝶形运算单元、fft处理器及方法 |
CN105608055B (zh) * | 2016-01-27 | 2018-07-31 | 南京阿尔法莱瑞通信技术有限公司 | 一种基于位串架构的蝶形运算单元、fft处理器及方法 |
CN108319804A (zh) * | 2018-04-17 | 2018-07-24 | 福州大学 | 一种低资源调用的8192点基2 dit asic电路设计方法 |
CN108319804B (zh) * | 2018-04-17 | 2023-08-08 | 福州大学 | 低资源调用的8192点基2 dit asic设计方法 |
CN113378108A (zh) * | 2020-02-25 | 2021-09-10 | 珠海市煊扬科技有限公司 | 音频处理装置的快速傅立叶变换电路 |
CN111562900A (zh) * | 2020-07-20 | 2020-08-21 | 长沙海格北斗信息技术有限公司 | 用于高精度导航的fft计算方法、计算模块及其芯片 |
WO2022100578A1 (zh) * | 2020-11-10 | 2022-05-19 | 展讯半导体(成都)有限公司 | 5g系统中ofdm变换方法及相关产品 |
CN112383497A (zh) * | 2020-11-10 | 2021-02-19 | 展讯半导体(成都)有限公司 | 5g系统中ofdm变换方法及相关产品 |
CN112383497B (zh) * | 2020-11-10 | 2023-02-14 | 展讯半导体(成都)有限公司 | 5g系统中ofdm变换方法及相关产品 |
CN112732339B (zh) * | 2021-01-20 | 2022-09-13 | 上海微波设备研究所(中国电子科技集团公司第五十一研究所) | 一种分时复用时间抽取fft实现方法、系统及介质 |
CN112732339A (zh) * | 2021-01-20 | 2021-04-30 | 上海微波设备研究所(中国电子科技集团公司第五十一研究所) | 一种分时复用时间抽取fft实现方法、系统及介质 |
CN112765536A (zh) * | 2021-01-26 | 2021-05-07 | 中国科学院半导体研究所 | 一种可配置的fft架构系统 |
CN112765536B (zh) * | 2021-01-26 | 2023-09-19 | 中国科学院半导体研究所 | 一种可配置的fft架构系统 |
CN113625048A (zh) * | 2021-08-19 | 2021-11-09 | 杭州万高科技股份有限公司 | 一种智能电表芯片及智能电表 |
Also Published As
Publication number | Publication date |
---|---|
CN101847137B (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101847137B (zh) | 一种实现基2fft计算的fft处理器 | |
CN110765709B (zh) | 一种基于fpga的基2-2快速傅里叶变换硬件设计方法 | |
CN101782893B (zh) | 可重构数据处理平台 | |
JP3749022B2 (ja) | 高速フーリエ変換を用いて短い待ち時間でアレイ処理を行う並列システム | |
CN103970720B (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
US20090024685A1 (en) | High Speed and Efficient Matrix Multiplication Hardware Module | |
KR101162649B1 (ko) | 가변적 크기의 고속 직교 변환을 구현하기 위한 방법 및장치 | |
CN102495721A (zh) | 一种支持fft加速的simd向量处理器 | |
KR100989797B1 (ko) | Fft/ifft 연산코어 | |
CN110362293B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN103984677A (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
CN110543291A (zh) | 有限域大整数乘法器及基于ssa算法的大整数乘法的实现方法 | |
CN116710912A (zh) | 一种矩阵乘法器及矩阵乘法器的控制方法 | |
CN101196964B (zh) | 一种抗旁路攻击算法的芯片 | |
CN105718424B (zh) | 一种并行快速傅立叶变换处理方法 | |
CN103034621A (zh) | 基2×k并行fft架构的地址映射方法及系统 | |
CN112799634B (zh) | 一种基于基22mdc ntt结构的高性能环多项式乘法器 | |
CN112559954B (zh) | 基于软件定义可重构处理器的fft算法处理方法及装置 | |
CN104268124A (zh) | 一种fft实现装置和方法 | |
Wang et al. | TCPM: A reconfigurable and efficient Toom-Cook-based polynomial multiplier over rings using a novel compressed postprocessing algorithm | |
CN116561819A (zh) | 一种基于Toom-Cook环上多项式乘法的加解密方法及环上多项式乘法器 | |
CN109284085B (zh) | 一种基于fpga的高速模乘和模幂运算方法及装置 | |
US6704834B1 (en) | Memory with vectorial access | |
CN101923459A (zh) | 一种用于数字信号处理的可重构乘加算数运算单元 | |
CN104951279A (zh) | 一种基于NEON引擎的向量化Montgomery模乘器的设计方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130424 Termination date: 20160327 |