- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
实时可重配置FFT处理器的ASIC设计
快速傅里叶变换(FFT)算法在无线通信、语音识别、图像处理、数字滤波和频谱分析领域有着广泛应用.其中Cooley-Tukey算法具有原址运算的特点,易于硬件实现.基于此算法实现的流水线结构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,适用于实时、高精度动态变换应用场合.
上一篇:基于FPGA的交通灯系统控制设计
下一篇:智能全数字锁相环的设计