论文部分内容阅读
离散傅立叶DFT变换作为数字信号处理中最基本的运算之一,在很多领域中发挥着重要的作用,而快速傅立叶变换FFT作为DFT的快速算法使得傅立叶变换的运算量大大减少,且实现起来更方便,已成为现代数字信号处理的核心算法之一。所以,对FFT算法及其实现的研究有着极强的理论和现实意义。另外,随着SoC的发展,IP核的复用成为加速SoC设计的重要途径,片上互联也成为一个重要的研究问题。
本文针对龙芯数字信号处理平台,设计实现一个1024点浮点数FFT处理IP核。该口核处理符合IEEE754标准的32位单精度浮点数。采用无冲突的地址生成方案,基-4蝶形,流水处理。接口符合ARM公司提出的AMBA3 AXI标准。
对于FFT运算处理部分,本文提出并实现了三种系统结构,并在性能和资源占用方面对它们做了比较分析。
首先,我们根据浮点数据运算的特点,设计浮点加减法和浮点乘法运算模块,蝶形运算单元采用改进的浮点加减法运算器,而相位旋转运算采用浮点乘法器实现。
第二种方案则是利用了定点运算的简单快速的特点,采用块浮点运算思想,将从内部存储中读取的浮点数据在进行基-4蝶形运算之前进行统一对阶,即4个复数的虚实部共享一个指数,尾数以定点格式参与接下来的蝶形运算和定点CORDIC旋转。在运算之后,将定点尾数规格化还原为IEEE754标准单精度浮点数。
通过分析前两种方案的性能和效果,结合定点运算和浮点运算的特点,我们给出了第三种方案,即蝶形运算部分采用块浮点思想用定点运算实现,而相位旋转部分采用浮点乘法器实现。
仿真结果的统计分析表明,第三种方案比第二种方案的资源占用稍多,但是可以获得和第一种方案相类的精度和性能。因此选用它来作为我们FFT处理部分的实现方案。
在IP核接口方面,为了可以与龙芯数字信号处理平台中的其他IP实现交互,我们根据实际应用,采用Register-in-Combination-out方式定制实现了AXI的Master和Slave接口,并通过了行为仿真验证。