基于FPGA的FFT处理器的设计与实现

时间:2022-10-05 07:34:55

基于FPGA的FFT处理器的设计与实现

摘 要:对FFT处理器的实现算法-频域抽取基4算法做了介绍。介绍一种以FPGA作为设计载体,设计和实现一套集成于FPGA内部的FFT处理器的方法和设计过程。FFT处理器的硬件试验结果表明该处理器的运算结果正确,并且具有较高运算速度。该方法具有设计简单灵活,体积小等优点,可用于雷达处理、高速图像处理和数字通信等应用场合。

关键词:FFT;FPGA;基4算法,硬件实验结果

中图分类号:TP368.1 文献标识码:B 文章编号:1004-373X(2008)02-074-03

Design and Realization of FFT Processor Based on FPGA

HU Qiming,CAO Naochang,LIU Dongbin

(Engineering College,Air Force Engineering University,Xi′an,710038,China)

Abstract:The paper firstly introduces the arithmetic of FFT processor-Radix-4,and introduces the method and process of design and realizes a FFT processor,which is integrated in FPGA chip,regarding FPGA as design carrier.The result of hardware test of FFT processor shows that the processor works well and has high speed.The design has the advantages of simple ness,agility and small bulk.It can be used in many application situations,such as radar signals process,high speed image process and digital communication.

Keywords:FFT;FPGA;radix-4;algorithm;hardware experiment resultオ

数字信号处理领域中FFT作为时域和频域转换的基本运算,是数字谱分析的必要前提。因FFT的超级运算能力,使其在雷达处理、观测、跟踪、定时定位处理、高速图像处理、保密无线通讯和数字通信、匹配滤波等领域中得到极为广泛地应用。

近年来由于现场可编程门阵列(Field Programmable Gate Array,FPGA)的飞速发展,他能够进行并行信号处理,容易实现流水线结构,且升级简便,非常适合实现FFT算法[1,2]。一些FPGA厂商,如Altera公司和XILINX公司,都研制了相应的FFT IP核。但这些器件价格十分昂贵,不能得到广泛应用。因此,自主研发基于FPGA芯片的FFT处理器,把FFT实时化的要求和FPGA芯片设计灵活性结合起来,实现并行算法与硬件结构的优化配置,提高 FFT 处理速度,满足现代信号处理的高速度、高可靠性要求,已经成为了当今数字信号处理的一个研究点。本文正是适应这种趋势,采用频率抽取基4算法,设计并实现了一个集成于FPGA内部的FFT处理器。相对于传统的设计方法,应用FPGA作为算法实现的载体,使得FFT处理器除了具有算法实现准确性高和设备的稳定性强等特点外,更有系统集成度高、简单灵活、体积小、易于升级扩展和成本低廉等优点。

1 FFT的基本原理

对一维时域信号进行傅里叶变换,设xn是长为N的复序列,其DFT定义为:

由式(5)中可以注意到一些便于硬件实现的特点:如可以用分组加A+CW2P,BWP+DW3P,A-CW2P,BWP-DW3P,然后再进行2次相加等特点。

3 FFT的整体结构

在对频率抽样基4的算法进行介绍后,提出本文设计的FFT处理器的整体结构。本设计应用级联结构,每一级都使用1个独立的蝶型运算单元来加以运算。即:第1个蝶型运算单元计算第1列4只蝶型,第2个单元计算第2列。在实现过程中应用Verilog HDL作为系统设计的实体输入方式,设计了1个集成于FPGA芯片内部的使用基4算法1 024点32位(16位实数,16位虚数)的 FFT 计算单元,如图1所示。

从图1中可以看出,该FFT处理器采用5级流水线结构,RAM采用乒乓操作。每组RAM都由地址发生器进行控制,整个运算单元又接收状态发生器的控制。

4 蝶形单元结构

FFT的核心操作是蝶型运算,蝶型运算的速度直接影响着整个FFT处理器的速度,本文的蝶形单元的结构如图2所示。

由图2可以看出,蝶形运算包括复数乘法和加法2个部分,加法实现较为容易,因此只有提高复数乘法的运算速度才能加快蝶形单元的处理速度。鉴于复数乘法硬件实现较困难,计算速度慢。因此本设计采用CORDIC(坐标旋转数字计算机)算法来实现复数的乘法运算。CORDIC算法不但能够将复数乘法转化为硬件易于实现的加减和移位运算,而且根据他的迭代原理,CORDIC单元可以用流水线结构进行表示,可以使向量旋转并行处理,大大地加快了蝶型运算的速度[3]。

4.1 复数乘法单元

复数乘法单元,简称复乘单元,是FFT算法实现过程用来完成复数乘法的单元模块。在本设计中,应用复乘单元计算出基4算法式(5)中的A,BWP,CW2P,DW3P。

如蝶形单元结构图所示,按照基4算法的信号处理流程,由于第一级运算只有一个旋转因子W0,相当于将B,C,D都乘以1,因此第一级运算是不需要复数乘法单元的。

复乘单元CORDIC算法流水线形式如图3所示。

4.2 后续单元的设计

后续单元的主要作用就是将复乘单元的运算输出结果A,BWP,CW2P,DW3P依次输入到数据缓冲器中进行数据同步,然后对应式(5)进行复数加法运算,得出最终结果。由于4个复乘结果A,BWP,CW2P,DW3P是依次从 CORDIC 复乘单元中读出的,所以必须应用数据缓冲器进行数据同步处理,保证4个复乘结果同时输入到复数加法单元。

5 地址和状态发生器

FFT处理器控制部分主要由地址、状态发生器组成。地址发生器主要是产生FFT运算过程中用到ROM、RAM的存取地址;状态发生器是整个 FFT 处理器的控制中心,他主要功能如下:

(1) 使能或禁止FFT处理器工作;

(2) 使能或禁止各级存储模块工作;

(3) 使能或禁止各级地址发生器,数据分配器工作;

(4) 将FFT复位,将各级存储器清零。

在设计好FFT处理器的各个部分后,应用Actel公司开发的新一款的ILGOOe系列FPGA-AGLE600。他除了具有其他同类产品的基本性能外,更突出的特点是其采用FLASH*Freeze技术,加上其具有低静态、动态功耗,使得此款产品具有其他产品无法比拟的超低功耗性能。设计过程中将FFT处理器的各个部分分别设计输入,将整个FFT处理器烧录到AGLE600芯片内,并对FPGA管脚资源进行了配置,最终实现在1片FPGA芯片内部集成了一套FFT处理器系统。

6 硬件试验

由FFT的运算公式可知,方波经过FFT后应为Sa(ω)。图4所示是由FFT处理器对一个数据总长度为512点、脉冲宽度为20点方波进行FFT运算,并求模归一化后的结果。

7 结 语

本文介绍FFT处理器的实现算法,提出一种以FPGA芯片为载体实现FFT处理器的方法,并对处理器的蝶形单元、后续单元和控制单元做了相关介绍。硬件试验的结果表明,设计的FFT处理器的运算结果满足要求,且具有较高的运算速度。

参 考 文 献

[1]李铎,黄益庄.应用 FPGA 技术实现FFT[J].电子产品世界,2000(8):58-58.

[2]植强.一种基于FPGA的FFT阵列处理器[J].电子对抗技术,2002,7(6):36-39.

[3]Banerjee Ayan,Sundar Dhar,Anindya.FPGA Realization of a CORDIC-based FFT Processor for Biomedical Signal Processing[J].Microprocessors and Microsystems,2001,25(3):131-142.

[4]胡广书.数字信号处理理论、算法与实现[M].北京:清华大学出版社,1997.

[5]丁玉美,高西全.数字信号处理[M].2版.西安:西安电子科技大学出版社,2000.

[6]杜慧敏,李宥谋,赵全良.基于Verilog的FPGA设计基础\[M\].西安:西安电子科技大学出版社,2006.

注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

上一篇:基于单片机的多路低速数据串行传输 下一篇:虚拟仪器平台下示波器的设计与实现