专利名称:一种变换地址原址返回的级间流水fft处理模块的制作方法
技术领域:
本发明涉及一种时频变换基本工具FFT处理模块,特别是一种FPGA模块中,能够通过变换地址原址返回的级间流水方法,进行高速实时FFT处理的FFT处理模块。
背景技术:
在FPGA实现FFT方式中有级联流水方法和原址返回运算方法。级联流水方法能达到较快的处理速度,但是由于级联流水每一级都至少需要一个存贮单元和一个运算单元,所以占用了大量硬件资源,逻辑控制复杂。ALTERA公司的FFT.V.2.1IPCORE虽然可以达到237.93MHz的处理速度,但是也占用了大量的硬件资源registers4504;ALUTS5149;memory149.5K。原址返回运算方法,每一级运算使用唯一的存贮和运算单元,每级运算后需要重新的排序,以牺牲处理速度来节约硬件资源。
发明内容
本发明的目的在于为了克服现有的FFT处理模块硬件资源与处理速度之间的矛盾,而提供一种变换地址原址返回的级间流水FFT处理模块,该模块不仅能高速实时进行FFT处理,而且能有效的节约硬件资源。
本发明的目的可以通过以下技术方案来实现一种变换地址原址返回的级间流水FFT处理模块,包括输入RAM模块、输入选择器、数据缓存模块、基4运算单元模块、输出选择器、输出RAM模块以及数据地址产生器和蝶形因子地址产生器,输入RAM模块、输入选择器、数据缓存模块、基4运算单元模块、输出选择器依次并行的四路并行的DPRAM连接,输出选择器与输出RAM模块之间通过两路并行的DPRAM连接,数据地址产生器和蝶形因子地址产生器分别与数据缓存模块和基4运算单元模块连接,其特征在于还包括一数据转换模块,所述数据转换模块通过一路DPRAM连接输入选择器和输出选择器。
本发明的每一路DPRAM分别表示基4运算单元模块中的A,B,C,D四路数据,但数据为复数时,每一路都包括两个DPRAM,分别存储数据的实部和虚部,实部和虚部使用相同的地址。
本发明所述输入选择器用于将输入的DPRAM中的一路与所述数据转换模块输入的两路数据选择一路输出到数据缓存模块中,所述输出选择器根据运算的级数来判断将计算结果直接输出还是环回到数据缓存中。
本发明所述的基4运算单元模块从数据缓存模块中混序读入数据,运算完后将结果做行列变换并且存储到原来的地址中;在混序读入数据的同时,从蝶形因子地址产生器混序读入蝶形因子并将输入数据和蝶形因子匹配。
本发明所述数据转换模块通过寄存器做行读列写来实现数据转换。
由于采用了上述技术方案,本发明通过巧妙有规律地改变每级运算数据的读取地址,运算结果原址返回,使得不包括输入输出就只占用一个存贮单元。数据运算单元就可以不间断的进行数据运算,从而能只用一个运算单元和一个存贮单元达到pipeline的运算速度。这样在进行高速FFT运算的同时,大幅度的减少设计占用的硬件资源,以较少的资源达到接近级联流水的处理速度。
下面结合附图和具体实施方式
来进一步说明本发明。
图1为本发明FFT处理模块的总体框架结构图。
图2为本发明数据转换模块进行数据行列转换示意图。
图3为本发明FFT模块的端口定义图。
具体实施例方式
参见图1,一种变换地址原址返回的级间流水FFT处理模块,包括输入RAM模块1、输入选择器2、数据缓存模块3、基4运算单元模块4、输出选择器5、输出RAM模块6、数据转换模块7以及数据地址产生器8和蝶形因子地址产生器9,输入RAM模块1、输入选择器2、数据缓存模块3、基4运算单元模块4、输出选择器5依次并行的四路并行的DPRAM连接,输出选择器5与输出RAM模块6之间通过两路并行的DPRAM连接,数据地址产生器8和蝶形因子地址产生器9分别与数据缓存模块3和基4运算单元模块4连接,数据转换模块7通过一路DPRAM连接输入选择器2和输出选择器5。
从图中可以看出,输入、输出以及数据缓存模块3都采用4路并行的DPRAM,每一路DPRAM分别表示基4蝶形运算单元模块4中的A,B,C,D四路数据,其它模块中都不包含存储器资源。
当数据为复数时,每路都包括两个DPRAM,分别存储数据的实部和虚部,实部和虚部使用相同的地址。输入选择器2用于将输入的DPRAM中的一路与数据转换模块7输入的两路数据选择一路输出到数据缓存模块3中,输出选择器5根据运算的级数来判断将计算结果直接输出还是环回到数据缓存中。
为了方便下一级运算能够流水不间断的进行蝶形运算,需要在当前运算时,基4运算单元模块4从数据缓存模块3中混序读入数据,运算完后将结果做行列变换并且存储到原来的地址中,这样就可以做到在级与级运算间连续不间断的从数据缓存中取出数据进行蝶形运算。混序读入数据的同时,对蝶形因子地址产生器9产生的蝶形因子也要混序读入,这样每次进行蝶形运算的时候,输入数据就和蝶形因子匹配。
数据转换模块7通过寄存器做行读列写来实现数据转换。这样在每一级基4运算中,将计算完的结果以行列变换的方式存回原址中,配合每一级运算的混序读取使得每一级基4蝶形运算能够流水不间断的进行。相对pipeline结构而言,通过行列变换减少了pipeline结构中每一级重新排序所花费的大量时间。系统中设计的运算单元需要5个时钟周期,参看图2,当A1,B1,C1,D1运算完成时,A2,B2,C2,D2,A3,B3,C3,D3,A4,B4,C4,D4代表的存贮单元中数据已经取出,并且正在进行基4运算,这样运算后的A1,B1,C1,D1就可以存入A1,A2,A3,A4对应的存贮单元中,在下一个时钟周期,运算后的A2,B2,C2,D2存入B1,B2,B3,B4对应的存贮单元中。
通过行读列写的数据转换,配合每一级的地址读取顺序,数据运算单元就可以不间断的进行数据运算,从而能只用一个运算单元和一个存贮单元达到pipeline的运算速度。
参看图3,本发明的FFT处理模块左侧为输入信号,clk模块的输入时钟信号,上限是FFT模块的最高工作频率。wren输入使能信号,表示输入数据开始有效。Wren信号使能以后,连续的输入N个数据,然后wren置0,这样数据间隔的进入处理模块。通过外部的时序处理来完成数据连续实时的处理。inaddr输入数据的地址。indata输入的数据。右侧为输出信号,outen输出使能信号,为高时数据有效。outdata_r和outdata_iFFT变换结果的实部和虚部。这样该模块作为软件包可以方便灵活的应用。综合得到1024点的FFT程序最高工作频率在135.34MHz,处理速度可以满足我们系统的要求。用100MHz的时钟仿真来看,处理时间为(23.83-10.24)us即13.59us,即每一复数点经过FFT处理器的吞吐时间为13.2ns。同时大大减少了完成FFT处理所需要的硬件资源减少的RAM资源为[2(logrN+1)-3]即9个大小为2×1024×16bits的存储器;减少了4个基4运算单元,折合为4×12个16×12位的硬件乘法器。与ALTERA的IPCORE相比,占用的硬件资源为registers1266;ALUTS1519;memory96.4K,可见在同样满足高速实时处理的前提下,大量减少占用的硬件资源。
当然,对于本领域的一般技术人员,不花费创造性的劳动,在上述实施例的基础上能够作多种变化,同样能够实现本发明的目的。但是,上述各种变化显然应该在本发明的权利要求书的保护范围内。
权利要求
1.一种变换地址原址返回的级间流水FFT处理模块,包括输入RAM模块、输入选择器、数据缓存模块、基4运算单元模块、输出选择器、输出RAM模块以及数据地址产生器和蝶形因子地址产生器,输入RAM模块、输入选择器、数据缓存模块、基4运算单元模块、输出选择器依次并行的四路并行的DPRAM连接,输出选择器与输出RAM模块之间通过两路并行的DPRAM连接,数据地址产生器和蝶形因子地址产生器分别与数据缓存模块和基4运算单元模块连接,其特征在于还包括一数据转换模块,所述数据转换模块通过一路DPRAM连接输入选择器和输出选择器。
2.如权利要求1所述的FFT处理模块,其特征在于每一路DPRAM分别表示基4运算单元模块中的A,B,C,D四路数据,但数据为复数时,每一路都包括两个DPRAM,分别存储数据的实部和虚部,实部和虚部使用相同的地址。
3.如权利要求1所述的FFT处理模块,其特征在于所述输入选择器用于将输入的DPRAM中的一路与所述数据转换模块输入的两路数据选择一路输出到数据缓存模块中,所述输出选择器根据运算的级数来判断将计算结果直接输出还是环回到数据缓存中。
4.如权利要求1所述的FFT处理模块,其特征在于所述的基4运算单元模块从数据缓存模块中混序读入数据,运算完后将结果做行列变换并且存储到原来的地址中;在混序读入数据的同时,从蝶形因子地址产生器混序读入蝶形因子并将输入数据和蝶形因子匹配。
5.如权利要求1所述的FFT处理模块,其特征在于所述数据转换模块通过寄存器做行读列写来实现数据转换。
全文摘要
一种变换地址原址返回的级间流水FFT处理模块,包括输入RAM模块、输入选择器、数据缓存模块、基4运算单元模块、输出选择器、输出RAM模块,输入、输出以及数据缓存模块3都采用4路并行的DPRAM,每一路DPRAM分别表示基4蝶形运算单元模块4中的A,B,C,D四路数据,其它模块中都不包含存储器资源。数据地址产生器和蝶形因子地址产生器分别与数据缓存模块和基4运算单元模块连接,其还包括一DPRAM连接输入选择器和输出选择器的数据转换模块,本发明通过巧妙有规律地改变每级运算数据的读取地址,运算结果原址返回,使得不包括输入输出就只占用一个存贮单元。这样在进行高速FFT运算的同时,大幅度的减少设计占用的硬件资源,以较少的资源达到接近级联流水的处理速度。
文档编号G06F17/14GK1983246SQ20051011149
公开日2007年6月20日 申请日期2005年12月14日 优先权日2005年12月14日
发明者任前义, 梁继业, 刘会杰 申请人:上海微小卫星工程中心