FPGA实现高速FFT处理器的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文章编号:1001-893X(2003)02-0074-05

FPG A实现高速FFT处理器的设计3

Ξ韩 颖,王 旭,吴嗣亮

(北京理工大学电子工程系,北京100081)

摘 要:介绍了采用X ilinx公司的Virtex-II系列FPG A设计高速FFT处理器的实现方法及技巧。充分利用Virtex-II芯片的硬件资源,减少复杂逻辑,采用流水方式对复数数据实现了加窗、FFT、求模平方三种运算。整个设计采用流水与并行方式尽量避免瓶颈的出现,提高系统时钟频率,达到高速处理。实验表明此处理器既有专用ASIC电路的快速性,又有DSP器件的灵活性的特点,适合用于高速数字信号处理。

关键词:数字信号处理;现场可编程门阵列;快速傅里叶变换;加窗运算;求模平方运算

中图分类号:T N911172 文献标识码:A

The Design of H igh-speed FFT Processors B ased on FPGA

H AN Ying,WANG Xu,WU Si-liang

(Department of Electronic Engineering,Beijing Institute of T echnology,Beijing100081,China)

Abstract:The im plementation method and skill of a design for high-speed FFT process or based on X ilinx Vir2 tex-II FPG A is introduced in this paper.T o use su fficiently hardware res ource of the Virtex-II FPG A and to reduce the com plex logic,the serial m ode is adopted to put the com plex data into three operations which include multiplying window,performing FFT,com puting m odule-square.By using the serial and parallel architecture in the whole design,the bottleneck is av oided,the frequency of the system clock is increased and high-speed performance is achieved.The experiment proves that the process or has not only the high-speed performance of ASIC circuit,but als o the flexibility of the DSP and it is suitable for high-speed digital signal processing.

K ey w ords:Digital singnal processing;FPG A;FFT;Multiplying window;C om puting m odule-square

一、引 言

在高速数字信号处理中,FFT处理器的处理速度和精度是最主要的性能指标,但定点算法和浮点算法使设计在速度与精度之间存在矛盾,针对实际的信号处理中需要的高速度与高精度的要求,本设计采用在灵活性和扩展性方面很强的FPG A(现场可编程门阵列)实现FFT(快速傅里叶变换)运算。由于FPG A器件速度快、密度高、功耗低、可配置性强,现已在许多领域得到广泛的应用。本设计可以用X ilinx公司近年推出的Virtex-II系列完成,除了具有FPG A在线可编程的特点外,Virtex-II系列还有4个主要特点[1]使它适合实现高速FFT运算:(1)具有大量的片内同步寄存器、锁存器、查找表、多路选择器等灵活的逻辑资源,便于实现流水结构以及逻辑运算;(2)内部时钟速度可达420MH z,且带有时钟管理块DC M和专用的时钟信号线,可以解决时钟扭曲问题;(3)有为算术运算而特别设计的硬件结构,如18bit×18bit嵌入式高速乘法器、快速进位逻

Ξ收稿日期:2003-01-17

辑链等;(4)具有大量的存取速度很快的内部块状RAM ,并且可以根据用户定义决定它的容量、是否双

口等等,这不但有利于简化设计,减少外围电路,而且有利于提高系统性能。可见这一系列的FPG A 适合实现高速FFT 运算这种需要乘法器、大量块RAM 、寄存器的设计。

针对高速与高精度的处理要求,采用高性能的Virtex -II 系列FPG A 设计的处理器具有以下3个特

点:(1)利用内部块RAM 存取速度快的性能特点采用“双蝶形”结构并行处理,使处理速度提高一倍;(2)采用了块浮点算法不仅可以解决精度问题,且硬

件实现的结构和控制都很简单;(3)利用FPG A 具有的可以进行模块化的设计、易于扩展的特点,此处理器还能在对数据实现FFT 运算前对数据进行去直流分量、加窗处理,FFT 运算后进行求模平方运算,这几种处理在数字信号处理中常常是必要的,因此在一个芯片内实现是有意义的。

二、FFT 算法的具体结构

由于对数据的去直流分量处理、加窗运算、求模平方运算的算法实现相对简单,而实现FFT 运算则比较复杂,所以下面对实现FFT 运算的FFT 运算模块的实现结构及原理进行详细的说明。

1.递归结构与并行结构的结合

实现FFT 运算的结构如图1所示

图1 FFT 的递归结构

由图1可见这一结构仅由一个“双蝶形运算单

元”作为整体的运算单元,每级蝶形运算按递归方式运行,递归结构实现起来占用资源少,而且控制简单。由于处理512点数据,所以采用基-2算法,同时为了提高处理速度,本设计采用2个“基-2蝶形单元”并行处理,它的吞吐率是一个“基-2蝶形单元”的2倍,也等于一个“基-4蝶形单元”的吞吐率[2]。此外蝶形单元内部采用流水与并行方式,能

有效减小运算时钟的周期,提高系统的整体速度。

2.蝶形单元结构

按时间抽取(DIT )的基-2蝶形运算算法可以

表示为[3]

X (n )=x (n )+x (n +2p-s )W n 2

s

X (n +2

p-s

)2x (n )-x (n +2p-s )W n 2

s

(1)

其中s 是蝶形运算单元的级数,n =b 2・2s +b 1,s =1,2,…,p ,b 1取遍0,1,…,2s -1-1,b 2取遍0,1,

…,2

p -s -1。

上式是FPG A 实现基-2FFT 算法的基础,根据它不仅可以构建蝶形单元框图,而且可以得出抽取数据与相应的旋转因子的地址。由上式可见实现一个基-2蝶形运算需一次复乘,两次复加。采用改进的蝶形单元可以实现用2个实数乘法器在2个节拍内完成复乘,乘法器采用片内专门乘法器,不仅减小了流水深度,而且提高了处理速度。图2给出了改进型基-2蝶形运算框图[2]。

图2 基-2蝶形单元结构图

图2中主要由寄存器、乘法器、加法器、延时器组成,其中延时器是由4个寄存器搭建的。图中未

标明时钟信号的寄存器的时钟为C LK 。

蝶形单元工作过程如下:复数数据按x (n +

2p -s ),x (n )顺序进入数据口,旋转因子按W n 2s R ,W n 2s

I 顺序进入系数口,Phi1控制x (n +2p -s )与旋转因子进行复乘,由式(1)可见x (n )不参加复乘运算,所以由Phi2控制直接经延时单元到达加法器。

本结构简单紧凑,流水与并行方式的应用避免了瓶颈出现,达到了高速处理的需求。

3.双蝶形运算单元

双蝶形单元是由2个结构相同的蝶形单元组成,双蝶形单元接口图见图3。C LK 与C LK -180必须有180°的相位差,C LK 与C LK -180的频率是系统时钟频率,且它们的频率是地址单元及存储器的时钟C LK X2的频率的二分之一。只有这样,数据才能

相关文档
最新文档