2 FFT运算器设计
2.1 系统的整体结构
一个完整的FFT运算单元应该包括以下几个组成部分:
全局控制单元包括控制器和地址产生单元,用于调控整个FFT运算系统,生成蝶形运算单元以及其他子单元所需的地址,控制各子单元时序,保证其正常有序地工作;
蝶形运算器单元 由蝶形运算器和旋转因子存储单元(ROM)组成,负责将送入的输人数据进行蝶形运算,是FFT运算器的核心单元;
存储寄存器单元 采用两个RAM乒乓通信,通过通信接口单元接收总线控制信号,负责存储输入数据、中间数据和运算所得最终结果。
系统整体框图如图1所示。
3 实验结果验证
这里的FFT运算器通过硬件描述语言VHDL代码进行编写,在ModelSimSE PLUS 6.1f环境下完成系统仿真,波形仿真如图3所示。
由波形仿真图可以看出,地址控制单元以3位二进制编码定义各子单元的地址,存储的数据在时序信号和地址总线单元控制下进行FFT运算。实验证明,当外部时钟频率为40 MHz时,可以对随机生成的64点序列进行FFT定点运算,运算时间为10μs。
4 结 语
这里的FFT运算器采用定点数处理,当处理浮点数时,系统存在处理异常、数据溢出等问题。但是由于可以迅速处理多点数信号,因此在数字图像处理、实时通信系统的调试和解调等方面具有一定的实际意义,达到了使用FPGA实现DSP算法的目的。
本文在以下方面有所创新:
(1)输入的64位数据以8位共8组的方式并行输入,将FFT运算流程分为6级,整个FFT运算过程清晰,结构合理,提高了运行效率。
(2)使用2块双口RAM作为存储器,采用“乒乓操作”,在一个时钟周期内保证数据传递的单向性,减少了数据传输的冗余,提高了精度。
(3)将整个FFT运算器进行模块化设计,在控制模块的调配下,各个子模块准确工作,保证了运算的可靠性。