一种适用于cmmb和dvb-h/t的fft运算电路结构的制作方法

文档序号:6604679阅读:195来源:国知局
专利名称:一种适用于cmmb和dvb-h/t的fft运算电路结构的制作方法
技术领域
本发明属于无线数字通信技术领域,具体涉及一种同时支持CMMB和DVB-H两种移 动多媒体标准的FFT运算电路结构。
背景技术
移动多媒体技术如今已经得到越来越广泛的应用。随着中国移动多媒体标准CMMB 的颁布实施,移动多媒体得到了进一步的普及。多模多标准是当今移动多媒体技术发展的 趋势,以同一套终端在不同地域实现对不同标准下的节目接收也是多模多标准发展的要 求。同步技术作为接收终端中一个重要的部分,其在多模接收终端中的研究应用也具有非 常重要的意义。研究目前主要的移动多媒体标准如欧洲标准DVB-H,中国标准CMMB,发现它们在 OFDM符号结构上具有一定的共性。即都采用了多载波0FDM(正交频分复用)调制方式,每 个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个数据,分别存储于存储器RAMI,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个数据,分别存储于RAMI,RAM2, RAM3, RAM4 ;若当前模式为CMMB标准的4K模式,则平均分成4份,每份1024个数据进行存储;若 当前模式为DVB-H标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模 式为DVB-H标准的8K模式,则平均分成4份,每份2048个数据进行存储。(2)数据存储器的读/写地址控制,模式选择M0DE_SEL[1:0] = 00:CMMB的2K模 式或 DVB-H 的 2K 模式;M0DE_SEL[1:0] = 01: CMMB 的 4K 模式或 DVB-H 的 4K 模式;M0DE_ 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_M0DE[1:0] =00时,选通路线R-2,进行Radix-2 点的蝶形运算;当RADIX_M0DE[1:0] = 01时,选通路线R-4,进行Radix-4点的蝶形运算; RADIX_M0DE[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个实数乘法器构成,完成对输入的两个复数的 实部和虚部进行计算。输入的reall和imagl为被乘数的实部和虚部,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 点蝶形运算单元读写RAMI和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个数据,分别存储于RAMI,RAM2, RAM3, RAM4 ;若当前模式为CMMB标准的4K模式,则平均分成4份,每份1024个数据进行存储;若 当前模式为DVB-H标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模
8式为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个数据,分别存储于RAMI,RAM2, RAM3, RAM4 ;若当前模式为CMMB标准的4K模式,则平均分成4份,每份1024个数据进行存储;若 当前模式为DVB-H标准的4K模式,则平均分成4份,每份1024个数据进行存储;若当前模 式为DVB-H标准的8K模式,则平均分成4份,每份2048个数据进行存储。(2)数据存储器的读/写地址控制,模式选择M0DE_SEL[1:0] = 00:CMMB的2K模 式或 DVB-H 的 2K 模式;M0DE_SEL[1:0] = 01: CMMB 的 4K 模式或 DVB-H 的 4K 模式;M0DE_ 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所
7J\ ο蝶形运算单元的工作模式分为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_M0DE[1:0] =00时,选通路线R-2,进行Radix-2 点的蝶形运算;当RADIX_M0DE[1:0] = 01时,选通路线R-4,进行Radix-4点的蝶形运算; RADIX_M0DE[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个实数乘法器构成,完成对输入的两个复数的 实部和虚部进行计算。输入的reall和imagl为被乘数的实部和虚部,real2和image2为 乘数的实部和虚部。经过4个乘法器完成。复数乘法器模块的输入输出如表7所示。数据通路和控制方式按照FFT的分裂基的分级运算规则,对于各级运算的不同阶段给出存储数据的读 /写地址信号,控制RAMI,RAM2, RAM3, RAM4这4个存储器的数据存储和读出。数据的初始 存储时,若是CMMB标准的2K模式,则读/写地址控制信号产生的RAMI,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级(stage 1,Stage2,stage3)运算中,犹豫每次进 行计算的R(R_4或者8)个数的间隔大于4,所以他们都位于同一块RAM中,其读写时序如图 4所示。各级的FFT运算,由存储器读/写地址产生模块,对两个Radix-2/4/8点蝶形运算 单元控制来完成。由如图3所示,第一级运算为stageO,第二级运算为stagel,第二级为 Stage2,第三级为Stage3,第四级为Stage4。每个时钟周期,Radix-2/4/8点蝶形运算单元 可以从存储器RAM中读出一个数据,每个时钟周期,可以将一个数据写回存储器。第一个 Radix-2/4/8点蝶形运算单元读取RAMI中的数据,然后将从RAMI中取得的数据的运算结 果流水输出写回RAMI相同地址,在输出结果的同时,该Radix-2/4/8点蝶形运算单元读取 RAM2中的数据,在RAM2中取得的数据的运算结果流水输出写回RAM2相同地址的同时读写 RAMI。第二个Radix-2/4/8点蝶形运算单元读取RAM3中的数据,然后将从RAM3中取得的 数据的运算结果流水输出写回RAM3相同地址,在输出结果的同时,该Radix-2/4/8点蝶形 运算单元读取RAM4中的数据,在RAM4中取得的数据的运算结果流水输出写回RAM4相同地 址的同时读写RAMI。通路1先从RAMI中一次读取R个数进行基-R运算,R个时钟周期后这组基-R运 算的记过开始输出,并被写回RAMI中,即图中的第二个大括号处。由于Radix-2/4/8点蝶 形运算单元是以流水线方式工作的,在写RAMI时,通路1同时也在读取RAM2中的另一组 基-R操作数,即图中RAMI和RAM2对应的读时段是交叠的。通过这种方法,通路1交替的 读写RAMI和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点蝶 形运算,依次从RAMI中读取当前8点FFT运算所需要的8个数据和它们的计算结果定义为 Group 1,下一次8点FFT运算所需要的8个数据和它们的计算结果定义为GroUp2。如图所 示的stagel中,开始的8个时钟周期,从RAMI中依次从RAMI中读取当前8点FFT运算所 需要的8个数据(地址0,1,2,3,4,5,6,7的数据),第9个时钟周期开始的8个时钟周期, 将8个运算结果依次输出,存入RAMI相应的地址中(此为Groupl的运算完成),同时,从这 第9个时钟周期开始的8个时钟周期,从RAM2中读取下一次8点FFT运算所需要的8个数 据(GroUp2的运算开始)。第二个Radix-8点蝶形运算单元,和第一个Radix-8点蝶形运算 单元同时并行工作,按照同样的顺序,读写RAM3和RAM4。周而复始,直到两个Radix-8点 蝶形运算单元完成该级的FFT分裂基运算。在下一级开始的Radix-8点蝶形运算,第一个 Radix-2/4/8点蝶形运算单元,开始的8个时钟周期,依次从RAMI中读取当前8点FFT运算 所需要的8个数据(如图所示的stage2中,从RAMI中读取地址0,8,16,24,32,40,48,56 的数据),第9个时钟周期开始的8个时钟周期,将8个运算结果依次输出,存入RAMI中,同 时,从这第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.存储器读/写地址产生器模块输入输出说明
13 表6. Radix-2/4/8点蝶形运算单元 表7.复数乘法器模块
表8.旋转因子存储器和旋转因子地址选择器模块
权利要求
一种适用于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点的时候,每块singl印ort RAM中存放的数据为2048个。
6.根据权利要求5所述的所述的FFT运算电路结构,其特征在于存储器的读写的控 制由存储器读/写地址发生器完成,该存储器读/写地址发生器为数据的初始存储,和每一 级FFT运算的数据的读取和该级运算结果的存储提供地址;初始存储数据的地址顺序选择 有一定的规律,使得两路运行中的Radix-2/4/8点蝶形运算单元,在读取一块RAM的时候, 能在其中取到当前计算所使用的数据;在完成该蝶形运算并流水地输出运算结果的时候, 将结果存入同一块MM的这些地址之中。
7.根据权利要求6所述的所述的FFT运算电路结构,其特征在于两个Radix-2/4/8 点蝶形运算同时并行计算,第一个Radix-2/4/8点蝶形运算单元读写RAMI和RAM2,第二个 Radix-2/4/8点蝶形运算单元读写RAM3和RAM4 ;周而复始,直到完成该级的FFT运算,再开 始下一级的FFT运算。
全文摘要
本发明属于无线数字通信技术领域,具体为一种适用于CMMB和DVB-H/T的FFT运算电路结构。该FFT运算电路结构,由控制信号发生器,输入信号重新排序模块,存储器SinglePort RAM模块,存储器读/写地址产生器模块,2/4/8点蝶形运算单元,复数乘法器模块,旋转因子数据存储器和旋转因子存储地址发生器模块等构成。本发明采用双路并行流水处理的数据通路,由2个蝶形运算单元和2个复数乘法器各组成一条独立的数据通路。每一个模块都考虑了两种标准在OFDM符号构成上的共性,从而实现硬件融合,并且通过控制信号控制不同模块的工作模式。
文档编号G06F17/14GK101894096SQ201010209118
公开日2010年11月24日 申请日期2010年6月24日 优先权日2010年6月24日
发明者曾晓洋, 李斯梦, 樊文华, 陈赟 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1