固定1024点流水线FFT处理器研究
扫描二维码
随时随地手机看文章
快速傅里叶变换(FFT)算法实现的流水线结构FFT处理器在实时专用处理器中得到了广泛应用.Bi和Jones提出一种固定1024点流水线FFT处理器结构,该结构在运算的每级只采用一个复数乘法器.基于此结构Hasan设计了一种能够进行16,64,256和1024点FFT运算的可变点流水线FFT处理器,增强了处理器运用的灵活性.但该处理器结构所需的中间数据及旋转因子存储容量较大,各级的地址控制逻辑比较复杂,运算时间较长,不适于对速度和面积要求越来越高的应用场合.作者提出了一种实时可重配置的FFT处理器.该处理器采用小点数内部流水和大点数二维化处理结构,通过控制各处理模块实现4,16,64,256和1 024点复数FFT运算,并给出了该结构与Hasan结构的性能比较.
1 可重配置FFT算法原理
N个样本点的离散博里叶变换(DFT)表达式为
式(2)表明,计算组合数N=r1 r2点DFT等价于先求出r2组r1点的DFT,其结果乘以旋转因子后,再计算r1组r2点的DFT.
基-4时间抽取FFT算法中,16点FFT运算可以分为两级,第1级基本运算是4点序列的DFT.因此,如果只取16点FFT运算的第1级运算便可同时完成4点FFT运算.
2 可重配置FFT处理器的实现
2.1 系统设计
FFT处理器由数据输入单元、固定64点FFT、流水处理单元、中间乘旋转因子单元、4和16点FFT可变流水处理单元及数据输出单元组成.如图1所示.
在进行FFT运算时,单元选择控制逻辑根据需要变换长度N激活相应的处理单元.
根据式(2)对1 024点输入数据进行FFT运算,首先数据输入单元要按照N=rlr2=64×16完成对输入1 024点数据的分解,然后固定64点FFT流水处理单元完成16次64点运算.运算结果分别与1024个中间旋转因子相乘,然后乘旋转因子单元完成对这1 024个结果的整形,并使用4点和16点可变处理单元完成64次16点变换.数据输出单元完成对结果进行最后整形并同时输出1个块浮点溢出检测指数和1 024个数据结果.同理对于256点的FFT运算,数据输入单元按照N=r1r2=64×4进行分解运算即可.
2.2 地址生成
可重配置FFT处理器包括输入数据地址产生单元、64点数据旋转因子地址产生单元、中间乘旋转因子地址产生单元、中间数据存取地址产生单元、4,16点FFT数据及旋转因子地址产生单元和输出数据地址产生单元.每个单元都由计数器和地址变换器构成,每周期产生一组地址.由于采用的是Cooley-Tukey算法同址运算规则,倒序输入正序输出.因此针对不同长度的FFT运算,地址变换器只需要对计数器的输出值进行不同的变形即可.
由于要实现的最大运算点数为1 024,同时采用流水乒乓存储结构,因此输入、中间、输出单元的地址深度为2,则这3个地址产生器中的计数器为11位,最高位作为乒乓选择控制位.产生的各个单元地址如图2所示.中间数据地址产生单元只需要生成256点和1 024点数据地址即可.中间数据存地址即为输入数据地址.输出数据地址只需要产生4,16,256和1 024点数据地址.256个旋转因子可从1 024个旋转因子中抽取得到.产生的中间旋转因子地址如图3所示.4,16和64点FFT处理器采用Hansan结构,它们的存储容量远小于一个整1 024点所需的存储容量.为了加快数据访问时间,同时减少存储器容量,16点FFT运算所需的旋转因子值可以直接存储为常数. FFT同时采用块浮点定标方式,以提高运算精度.
3 ASIC验证及性能分析
使用VHDL硬件编程语言在RTL级对可重配置FFT处理器进行了代码描述.基于SMIC 0.18μm标准单元工艺库,用Synopsys DesignCompiler综合工具进行逻辑综合,使用Astro 工具进行版图规则及布局布线;用仿真工具VCS进行逻辑动态仿真,用参数提取工具Star-RCXT提取寄生参数并使用静态时序分析工具PrimeTime对整个设计系统进行静态时序分析.处理器的ASIC版图如图4所示存储器按照图1所示数据流的方向排放,以便于逻辑单元布局布线.处理器版图采用了3层电源环结构.采用该结构一方面可增加管脚供电能力,另一方面也可有效减小芯片面积(处理器芯片面积为3.6mm×3.7mm).
表1为作者所提出的结构与Hason结构的性能比较.其中数据用36 bit表示(高18 bit为实部,低18 bit为虚部),指数用6bit表示,结果比较用kbit表示.由表1比较结果可知,作者所提出的可重配置FFT处理器结构不仅减小了45%的存储器资源,而且节省了52%的处理时间.该处理器芯片在连续工作100 MHz时钟频率时,处理第1组1 024点FFT序列需要24.8 μs,以后每10.24μs给出1组1 024点运算结果.表2为FFT处理器进行各种点数运算的功耗.可重配置结构采用复用器及相关的逻辑电路实现门控时钟电路,这样,在进行不同点数运算时可以启动不同的运算单元(屏蔽不需要的运算单元),以降低功耗.由表2可知,在启动64点FFT运算模块时,系统功耗较1 024点FFT运算量降低了约49%,而 4点运算量降低了约80%.
4 结论
提出一种可重配置FFT处理器的ASIC芯片设计与实现、该芯片采用子模块基-4单元级联流水线结构,使用双口RAM进行乒乓存储,不仅减少了硬件实现资源,而且提高了处理速度,具有连续计算4,16,64,256和1 024点复数输入FFT的运算功能.结构设计采用模块化设计,缩短了芯片设计开发周期.处理器芯片面积为3.6mm×3.7mm,适用于实时、高精度动态变换应用场合.