完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一种高速并行FFT处理器的VLSI结构设计
摘要:在OFDM系统的实现中,高速FFT处理器是关键。在分析了基4按时域抽取快速傅立叶变换(FFT)算法特别的基础上,研究了一种高性能的FFT处理器的硬件结构。此结构能同时从四个并行存储器中读取蝶形运算所需的4个操作数,极大地提高了处理速度。此结构控制单元简单,便于模块化设计。经硬件验证,达到设计要求。在系统时钟为100MHZ时,1024点18位复数FFT的计算时间为13μs。 关键词:FFT 蝶形单元 块浮点 流水线 正交频分复用OFDM(Orthogonal Frequency Division Multiplex)是近几年兴起的一种在无线信道上实现高速数据传输的新技术。它采用多载波调制技术,其最大的特点在传输速率高,对码间干扰和信道通道性衰落具有很强的抵抗能力。在OFDM系统中,各子载波的调制解调采用一个实时的快速傅立叶变换(FFT)处理器实现,因此高速FFT处理器是OFDM系统实现中的一个重要因素。目前通用的FFT模块可以达到的速度数量级为1024点16位字长定点、块浮点、浮点运算在几十到数百微秒量级,其中采用TI公司的DSP62XX定点系列达到66μs量级处理速度,新近的64XX在600MHZ时钟频率下完成1024点定点FFT的时间仅需10μs。C6701浮点DSP在167MHz时钟频率下完成32位1024点浮点FFT的运算时间需120μs。而AD公司的ADSP-21160SHARC在100MHZ下完成需要90μs。但是如果仅用于FFT处理而废弃其他功能性价比就很低。采用XILINX公司的FFT IP核处理,也可以达到160MHz的工作频率,但由于其采用固核,外围引脚较多不利于使用,且不利于针对特殊要求进行修改。 本文在分析了基4按时域分解的FFT算法特点的基础上,提出了一种便于VLSI实现的FFT处理器结构。处理器运算单元的流水并行及操作数的并行读写保证了每个周期能够完成一次蝶形运算。而文献提出的地址映射算法不适用于本设计单蝶形运算结构;文献中,寻址方案基于线形变换,但是需要复杂的位矩阵点积算法;文献方案做了改进,但仍然较复杂。本文提出一种完全同址的数据全并行FFT处理器设计方法。此方案仅需要一个计数器,通过简单的线形变换,即可实现对不同长度N=4 P的FFT处理。 1 原理分析 设序列x(n)的长度为N=4 P,其中p为正整数,则x(n)的DFT为: 对n,k采用指标映射关系: 由上述运算步骤可推得基4按时间抽取在第s级的蝶形运算单元的方程为: 其中s为基4DIT算法流图中蝶形运算单元的级数; 式(4)给出了DIT算法的蝶形运算公式,由此可以得出抽取数据的规律,同时地也得到了每个数据在每级蝶形运算中相应的旋转因子的值,因此式(4)是VLSI实现基4FFT算法的基础。 FFT运算中与旋转因子相乘的运算是复数乘法。可以看出,若采用并行处理方式在一个时钟周期内实现复乘,需4个实数乘法器和2个实数加法器。存在如下等式: yr=(xr+xi)cosα+xi(sinα-cosα) (5) yi=(xr+xi)cosα+xr(sinα-cosα) (6) 即可用3个实数乘法器和5个实数加法器实现复乘。在VLSI的实现中,阵列乘法器所占面积远大于加法器,故通常用式(5)完成复乘。 2 FFT处理器的硬件实现 假定处理器需要做N点FFT变换,则基4按时域抽取FFT运算包括lg4N级运算,每一级包括N/4个基4蝶形运算单元。 2.1 系统总体结构设计 FFT处理器设计中采用同址运算有利于系统存储器的片内集成,从而提高FFT处理器访问存储器的速度。对于基4FFT处理器,一次蝶形运算需要读取4个操作数。因此,如果充分利用硬件的并行特点,在一个周期内并行读取4个操作数,计算速度将是顺序处理器的4倍。 在设计中,使用i、j递增计数器(I表示需要做的级数,j表示每一级运算所需的存储器容量)。由数据地址产生单元生成数据存储器地址B0、B1、B2、B3,由于旋转因子地址产生单元生成旋转因子存储器地址C0、C1、C2。为了在一个时钟周期内完成一个基4蝶形运算,采用了4个并行存储器A、B、C、D存放FFT运算的操作数。系统结构框图如图1所示。 2.2 数据及旋转因子地址生成 对于N=4 P,设待变化的原始数据是按顺序输入的,由式(4)可知完成的DFT变换结果是按两位二进制倒序排列的,即若输入序列的地址线每两位为一组,其序号用两位二进制表示为ap-1ap-2…a1a0,则输出结果的排序为a0a1…ap-2ap-1。每级数据及旋转因子抽取关系如表1所示。数据A0、A1、A2、A1经过当前级的地址线交换器后得到一个蝶形运算所对应的4个数据的地址B0、B1、B2、B3。经过蝶形运算后,数据重新写回原地。一个基4蝶形运算需要3个旋转因子W1、W2、W3。地址B1、B2、B3经过旋转因子交换器及判断交换器(如表2所示)得到相应的旋转因子地址C0、C1、C2。读写地址及旋转因子地址的产生框图如图2所示。 本文可能所用到的IC型号: HD10180 IDT74FCT827CTSO C0805C103K5RAC7800 CA3272AM TD62318AF IMSG171S-35 N82592 IDT10494S5Y [此贴子已经被admin于2008-10-21 8:51:44编辑过]
|
|
相关推荐
2 个讨论
|
|
590 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2241 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1233 浏览 0 评论
1788 浏览 0 评论
1464 浏览 0 评论
74826 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 03:59 , Processed in 0.577169 second(s), Total 45, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号