基于FPGA的级联结构FFT处理器的优化设计

发布者:meilidaowl最新更新时间:2009-12-28 来源: 南京理工大学关键字:FPGA  级联结构  FFT处理器 手机看文章 扫描二维码
随时随地手机看文章

  0 引 言

  数字信号处理主要研究采用数字序列或符号序列表示信号,并用数字计算方法对这些序列进行处理,以便把信号变换成符合某种需要的形式。在现代数字信号处理中,最常用的变换方法就是离散傅里叶变换(DFT),然而,它的计算量较大。运算时间长,在某种程度上限制了它的使用范围。快速傅里叶变换(FFT)的提出使DFT的实现变得接近实时,DFT的应用领域也得以迅速拓展。它在图像处理、语音分析、雷达、声纳、地震、通信系统、遥感遥测、地质勘探、航空航天、生物医学等众多领域都获得极其广泛的应用。随着FPGA技术的高速发展以及EDA技术的成熟,采用FPGA芯片实现FFT已经显示出巨大的潜力。

  目前用FPGA实现的FFT处理器结构大致分为四种:递归结构、级联结构、并行结构和阵列结构。递归结构只利用一个碟形运算单元对数据进行规律的循环计算,使用硬件资源较少,但运算时间较长。级联结构每一级均采用一个独立的碟形运算单元来处理,相对递归结构速度上有所提高,不足之处是增加了延时用的缓冲存储器使用量。并行结构对一级中的蝶形单元并行实现,阵列结构是将每一级的蝶形运算单元全部并行实现,这两种结构有很高的运算速度,但消耗的资源过大,一般不采用。为了提高运算速度,特别是为了适应多批数据处理,一般采用级联结构实现FFT处理器。

  1 FFT整体结构设计

  在FFT算法中,目前大多使用基-2和基-4算法实现级联结构的FFT处理器,除此之外,也可采用基-8和基-16算法来实现。随着基数的增大,对于相同点数的离散数列,处理器所分的级数越少,对缓冲存储器的需求也越小,因此考虑采用基-16算法来实现FFT处理器,但基-16算法只能实现离散数列点数是16的p次幂的FFT。从而,引入混合基思想来改进基-16算法。

  设x(n)为N点有限长序列,其DFT为:

公式

  式中:n1=0,1,2,…,r1-1;n2=0,1,2,…,r2-1。将频率变量k(k

  k=k1r1+k0

  式中:k1=0,1,…r2-1;k0=0,1,…r1-1。

  式(1)可变换为:

公式

  设r1=16P,r2=N/16P=2,4,8,式(2)先将原非16的p次幂的N点FFT分解为16P点的FFT;再分解为N/16P点的FFT。首先对输入信号进行16P点的FFT运算,然后将结果乘以一个旋转因子最后将计算出的数据进行一次N/16P点FFT运算,得到的结果即为所需要的N点FFT运算结果。这样处理,既能减少分解的级数,又能使计算离散数列点数只需是2的整数次幂即可。以1 024点为例,只需分解成两级基-16运算模块和一级基-4运算模块即可实现,其FFT处理器结构图如图1所示。在此结构图的前端增加/减少基-16运算模块或将最后一级基-4运算模块改为基-2或基-8运算模块,就可以实现其他离散数列的点数只需是2的整数次幂的FFT运算。

FFT处理器结构图

  2 蝶形运算核的实现

  2.1 基-16蝶形运算核

  如果直接将基-16蝶形运算公式转换到硬件中实现基-16运算核,其结构将十分复杂的。因此,采用易实现的频域抽选基-4算法来实现频域抽选基-16蝶形运算核。由基-4蝶行运算单元实现的基-16蝶行运算单元如图2所示。

由基-4蝶行运算单元实现的基-16蝶行运算单元

  采用并行流水结构实现的基-16运算核,一个数据时钟可处理16个数据。而每次蝶形运算在一个数据时钟内只需要计算出一个结果,这将造成资源浪费。因此,采用级联结构实现的基-16蝶形运算核,用两个基-4蝶形运算核分别复用4次来实现每一级中的四个蝶行运算,中间用一个串行出入/输出的寄存器进行连接,其结构框图如图3所示。

结构框图[page]

  2.2 基-4蝶形运算核

  基-4蝶形运算核的结构如图4所示,其中加减模块为两级流水结构,一次可以计算4个数据。蝶形运算的四个串行输入数据经串/并转换器转换为四路并行数据,进入加减运算单元。计算出的4个并行结果进入并/串转换器后,串行输入复数乘法器和旋转因子相乘然后输出结果。因为图1中最后一级的数据只需要进行加减运算不需要再乘以旋转因子,所以图1中的基-4蝶形运算核是没有复数乘法器的,数据从并/串转换器中直接输出给缓冲存储器。

基-4蝶形运算核的结构

  2.3 复数乘法器

  虽然现在的高端产中已经集成了可以完成乘法的DSP资源,但也是有限的。因此高效复数乘法器的设计对该设计来讲仍然非常的重要。复数乘法的标准式如下:

R+jI=(A+jB)×(C+jD)=(AC-BD)+j(AD+BC)

  式中:A,B分别为输人数据的实部和虚部,C和D分别为旋转因子的实部和虚部。按照这种标准表达式,执行一次复数乘法需要进行4次实数乘法,2次实数加法和2次实数减法。将上述公式重新整理为:R=(C-D)·B+C(A-B),I=(C-D)A-C(A-B)优化后的复数乘法器需要进行3次实数乘法,2次实数加法和3次实数减法,相比传统结构多了一个减法器,少了一个乘法器。在FPGA中,加减法模块所占用的相对裸片面积要小于相同位数的乘法器模块。这样的优化还是很有价值的,在FFT吞吐量不变的情况下,可减少25%的乘法器使用量,在乘法器数量一定的情况下可高FFT吞吐量。

  3 存储器单元

  传统的级联结构的FFT处理器的缓冲存储器都是采用乒乓结构,基本思想就是用两块相同的RAM交替读出或写入数据。即其中一块RAM在写入数据时,另一块RAM用于读出数据。当用于写入数据的RAM写满时交换读写功能。将乒乓结构中RAM的内部存储单元地址用二进制数a9a8a7a6a5a4a3a2a1a0表示。以写满其中以块RAM为一个周期,用一个二进制计数器m9m8m7m6m5m4m3m2m1m0生成的顺序写入,混序读取的乒乓结构RAM的操作地址如表1所示。

混序读取的乒乓结构RAM的操作地址

  表1中第一,二,四块存储器的写操作地址和读操作地址是可以互换的,也就是将数据混序写入,顺序读取。因此,根据这个规律采用一块可同时读写的双端口RAM来实现第一,二,四块存储器。其基本思想就是对同一个地址进行读和写。以用一块双端口RAM实现第一块存储器的为例,在第一个周期内双端口RAM按照地址m9msm7m6m5mdm3m2m1m0进行写操作,即数据是按照自然顺序储存的。在第二个周期按照地址m0m1m2m3m4m5m6m7msm9同时进行读写操作,读出的数据按照倒位序排列,写入的数据按照倒位序储存的。 在第三个周期按照地址m9msm7m6m5m4m3m2m1m0同时进行读写操作,读出的数据按照倒位序排列,写入的数据是按照自然顺序储存的。依次类推下去,读出的数据都是按照倒位序排列。同样第二块和第四块存储器的存储地址也具有这样类似的循环规律。因此只有第三块存储器需要用乒乓结构的RAM实现,与传统所有存储器都用乒乓结构RAM实现相比,节省了3/8的存储单元。设计中用Matlab软件直接生成旋转因子,并将其转化为16位有符号定点数写入MIF文件。然后用ROM直接调用MIF文件,将旋转因子预置在ROM中。

  4 仿真结果

  选用Altera公司生产的Cyclone Ⅱ的EP2C35F484C7芯片上进行验证,在QuartyusⅡ7.2软件中进行编译和仿真。通过对高基核的优化处理,该设计对逻辑单元消耗量和传统用基-4算法实现相近,仅为4 399,但由于本文采用了高基低基组合的混合基算法,在处理1 024点的离散数列时,处理器所分的级数仅为3级,相对传统的低基数算法,其实现减少了对缓冲存储器块数的需求;并通过对缓冲存储器的优化设计,又比全部用乒乓结构RAM实现的传统方法节省了3/8的存储单元,因此占用的存储资源仅为154 048 b。仿真波形如图5所示,该仿真结果和Matlab计算结果基本一致,存在一定的误差是由于有限字长效应引起的。

  5 结 语

  在100 MHz的时钟下工作,完成一次1 024点的FFT从输入初始数据到运算结果完全输出仅需要54.48μs,且连续运算时,处理一组1 024点FFT的时间仅为10.24 μs,达到了高速信号处理的要求。

关键字:FPGA  级联结构  FFT处理器 引用地址:基于FPGA的级联结构FFT处理器的优化设计

上一篇:追新逐热还是脚踏实地?跟上技术发展步伐
下一篇:DSP芯片在水下目标检测与参数估计中的应用

推荐阅读最新更新时间:2024-05-02 20:57

Altera和Eutecus发布世界上第一款在FPGA上实现的1080p/30fps视频分析解决方案
延续其在高清晰(HD) 视频监控解决方案上的领先优势,Altera公司 (NASDAQ: ALTR) 发布世界上第一款基于FPGA的全HD 1080p/(每秒30帧) 30fps视频分析解决方案,它采用Cyclone® IV FPGA。Altera的单芯片解决方案进一步提高视频分析的性能,同时实现极大的吞吐量(每秒60-Mpixel),以及传统基于数字信号处理(DSP)方法无法实现的像素精度细节。解决方案包括Eutecus的多核视频分析引擎(MVE™)知识产权(IP),它在FPGA中完成分析功能。由于这一解决方案很容易集成到HD互联网协议摄像机中,因此,它非常适合包括流量监控在内的各种应用,监视事故探测、车辆计数、道路偏离探测、
[嵌入式]
基于DSP和FPGA技术的低信噪比雷达信号检测
  我国目前的海事雷达大多为进口雷达,有效探测距离小,在信噪比降为3 dB时已经无法识别信号。随着微电子技术的迅猛发展,高速A/D(模拟/数字转换)和高速数字信号处理器件(Digital Signal Proeessors,DSP)、高速现场可编程逻辑器件(Field ProgrammableGate Array,FPGA)的出现,可以在不增加现有雷达发射功率和接收灵敏度的前提下,在信噪比降为3 dB时能测到雷达信号,使雷达的有效作用距离提高。本文主要介绍基于DSP和FPGA技术的低信噪比情况下雷达信号的检测。   1 设计思想   本技术的设计思想主要是通过对接收到的雷达信号进行高速A/D采样,然后利用DSP和FPGA芯
[嵌入式]
65nm高端FPGA成功量产,赛灵思提供用户放心使用保证
从宣布65nm Virtex-5工程样片,到提供让用户放心使用的量产芯片,赛灵思花了一年的时间。“从提供工程样片到提供真正能进入量产的芯片是一个质的飞跃,特别是对于像采用65nm、1.00Vcc内核这样先进工艺的芯片来说,更是一个巨大的跨越。因为这种芯片如没有通过严格的高低温测试和ESD保护等措施,在生产中如果被工人手拿一下,可能就没用了。因此,从去年提供工程样片后,这一年来我们在高低温测试、ESD保护以及开发工具、参考设计等方面都进行了大量的工作,现在用户可以完全放心地将我们的芯片用于SMT生产了。”赛灵思公司亚太区Virtex解决方案高级市场经理邹志雄说道,“由于比竞争对手领先一年推出65nm高端FPGA,因此我们有时间为量产
[焦点新闻]
莱迪思推出ECP5-5G™ FPGA
全新的低成本ECP5-5G Versa开发套件,用于5G SERDES应用的快速原型开发 全新的互连IP套装,包含适用于工业和通信市场的优化IP核 开发套件、IP套装和Lattice Diamond 软件,每样99美元特价限时促销 美国俄勒冈州波特兰市 2016年10月31日 莱迪思半导体公司(NASDAQ: LSCC),客制化智能互连解决方案市场的领先供应商,今日宣布推出基于全新ECP5-5G 器件的IP和解决方案,该器件是公司低功耗、小尺寸ECP5互连FPGA产品系列的最新成员,适用于工业和通信应用。该产品可在各类应用中实现到ASIC和ASSP的无缝互连,包括小型蜂窝、低端路由器、回程、低功耗无线电、
[嵌入式]
莱迪思推出ECP5-5G™ <font color='red'>FPGA</font>
可编程逻辑在消费电子中的应用
在有限的产品面市的时间内,应对不断变化的市场标准使得可编程逻辑器件(PLD)广泛地用于消费电子产品之中。而专用集成电路(ASIC)和专用特定标准器件(ASSP)的开发需要昂贵的非重复性工程费用,PLD是标准的现成器件,可针对各种应用使用灵活的软件工具进行定制。   降低功耗预算   降低静态功耗一直是消费电子产品设计人员面临的挑战。许多电池供电的产品,如智能电话、GPS设备、移动计算和数码相机,延长电池寿命是最重要的差异化特征之一。由于设计人员力求符合最新的能源之星和欧盟管理守则的规定,对于许多通过墙上插座供电的电子设备而言,低功耗也越来越重要。   在许多消费电子系统中,通过提供先进的总线接口和桥接功能,PLD可扩展当前一
[嵌入式]
可编程逻辑在消费电子中的应用
FPGA上同步开关噪声的分析
   概述   随着半导体技术的快速发展,近年来FPGA 的器件容量和输入输出的管脚数量都极大的增加了,例如StratixIV 器件,最大的一款EP4SE680 拥有68.11 万个逻辑单元和1104个输入输出管脚。大量的输出管脚在同一时刻翻转会引起同步切换噪声。目前同步切换噪声是FPGA 领域的一个新的挑战。    同步切换噪声的定义   当大量的输出管脚在同一个时刻从高电平到低电平的切换或者从低电平到高电平的切换,会在相邻的管脚上引入噪声,这就是同步切换噪声。典型的一个同步切换噪声的测试设置如图。设置中,FPGA 器件的输入输出的电平标准配置为SSTL18 ClassII。多个在同一时刻不断翻转的输出管脚定义为干扰者。一
[嵌入式]
采用FPGA实现医疗影像
医疗影像技术在医疗保健行业扮演了越来越重要的角色。这一行业的发展趋势是通过非置入手段来实现早期疾病预测和治疗,降低病人开支。多种诊断影像方法的融合以及算法开发的进步是设计新设备来满足病人需求的主要推动力量。 为实现这些行业目标所需要的功能,设备开发人员开始采用提供FPGA支持、可更新的现成商用(COTS) CPU平台进行数据采集和协处理。在灵活高效地开发可更新医疗影像设备时,需要考虑几个因素,包括影像算法的开发,多种诊断方法的融合以及可更新的平台等。 开发影像算法要求使用直观的高级建模工具,以不断改进数字信号处理(DSP)功能。高级算法需要可更新的系统平台,该平台大大提高了图像处理性能,而且实现的设备体积更小,使用
[工业控制]
采用<font color='red'>FPGA</font>实现医疗影像
FPGA转换到门阵列
概述     从FPGA或PLD转换到门阵是经济高效的,有时甚至只需几百个单元就能实现。这已经引起越来越多设计者提出同样的问题:这种转换设计需要什么后续技术?事实上转换到门阵面临着许多电路的时序问题,这在FPGA设计中是不被注意的。     本文论述了转换时遇到的几种由于设计不当所造成的时序问题,提出了避免这些问题的方案。同时对时序变化的部分原因及充分利用门阵列技术亦在文中进行了讨论。 时序上的差异     如果知道原始设计电路工作中每一步时序上的裕量,Orbit保证无论FPGA是否模拟过,都可以成功完成转换,而使用其ATPG和结合缺省模拟分级确保了这一点。在转换完成前,由用户模拟或由O
[半导体设计/制造]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved