CN101894096A - 一种适用于cmmb和dvb-h/t的fft运算电路结构 - Google Patents
一种适用于cmmb和dvb-h/t的fft运算电路结构 Download PDFInfo
- Publication number
- CN101894096A CN101894096A CN 201010209118 CN201010209118A CN101894096A CN 101894096 A CN101894096 A CN 101894096A CN 201010209118 CN201010209118 CN 201010209118 CN 201010209118 A CN201010209118 A CN 201010209118A CN 101894096 A CN101894096 A CN 101894096A
- Authority
- CN
- China
- Prior art keywords
- radix
- data
- processing element
- fft
- point
- 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
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明属于无线数字通信技术领域,具体为一种适用于CMMB和DVB-H/T的FFT运算电路结构。该FFT运算电路结构,由控制信号发生器,输入信号重新排序模块,存储器SinglePort RAM模块,存储器读/写地址产生器模块,2/4/8点蝶形运算单元,复数乘法器模块,旋转因子数据存储器和旋转因子存储地址发生器模块等构成。本发明采用双路并行流水处理的数据通路,由2个蝶形运算单元和2个复数乘法器各组成一条独立的数据通路。每一个模块都考虑了两种标准在OFDM符号构成上的共性,从而实现硬件融合,并且通过控制信号控制不同模块的工作模式。
Description
技术领域
本发明属于无线数字通信技术领域,具体涉及一种同时支持CMMB和DVB-H两种移动多媒体标准的FFT运算电路结构。
背景技术
移动多媒体技术如今已经得到越来越广泛的应用。随着中国移动多媒体标准CMMB的颁布实施,移动多媒体得到了进一步的普及。多模多标准是当今移动多媒体技术发展的趋势,以同一套终端在不同地域实现对不同标准下的节目接收也是多模多标准发展的要求。同步技术作为接收终端中一个重要的部分,其在多模接收终端中的研究应用也具有非常重要的意义。
研究目前主要的移动多媒体标准如欧洲标准DVB-H,中国标准CMMB,发现它们在OFDM符号结构上具有一定的共性。即都采用了多载波OFDM(正交频分复用)调制方式,每个OFDM符号的子载波数为2K/4K/8K,因此这些共性决定了可以寻求到一种融合的同步方案来支持各个标准的各种模式。
基于多模多标准的需求以及各个移动多媒体标准在OFDM符号结构上的共性,本发明提出了一种融合的硬件结构,能够同时支持目前两种主流的移动多媒体标准CMMB和DVB-H的FFT运算,实现最大程度的硬件复用。
发明内容
本发明目的在于提供一种同时支持CMMB和DVB-H两种标准的FFT运算电路结构,实现最大程度的硬件复用。
本发明提供的同时支持CMMB和DVB-H两种标准的FFT运算电路结构,是一种基于存储器结构的迭代算法的2048/4096/8192点快速傅里叶变换(fast Fourier transformation,FFT)处理器。所谓基于存储器的迭代结构的是一种递归形式的结构,一般指包含一个蝶形单元,由它迭代数次来完成整个FFT运算。这种结构采用的运算单元少,所以它的芯片面积相比流水线结构更有优势。但它采用迭代处理运算时间要长一些。本发明在存储器的迭代结构基础上提出一种新的FFT处理器电路结构,并设计了一个高效的控制方案,减少了硬件资源。并且改进了蝶形单元的结构,可以处理任意的2n点的FFT运算。
本发明根据CMMB和DVB-H两种标准在OFDM符号结构上的共性,提出了一种融合的硬件结构,实现同时对两种标准FFT运算的支持。本发明的提出的FFT运算电路结构,由控制信号发生器,输入信号重新排序模块,存储器Single Port RAM模块,存储器读/写地址产生器模块,2/4/8点蝶形运算单元,复数乘法器模块,旋转因子数据存储器和旋转因子存储地址发生器模块,控制数据继续计算or输出选择模块构成。每一个模块都考虑了两种标准在OFDM符号构成上的共性,从而实现硬件融合,并且通过控制信号控制不同模块的工作模式。
数据通路是FFT处理器的核心。本发明提出双路并行流水处理的数据通路,如图1所示。该结构由2个蝶形运算单元和2个复数乘法器各组成一条独立的数据通路,RAM中的数据经该通路处理后即完成一级基-R操作,结果再存回RAM中,而最后一级的蝶形运算结果就是整个FFT的计算结果,直接输出。下面分别介绍各个模块和功能。
输入数据初始排列模块,当输入一个待FFT计算的OFDM Symbol数据的时候,首先进行输入数据的重新排序存储。若当前模式为CMMB标准的2K模式,则输入的一个OFDM Symbol中的2048个数据,平均分成4份,每份512个数据,分别存储于存储器RAM1,RAM2,RAM3,RAM4;若当前模式为CMMB标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的8K模式,则平均分成4份,每份2048个数据进行存储。输入输出说明如表2所示。
存储器Single Port RAM模块,用于存储需要计算的一个OFDM Symbol,缓存各级运算的结果。由4块位宽为26bits深度为2048的single port RAM组成。输入输出说明如表3所示。
控制信号发生器,输入输出信号如表4所示。产生模式选择信号MODE SEL决定其他模块的电路工作的当前模式(是CMMB的2K/4K,还是DVB-H的2K/4K/8K模式),选择内容有:
(1)数据存储器的初始缓存内容,若是CMMB标准的2K模式,则输入的一个OFDM Symbol中的2048个数据,平均分成4份,每份512个数据,分别存储于RAM1,RAM2,RAM3,RAM4;若当前模式为CMMB标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的8K模式,则平均分成4份,每份2048个数据进行存储。
(2)数据存储器的读/写地址控制,模式选择MODE_SEL[1:0]=00:CMMB的2K模式或DVB-H的2K模式;MODE_SEL[1:0]=01:CMMB的4K模式或DVB-H的4K模式;MODE_SEL[1:0]=10:DVB-H的8k模式。
(3)蝶形运算单元的工作模式。蝶形运算单元的工作模式分为Radix-2、Radix-4、Radix-8,三种。按照2048点、4096点、8192点FFT运算分为4级运算,按照算法选择当前使用Radix-2、Radix-4、或者Radix-8点蝶形运算的模式。
存储器读/写地址产生模块,完成对存储器的读写的控制,为数据的初始存储,和每一级FFT运算的数据的读取和该级运算结果的存储提供地址。输入输出说明如表5所示。
Radix-2/4/8点蝶形运算单元模块,具体结构如图2所示,输入输出说明如表6所示。
蝶形运算单元的工作模式分为Radix-2、Radix-4、Radix-8,三种。按照FFT运算的分裂基运算法则,若是CMMB标准的2K模式,2048点数据的运算分为,第一级的Radix-4点蝶形运算和后面三级的Radix-8点蝶形运算;4096(4K)点FFT运算被分解为迭代的四级的Radix-8点蝶形运算;8192(8K)点FFT分解为迭代的第一级的Radix-2点蝶形运算和后面四级的8点蝶形运算。
Radix-2/4/8点蝶形运算单元由三级Radix-2的蝶形运算,延迟单元和多路选择器组成。其中,第一级有一个Radix-2点蝶形运算单元和1个寄存器,第二级有1个Radix-2蝶形运算单元和2个寄存器,第三级有Radix-2个蝶形运算单元和4个寄存器。多路选择器MUX用来选择,输入模式选择信号RADIX_MODE[1:0]=00时,选通路线R-2,进行Radix-2点的蝶形运算;当RADIX_MODE[1:0]=01时,选通路线R-4,进行Radix-4点的蝶形运算;RADIX_MODE[1:0]=11时,进行Radix-8点的蝶形运算。当选择路线R-2的时候,只有第一级的Radix-2点蝶形运算单元,后面两级的蝶形运算单元被旁路,不进行计算;当选择路线R-4的时候,只有第一级和第二级的Radix-2点蝶形运算单元,最后一级的蝶形运算单元被旁路,不进行计算;选择路线R-8的时候,三级的Radix-2点蝶形运算单元都进行运算。该蝶形运算单元的特点是以流水线实现的,每个周期读入一个数据,完成计算时每个周期输出一个数据。例如,进行Radix-8点的FFT运算的时候,开始的8个周期,依次读入8个需要计算的数据,在完成所有需要运算的数读入完毕的下一个时钟周期开始,按照每个周期输出一个数据的方式,依次输出8个运算结果,并且,在可以输出运算结果的同时,可以开始读取下一次Radix-8点的FFT运算的8个输入数据。具体结构如图2所示,输入输出说明如表2所示。
复数乘法器模块,复数乘法器由4个实数乘法器构成,完成对输入的两个复数的实部和虚部进行计算。输入的real1和imag1为被乘数的实部和虚部,real2和image2为乘数的实部和虚部。经过4个乘法器完成。复数乘法器模块的输入输出如表7所示。
旋转因子存储器和旋转因子地址选择器模块。旋转因子存储器使用ROM来存储旋转因子。根据由旋转因子地址选择器提供的地址输出相应的旋转因子,经过旋转因子映射后,转换为对应的旋转因子与Radix-2./4/8蝶形运算单元的输出数据相乘。该旋转因子存储器和旋转因子地址选择器模块的输入输出信号如表8所示。
本发明提出的2048/4096/8192点快速傅里叶变换(FFT)处理器中,2048点(2K点)快速傅里叶变换(FFT)根据素因子算法分解为迭代的第一级的Radix-4点蝶形运算和后面三级的Radix-8点蝶形运算;4096(4K)点FFT运算被分解为迭代的4级的Radix-8点蝶形运算;8192(8K)点FFT分解为迭代的第一级的Radix-2点蝶形运算和后面四级的8点蝶形运算。迭代运算的时候,初始的运算数据,存储在存储器中,进入蝶形运算单元并且完成该级的Radix-2、Radix-4或者Radix-8运算后,该级的运算结果存回存储器中,等待所有的数据都完成了该级的运算的时候,再开始下一级的运算,从存储器中依次将所有的数据读出,输入蝶形运算单元开始计算,运算结果输出的时候再存回存储器。直到所有的2048/4096/8192点运算完成,最后FFT处理器结果再输出。
本发明提出的2048/4096/8192点快速傅里叶变换(FFT)处理器中,将2048/4096/8192点FFT运算用分解基的FFT算法。其中Radix-2,Radix-4,Radix-8点蝶形运算单元,使用同一种结构的运算单元,即Radix-2/4/8点蝶形运算单元完成。其中将Radix-2、Radix-4、Radix-8点FFT运算分裂为以2为基,即Radix-2点蝶形运算为基的算法。其特征是使用流水线的方式计算每一级运算中的基2的FFT运算,第一级选用1个存储单元,第二级使用2个存储单元,第三级使用4个存储单元存放运算数据,模式选择信号通过选择工作的级数来选择工作的模式。使用一个Radix-2/4/8点FFT蝶形运算单元,使整个2048/4096/8192点FFT运算可以以迭代的方式进行,其结构如图2所示。
本发明中,所述的Radix-2/4/8点蝶形运算单元,使用两个Radix-2/4/8点蝶形运算单元,形成两路数据并行计算,以达到CMMB或者DVB-H的OFDM Symbol的FFT运算速率的要求。
本发明中,利用4块深度为2048的Single Port RAM模块存储器,和其相应的存取地址读/写地址产生器,配合Radix-2/4/8点蝶形运算单元,进行迭代,实现2048/4096/8192点FFT运算。在一个OFDM的Symbol的FFT运算初始化的时候,将一个OFDM Symbol中的数据分4路,将正序输入的数据,按照倒序,存入4块数据深度为2048点的single portRAM之中。当运算的OFDM Symbol中的数据为2048个即2K点的时候,每块single port RAM中存放的数据为512个;当运算的OFDM Symbol中的数据为4096个即4K点的时候,每块single port RAM中存放的数据为1024个;当运算的OFDM Symbol中的数据为8192个即8K点的时候,每块single port RAM中存放的数据为2048个。
本发明中,存储器读写的控制由存储器读/写地址发生器完成,该存储器读/写地址发生器为数据的初始存储,和每一级FFT运算的数据的读取和该级运算结果的存储提供地址。初始存储数据的地址顺序选择有一定的规律,使得两路运行中的Radix-2/4/8点蝶形运算单元,在读取一块RAM的时候,能在其中取到当前计算所使用的数据;在完成该蝶形运算并流水地输出运算结果的时候,将结果存入同一块RAM的这些地址之中。在迭代运算中,每一级的Radix-2/4/8点蝶形运算,都满足此要求。
本发明中,两个Radix-2/4/8点蝶形运算单元同时并行计算,第一个Radix-2/4/8点蝶形运算单元读写RAM1和RAM2,第二个Radix-2/4/8点蝶形运算单元读写RAM3和RAM4。周而复始,直到完成该级的FFT运算,再开始下一级的FFT运算。
本发明能够很好地满足对CMMB及DVB-H两种标准的FFT运算,以一套硬件结构实现了两种标准的FFT运算电路的融合,同时提高硬件利用率,实现最大程度的硬件复用。
附图说明
图1适用于CMMB及DVB-H的FFT运算硬件结构图。
图2Radix-2/4/8点蝶形模块结构图。
图3存储器模块硬件结构图。
图4Radix-2/4/8点蝶形模块读/写存储器流程图。
具体实施方式
整个电路的具体结构如图1所示,输入输出说明如表1所示。模式选择信号MODE SEL控制当前工作模式(是CMMB的2K/4K,还是DVB-H的2K/4K/8K模式),模块送入不同的参数值。
数据通路是FFT处理器的核心。本设计提出了一种如图1所示的双路并行流水处理的数据通路。该结构由2个蝶形运算单元和2个复数乘法器各组成一条独立的数据通路,RAM中的数据经该通路处理后即完成一级基-R操作,结果再存回RAM中,而最后一级的蝶形运算结果就是整个FFT的计算结果,直接输出。下面分别介绍各个模块和功能。
输入数据初始排列模块,当输入一个待FFT计算的OFDM Symbol数据的时候,首先进行输入数据的重新排序存储。若当前模式为CMMB标准的2K模式,则输入的一个OFDM Symbol中的2048个数据,平均分成4份,每份512个数据,分别存储于RAM1,RAM2,RAM3,RAM4;若当前模式为CMMB标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的8K模式,则平均分成4份,每份2048个数据进行存储。输入输出说明如表2所示。
存储器Single Port RAM模块,用于存储需要计算的一个OFDM Symbol,缓存各级运算的结果。由4块位宽为26bits深度为2048的single port RAM组成。输入输出说明如表3所示。
控制信号发生器,输入输出信号如表4所示。产生模式选择信号MODE SEL决定其他模块的电路工作的当前模式(是CMMB的2K/4K,还是DVB-H的2K/4K/8K模式),选择内容有:
(1)数据存储器的初始缓存内容,若是CMMB标准的2K模式,则输入的一个OFDM Symbol中的2048个数据,平均分成4份,每份512个数据,分别存储于RAM1,RAM2,RAM3,RAM4;若当前模式为CMMB标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的8K模式,则平均分成4份,每份2048个数据进行存储。
(2)数据存储器的读/写地址控制,模式选择MODE_SEL[1:0]=00:CMMB的2K模式或DVB-H的2K模式;MODE_SEL[1:0]=01:CMMB的4K模式或DVB-H的4K模式;MODE_SEL[1:0]=10:DVB-H的8k模式。
(3)蝶形运算单元的工作模式。蝶形运算单元的工作模式分为Radix-2、Radix-4、Radix-8,三种。按照2048点、4096点、8192点FFT运算分为4级运算,按照算法选择当前使用Radix-2、Radix-4、或者Radix-8点蝶形运算的模式。
存储器读/写地址产生模块,完成对存储器的读写的控制,为数据的初始存储,和每一级FFT运算的数据的读取和该级运算结果的存储提供地址。输入输出说明如表5所示。
Radix-2/4/8点蝶形运算单元模块,具体结构如图2所示,输入输出说明如表6所示。
蝶形运算单元的工作模式分为Radix-2、Radix-4、Radix-8,三种。按照FFT运算的分裂基运算法则,若是CMMB标准的2K模式,2048点数据的运算分为,第一级的Radix-4点蝶形运算和后面三级的Radix-8点蝶形运算;4096(4K)点FFT运算被分解为迭代的四级的Radix-8点蝶形运算;8192(8K)点FFT分解为迭代的第一级的Radix-2点蝶形运算和后面四级的8点蝶形运算。
Radix-2/4/8点蝶形运算单元由三级Radix-2的蝶形运算,延迟单元和多路选择器组成。其中,第一级有一个Radix-2点蝶形运算单元和1个寄存器,第二级有1个Radix-2蝶形运算单元和2个寄存器,第三级有Radix-2个蝶形运算单元和4个寄存器。多路选择器MUX用来选择,输入模式选择信号RADIX_MODE[1:0]=00时,选通路线R-2,进行Radix-2点的蝶形运算;当RADIX_MODE[1:0]=01时,选通路线R-4,进行Radix-4点的蝶形运算;RADIX_MODE[1:0]=11时,进行Radix-8点的蝶形运算。当选择路线R-2的时候,只有第一级的Radix-2点蝶形运算单元,后面两级的蝶形运算单元被旁路,不进行计算;当选择路线R-4的时候,只有第一级和第二级的Radix-2点蝶形运算单元,最后一级的蝶形运算单元被旁路,不进行计算;选择路线R-8的时候,三级的Radix-2点蝶形运算单元都进行运算。该蝶形运算单元的特点是以流水线实现的,每个周期读入一个数据,完成计算时每个周期输出一个数据。例如,进行Radix-8点的FFT运算的时候,开始的8个周期,依次读入8个需要计算的数据,在完成所有需要运算的数读入完毕的下一个时钟周期开始,按照每个周期输出一个数据的方式,依次输出8个运算结果,并且,在可以输出运算结果的同时,可以开始读取下一次Radix-8点的FFT运算的8个输入数据。具体结构如图2所示,输入输出说明如表2所示。
复数乘法器模块,复数乘法器由4个实数乘法器构成,完成对输入的两个复数的实部和虚部进行计算。输入的real1和imag1为被乘数的实部和虚部,real2和image2为乘数的实部和虚部。经过4个乘法器完成。复数乘法器模块的输入输出如表7所示。
数据通路和控制方式
按照FFT的分裂基的分级运算规则,对于各级运算的不同阶段给出存储数据的读/写地址信号,控制RAM1,RAM2,RAM3,RAM4这4个存储器的数据存储和读出。数据的初始存储时,若是CMMB标准的2K模式,则读/写地址控制信号产生的RAM1,RAM2,RAM3,RAM4这4个存储器的地址信号深度为512;若当前模式为CMMB标准的4K模式,则数据地址深度为1024;若当前模式为DVB-H标准的4K模式,则数据地址深度为1024;若当前模式为DVB-H标准的8K模式,则数据地址深度为2048。
在各级计算的时候,存储器读/写地址产生模块控制读出进行当前级蝶形运算的输入数据的地址,计算完成后将数据存回存储器中。
为了使这2条数据通路同事工作而不产生读写冲突,本设计采用了一种有效的控制方案,2个蝶形运算单元读写4个存储器的时序如图4所示。以2048点FFT运算为例,输入正序数据按照倒序地址分别存入4快RAM中,每块存512个数据,征集计算分解为一级基-4和三级基-8运算。在第1级到底3级(stage1,stage2,stage3)运算中,犹豫每次进行计算的R(R-4或者8)个数的间隔大于4,所以他们都位于同一块RAM中,其读写时序如图4所示。
各级的FFT运算,由存储器读/写地址产生模块,对两个Radix-2/4/8点蝶形运算单元控制来完成。由如图3所示,第一级运算为stage0,第二级运算为stage1,第二级为stage2,第三级为stage3,第四级为stage4。每个时钟周期,Radix-2/4/8点蝶形运算单元可以从存储器RAM中读出一个数据,每个时钟周期,可以将一个数据写回存储器。第一个Radix-2/4/8点蝶形运算单元读取RAM1中的数据,然后将从RAM1中取得的数据的运算结果流水输出写回RAM1相同地址,在输出结果的同时,该Radix-2/4/8点蝶形运算单元读取RAM2中的数据,在RAM2中取得的数据的运算结果流水输出写回RAM2相同地址的同时读写RAM1。第二个Radix-2/4/8点蝶形运算单元读取RAM3中的数据,然后将从RAM3中取得的数据的运算结果流水输出写回RAM3相同地址,在输出结果的同时,该Radix-2/4/8点蝶形运算单元读取RAM4中的数据,在RAM4中取得的数据的运算结果流水输出写回RAM4相同地址的同时读写RAM1。
通路1先从RAM1中一次读取R个数进行基-R运算,R个时钟周期后这组基-R运算的记过开始输出,并被写回RAM1中,即图中的第二个大括号处。由于Radix-2/4/8点蝶形运算单元是以流水线方式工作的,在写RAM1时,通路1同时也在读取RAM2中的另一组基-R操作数,即图中RAM1和RAM2对应的读时段是交叠的。通过这种方法,通路1交替的读写RAM1和RAM2,而通路2也以相同的方式交替的读写RAM3和RAM4,同时由于通路1和通路2每次读写的是不同的RAM,因此2条数据通路不会产生地址冲突。在2K模式下的最后一级基-8运算中,由于蝶形单元的运算结果直接输出而不需要写回,所以通路1和通路2只要依次从4块RAM中读取相应的数据即可。
如图4,显示了第一个Radix-2/4/8点蝶形运算单元读写存储器的流程状态。以第一级为Radix-8点运算模式为例,第一个Radix-2/4/8点蝶形运算单元,进行Radix-8点蝶形运算,依次从RAM1中读取当前8点FFT运算所需要的8个数据和它们的计算结果定义为Group1,下一次8点FFT运算所需要的8个数据和它们的计算结果定义为Group2。如图所示的stage1中,开始的8个时钟周期,从RAM1中依次从RAM1中读取当前8点FFT运算所需要的8个数据(地址0,1,2,3,4,5,6,7的数据),第9个时钟周期开始的8个时钟周期,将8个运算结果依次输出,存入RAM1相应的地址中(此为Group1的运算完成),同时,从这第9个时钟周期开始的8个时钟周期,从RAM2中读取下一次8点FFT运算所需要的8个数据(Group2的运算开始)。第二个Radix-8点蝶形运算单元,和第一个Radix-8点蝶形运算单元同时并行工作,按照同样的顺序,读写RAM3和RAM4。周而复始,直到两个Radix-8点蝶形运算单元完成该级的FFT分裂基运算。在下一级开始的Radix-8点蝶形运算,第一个Radix-2/4/8点蝶形运算单元,开始的8个时钟周期,依次从RAM1中读取当前8点FFT运算所需要的8个数据(如图所示的stage2中,从RAM1中读取地址0,8,16,24,32,40,48,56的数据),第9个时钟周期开始的8个时钟周期,将8个运算结果依次输出,存入RAM1中,同时,从这第9个时钟周期开始的8个时钟周期,从RAM2中读取下一次8点FFT运算所需要的8个数据。第二个Radix-2/4/8点蝶形运算单元进行的第该级的Radix-8点蝶形运算和第一个单元同时进行,按照同样的顺序。
旋转因子存储器和旋转因子地址选择器模块。旋转因子存储器使用ROM来存储旋转因子。根据由旋转因子地址选择器提供的地址输出相应的旋转因子,经过旋转因子映射后,转换为对应的旋转因子与Radix-2./4/8蝶形运算单元的输出数据相乘。该旋转因子存储器和旋转因子地址选择器模块的输入输出信号如表8所示。
表1.整体硬件结构图输入输出说明
表2.输入数据初始排列模块输入输出说明
表3.存储器Single Port RAM模块输入输出说明
表4.控制信号发生器模块输入输出说明
表5.存储器读/写地址产生器模块输入输出说明
表6.Radix-2/4/8点蝶形运算单元
表7.复数乘法器模块
表8.旋转因子存储器和旋转因子地址选择器模块
信号名称 | 功能说明 | |
输入信号 | Twiddle factormultiplier control | 旋转因子地址选择控制信号 |
输出信号 | Twiddle_factor_path1;Twiddle_factor_path2 | 该路用于乘法的旋转因子输出路 |
Claims (7)
1.一种适用于CMMB和DVB-H/T的FFT运算电路结构,其特征在于该电路结构由控制信号发生器,输入信号重新排序模块,存储器Single Port RAM模块,存储器读/写地址产生器模块,2/4/8点蝶形运算单元,复数乘法器模块,旋转因子数据存储器和旋转因子存储地址发生器模块,控制数据继续计算or输出选择模块构成;每一个模块都有CMMB和DVB-H/T两种标准的工作模式,并且通过控制信号控制不同模块的工作模式;数据通路采用双路并行流水处理的数据通路,由2个蝶形运算单元和2个复数乘法器各组成一条独立的数据通路,RAM中的数据经该通路处理后即完成一级基-R操作,结果再存回RAM中,最后一级的蝶形运算结果就是整个FFT的计算结果,直接输出;其中:
输入数据初始排列模块,当输入一个待FFT计算的OFDM Symbol数据的时候,由输入数据初始排列模块首先进行输入数据的重新排序存储;若当前模式为CMMB标准的2K模式,则输入的一个OFDM Symbol中的2048个数据,平均分成4份,每份512个数据,分别存储于存储器RAM1,RAM2,RAM3,RAM4;若当前模式为CMMB标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的8K模式,则平均分成4份,每份2048个数据进行存储;
存储器Single Port RAM模块,用于存储需要计算的一个OFDM Symbol,缓存各级运算的结果,由4块位宽为26bits深度为2048的single port RAM组成;
控制信号发生器,产生模式选择信号MODE_SEL决定其他模块的电路工作的当前模式:是CMMB的2K/4K,还是DVB-H的2K/4K/8K模式,选择内容有:
(1)数据存储器的初始缓存内容,若是CMMB标准的2K模式,则输入的一个OFDM Symbol中的2048个数据,平均分成4份,每份512个数据,分别存储于存储器RAM1,RAM2,RAM3,RAM4;若当前模式为CMMB标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模式为DVB-H标准的8K模式,则平均分成4份,每份2048个数据进行存储;
(2)数据存储器的读/写地址控制,模式选择MODE_SEL[1:0]=00:CMMB的2K模式或DVB-H的2K模式;MODE_SEL[1:0]=01:CMMB的4K模式或DVB-H的4K模式;MODE_SEL[1:0]=10:DVB-H的8k模式;
(3)蝶形运算单元的工作模式,蝶形运算单元的工作模式分为Radix-2、Radix-4、Radix-8,三种,按照2048点、4096点、8192点FFT运算分为4级运算,按照算法选择当前使用Radix-2、Radix-4、或者Radix-8点蝶形运算的模式;
存储器读/写地址产生模块,完成对存储器的读写的控制,为数据的初始存储,和每一级FFT运算的数据的读取和该级运算结果的存储提供地址;
Radix-2/4/8点蝶形运算单元模块,蝶形运算单元的工作模式分为Radix-2、Radix-4、Radix-8,三种;按照FFT运算的分裂基运算法则,若是CMMB标准的2K模式,2048点数据的运算分为,第一级的Radix-4点蝶形运算和后面三级的Radix-8点蝶形运算;4096点FFT运算被分解为迭代的四级的Radix-8点蝶形运算;8192点FFT分解为迭代的第一级的Radix-2点蝶形运算和后面四级的8点蝶形运算;
Radix-2/4/8点蝶形运算单元由三级Radix-2的蝶形运算,延迟单元和多路选择器组成;其中,第一级有一个Radix-2点蝶形运算单元和1个寄存器,第二级有1个Radix-2蝶形运算单元和2个寄存器,第三级有Radix-2个蝶形运算单元和4个寄存器;多路选择器MUX用来选择,输入模式选择信号RADIX_MODE[1:0]=00时,选通路线R-2,进行Radix-2点的蝶形运算;当RADIX_MODE[1:0]=01时,选通路线R-4,进行Radix-4点的蝶形运算;RADIX_MODE[1:0]=11时,进行Radix-8点的蝶形运算;当选择路线R-2的时候,只有第一级的Radix-2点蝶形运算单元,后面两级的蝶形运算单元被旁路,不进行计算;当选择路线R-4的时候,只有第一级和第二级的Radix-2点蝶形运算单元,最后一级的蝶形运算单元被旁路,不进行计算;选择路线R-8的时候,三级的Radix-2点蝶形运算单元都进行运算;
复数乘法器模块,由4个实数乘法器构成,完成对输入的两个复数的实部和虚部进行计算;
旋转因子存储器和旋转因子地址选择器模块,旋转因子存储器使用ROM来存储旋转因子;根据由旋转因子地址选择器提供的地址输出相应的旋转因子,经过旋转因子映射后,转换为对应的旋转因子与Radix-2./4/8蝶形运算单元的输出数据相乘。
2.根据权利要求1所述的FFT运算电路结构,其特征在于:2048点快速傅里叶变换根据素因子算法分解为迭代的第一级的Radix-4点蝶形运算和后面三级的Radix-8点蝶形运算;4096点FFT运算被分解为迭代的4级的Radix-8点蝶形运算;8192点FFT分解为迭代的第一级的Radix-2点蝶形运算和后面四级的8点蝶形运算;迭代运算的时候,初始的运算数据,存储在存储器中,进入蝶形运算单元并且完成该级的Radix-2、Radix-4或者Radix-8运算后,该级的运算结果存回存储器中,等待所有的数据都完成了该级的运算的时候,再开始下一级的运算,从存储器中依次将所有的数据读出,输入蝶形运算单元开始计算,运算结果输出的时候再存回存储器;直到所有的2048/4096/8192点运算完成,最后FFT处理器结果再输出。
3.根据权利要求2所述的所述的FFT运算电路结构,其特征在于:将2048/4096/8192点FFT运算用分解基的FFT算法,其中Radix-2,Radix-4,Radix-8点蝶形运算单元,使用同一种结构的运算单元,即Radix-2/4/8点蝶形运算单元完成,其中将Radix-2、Radix-4、Radix-8点FFT运算分裂为以2为基,即Radix-2点蝶形运算为基的算法;其中,使用流水线的方式计算每一级运算中的基2的FFT运算,第一级选用1个存储单元,第二级使用2个存储单元,第三级使用4个存储单元存放运算数据,模式选择信号通过选择工作的级数来选择工作的模式;使用一个Radix-2/4/8点FFT蝶形运算单元,使整个2048/4096/8192点FFT运算以迭代的方式进行。
4.根据权利要求3所述的所述的FFT运算电路结构,其特征在于:所述的Radix-2/4/8点蝶形运算单元,使用两个Radix-2/4/8点蝶形运算单元,形成两路数据并行计算,以达到CMMB或者DVB-H的OFDM Symbol的FFT运算速率的要求。
5.根据权利要求2、3或4所述的所述的FFT运算电路结构,其特征在于:利用4块深度为2048的Single Port RAM模块存储器,和相应的存取地址读/写地址产生器,配合Radix-2/4/8点蝶形运算单元,进行迭代,实现2048/4096/8192点FFT运算;在一个OFDM的Symbol的FFT运算初始化的时候,将一个OFDM Symbol中的数据分4路,将正序输入的数据,按照倒序,存入4块数据深度为2048点的single port RAM之中;当运算的OFDMSymbol中的数据为2048个即2K点的时候,每块single port RAM中存放的数据为512个;当运算的OFDM Symbol中的数据为4096个即4K点的时候,每块single port RAM中存放的数据为1024个;当运算的OFDM Symbol中的数据为8192个即8K点的时候,每块singleport RAM中存放的数据为2048个。
6.根据权利要求5所述的所述的FFT运算电路结构,其特征在于:存储器的读写的控制由存储器读/写地址发生器完成,该存储器读/写地址发生器为数据的初始存储,和每一级FFT运算的数据的读取和该级运算结果的存储提供地址;初始存储数据的地址顺序选择有一定的规律,使得两路运行中的Radix-2/4/8点蝶形运算单元,在读取一块RAM的时候,能在其中取到当前计算所使用的数据;在完成该蝶形运算并流水地输出运算结果的时候,将结果存入同一块RAM的这些地址之中。
7.根据权利要求6所述的所述的FFT运算电路结构,其特征在于:两个Radix-2/4/8点蝶形运算同时并行计算,第一个Radix-2/4/8点蝶形运算单元读写RAM1和RAM2,第二个Radix-2/4/8点蝶形运算单元读写RAM3和RAM4;周而复始,直到完成该级的FFT运算,再开始下一级的FFT运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010209118 CN101894096A (zh) | 2010-06-24 | 2010-06-24 | 一种适用于cmmb和dvb-h/t的fft运算电路结构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010209118 CN101894096A (zh) | 2010-06-24 | 2010-06-24 | 一种适用于cmmb和dvb-h/t的fft运算电路结构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101894096A true CN101894096A (zh) | 2010-11-24 |
Family
ID=43103288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010209118 Pending CN101894096A (zh) | 2010-06-24 | 2010-06-24 | 一种适用于cmmb和dvb-h/t的fft运算电路结构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101894096A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383807A (zh) * | 2016-09-12 | 2017-02-08 | 深圳职业技术学院 | 一种fft处理器 |
CN107391439A (zh) * | 2017-07-11 | 2017-11-24 | 创达特(苏州)科技有限责任公司 | 一种可配置快速傅里叶变换的处理方法 |
CN110247872A (zh) * | 2019-03-25 | 2019-09-17 | 南京南瑞微电子技术有限公司 | 一种用于电力线载波通信芯片的同步检测方法及装置 |
CN110889814A (zh) * | 2019-11-21 | 2020-03-17 | 上海无线电设备研究所 | 一种基于Sysgen的可见光图像直方图增强方法及装置 |
CN112307423A (zh) * | 2020-11-19 | 2021-02-02 | 天津大学 | 基于基2sdf流水线型的fft处理器及其在aco-ofdm系统的实现方法 |
CN112506468A (zh) * | 2020-12-09 | 2021-03-16 | 上海交通大学 | 支持高吞吐多精度乘法运算的risc-v通用处理器 |
CN113111300A (zh) * | 2020-01-13 | 2021-07-13 | 上海大学 | 具有优化资源消耗的定点fft实现架构 |
CN117591065A (zh) * | 2023-11-24 | 2024-02-23 | 北京国科天迅科技股份有限公司 | 信号处理电路、信号处理方法和信号处理芯片 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626359A (zh) * | 2009-08-07 | 2010-01-13 | 复旦大学 | 一种适用于cmmb和dvb-h的频域同步电路结构 |
-
2010
- 2010-06-24 CN CN 201010209118 patent/CN101894096A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626359A (zh) * | 2009-08-07 | 2010-01-13 | 复旦大学 | 一种适用于cmmb和dvb-h的频域同步电路结构 |
Non-Patent Citations (1)
Title |
---|
《ASIC,2009.ASICON "09.IEEE 8th International Conference》 20091023 Simeng Li, Hao Xiao, Yun Chen, and Xiaoyang Zeng A Low-power 4K point FFT Processor for CMMB OFDM Receiver System , 2 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383807B (zh) * | 2016-09-12 | 2018-11-09 | 深圳职业技术学院 | 一种fft处理器 |
CN106383807A (zh) * | 2016-09-12 | 2017-02-08 | 深圳职业技术学院 | 一种fft处理器 |
CN107391439B (zh) * | 2017-07-11 | 2020-08-14 | 创耀(苏州)通信科技股份有限公司 | 一种可配置快速傅里叶变换的处理方法 |
CN107391439A (zh) * | 2017-07-11 | 2017-11-24 | 创达特(苏州)科技有限责任公司 | 一种可配置快速傅里叶变换的处理方法 |
CN110247872B (zh) * | 2019-03-25 | 2021-11-23 | 南京杰思微电子技术有限公司 | 一种用于电力线载波通信芯片的同步检测方法及装置 |
CN110247872A (zh) * | 2019-03-25 | 2019-09-17 | 南京南瑞微电子技术有限公司 | 一种用于电力线载波通信芯片的同步检测方法及装置 |
CN110889814A (zh) * | 2019-11-21 | 2020-03-17 | 上海无线电设备研究所 | 一种基于Sysgen的可见光图像直方图增强方法及装置 |
CN110889814B (zh) * | 2019-11-21 | 2024-04-26 | 上海无线电设备研究所 | 一种基于Sysgen的可见光图像直方图增强方法及装置 |
CN113111300A (zh) * | 2020-01-13 | 2021-07-13 | 上海大学 | 具有优化资源消耗的定点fft实现架构 |
CN112307423A (zh) * | 2020-11-19 | 2021-02-02 | 天津大学 | 基于基2sdf流水线型的fft处理器及其在aco-ofdm系统的实现方法 |
CN112307423B (zh) * | 2020-11-19 | 2023-09-22 | 天津大学 | 基于基2sdf流水线型的fft处理器及其在aco-ofdm系统的实现方法 |
CN112506468A (zh) * | 2020-12-09 | 2021-03-16 | 上海交通大学 | 支持高吞吐多精度乘法运算的risc-v通用处理器 |
CN117591065A (zh) * | 2023-11-24 | 2024-02-23 | 北京国科天迅科技股份有限公司 | 信号处理电路、信号处理方法和信号处理芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101894096A (zh) | 一种适用于cmmb和dvb-h/t的fft运算电路结构 | |
Jo et al. | New continuous-flow mixed-radix (CFMR) FFT processor using novel in-place strategy | |
Huang et al. | A high-throughput radix-16 FFT processor with parallel and normal input/output ordering for IEEE 802.15. 3c systems | |
Hsiao et al. | A generalized mixed-radix algorithm for memory-based FFT processors | |
CN101136891B (zh) | 流水线结构的3780点快速傅里叶变换处理器 | |
CN103955447B (zh) | 基于dsp芯片的fft加速器 | |
CN103984560B (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
Chen et al. | Continuous-flow parallel bit-reversal circuit for MDF and MDC FFT architectures | |
Xia et al. | A memory-based FFT processor design with generalized efficient conflict-free address schemes | |
CN103699515B (zh) | 一种fft并行处理装置和方法 | |
Luo et al. | Efficient memory-addressing algorithms for FFT processor design | |
KR100989797B1 (ko) | Fft/ifft 연산코어 | |
CN102495721A (zh) | 一种支持fft加速的simd向量处理器 | |
CN112231626A (zh) | 一种fft处理器 | |
US9262378B2 (en) | Methods and devices for multi-granularity parallel FFT butterfly computation | |
CN103034621B (zh) | 基2×k并行fft架构的地址映射方法及系统 | |
Chen et al. | A block scaling FFT/IFFT processor for WiMAX applications | |
CN106843803A (zh) | 一种基于归并树的全排序加速器及应用 | |
CN105955896A (zh) | 一种可重构dbf算法硬件加速器及控制方法 | |
Joshi | FFT architectures: a review | |
CN104268124A (zh) | 一种fft实现装置和方法 | |
Su et al. | Reconfigurable FFT design for low power OFDM communication systems | |
CN101706770B (zh) | 包含四条指令的支持快速傅里叶变换运算的方法 | |
CN103493039A (zh) | 数据处理方法和相关装置 | |
Minallah et al. | Real time FFT processor implementation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20101124 |