CN111428187A - 一种反馈装置及fft/ifft处理器 - Google Patents
一种反馈装置及fft/ifft处理器 Download PDFInfo
- Publication number
- CN111428187A CN111428187A CN202010211969.9A CN202010211969A CN111428187A CN 111428187 A CN111428187 A CN 111428187A CN 202010211969 A CN202010211969 A CN 202010211969A CN 111428187 A CN111428187 A CN 111428187A
- Authority
- CN
- China
- Prior art keywords
- data
- output
- switching unit
- unit
- complex
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 claims description 47
- 238000000354 decomposition reaction Methods 0.000 claims description 23
- 230000003111 delayed effect Effects 0.000 claims description 8
- 230000000295 complement effect Effects 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 45
- 238000000034 method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 230000009191 jumping Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Images
Classifications
-
- 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
-
- 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
- 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/49—Computations with a radix, other than binary, 8, 16 or decimal, e.g. ternary, negative or imaginary radices, mixed radix non-linear PCM
-
- 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/50—Adding; Subtracting
-
- 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/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
- G06F7/5016—Half or full adders, i.e. basic adder cells for one denomination forming at least one of the output signals directly from the minterms of the input signals, i.e. with a minimum number of gate levels
-
- 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Discrete Mathematics (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种反馈装置及FFT/IFFT处理器,所述装置包括基4级联运算模块;所述基4级联运算模块包括:旋转因子产生单元、复数乘法器、延迟交换单元、蝶形运算单元以及输出交换单元,所述延迟交换单元分别连接蝶形运算单元、复数乘法器和输出交换单元,所述输出交换单元连接所述蝶形运算单元和延迟交换单元,本发明在充分利用复数乘法器的基础上,通过使用双延迟反馈结构电路以及巧妙设计数据延迟缓存通道,使得复数加法器/减法器的使用效率得到有效提高,所需要的复数加法器/减法器数量明显减少,电路效率得到显著提升;有效解决了基4SDF和基4SDC结构占用较多复数加法器/减法器的问题。
Description
技术领域
本发明涉及电子通信技术领域,尤其涉及的是一种反馈装置及FFT/IFFT处理器。
背景技术
快速离散傅里叶变换(FFT)/快速反傅里叶变换(IFFT)是离散傅里叶变换(DFT)/离散反傅里叶变换(IDFT)的快速实现方式,是数字信号处理中常用的技术。
由于DFT和IDFT定义的运算过程非常相似,FFT和IFFT可以采用相同的电路结构和实现方法。
Cooley和Tukey发明了FFT算法,FFT的基本思想是将原有N点序列分解成两个或更多的较短序列并重新组合成原序列的DFT,使间接算法的运算次数比直接计算DFT的运算次数少得多,从而提高DFT的计算速度。
FFT/IFFT的分解运算,按照分解的短序列的个数S,可以将FFT/IFFT算法可以分为若干种,一般称为基-S算法。
理论上分解运算的基S越大,分解算法的效率越高,但实际上由于8点及以上的DFT运算模块需要复数乘法器,而且S越大,对应的DFT运算模块的复数乘法器越多,所以8点及以上的DFT分解算法实际上需要的复数乘法器数量并不少,工程中极少采用,目前的FFT/IFFT处理器基本都是采用基2或者基4的分解算法。
当前FFT处理器的硬件实现结构包括递归结构、流水线结构和全并行结构。
递归结构又叫共享内存结构,所占硬件资源最少,只有一个运算处理单元,但所需运算时间较长,不能连续处理FFT计算请求,只适应于偶尔需要FFT运算的场合;流水线结构采用多级运算单元,前一级运算单元将结果送入下一级运算单元后可计算下一次FFT而无需等待FFT运算完成,流水线结构可连续计算前后数据不重叠的N点FFT;对于前后数据重叠的连续FFT计算,只能采用全并行结构,该结构每一级运算针对点数N设置对应的运算单元,每一级运算时延可低至单个系统时钟周期,可实现任意N点FFT的连续计算,但占用硬件资源巨大。
实际应用中需要作任意N点FFT连续计算的场合非常少,所以采用流水线设计FFT处理器最为普遍。
上述FFT处理器的流水线结构主要有3类:单路延时转接器结构(Single-pathDelay Commutator,SDC)、多路延时转接器结构(Multi-path Delay Commutator,MDC)和单路延时反馈转接器结构(Single-path Delay Feedback,SDF)。
对应地,采用基2算法的FFT处理器流水线结构包括R2SDC、R2SDF、R2MDC等三种结构;采用基4算法的FFT处理器流水线结构包括R4SDC、R4SDF、R4MDC等三种结构。
因为基2SDC(R2SDC)结构在基2蝶形分解运算时与R2SDF相比没有优势,所以基2FFT处理器主要采用基2MDC(R2MDC)和基2SDF(R2SDF)结构。基2MDC和基2SDF结构都具有控制简单易于实现的特点,占用的电路资源也相差不大,其中基2SDF结构需要的存储器少一点,而基2MDC结构的计算时延更短一些。
但基2MDC和基2SDF结构共同的缺点是复数乘法器的利用率较低(只有50%),因此整个FFT处理器需要的复数乘法器数量较多。
由于FFT/IFFT运算由复数乘法和复数加法/减法运算构成,乘法运算远比加法/减法运算复杂,因此FFT处理器的电路规模主要由复数乘法器决定,基2MDC和基2SDF结构的主要缺陷就是复数乘法器利用率过低导致电路资源占用较大。
基4MDC(R4MDC)结构是基4分解算法的三种流水线实现结构中最简单的,但其缺点也非常明显,就是4路延时转接器结构需要独立的复数乘法器、蝶形运算器BF(Butterfly)和存储单元,这些硬件电路单元的利用率低(只有25%),因此采用R4MDC结构的FFT处理器所需要的各种硬件电路单元数量比基2MDC和基2SDF结构还要多,是一种低效率的单通道FFT处理器实现结构。
基4SDF(R4SDF)结构是一种相对高效率的FFT处理器实现结构,因为串行的数据流可以充分的使用复数乘法器,使复数乘法器利用效率达到(75%),而整个FFT处理器所需要的复数乘法器是R2MDC和R2SDF结构的一半;R4SDF结构所需要的存储器空间与R2SDF相当,比R2MDC结构要少三分之一;但R4SDF最大的缺陷在于所需要的复数加法器的数量较大,是R2SDF所需复数加法器数量的2倍。
相比R4SDF结构的不足,R4SDC结构可以有效减少(62.5%)复数加法器,所需复数乘法器的数量也和R4SDF结构一致,但是R4SDC结构所需要的存储器容量相比R4SDF结构增加了(100%),而且R4SDC结构控制逻辑电路非常复杂,实现相对不易。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种反馈装置及FFT/IFFT处理器,旨在解决现有FFT/IFFT处理器中的基4SDF和基4SDC结构占用较多复数加法器/减法器的问题。
本发明解决技术问题所采用的技术方案如下:
一种反馈装置,其中,所述装置包括基4级联运算模块;所述基4级联运算模块包括:旋转因子产生单元、复数乘法器、延迟交换单元、蝶形运算单元以及输出交换单元;所述复数乘法器分别连接所述旋转因子产生单元和延迟交换单元,所述延迟交换单元分别连接所述蝶形运算单元、复数乘法器和输出交换单元,所述输出交换单元连接所述蝶形运算单元和延迟交换单元;
所述旋转因子产生单元用于产生所述基4级联运算模块所需要的旋转因子;
所述复数乘法器用于计算串行输入数据与对应旋转因子的积,并将计算得到的输出数据传输至延迟交换单元;
所述延迟交换单元用于将所述复数乘法器计算得到的输出数据和输出交换单元输出的反馈数据延迟预设时间后并调整输出数据的顺序,再分别传输至蝶形运算单元和输出交换单元;
所述蝶形运算单元用于对所述延迟交换单元的输出数据进行蝶形运算,并将运算结果传输至输出交换单元;
所述输出交换单元从蝶形运算单元的运算结果以及延迟交换单元传输的数据中选择数据输出并反馈给延迟交换单元。
进一步的,所述的反馈装置,其中,所述延迟交换单元包括第一数据选择器、第二数据选择器、第三数据选择器、第一数据延迟器、第二数据延迟器和第三数据延迟器;
所述第一数据选择器分别连接所述复数乘法器、输出交换单元、第一数据延迟器和第二数据延迟器;
所述第二数据选择器分别连接所述复数乘法器、第三数据延时器和蝶形运算单元;
所述第三数据选择器分别连接所述第二数据延迟器、输出交换单元和第三数据延迟器;
所述第一数据延迟器分别连接所述第一数据选择器和蝶形运算单元;
所述第二数据延迟器分别连接所述输出交换单元、第一数据选择器和第三数据选择器;
所述第三数据延迟器分别连接所述第二数据选择器、第三数据选择器和输出交换单元;
所述第一数据选择器用于从所述复数乘法器、输出交换单元或第二数据延迟器的输出数据中选择数据传输至第一数据延迟器中;
所述第二数据选择器用于从所述复数乘法器或第三数据延时器的输出数据中选择数据输出至蝶形运算器中;
所述第三数据选择器用于从所述第二数据延迟器或输出交换单元的输出数据中选择数据传输至第三数据延迟器中;
所述第一数据延迟器用于将所述第一数据选择器选择的数据延迟第一有效时钟周期后传输至蝶形运算单元;
所述第二数据延迟器用于将所述输出交换单元的输出数据延迟第二有效时钟周期后传输至第一数据选择器和第三数据选择器;
所述第三数据延迟器用于将所述第三数据选择器选择的数据延迟第三有效时钟周期后传输至第二数据选择器和输出交换单元。
进一步的,所述的反馈装置,其中,所述延迟交换单元还包括延迟交换状态控制器;
所述延迟交换状态控制器用于根据预设的切换控制指令,分别控制所述第一数据选择器、第二数据选择器和第三数据选择器在不同时刻选择对应的输入数据。
进一步的,所述的反馈装置,其中,所述蝶形运算单元包括复数加法器和复数减法器;
所述复数加法器用于对输入数据分别进行分时加法运算后传输至输出交换单元;
所述复数减法器用于对输入数据分别进行分时减法运算后传输至输出交换单元;
所述复数加法器连接延迟交换单元和输出交换单元;
所述复数减法器连接延迟交换单元和输出交换单元。
进一步的,所述的反馈装置,其中,所述输出交换单元包括第四数据选择器、第五数据选择器和常数乘法器;
所述第四数据选择器分别连接所述蝶形运算单元和延迟交换单元;
所述第五数据选择器分别连接所述蝶形运算单元、常数乘法器和延迟交换单元;
所述常数乘法器分别连接所述蝶形运算单元和第五数据选择器;
所述第四数据选择器用于从所述蝶形运算单元或延迟交换单元的输出数据中选择数据作为计算结果输出;
所述第五数据选择器用于从所述蝶形运算单元或常数乘法器的输出数据中选择数据反馈给延迟交换单元;
所述常数乘法器用于对输入数据的实部和虚部作旋转和取补运算,并将运算结果传输至第五数据选择器。
进一步的,所述的反馈装置,其中,所述输出交换单元还包括输出交换状态控制器;
所述输出交换状态控制器用于根据预设的切换控制指令,分别控制所述第四数据选择器、第五数据选择器在不同时刻选择对应的输入数据。
一种FFT/IFFT处理器,其中,包括L个反馈装置中的基4级联运算模块;
所述L个基4级联运算模块的计算方式如下:
进一步的,所述的FFT/IFFT处理器,其中,对于第i个的基4级联运算模块,所述数据循环周期M计算如下:
M=4N*4-i,,其中,M为某一个基4级联运算模块的数据循环周期,N为FFT运算的长度,i∈[1,L]。
进一步的,所述的FFT/IFFT处理器,其中,所述L个基4级联运算模块中的每一个基4级联运算模块之间采用单路径数据传递。
有益效果:本发明提供一种反馈装置及FFT/IFFT处理器,所述装置包括基4级联运算模块;所述基4级联运算模块包括:旋转因子产生单元、复数乘法器、延迟交换单元、蝶形运算单元以及输出交换单元;所述复数乘法器分别连接所述旋转因子产生单元和延迟交换单元,所述延迟交换单元分别连接蝶形运算单元、复数乘法器和输出交换单元,所述输出交换单元连接所述蝶形运算单元和延迟交换单元;本发明在充分利用复数乘法器的基础上,通过使用双延迟反馈结构电路以及巧妙设计数据延迟缓存通道,使得复数加法器/减法器的使用效率得到有效提高,所需要的复数加法器数量明显减少,电路效率得到显著提升;有效解决了基4SDF和基4SDC结构占用较多复数加法器/减法器的问题。
附图说明
图1是本发明中一种反馈装置中基4级联运算模块的外部接口示意图;
图2是本发明中一种反馈装置中的基4级联运算模块的内部结构示意图;
图3是本发明中一种反馈装置中的基4级联运算模块中蝶形运算单元的外部接口示意图;
图4是本发明中一种反馈装置中的基4级联运算模块中延迟交换单元的外部接口示意图;
图5是本发明中一种反馈装置中的基4级联运算模块中延迟交换单元的内部结构示意图;
图6是本发明中一种反馈装置中的基4级联运算模块中延迟交换单元的工作示意图;
图7是本发明中一种反馈装置中的基4级联运算模块中输出交换单元的外部接口示意图;
图8是本发明中一种反馈装置中的基4级联运算模块中输出交换单元的内部结构示意图;
图9是本发明中一种反馈装置中的基4级联运算模块中输出交换单元的工作示意图;
图10是本发明中一种FFT/IFFT处理器的外部接口示意图;
图11是本发明中一种FFT/IFFT处理器中每一级基4级联运算模块的连接示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明所涉及的反馈装置,鉴于常见流水线结构中基4MDC、基4SDF和基4SDC结构的缺陷,创新性的提出基4算法的单路径双延迟反馈(Radix4Single Path-Double DelayFeedback,R4SP-DDF)结构,在充分利用复数乘法器(利用率75%,与R4SDF和R4SDC结构相同)的基础上,通过使用双延迟反馈结构电路以及巧妙设计数据延迟缓存通道,使得BF2(复数加法器)的使用效率提高(100%),有效解决了基4SDF和基4SDC结构占用较多复数加法器/减法器的问题。相比较R4SDF结构,复数加法器的数量减少(75%),与R4SDC结构相比,复数加法器的数量也减少(33%)。
鉴于上述基4的分解算法的几种FFT/IFFT处理器实现结构(R4SDF/R4SDC/R4MDC)都存在复数加法器利用率较低的缺陷,本发明对FFT运算的基4分解算法进一步分解,令:
则FFT/IFFT处理器的输出序列X(k)可以进一步分解表示成:
根据上述分解过程,基4级联运算模块实现的基4分解运算,大致可以分解成4次加法运算和4次减法运算实现,即基4级联运算模块实现的基4分解运算可以分解成4次加法运算、4次减法运算和1次(-j)乘法运算实现。由于FFT/IFFT处理器的电路中实部和虚部是分离计算的,因此纯虚数(-j)的复数乘法器只需要作简单的数据交换和求补码处理;而4次加法运算和4次减法运算可以通过复数加法器/减法器分时逐个计算实现,这样复数加法器/减法器的利用效率可以得到有效提高(到100%)。
请参见图1,图1是本发明中一种反馈装置中基4级联运算模块的外部接口示意图。
本发明实施例所提供的基4级联运算模块的外部接口包括输入接口和输出接口,其中,输入接口包括:
Reset,Clock,In_DataSync,In_DataEna,In_DataI和In_DataQ,其中reset和clock是全局复位与全局时钟信号,In_DataI和In_DataQ是串行输入数据,In_DataI是输入数据实部(I分部)而In_DataQ是输入数据虚部(Q分部);In_DataEna是数据使能信号,只有当In_DataEna为有效时,输入的In_DataI和In_DataQ才是有效的;In_DataSync是帧同步信号,In_DataSync只在数据帧的第一个数据输入时有效,其他时候In_DataSync均无效;
输出接口包括:
Out_DataSync、Out_DataValid、Out_DataI和Out_DataQ,其中Out_DataI和Out_DataQ是串行数据输出,Out_DataI对应于计算结果的实部(I分部)而Out_DataQ对应于计算结果的虚部(Q分部);Out_DataValid是数据输出有效信号,只有当Out_DataValid为有效时,输出结果的Out_DataI和Out_DataQ才是有效的;Out_DataSync是帧同步信号,Out_DataSync只在帧数据的第一个数据输出时有效,其他时候Out_DataSync均输出无效电平。
请参见图2,所述装置包括基4级联运算模块;所述基4级联运算模块包括:延迟交换单元10、蝶形运算单元20、输出交换单元30、旋转因子产生单元40和复数乘法器50;所述复数乘法器50分别连接旋转因子产生单元40和延迟交换单元10,所述延迟交换单元10分别连接所述蝶形运算单元20、复数乘法器50和输出交换单元30,所述输出交换单元30连接所述蝶形运算单元20和延迟交换单元10;
所述旋转因子产生单元40用于产生所述基4级联运算模块所需要的旋转因子;
所述复数乘法器50用于计算串行输入数据与对应旋转因子的积,并将计算得到的输入数据传输至延迟交换单元10。
所述延迟交换单元10用于将所述复数乘法器50计算得到的输出数据和输出交换单元输出的反馈数据延迟预设时间后并调整输出数据的顺序,再分别传输至蝶形运算单元20和输出交换单元30;
所述蝶形运算单元20用于对所述延迟交换单元10的输出数据进行蝶形运算,并将运算结果传输至输出交换单元30;
所述输出交换单元30从蝶形运算单元20的运算结果以及延迟交换单元10传输的数据中选择数据输出并反馈给延迟交换单元10。
在本实施例中,所述旋转因子产生单元40主要是只读存储器(ROM存储器),保存了基4级联运算模块中所需要的旋转因子与当前基4级联运算模块中的串行输入数据一起输入复数乘法器50相乘,复数乘法器50负责计算串行输入数据与对应旋转因子的积,并将计算的结果送入到延迟交换单元10,其中串行输入数据InData是复数,包括实部(In_DataI)和虚部(In_DataQ),应理解的是,旋转因子产生单元40也可以由硬件电路计算获得,本发明对此不作限定。
更具体的,所述延迟交换单元10是一个三输入三输出的交换电路,三个输入通道分别对应于基4级联运算模块的串行输入数据通道(InData)以及输出交换单元30的两个延迟反馈数据接口(FB+和FB-),延迟交换单元10通过延迟交换状态控制器17使得三个输入端口的数据正确的交换到三个输出数据端口;延迟交换单元10的A1和A2输出端口的数据将送入蝶形运算单元20的两个输入端口,延迟交换单元10的A3输出端口的数据将送入输出交换单元30;蝶形运算单元20的两个数据输入端口皆来自于延迟交换单元10,完成蝶形运算后的结果送入输出交换单元30的B1和B2端口;输出交换单元30也是一个三输入三输出的交换电路,通过输出交换状态控制器34把延迟交换单元10和蝶形运算单元20输入的3个端口的数据合理分配到3个输出端口,输出交换单元30的第一个输出端口对应于基4级联运算模块的输出数据通道(OutData),输出交换单元30的另外2个输出数据端口(FB+和FB-)对应于基4级联运算模块的双延迟反馈路径,这两个端口的数据将反馈给延迟交换单元10的两个输入端口。
进一步地,请参见图3,所述蝶形运算单元20包括复数加法器21和复数减法器22;所述复数加法器21用于对输入数据分别进行分时加法运算;所述复数减法器50用于对输入数据分别进行分时减法运算;所述复数加法器21连接延迟交换单元10和输出交换单元30;所述复数减法器22连接延迟交换单元10和输出交换单元30。
在本实施例中,复数加法器21和复数减法器22为提高使用效率采用分时工作的模式,有时运算输入来自复数乘法器50的输出(计算 ),有时运算输入来自复数加法器21和复数减法器22的反馈(计算E+G,F+J,E-G,F-J),延时交换单元负责复数加法器21和复数减法器22输入数据的延时交换调度,复数乘法器50的输出数据(即串行输入数据乘以旋转因子)和复数加法器21/复数减法器22反馈数据通过延时交换单元在数据通道和时序上的交换调度,输出2路复数数据流分别送入复数加法器21/复数减法器22,保证复数加法器21/复数减法器22高速有效的分时计算;因为复数加法器21/复数减法器22的分时工作模式,其输出结果有时需要反馈给延时交换单元用于下一轮计算(E、F、G、H),有时可以直接输出作为本级基4级联运算模块的输出串行序列(E+G,F+J),有时因为基4级联运算模块间是单数据路径连接所以需要反馈到延时交换单元延后作为本级基4级联运算模块的输出串行序列(E-G,F-J)。
请参见图4和图5,延迟交换单元10是一个三输入三输出的小型交换电路,每个数据输入/输出端口都对应于一路复数数据输入/输出,即每一路输入/输出都包括数据的实部(I支路)和虚部(Q支路),所述延迟交换单元10包括第一数据选择器11、第二数据选择器12、第三数据选择器13、第一数据延迟器14、第二数据延迟器15和第三数据延迟器16;
所述第一数据选择器11分别连接所述复数乘法器50、输出交换单元30、第一数据延迟器14和第二数据延迟器15;
所述第二数据选择器12分别连接所述复数乘法器50、第三数据延时器16和蝶形运算单元20;
所述第三数据选择器13的分别连接第二数据延迟器15、输出交换单元30和第三数据延迟器16;
所述第一数据延迟器14分别连接第一数据选择器11和蝶形运算单元20;
所述第二数据延迟器15分别连接输出交换单元30、第一数据选择器11和第三数据选择器13;
所述第三数据延迟器16分别连接第二数据选择器12、第三数据选择器13和输出交换单元30;
所述第一数据选择器11用于从输入数据中选择数据传输到第一数据延迟器中14;
所述第二数据选择器12用于从输入数据中选择对应的数据输出到蝶形运算器中20;
所述第三数据选择器13用于从输入数据中选择对应的数据传输到第三数据延迟器16中;
所述第一数据延迟器14用于将输入数据延迟第一有效时钟周期后传输至蝶形运算单元20;
所述第二数据延迟器15用于将输入数据延迟第二有效时钟周期后传输至第一数据选择器11和第三数据选择器13;
所述第三数据延迟器16用于将输入数据延迟第三有效时钟周期后传输至第二数据选择器12和输出交换单元30。
其中,第一数据延迟器可以将输入数据延迟M/2个有效时钟周期再输出,第二和第三数据延迟器则表示该延迟器可以将输入数据延迟M/4个有效时钟周期再输出,M=2N×2-iM为基4级联运算模块的数据循环周期,N为FFT运算的长度。第一数据选择器是三输入的数据选择器,第二数据选择器和第三数据选择器是二输入的数据选择器。第一数据选择器负责从3路输入数据中为延时交换单元的A1输出端口(与基4级联运算模块中蝶形运算单元20相连接)选择合适的数据。第一数据选择器的3路输入数据来自于延迟交换单元10的InData、FB+和FB-,三个数据输入端口,分别对应于基4级联运算模块中复数乘法器50的输出以及蝶形运算单元20的输出(通过输出交换单元30以及2路反馈通道)。第二数据选择器负责从2路输入数据中为延迟交换单元10的A2输出端口(与基4级联运算模块中蝶形运算单元20相连接)选择合适的数据。第二数据选择器的2路输入数据一路来自于延迟交换单元10的InData数据输入端口(对应于基4级联运算模块中复数乘法器50的输出)、另外一路来自于第三数据选择器的输出(还需要通过第二数据延迟器)。第三数据选择器负责从2路输入数据中为延迟交换单元10的A3输出端口(在基4级联运算模块中直通输出交换单元30的In_C端口)选择合适的数据。第三数据选择器的2路输入数据分别对应于延迟交换单元10的FB+数据输入端口(即复数加法器21输出对应的反馈通道)和FB-数据输入端口(即复数减法器22输出对应的反馈通道)。
具体的,下面结合图5和图6对延迟交换单元10的工作过程做进一步说明,延迟交换单元10是一个复杂的有限状态机电路,工作状态包括等待状态、启动状态A、启动状态B、启动状态C、循环处理状态A、循环处理状态B、循环处理状态C、循环处理状态D、退出状态A、退出状态B、退出状态C、退出状态D等共计12个状态,不同状态下,延迟交换单元10的三个数据选择器和三个数据延迟器的工作状态定义如下:
等待状态(M/2个数据周期):第一数据选择器、第二数据选择器、第三数据选择器关闭,均无数据输出;第二数据延迟器和第三数据延迟器均无数据;输出端口A1/A2/A3均无输出;基4级联运算模块中的复数加法器21/复数减法器22不工作;与两路反馈路径相连的输入端口FB+和FB-均无数据输入。
启动状态A(M/2个数据周期):第一数据选择器选通来自于InData端口的数据(即基4级联运算模块中复数乘法器50的输出),输入数据依次进入数据延迟器第一数据延迟器;第二数据选择器和第三数据选择器关闭;第二数据延迟器和第三数据延迟器均无数据;输出端口A1/A2/A3均无输出;基4级联运算模块中的复数加法器21/复数减法器22不工作;与两路反馈路径相连的输入端口FB+和FB-均无数据输入。
启动状态B(M/4个数据周期):第二数据选择器选通来自于InData端口的数据(即基4级联运算模块中复数乘法器50的输出),输入数据通过第二数据选择器输出到A2端口送至基4级联运算模块中复数加法器21/复数减法器22的加数/减数端口;与此同时,启动状态A进入第一数据延迟器的输入数据的前M/4个数据从延迟器逐个输出通过A1端口送至基4级联运算模块中复数加法器21/复数减法器22的被加数/被减数端口;复数加法器21/复数减法器22逐个计算E/F,共计计算M/4次;复数加法器21/复数减法器22的计算结果通过两路反馈通道送至FB+/FB-端口,同时第一数据选择器选通来自于FB+端口的数据(即复数加法器21输出对应的反馈通道),复数加法器21的计算结果E依次进入数据延迟器第一数据延迟器,而复数减法器22的计算结果F依次进入第二数据延迟器;此阶段第三数据选择器关闭,无数据输出,第三数据延迟器无数据,A3端口无数据输出。
启动状态C(M/4个数据周期):第二数据选择器选通来自于InData端口的数据(即基4级联运算模块中复数乘法器50的输出),输入数据通过第二数据选择器输出到A2端口送至基4级联运算模块中复数加法器21/复数减法器22的加数/减数端口;与此同时,启动状态A进入第一数据延迟器的输入数据的后M/4个数据也从延迟器逐个输出通过A1端口送至基4级联运算模块中复数加法器21/复数减法器22的被加数/被减数端口;复数加法器21/复数减法器22逐个计算G/H,共计计算M/4次;复数加法器21/复数减法器22的计算结果通过输出交换单元30和两路反馈通道送至FB+/FB-端口,与此同时第三数据选择器选通来自于FB+端口的数据(即复数加法器21输出对应的反馈通道),复数加法器21的计算结果G依次进入第三数据延迟器,而复数减法器22的计算结果H通过输出交换单元30转变成J后依次进入第二数据延迟器;与此同时,第一数据选择器选通与第二数据延迟器相连接的端口,启动状态B进入该数据延迟器的F此时从第二数据延迟器输出,通过第一数据选择器依次进入数据第一数据延迟器,A3端口无数据输出。
循环处理状态A(M/4个数据周期):启动状态B或者循环处理状态C进入第一数据延迟器的数据E逐个输出到A1端口并送至复数加法器21/复数减法器22的被加数/被减数端口;第二数据选择器选通与第二数据延迟器相连接的端口,启动状态C或者循环处理状态D进入第三数据延迟器的G此时从第三数据延迟器输出,通过第二数据选择器和A2输出端口被送至复数加法器21/复数减法器22的加数/减数端口;复数加法器21/复数减法器22逐个计算(E+G)/(E-G),共计计算M/4次;复数加法器21的结果(E+G)被输出交换单元30作为本级基4级联运算模块的输出送至下一级基4级联运算模块,而复数减法器22的结果(E-G)通过反馈通道送至延时交换单元的FB-端口,并依次进入第二数据延迟器;与反馈通道相连的输入端口FB+的数据不被选通,可直接丢弃;与此同时,启动状态C或者循环处理状态D进入第二数据延迟器的数据J依次输出,此时第三数据选择器选通与数据延迟器Delay(M/4)相连接的端口,J依次进入第三数据延迟器;与此同时,下一个循环的输入数据依次从InData端口输入,第一数据选择器此时选通InData端口的数据,下一个循环的输入数据开始进入第一数据延迟器;A3端口的输出数据会被输出交换单元30丢弃。
循环处理状态B(M/4个数据周期):启动状态C或者循环处理状态D进入第一数据延迟器的数据F逐个输出到A1端口并送至复数加法器21/复数减法器22的被加数/被减数端口;第二数据选择器选通与第三数据延迟器相连接的端口,循环处理状态A进入第三数据延迟器的J此时从第三数据延迟器输出,通过第二数据选择器和A2输出端口被送至复数加法器21/复数减法器22的加数/减数端口;复数加法器21/复数减法器22逐个计算(F+J)/(F-J),共计计算M/4次;复数加法器21的结果(F+J)被输出交换单元30作为本级基4级联运算模块的输出送至下一级基4级联运算模块,而复数减法器22的结果(F-J)通过反馈路径送至延时交换单元的FB-端口,并依次进入第二数据延迟器;与反馈路径相连的输入端口FB+的数据不被选通,可直接丢弃;与此同时,循环处理状态A进入第二数据延迟器的数据(E-G)依次输出,此时第三数据选择器选通与第二数据延迟器相连接的端口,(E-G)依次进入第三数据延迟器;与此同时,下一个循环的输入数据依次从InData端口输入,第一数据选择器此时选通InData端口的数据,下一个循环的输入数据开始进入第一数据延迟器;此阶段A3端口的输出数据会被输出交换单元30丢弃。
循环处理状态C(M/4个数据周期):循环处理状态A和循环处理状态B依次进入第一数据延迟器的数据(下一个循环)逐个输出到A1端口并送至复数加法器21/复数减法器22的被加数/被减数端口;与此同时第二数据选择器选通来自于InData端口的数据(也是下一个循环的数据),输入数据通过第二数据选择器输出到A2端口送至基4级联运算模块中复数加法器21/复数减法器22的加数/减数端口;复数加法器21/复数减法器22逐个计算下一个循环的E/F,共计计算M/4次;复数加法器21/复数减法器22的计算结果通过两路反馈通道送至FB+/FB-端口,同时第一数据选择器选通来自于FB+端口的数据,复数加法器21的计算结果(下一个循环的)E依次进入第一数据延迟器,而复数减法器22的计算结果(下一个循环的)F依次进入第二数据延迟器;第三数据选择器选通与第二数据延迟器相连接的端口,循环处理状态B进入第二数据延迟器的数据(当前循环的)(F-J)依次输出,通过第三数据选择器进入第三数据延迟器;与此同时,循环处理状态B进入第三数据延迟器的数据(当前循环的)(E-G)依次输出,通过A3端口送至输出交换单元30的In_C端口,并被输出交换单元30作为本级基4级联运算模块的输出送至下一级基4级联运算模块。
循环处理状态D(M/4个数据周期):循环处理状态A和循环处理状态B依次进入数据延迟器第一数据延迟器的数据(下一个循环)逐个输出到A1端口并送至复数加法器21/复数减法器22的被加数/被减数端口;与此同时第二数据选择器选通来自于InData端口的数据(也是下一个循环的数据),输入数据通过第二数据选择器输出到A2端口送至基4级联运算模块中复数加法器21/复数减法器22的加数/减数端口;复数加法器21/复数减法器22逐个计算下一个循环的G/H,共计计算M/4次;复数加法器21/复数减法器22的计算结果通过两路反馈通道送至FB+/FB-端口,与此同时第三数据选择器选通来自于FB+端口的数据(即复数加法器21输出对应的反馈通道),复数加法器21的计算结果(下一个循环的)G依次进入第三数据延迟器,而复数减法器22的计算结果(下一个循环的)H通过输出交换单元30转变成J后依次进入第二数据延迟器;与此同时,第一数据选择器选通与第二数据延迟器相连接的端口,循环处理状态C进入第二数据延迟器的(下一个循环的)F此时从第二数据延迟器输出,通过第一数据选择器依次进入第一数据延迟器;与此同时,循环处理状态C进入第三数据延迟器的数据(当前循环的)(F-J)依次输出,通过A3端口送至输出交换单元30的In_C端口,并被输出交换单元30作为本级基4级联运算模块的输出送至下一级基4级联运算模块。
退出状态A(M/4个数据周期):循环处理状态C进入数据延迟器第一数据延迟器的数据E逐个输出到A1端口并送至复数加法器21/复数减法器22的被加数/被减数端口;第二数据选择器选通与第三数据延迟器相连接的端口,循环处理状态D进入第三数据延迟器的G此时从第三数据延迟器输出,通过第二数据选择器和A2输出端口被送至复数加法器21/复数减法器22的加数/减数端口;复数加法器21/复数减法器22逐个计算(E+G)/(E-G),共计计算M/4次;复数加法器21的结果(E+G)被输出交换单元30作为本级基4级联运算模块的输出送至下一级基4级联运算模块,而复数减法器22的结果(E-G)通过反馈通道送至延时交换单元的FB-端口,并依次进入第二数据延迟器;与反馈通道相连的输入端口FB+的数据不被选通,可直接丢弃;与此同时,循环处理状态D进入第二数据延迟器的数据J依次输出,此时第三数据选择器选通与第二数据延迟器相连接的端口,J依次进入第三数据延迟器;与此同时,第一数据选择器关闭,无输入数据进入第一数据延迟器;A3端口的输出数据会被输出交换单元30丢弃。
退出处理状态B(M/4个数据周期):循环处理状态D进入第一数据延迟器的数据F逐个输出到A1端口并送至复数加法器21/复数减法器22的被加数/被减数端口;第二数据选择器选通与第三数据延迟器相连接的端口,退出状态A进入第三数据延迟器的J此时从第三数据延迟器输出,通过第二数据选择器和A2输出端口被送至复数加法器21/复数减法器22的加数/减数端口;复数加法器21/复数减法器22逐个计算(F+J)/(F-J),共计计算M/4次;复数加法器21的结果(F+J)被输出交换单元30作为本级基4级联运算模块的输出送至下一级基4级联运算模块,而复数减法器22的结果(F-J)通过反馈通道送至延迟交换单元10的FB-端口,并依次进入第二数据延迟器;与反馈通道相连的输入端口FB+的数据不被选通,可直接丢弃;与此同时,退出状态A进入第二数据延迟器的数据(E-G)依次输出,此时第三数据选择器选通与第二数据延迟器相连接的端口,(E-G)依次进入第三数据延迟器;与此同时,第一数据选择器关闭,无数据进入第一数据延迟器;此阶段A3端口的输出数据会被输出交换单元30丢弃。
退出处理状态C(M/4个数据周期):第一数据延迟器无数据输出;第二数据选择器关闭;复数加法器21/复数减法器22停止工作;第一数据选择器关闭;第三数据选择器选通与第二数据延迟器相连接的端口,退出状态B进入第二数据延迟器的数据(F-J)依次输出,通过第三数据选择器进入第三数据延迟器;与此同时,退出状态B进入第三数据延迟器的数据(E-G)依次输出,通过A3端口送至输出交换单元30的In_C端口,并被输出交换单元30作为本级基4级联运算模块的输出送至下一级基4级联运算模块。
退出处理状态D(M/4个数据周期):第一数据延迟器无数据输出;第二数据选择器关闭;复数加法器21/复数减法器22停止工作;第三数据选择器关闭;第一数据选择器关闭;退出状态C进入第三数据延迟器Delay(M/4)的数据(F-J)依次输出,通过A3端口送至输出交换单元30的In_C端口,并被输出交换单元30作为本级基4级联运算模块的输出送至下一级基4级联运算模块。
需要说明的是,延迟交换单元10的工作状态跳转控制由延迟交换状态控制器17负责,其中,延迟交换状态控制器17根据预设的切换控制指令,分别控制第一数据选择器11、第二数据选择器12和第三数据13选择器在不同时刻选择对应的输入数据。具体的,12个状态之间的跳转如图6所示:在没有FFT计算数据(包括中间计算结果)输入之前,延迟交换单元10停留在等待状态,当接收到新一帧数据的时候,延迟交换单元10从等待状态跳转到启动状态A,然后依次跳转到启动状态B和启动状态C,启动状态完成了延迟交换单元10内部所有的数据延迟器的填充;然后依次跳转到循环处理状态A、循环处理状态B、循环处理状态C、循环处理状态D,每遍历一次循环处理的四个状态可处理一个循环的M个数据;每次循环处理状态D快结束的时候,延迟交换状态控制器会检测是否当前帧数据尚未计算完毕或者还有下一帧数据要处理,如果是则跳转到循环处理状态A继续工作;否则跳转到退出状态A,并依次遍历退出状态B和退出状态C,完成当前帧最后一个循环的数据处理,最后跳回到等待状态,等待下一帧计算数据的输入。由于启动状态A、启动状态B、启动状态C、循环处理状态A、循环处理状态B、循环处理状态C、循环处理状态D、退出状态A、退出状态B、退出状态C、退出状态D等11个工作状态每次处理的数据个数是固定的,所以延迟交换状态控制器17可以由计数器和简单逻辑判断电路实现。
请参见图7和图8,输出交换单元30是一个三输入三输出的小型交换电路,每个数据输入/输出端口都对应于一路复数数据输入/输出,即每一路输入/输出都包括数据的实部(I支路)和虚部(Q支路),所述输出交换单元30包括第四数据选择器31、第五数据选择器32和常数乘法器33;
所述第四数据选择器31分别连接所述蝶形运算单元20和延迟交换单元10;
所述第五数据选择器32分别连接所述蝶形运算单元20、常数乘法器33和延迟交换单元10;
所述常数乘法器33分别连接所述蝶形运算单元20和第五数据选择器32;
所述第四数据选择器31用于从所述蝶形运算单元20或延迟交换单元10的输出数据中选择数据作为计算结果输出;
所述第五数据选择器32用于从所述蝶形运算单元20或常数乘法器33的输出数据中选择数据反馈给延迟交换单元10;
所述常数乘法器33用于对输入数据的实部和虚部作旋转和取补运算,并将运算结果传输至第五数据选择器32。
在本实施例中,输出交换单元30共有3个输入端口In_A/In_B/In_C和3个输出端口Out_Data/FB+/FB-;输入端口In_A/In_B和基4级联运算模块的复数加法器21/复数减法器22输出端相连接,In_C端口和延迟交换单元10的输出端口A3相连接;输出端口Out_Data直接作为基4级联运算模块的数据输出端口,输出端口FB+/FB-通过2路反馈路径和延迟交换单元10的输入端口FB+/FB-互联。
进一步地,整个交换单元由第四数据选择器/第五数据选择器和常数乘法器(-j)组成;第四数据选择器和第五数据选择器是二输入数据选择器,第四数据选择器从In_A端口或In_C端口选择合适的数据送至输出端口OutData,第五数据选择器从从In_B端口或常数乘法器(-j)的输出端口选择合适的数据送至输出端口FB-;常数乘法器(-j)负责将In_B端输入的数据H转换成J(J=H×(-j))。常数乘法器(-j)不需要任何硬件乘法器,只需要对输入复数数据的实部(I支路)和虚部(Q支路)作旋转和取补运算。
具体的,下面结合图8和图9对输出交换单元30的工作过程做进一步说明,输出交换单元30是一个有限状态机电路,工作状态包括关闭状态、计算输出状态、反馈输出状态A、反馈输出状态B等4个状态,不同状态下,输出交换单元30的两个数据选择器和常数乘法器的工作状态定义如下:
关闭状态:当前状态下,第四数据选择器和第五数据选择器关闭,OutData端口无输出数据,FB-端口无输出数据,FB+端口输出的数据延迟交换单元10会自动丢弃。
计算输出状态:该状态对应于基4级联运算模块的加法器/减法器计算(E+G)/(E-G)和(F+J)/(F-J)的时刻(共计计算M/2次),第四数据选择器选通In_A端口的数据(E+G)和(F+J),将数据(E+G)和(F+J)通过OutData端口输出作为本级基4级联运算模块的输出送至下一级基4级联运算模块;与此同时,第五数据选择器选通In_B端口的数据(E-G)和(F-J),将数据(E-G)和(F-J)通过FB-端口和反馈路径送至延迟交换单元10的FB-输入端口,数据(E-G)和(F-J)将在延迟交换单元10缓存等待输出;此时In_A端口的数据(E+G)和(F+J),也会通过FB+端口和反馈路径送至延迟交换单元10的FB+输入端口,但延迟交换单元10会自动丢弃这部分数据。
反馈输出状态A:该状态共计计算M/4次,第四数据选择器选通In_C端口,此前缓存在延迟交换单元10的(前一个循环的)数据(E-G),通过OutData端口输出作为本级基4级联运算模块的输出送至下一级基4级联运算模块;与此同时,第五数据选择器选通In_B端口的数据F,将数据F通过FB-端口和反馈路径送至延迟交换单元10的FB-输入端口,数据F将在延迟交换单元10缓存等待下一次计算;此时In_A端口的数据E,也会通过FB+端口和反馈路径送至延迟交换单元10的FB+输入端口,数据E将在延迟交换单元10缓存等待下一次计算。
反馈输出状态B:该状态共计计算M/4次,第四数据选择器选通In_C端口,此前缓存在延迟交换单元10的(前一个循环的)数据(F-J),通过OutData端口输出作为本级基4级联运算模块的输出送至下一级基4级联运算模块;与此同时,基4级联运算模块的减法器的计算结果H被送至输入端口In_B,常数乘法器(-j)将H转换成J输出(J=H×(-j)),第五数据选择器选通常数乘法器(-j)的输出数据J,将数据J通过FB-端口和反馈路径送至延迟交换单元10的FB-输入端口,数据J将在延迟交换单元10缓存等待下一次计算;此时In_A端口的数据G,也会通过FB+端口和反馈路径送至延迟交换单元10的FB+输入端口,数据G将在延迟交换单元10缓存等待下一次计算。
需要说明的是,输出交换单元30的工作状态跳转控制由输出交换状态控制器34负责,其中,所述输出交换状态控制器34根据预设的切换控制指令,分别控制第四数据选择器31、第五数据选择器32在不同时刻选择对应的输入数据。具体的,4个状态之间的跳转如图9所示:在基4级联运算模块的加法器/减法器没有向输出交换单元30输入数据的时候,输出交换单元30停留在关闭状态,当新一帧数据输入的时候,输出交换单元30从关闭状态跳转到计算输出状态,然后依次跳转到反馈输出状态A和反馈输出状态B,每遍历一次计算输出状态/反馈输出状态A/反馈输出状态B可输出一个循环的M个数据;每次反馈输出状态B快结束的时候,输出交换状态控制器会检测是否当前帧数据尚未输出完毕或者还有下一帧数据要处理,如果是则跳转到计算输出状态继续工作;否则跳回到关闭状态,等待下一帧数据的输入。由于计算输出状态、反馈输出状态A、反馈输出状态B等3个工作状态每次处理的数据个数是固定的,所以输出交换状态控制器可以由计数器和简单逻辑判断电路实现。
基于上述的反馈装置,本发明还提供了一种FFT/IFFT处理器,如图10所示(图中仅示出FFT处理器)。其中,包括上述的反馈装置。
在本实施例中,FFT/IFFT处理器的外部接口包括输入接口和输出接口,其中,输入接口包括reset,clock,In_DataSync,In_DataEna,In_DataI和In_DataQ,其中reset和clock是全局复位与全局时钟信号,In_DataI和In_DataQ是串行输入数据,即参与N点FFT运算的N个时域输入数据,In_DataI是输入数据实部(I分部)而In_DataQ是输入数据虚部(Q分部);In_DataEna是数据使能信号,只有当In_DataEna为有效时,输入的In_DataI和In_DataQ才是有效的;In_DataSync是帧同步信号,对于N个FFT数据组成的数据帧,In_DataSync只在帧数据的第一个数据输入时有效,其他时候In_DataSync均无效。
FFT处理器的输出接口包括Out_DataSync、Out_DataValid、Out_DataI和Out_DataQ,其中Out_DataI和Out_DataQ是串行输出结果,即N点FFT运算的频域输出结果,该输出结果也是N个数据,Out_DataI对应于计算结果的实部(I分部)而Out_DataQ对应于计算结果的虚部(Q分部);Out_DataValid是数据输出有效信号,只有当Out_DataValid为有效时,输出结果的Out_DataI和Out_DataQ才是有效的,本FFT处理器采取串行连续输出结果的方法,在FFT处理器输出一帧计算结果的过程中,Out_DataValid是连续有效的;Out_DataSync是帧同步信号,在输出N点FFT运算结果组成的数据帧的时候,Out_DataSync只在帧数据的第一个数据输出时有效,其他时候Out_DataSync均输出无效电平。
请参见图11,将FFT运算分解成L级的基4分解运算,每个基4级联运算模块负责其中一级的基4分解运算,共有L个基4级联运算模块,基4联运算模块采用R4SP-DDF实现结构,即在基4联运算模块之间采用单路径数据传递方式(即采用单个数据串行传输的方法),本发明所涉及的FFT/IFFT处理器的内部共有L个基4级联运算模块,L的计算方法如下:
进一步地,对于第i个的基4级联运算模块,所述数据循环周期M计算如下:M=4N*4-i,,其中,M为某一个基4级联运算模块的数据循环周期,N为FFT运算的长度,i∈[1,L];
需要注意的是,N点FFT运算需要L级级联的基4分解运算,具体到每一次基4分解运算,其输入数据A/B/C/D并非连续输入,其间隔数据的多少取决于该次基4分解运算处于L级分解运算的第几级。令A/B/C/D间隔数据的4倍为M,即数据A与B之间、B与C之间、C与D之间都间隔M/4个数据,对于第i个基4级联运算模块,虽然一帧FFT运算的数据的长度是4L,但一个运算处理循环的数据长度是M,M可由以下公式计算:
M=4N*4-i,其中,M为某一个基4级联运算模块的数据循环周期,N为FFT运算的长度,i∈[1,L]。
综上所述,本发明提供一种反馈装置及FFT/IFFT处理器,所述装置包括基4级联运算模块;所述基4级联运算模块包括:旋转因子产生单元、复数乘法器、延迟交换单元、蝶形运算单元以及输出交换单元;所述复数乘法器分别连接所述旋转因子产生单元和延迟交换单元,所述延迟交换单元分别连接蝶形运算单元、复数乘法器和输出交换单元,所述输出交换单元连接所述蝶形运算单元和延迟交换单元;本发明在充分利用复数乘法器的基础上,通过使用双延迟反馈结构电路以及巧妙设计数据延迟缓存通道,使得复数加法器/减法器的使用效率得到有效提高,所需要的复数加法器数量明显减少,电路效率得到显著提升;有效解决了基4SDF和基4SDC结构占用较多复数加法器/减法器的问题。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (9)
1.一种反馈装置,其特征在于,所述装置包括基4级联运算模块;所述基4级联运算模块包括:旋转因子产生单元、复数乘法器、延迟交换单元、蝶形运算单元以及输出交换单元;所述复数乘法器分别连接所述旋转因子产生单元和延迟交换单元,所述延迟交换单元分别连接所述蝶形运算单元、复数乘法器和输出交换单元,所述输出交换单元连接所述蝶形运算单元和延迟交换单元;
所述旋转因子产生单元用于产生所述基4级联运算模块所需要的旋转因子;
所述复数乘法器用于计算串行输入数据与对应旋转因子的积,并将计算得到的输出数据传输至延迟交换单元;
所述延迟交换单元用于将所述复数乘法器计算得到的输出数据和输出交换单元输出的反馈数据延迟预设时间后并调整输出数据的顺序,再分别传输至蝶形运算单元和输出交换单元;
所述蝶形运算单元用于对所述延迟交换单元的输出数据进行蝶形运算,并将运算结果传输至输出交换单元;
所述输出交换单元从蝶形运算单元的运算结果以及延迟交换单元传输的数据中选择数据输出并反馈给延迟交换单元。
2.根据权利要求1所述的反馈装置,其特征在于,所述延迟交换单元包括第一数据选择器、第二数据选择器、第三数据选择器、第一数据延迟器、第二数据延迟器和第三数据延迟器;
所述第一数据选择器分别连接所述复数乘法器、输出交换单元、第一数据延迟器和第二数据延迟器;
所述第二数据选择器分别连接所述复数乘法器、第三数据延时器和蝶形运算单元;
所述第三数据选择器分别连接所述第二数据延迟器、输出交换单元和第三数据延迟器;
所述第一数据延迟器分别连接所述第一数据选择器和蝶形运算单元;
所述第二数据延迟器分别连接所述输出交换单元、第一数据选择器和第三数据选择器;
所述第三数据延迟器分别连接所述第二数据选择器、第三数据选择器和输出交换单元;
所述第一数据选择器用于从所述复数乘法器、输出交换单元或第二数据延迟器的输出数据中选择数据传输至第一数据延迟器中;
所述第二数据选择器用于从所述复数乘法器或第三数据延时器的输出数据中选择数据输出至蝶形运算器中;
所述第三数据选择器用于从所述第二数据延迟器或输出交换单元的输出数据中选择数据传输至第三数据延迟器中;
所述第一数据延迟器用于将所述第一数据选择器选择的数据延迟第一有效时钟周期后传输至蝶形运算单元;
所述第二数据延迟器用于将所述输出交换单元的输出数据延迟第二有效时钟周期后传输至第一数据选择器和第三数据选择器;
所述第三数据延迟器用于将所述第三数据选择器选择的数据延迟第三有效时钟周期后传输至第二数据选择器和输出交换单元。
3.根据权利要求2所述的反馈装置,其特征在于,所述延迟交换单元还包括延迟交换状态控制器;
所述延迟交换状态控制器用于根据预设的切换控制指令,分别控制所述第一数据选择器、第二数据选择器和第三数据选择器在不同时刻选择对应的输入数据。
4.根据权利要求1所述的反馈装置,其特征在于,所述蝶形运算单元包括复数加法器和复数减法器;
所述复数加法器用于对输入数据分别进行分时加法运算后传输至输出交换单元;
所述复数减法器用于对输入数据分别进行分时减法运算后传输至输出交换单元;
所述复数加法器连接延迟交换单元和输出交换单元;
所述复数减法器连接延迟交换单元和输出交换单元。
5.根据权利要求1所述的反馈装置,其特征在于,所述输出交换单元包括第四数据选择器、第五数据选择器和常数乘法器;
所述第四数据选择器分别连接所述蝶形运算单元和延迟交换单元;
所述第五数据选择器分别连接所述蝶形运算单元、常数乘法器和延迟交换单元;
所述常数乘法器分别连接所述蝶形运算单元和第五数据选择器;
所述第四数据选择器用于从所述蝶形运算单元或延迟交换单元的输出数据中选择数据作为计算结果输出;
所述第五数据选择器用于从所述蝶形运算单元或常数乘法器的输出数据中选择数据反馈给延迟交换单元;
所述常数乘法器用于对输入数据的实部和虚部作旋转和取补运算,并将运算结果传输至第五数据选择器。
6.根据权利要求5所述的反馈装置,其特征在于,所述输出交换单元还包括输出交换状态控制器;
所述输出交换状态控制器用于根据预设的切换控制指令,分别控制所述第四数据选择器、第五数据选择器在不同时刻选择对应的输入数据。
8.根据权利要求7所述的FFT/IFFT处理器,其特征在于,对于第i个的基4级联运算模块,所述数据循环周期M计算如下:
M=4N*4-i,其中,M为某一个基4级联运算模块的数据循环周期,N为FFT运算的长度,i∈[1,L]。
9.根据权利要求7所述的FFT/IFFT处理器,其特征在于,所述L个基4级联运算模块中的每一个基4级联运算模块之间采用单路径数据传递。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010211969.9A CN111428187A (zh) | 2020-03-24 | 2020-03-24 | 一种反馈装置及fft/ifft处理器 |
US17/630,023 US20220253505A1 (en) | 2020-03-24 | 2020-07-09 | Feedback apparatus and fft/ifft processor |
PCT/CN2020/101071 WO2021189710A1 (zh) | 2020-03-24 | 2020-07-09 | 一种反馈装置及fft/ifft处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010211969.9A CN111428187A (zh) | 2020-03-24 | 2020-03-24 | 一种反馈装置及fft/ifft处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111428187A true CN111428187A (zh) | 2020-07-17 |
Family
ID=71549664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010211969.9A Pending CN111428187A (zh) | 2020-03-24 | 2020-03-24 | 一种反馈装置及fft/ifft处理器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220253505A1 (zh) |
CN (1) | CN111428187A (zh) |
WO (1) | WO2021189710A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118192933A (zh) * | 2024-05-16 | 2024-06-14 | 中国传媒大学 | 基于复用机制的混合基fft的蝶形运算装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220237259A1 (en) * | 2021-01-28 | 2022-07-28 | Stmicroelectronics, Inc. | Methods and devices for fast fourier transforms |
CN117892694B (zh) * | 2024-03-14 | 2024-05-28 | 中国石油大学(华东) | 一种fft旋转因子索引生成电路及其设计方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1808419A (zh) * | 2005-07-15 | 2006-07-26 | 北京大学深圳研究生院 | 一种实时快速傅立叶变换电路 |
WO2009110022A1 (ja) * | 2008-03-03 | 2009-09-11 | 富士通株式会社 | 無線通信装置 |
CN101587469A (zh) * | 2009-06-03 | 2009-11-25 | 北京大学深圳研究生院 | 可变长度的快速傅立叶变换装置 |
CN102073621A (zh) * | 2011-01-19 | 2011-05-25 | 东南大学 | 一种应用于fft/ifft的基4蝶形单元电路及其处理方法 |
KR20120119939A (ko) * | 2011-04-22 | 2012-11-01 | 아주대학교산학협력단 | Ofdm시스템을 위한 mrmdc구조의 고속 푸리에 변환 장치 |
KR20130081539A (ko) * | 2012-01-09 | 2013-07-17 | 아주대학교산학협력단 | 다른 두 radix 알고리즘 간의 복소 곱셈기를 줄인 저면적 MRMDC 구조를 적용한 고속 푸리에 변환 장치 |
CN109522674A (zh) * | 2018-12-05 | 2019-03-26 | 天津大学 | 基2-2算法的快速傅里叶变换硬件设计方法 |
CN110765709A (zh) * | 2019-10-15 | 2020-02-07 | 天津大学 | 一种基于fpga的基2-2快速傅里叶变换硬件设计方法 |
CN211698937U (zh) * | 2020-03-24 | 2020-10-16 | 深圳职业技术学院 | 一种反馈装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030212721A1 (en) * | 2002-05-07 | 2003-11-13 | Infineon Technologies Aktiengesellschaft | Architecture for performing fast fourier transforms and inverse fast fourier transforms |
CN106383807B (zh) * | 2016-09-12 | 2018-11-09 | 深圳职业技术学院 | 一种fft处理器 |
CN206270957U (zh) * | 2016-09-12 | 2017-06-20 | 深圳职业技术学院 | 一种fft处理器 |
CN108628805A (zh) * | 2018-04-02 | 2018-10-09 | 郑州云海信息技术有限公司 | 一种低功耗的蝶形运算单元及处理方法、fft处理器 |
-
2020
- 2020-03-24 CN CN202010211969.9A patent/CN111428187A/zh active Pending
- 2020-07-09 WO PCT/CN2020/101071 patent/WO2021189710A1/zh active Application Filing
- 2020-07-09 US US17/630,023 patent/US20220253505A1/en active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1808419A (zh) * | 2005-07-15 | 2006-07-26 | 北京大学深圳研究生院 | 一种实时快速傅立叶变换电路 |
WO2009110022A1 (ja) * | 2008-03-03 | 2009-09-11 | 富士通株式会社 | 無線通信装置 |
CN101587469A (zh) * | 2009-06-03 | 2009-11-25 | 北京大学深圳研究生院 | 可变长度的快速傅立叶变换装置 |
CN102073621A (zh) * | 2011-01-19 | 2011-05-25 | 东南大学 | 一种应用于fft/ifft的基4蝶形单元电路及其处理方法 |
KR20120119939A (ko) * | 2011-04-22 | 2012-11-01 | 아주대학교산학협력단 | Ofdm시스템을 위한 mrmdc구조의 고속 푸리에 변환 장치 |
KR20130081539A (ko) * | 2012-01-09 | 2013-07-17 | 아주대학교산학협력단 | 다른 두 radix 알고리즘 간의 복소 곱셈기를 줄인 저면적 MRMDC 구조를 적용한 고속 푸리에 변환 장치 |
CN109522674A (zh) * | 2018-12-05 | 2019-03-26 | 天津大学 | 基2-2算法的快速傅里叶变换硬件设计方法 |
CN110765709A (zh) * | 2019-10-15 | 2020-02-07 | 天津大学 | 一种基于fpga的基2-2快速傅里叶变换硬件设计方法 |
CN211698937U (zh) * | 2020-03-24 | 2020-10-16 | 深圳职业技术学院 | 一种反馈装置 |
Non-Patent Citations (2)
Title |
---|
樊光辉;许茹;王德清;: "基于FPGA的高速流水线FFT算法实现", 电子工程师, no. 03, 15 March 2008 (2008-03-15) * |
陈媚媚;朱恩;: "一种高性能的基-4FFT蝶形运算单元", 电子工程师, no. 12, 15 December 2008 (2008-12-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118192933A (zh) * | 2024-05-16 | 2024-06-14 | 中国传媒大学 | 基于复用机制的混合基fft的蝶形运算装置 |
Also Published As
Publication number | Publication date |
---|---|
US20220253505A1 (en) | 2022-08-11 |
WO2021189710A1 (zh) | 2021-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111428187A (zh) | 一种反馈装置及fft/ifft处理器 | |
AU2008306613B2 (en) | Method and apparatus for real time signal processing | |
CN107544942B (zh) | 一种快速傅里叶变换的vlsi设计方法 | |
US20040221137A1 (en) | Efficient complex multiplication and fast fourier transform (FFT) implementation on the ManArray architecture | |
KR101162649B1 (ko) | 가변적 크기의 고속 직교 변환을 구현하기 위한 방법 및장치 | |
KR100492091B1 (ko) | 프로그래머블 프로세서에서의 고속 푸리에 변환 연산회로및 연산방법 | |
CN211698937U (zh) | 一种反馈装置 | |
CN106383807B (zh) | 一种fft处理器 | |
Joshi | FFT architectures: a review | |
CN107092462B (zh) | 一种基于fpga的64位异步乘法器 | |
CN105975436B (zh) | 一种SoC系统中通用可配置加速单元的IP电路 | |
US10387118B2 (en) | Arithmetic operation unit and method of controlling arithmetic operation unit | |
CN116974510A (zh) | 数据流式处理电路、电路模组、电子芯片、方法和装置 | |
Bi et al. | Pipelined hardware structure for sequency-ordered complex Hadamard transform | |
Yang et al. | A High-Throughput and Flexible Architecture Based on a Reconfigurable Mixed-Radix FFT With Twiddle Factor Compression and Conflict-Free Access | |
KR100444729B1 (ko) | 레딕스-8 단일 경로 지연 전달 구조의 고속 퓨리에 변환장치 및 그 방법 | |
KR100668674B1 (ko) | 고속 푸리에 변환 장치 및 고속 푸리에 변환 방법 | |
CN116796816B (zh) | 处理器、计算芯片和计算设备 | |
JP5131346B2 (ja) | 無線通信装置 | |
Niras et al. | Systolic variable length architecture for discrete Fourier transform in Long Term Evolution | |
Geresu et al. | Area-Efficient 128-to 2048/1536-Point Pipeline FFT Processor for LTE and Mobile Wimax Systems | |
CN206147622U (zh) | 一种SoC系统中通用可配置加速单元的IP电路 | |
Chen et al. | A variable length FFT module for LTE applications | |
Vishwanath | Efficient Hardware Architecture for Ultra-High Sampling Rate FFT Analysis of Acoustic Emission Signals | |
Chitra et al. | Design of low power mixed radix FFT processor for MIMO OFDM systems |
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 |