一种可变数据个数的fft/ifft处理器的基4模块的制作方法

文档序号:7746573阅读:158来源:国知局
专利名称:一种可变数据个数的fft/ifft处理器的基4模块的制作方法
技术领域
本发明涉及一种基于FFT/IFFT处理器的基4模块,尤其涉及一种可变数据个数的 FFT/IFFT处理器的基4模块。
背景技术
随着通信技术和信号处理技术的发展,人们对多媒体的需求越来越多,质量也越来越高,如何在现有的技术水平和硬件条件下实现合理优化实时的多媒体通信终端设备和产品一直是近年来信号处理领域和相关公司关注的话题。移动数字电视作为多媒体通信以及集成电路产业发展的重要方向,近年来在国际上获得飞速发展。作为数字电视标准中的佼佼者,CMMB(中国移动多媒体数字广播)标准已覆盖全国大多数大中型城市,随着应用的增多,拥有CMMB标准的数字电视将会深入到社会的每个角落。在信号分析处理方面有着卓越表现的快速傅里叶变换FFT及反快速傅里叶变换 IFFT不仅能将模拟信号转换到频域,而且还能把数字信号从频域转换到时域或从时域转换到频域;这使得它在通信领域应用十分广泛。在CMMB系统发送端需要对信号进行反快速傅里叶变换IFFT,而在CMMB系统接收端则需要对信号进行快速傅里叶变换FFT。FFT/IFFT系统中的核心运算就是基2或基4运算,基4或基2模块的性能对整个FFT/IFFT系统的性能影响巨大。基于专利名称为“用于实现可变数据个数的FFT/IFFT处理器的基4模块”(申请号为200910201955. 2)的发明专利的内容,设计中采用的寄存器数据较多,在设计过程中占用大量的芯片资源,如何能在现有技术基础上且不改变原有时钟频率设计,降低芯片面积,提高芯片设计的资源利用率,成为本发明所要解决的技术问题。

发明内容
本发明目的提供一种可变数据个数的FFT/IFFT处理器的基4模块,能够在不改变原有时钟频率的前提下,合并多个寄存器,减少寄存器连线,缩小设计面积,节省芯片资源, 提高资源利用率。一种可变数据个数的FFT/IFFT处理器的基4模块,由寄存器、基4运算单元、二选一多路选择器、选择与控制模块、乘法模块,旋转因子模块构成。寄存器,用于数据存储。基4运算单元,用以进行基4运算。二选一多路选择器,包含两个选择器MUXl和MUX2。MUXl用于对输入的数据流进行选择控制;MUX2用于对寄存器和基4运算单元的输出数据进行选择控制。选择与控制模块,用于控制整个过程的数据流向和运算过程。乘法模块,用于进行旋转因子与基4运算结果的复乘运算。旋转因子模块,用于产生旋转因子。
本发明中,寄存器的时钟为外部输入数据的时钟的两倍。在外部数据输入时,数据块被分成四块,前三块数据存储在寄存器里,最后一块数据到达时,与前面三块被存储在寄存器里的数据一起被送往基4运算单元进行运算。寄存器的访问方式是先读后写。寄存器的输入端口和输出端口数据的位宽为外部输入数据线 Din的位宽的三倍。外部输入数据Din写入所述寄存器时,将外部输入数据Din所需存放地址的数据读取出,再把该数据的某些位修改为外部输入数据Din,再写回所述寄存器。二选一选择器中,二选一选择器MUXl的两个输入端口和一个输出端口的位宽都为外部输入数据线Din的位宽的三倍。外部输入数据线Din的数据在选择与控制模块的控制下拓展三倍位宽后,连接到所述第一个二选一选择器MUXl的第一个数据输入端口。二选一选择器MUX2的两个输入端口和一个输出端口的位宽都与外部输入数据线Din的位宽一样,所述寄存器的输出端口的数据在选择与控制模块的控制下缩小三倍位宽,连接到所述第二个二选一选择器MUX2的第一个数据输入端口。当外部输入数据线Din的数据的位宽为M比特,输入的数据块总共有N个数据, 分成四块,则第一块为第1 N/4个数据;第二块为第N/4+1 N/2个数据;第三块为第 N/2+1 3*N/4个数据;第四块为第3*Ν/4+1 N个数据;寄存器的位宽为3*M。第一块数据到来时,送往寄存器位宽为第0位到第M-I位的位置暂存;当第二块数据到来时,送往寄存器位宽为第M位到第2*M-1位的位置暂存;当第三块数据到来时,送往寄存器位宽为第2*M位到第3*M-1位的位置暂存。第四块数据的第一个数据到来时,直接送往基4运算单元。同时从寄存器取出地址为0的位宽为第0位到第M-I位的数据,位宽为第M位到第2*M-1位的数据,位宽为第2*M 位到第3*M-1位的数据,一起送往基4运算单元,进行基4运算,运算完成后产生的4个输出数据。第1个基4运算单元的输出数据直接输出到乘法模块,进行乘法运算,第2个基4 运算单元的输出数据写回到寄存器地址为0的位宽为第0位到第M-I位的位置,保存在原来第1个数据的位置;第3个基4运算单元的输出数据写回到寄存器地址为0的位宽为第 M位到第2*M-1位的位置,保存在原来第N/4+1个数据的位置;第4个基4运算单元的输出数据写回到寄存器地址为0的位宽为第2*M位到第3*M-1位的位置,保存在原来第N/2+1 个数据的位置。接收第四块数据第二个数据,送往基4运算单元。同时从寄存器取出地址为1的位宽为第0位到第M-I位的数据,位宽为第M位到第2*M-1位的数据,位宽为第2*M位到第 3*M-1位的数据,一起送往基4运算单元,进行基4运算,运算完成后产生的4个输出数据。 第1个基4运算单元的输出数据直接输出到乘法模块,进行乘法运算;第2个基4运算单元的输出数据写回到寄存器地址为1的位宽第0位到第M-I位的位置,保存在原来第2个数据的位置;第3个基4运算单元的输出数据写回到寄存器地址为1的位宽为第M位到第 2*M-1位的位置,保存在原来第N/4+2个数据的位置;第4个基4运算单元的输出数据写回到寄存器地址为1的位宽为第2*M位到第3*M-1位的位置,保存在原来第N/2+2个数据的位置。依次接收第四块数据的第三个数据,直至第四块数据的最后一个数据处理完毕。第一块数据,第二块数据和第三块数据处理完毕,经基4运算单元处理后的数据中,第一块经基4运算单元处理的数据已经输出到乘法模块进行乘法运算,第二块经基4运算单元处理的数据暂存在寄存器的位宽为第0位到第M-I位的位置,第三块经基4运算单元处理的数据暂存在寄存器的位宽为第M位到第2*M_1位的位置,第四块经基4运算单元处理的数据暂存在寄存器的位宽为第2*M位到第3*M-1位的位置。在输出完第一块经基4 运算单元处理的数据后,依次输出暂存在寄存器的位宽为第0位到第M-I位位置中第二块已被基4运算单元处理的数据,同时接收外面的输入数据,把外面输入数据的第一块数据保存在寄存器的位宽为第0位到第M-I位的位置。输出完暂存在寄存器的位宽为第0位到第M-I位中经基4运算单元处理的最后一个数据后,输出暂存在寄存器的位宽为第M位到第2*M-1位中第三块已被基4运算单元处理的数据,同时接收外面的输入数据,把外面输入数据的第二块数据保存在寄存器的位宽为第M位到第2*M-1位的位置。输出完暂存在寄存器的位宽为第M位到第2*M-1位中已被基4运算单元处理的最后一个数据后,输出暂存在寄存器的位宽为第2*M位到第3*M-1位中第四块已被基4运算单元处理的数据,接收外面的输入数据,把外面输入数据的第三块数据保存在寄存器的位宽为第2*M位到第3*M-1位的位置。


图1 一种可变数据个数的FFT/IFFT处理器的基4模块结构框2通常情形下的寄存器应用示意3基于本发明的寄存器应用示意图
具体实施方案以下结合各附图对本发明所提出的内容进行详细的说明如图1中所示,输入数据的时钟若为clklx,则基4模块的三个寄存器以及相关控制逻辑电路的时钟需采用两倍时钟clk2x,这样才能保证在下一个数据块到来时,对寄存器的先读后写操作不会出现出数据被覆盖或丢失。下面以数据个数N为4096,位宽为10比特的数据块的基4运算为例,进行详细的说明外部输入的数据块总共有4096个数据,分成四块,第一块为第1 IOM个数据; 第二块为第1025 2048个数据;第三块为第2049 3072个数据;第四块为第3073 4096个数据,寄存器的位宽为30比特。当第一块数据到来时,被送往寄存器位宽为第0位到第9位的位置暂存;当第二块数据到来时,被送往寄存器位宽为第10位到第19位的位置暂存;当第三块数据到来时,被送往寄存器位宽为第20位到第四位的位置暂存。当第四块数据的第一个数据到来时,直接送往基4运算单元。同时从寄存器取出地址为0的位宽为第0位到第9位的数据,位宽为第10位到第19位的数据,位宽为第20 位到第四位的数据,一起送往基4运算单元,进行基4运算。运算完成后产生的4个输出数据中,第1个基4运算单元的输出数据直接输出到乘法模块,进行乘法运算;第2个基4 运算单元的输出数据写回到寄存器地址为0,位宽为第0位到第9位的位置,保存在原来第 1个数据的位置;第3个基4运算单元的输出数据写回到寄存器地址为0的位宽为第10位到第19位的位置,保存在原来第1025个数据的位置;第4个基4运算单元的输出数据写回到寄存器地址为0的位宽为第20位到第四位的位置,保存在原来第2049个数据的位置。
然后接收第四块数据第二个数据,直接送往基4运算单元。同时从寄存器取出地址为1的位宽为第O位到第9位的数据,位宽为第10位到第19位的数据,位宽为第20位到第四位的数据,一起送往基4运算单元,进行基4运算。运算完成后产生的4个输出数据中,第1个基4运算单元的输出数据直接输出到乘法模块,进行乘法运算;第2个基4运算单元的输出数据写回到寄存器地址为1的位宽第0位到第9位的位置,保存在原来第2 个数据的位置;第3个基4运算单元的输出数据写回到寄存器地址为1的位宽为第10位到第19位的位置,保存在原来第10 个数据的位置;第4个基4运算单元的输出数据写回到寄存器地址为1,位宽为第20位到第四位的位置,保存在原来第2050个数据的位置。依次再接受第四块数据的第三个数据,……直至第四块数据的最后一个数据处理完毕。与此同时,第一块数据,第二块数据和第三块数据也已经处理完毕,经过基4运算单元处理后的数据中,第一块已被基4运算单元处理的数据已经输出到乘法模块进行乘法运算,第二块已被基4运算单元处理的数据暂存在寄存器的位宽为第0位到第9位的位置, 第三块已被基4运算单元处理的数据暂存在寄存器的位宽为第10位到第19位的位置,第四块已被基4运算单元处理的数据暂存在寄存器的位宽为第20位到第四位的位置。在输出完第一块已被基4运算单元处理的数据后,开始依次输出暂存在寄存器的位宽为第0位到第9位位置中第二块已被基4运算单元处理的数据,同时接收外面的输入数据,把外面输入数据的第一块数据保存在寄存器的位宽为第0位到第9位的位置。输出完暂存在寄存器的位宽为第0位到第9位中已被基4运算单元处理的最后一个数据后,开始依次输出暂存在寄存器的位宽为第10位到第19位中第三块已被基4运算单元处理的数据,同时接收外面的输入数据,把外面输入数据的第二块数据保存在寄存器的位宽为第10位到第19位的位置。输出完暂存在寄存器的位宽为第10位到第19位中已被基4运算单元处理的最后一个数据后,开始依次输出暂存在寄存器的位宽为第20位到第四位中第四块已被基4运算单元处理的数据,同时接收外面的输入数据,把外面输入数据的第三块数据保存在寄存器的位宽为第20位到第四位的位置。采用本发明所提供的可变数据个数的FFT/IFFT处理器的基4模块,在同等设计情形中能减少大量寄存器连线,节省芯片资源。例如,在设计数据个数N = 4096的FFT处理器时,需要6级基4运算才能完成,在传统方法中,每级基4运算至少要3个单口 SRAM,每个 SRAM需要一组时钟,复位信号,片选信号,读写使能信号,地址线等,共需18组,其寄存器使用情况如图2所示。而采用本发明所提供的基4模块的设计方法后,每级的输入数据线和输出数据线宽度总和与传统的方案一样,但时钟,复位信号,片选信号,读写使能信号,地址线等只需一组就够了,总共仅需6组,寄存器设计情形如图3所示。此外,寄存器块数也由原来的18块降为6块,资源节约的效果非常明显。当数据个数N越大,节省的寄存器资源越多。在实现过程简单,可在FPGA或者ASIC上实现,适用于CMMB,DVB-T等移动数字电视芯片的设计。
权利要求
1.一种可变数据个数的FFT/IFFT处理器的基4模块,由寄存器、基4运算单元、二选一多路选择器、选择与控制模块、乘法模块和旋转因子模块构成。
2.如权利要求1所述的一种可变数据个数的FFT/IFFT处理器的基4模块,其特征在于所述寄存器与二选一多路选择器连接,存放被分成四块的外部输入数据的前三块。
3.如权利要求1所述的一种可变数据个数的FFT/IFFT处理器的基4模块,其特征在于所述寄存器的访问为先读后写。
4.如权利要求1所述的一种可变数据个数的FFT/IFFT处理器的基4模块,其特征在于所述寄存器的时钟为外部输入数据的时钟的两倍。
5.如权利要求1所述的一种可变数据个数的FFT/IFFT处理器的基4模块,其特征在于所述二选一多路选择器为两个,二选一选择器MUXl和二选一选择器MUX2。
6.如权利要求1所述的一种可变数据个数的FFT/IFFT处理器的基4模块,其特征在于所述基4运算单元的四个输入端口中有一个输入端口连接到外部输入数据线Din,其他三个输入端口连接寄存器的输出端;其四个输出端口中有一个连接到二选一选择器MUX2 的输入端,其他三个输出端口连接到二选一选择器MUXl的输入端。
7.如权利要求1所述的一种可变数据个数的FFT/IFFT处理器的基4模块,其特征在于所述寄存器的输入端口和输出端口数据位宽为外部输入数据线Din的位宽的三倍;
8.如权利要求1或5所述的一种可变数据个数的FFT/IFFT处理器的基4模块,其特征在于所述二选一选择器MUXl的两个输入端口和一个输出端口的位宽设为外部输入数据线Din的位宽的三倍;外部输入数据线Din的数据在选择与控制模块的控制下拓展三倍位宽,连接到所述第一个二选一选择器MUXl的第一个数据输入端口。
9.如权利要求1或5所述的一种可变数据个数的FFT/IFFT处理器的基4模块,其特征在于所述二选一选择器MUX2的两个输入端口和一个输出端口的位宽都与外部输入数据线Din的位宽相同;所述寄存器的输出端口的数据在选择与控制模块的控制下缩小三倍位宽,连接到所述第二选一选择器MUX2的第一个数据输入端口。
10.如权利要求1或2所述的一种可变数据个数的FFT/IFFT处理器的基4模块,其特征在于所述数据块为第一块为第1到N/4个数据;第二块为第N/4+1到N/2个数据;第三块为第N/2+1到3*N/4个数据;第四块为第3*Ν/4+1到N个数据,寄存器位宽为3*M,其中输入数据块数据为N,数据位宽为M比特。
全文摘要
一种可变数据个数的FFT/IFFT处理器的基4模块,由寄存器、基4运算单元、二选一多路选择器、选择与控制模块、乘法模块,旋转因子模块构成。二选一多路选择器,包含两个多路选择器MUX1和MUX2。在外部数据输入时,数据块被分成四块,前三块数据存储在寄存器里,最后一块数据到达时,与前面三块被存储在寄存器里的数据一起被送往基4运算单元进行运算。采用本发明目的提供一种可变数据个数的FFT/IFFT处理器的基4模块,能够在不改变原有时钟频率的前提下,合并多个寄存器,减少寄存器连线,缩小设计面积,节省芯片资源,提高了资源利用率。
文档编号H04N5/44GK102238348SQ201010152070
公开日2011年11月9日 申请日期2010年4月20日 优先权日2010年4月20日
发明者左耀华 申请人:上海华虹集成电路有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1