优化FIR数字滤波器的FPGA实现

发布者:Mengyun最新更新时间:2011-05-11 来源: 现代电子技术关键字:FPGA  数字滤波器  FIR  Matlab 手机看文章 扫描二维码
随时随地手机看文章
   

摘要:基于提高速度和减少面积的理念,对传统的FIR数字滤波器进行改良。考虑到FPGA的实现特点,研究并设计了采用Radix-2的Booth算法乘法器以及结合了CSA加法器和树型结构的快速加法器,并成功应用于FIR数字滤波器的设计中。滤波器的系数由Matlab设计产生。仿真和综合结果表明,Booth算法乘法器和CSA算法加法器树,在满足FIR数字滤波器的性能要求的同时,在电路实现面积上、尤其是速度上有明显的优化;并且当数据量越多时,优化也越明显。
关键词:Matlab;Booth算法;CSA算法;ISE

    研究数字滤波器的意义就在于它们正日益成为一种主要的DSP(DigitaI Signal Processing)运算,并正在逐渐代替传统的模拟滤波器。它可以保证任意幅频特性的同时具有严格的线性相频特性。而现场可编程门阵列(Field Programmable Gate Array,FPGA)可并行执行的特点决定它更加广泛地应用于实时数字信号处理领域。不能想象今天的生活如果没有音频;视频和言语交际的样子,而这些都要应用数字信号处理技术。并且在任何时候,高性能,低规模,低成本都是设计的目标。滤波器(Finite Impulse Response,FIR)的实现方法有很多种,最常见的有串行结构和并行结构方法。前者根据FIR滤波器的实现表达式,将滤波器实质看作是做一个乘累加运算。一次乘累加运算的次数由滤波器的阶数来决定。这种方法使用硬件资源相对较少,但速度较慢。并行结构的方法,将滤波器的串行实现展开,就可以直接用多个乘法器和加法器并行实现,其可以在一个时钟周期内完成一次滤波,但要占用大量的乘累加器,器件延迟比较大。目前为了满足面积和速度的需要,人们通常采用Booth算法、CSD算法,分布式算法等技术对FIR设计进行优化,优化效果各有利弊。本文针对串行结构对乘累加运算的乘和加分
别进行优化设计。分析了提高乘法器速度的途径;针对多数据量的运算,提出了一种新型的快速加法器的解决方案。体现了优化设计中提高速度和减小面积的设计理念。同时给出并实现了一个16阶FIR的设计实例。

1 用Matlab设计滤波器系数
    利用Matlab软件的FDATool模块,选择滤波器类型为低通FIR,设计方法为窗口法,阶数为16,窗口类型为Kaiser,数据采样频率fs为4.8 kHz,滤波器的截止频率fc为1.08 kHz,导出的滤波器系数为16个15位的小数。将每一个系数扩大相同的倍数,最后四舍五人得到一系列整数系数。如下:
a.JPG

2 优化FIR滤波器在FPGA中的实现结构
2.1 FIR滤波器的基本算法原理
    本文采用滤波器实现的基本的串行乘累加结构。FIR滤波器的差分方程可表示为:
    b.JPG
    式中:t为滤波器的阶数。

    其直接运算结构如图1所示。

c.JPG


    从公式(1)中可知FIR滤波器在硬件上的设计主要是完成乘累加功能,实现的一种方法是直接相乘累加。在实际应用中,当滤波器设计对滤波速度要求不高时,可采用串行结构或改进串行结构来实现,这样可以选取资源较少的器件,降低设计成本;当对滤波速度有较高要求时,可以考虑采用并行或DA来实现。但要进行FIR运算,尤其在阶数较高时,几乎无法在FPGA内实现并行结构,所以这里采用串行运算的结构,仅使用一个乘加器。所以本文的设计着重于提高串行结构FIR的速度。下面将介绍一种高速的Booth算法乘法器和高速的加法器。
2.2 乘法器设计
    乘法器是数字信号处理电路中最常用的单元,20年前就已经研究的非常成熟。高性能乘法器是实现高性能的FIR运算的关键,乘法器的运算过程可以分解为部分积的产生和部分积的相加2个步骤。部分积的产生非常简单,实现速度较快;而部分积相加的过程是多个二进制数的相加,实现速度通常较慢。解决乘法器速度问题,需要减小部分积的个数、提高部分积相加运算的速度。在乘法器设计上这里着重研究能够减少部分积的Booth算法。
    Booth算法乘法器可以减少乘法运算部分积个数,提高乘法运算的速度。本文讨论Radix-2的Booth算法,其基本算法思想是,一次看乘数的两个位,依照当前与前一位的不同,执行不同的操作。总结出Radix-2 Booth算法的编码规则如表1所示。

d.JPG

 

[page]

2.3 累加器设计
    对于乘累加运算的加法,传统的算法将使多个乘法器的结果逐一累加,效率低、运算时延大。本文提出了一种结合了CSA算法加法器和树型结构的新型加法器结构,对乘法器的结果一次性相加。
    图2为6个数相加的实例。如果不用其他加法器的话,6个数据的相加将耗去5个加法器,其关键路径总共经过三级的加法电路延迟,有必要对电路的面积和延迟进行改进。因此在多个数据相加的情况下,CSA(Carry Save Adder)加法器是很好的选择。
    CSA加法器仍然保留原有的全加器架构,一个n-bit的CSA器件如图3所示。

e.JPG


    如果只有个数不多的数据相加时,采用CSA器件不管是在电路面积和时序特性上都没有优势。但当多个数据相加时,CSA加法器就能在电路面积和时序特性上体现出它的优越性。树型加法器结构的关键特性在于利用不规则的树形结构对所有的准备好输入数据的运算及时并行处理,大大节省了计算延时,尤其是在多个数相加的情况下;缺点是其逻辑结构形式不规整,在VLSI设计中对布局布线的影响较大。本文用CSA加法器为单元组成树型结构,设计出一种如图4所示的快速加法器结构。由CSA加法器树组成的树型加法器中调用5个CSA加法器和一个普通加法器。R(0)~R(15)为前一级乘法器的16个输出。在整个加法过程中,CSA加法器在电路实现上本身就具备快速、面积小的特点,再加上树型结构的特点,使整个加法器在实现速度上进一步提升。同时整个加法过程能够满足最严格的时序要求,因为CSA电路只在最后的时间内执行进位加法,也就是由构成树的最后一级的Normal Adder(进位加法器)执行进位加法。通常在大部分的应用上会有一段足够的时间允许执行进位加法的时间延迟。

f.JPG


2.4 FIR在FPGA中的实现结构
    本文设计的FIR在FPGA中的实现结构如图5所示,除了必须的乘法器和加法器外,还需要一个宽度为15、深度为16的滤波器系数存储器(ROM)和一个宽度为30、深度为16的乘结果存储器(RAM)。分别由相应的计数器控制模块控制,配合计数的值,执行相应的动作。针对输入的数据提取相应的滤波器参数,送入乘法器相乘,每得到一个结果送入下一级RAM中存储起来,最后统一送入加法器,一次性执行加运算并输出,最后得到滤波的结果。其中乘法器和加法器处理的都为符号数。

3 16阶FIR的设计及仿真结果
    设计一个16阶的15位FIR滤波器。设计语言使用Verilog。设计工具使用Xilinx ISE平台。FIR的输入和系数都为15位有符号数,乘法器的位数为30位,经加法器后得到的滤波器输出为38位有符号数。编写testbench对设计进行逻辑仿真,随机选取16个输入数据。配合前面有量化后的滤波器系数,即可进行行为级仿真。图6中,rst为复位信号,clk为系统时钟信号,din为输入数据,coe为滤波器系数,dout为输出信号,control为输出同步信号。由仿真结果看出最终滤波器的输出结果和预期的结果相一致。同时利用ISE自带的综合器SXT进行综合,器件选用Xilinx公司的3s400pq208—4。综合报告显示,滤波器最大的频率可达到143.328 MHz,达到高速目的。报告显现资源的使用相对较大,没有预期的理想。从RTL电路分析出在CSA构成的加法器树部分在面积上的优化还不够明显,这个问题将在以后的研究中进一步解决。



4 结语
    本文以FIR在FPGA中的实现结构为基础,研究了提高乘法器性能的途径,并实现了Booth算法的乘法器,此算法保证高速的前提下,缩小了硬件规模,使得该乘法器的设计适合工程应用及科学计算,在加法器实现上提出了一种结合了CSA加法器和树型结构的新型实现结构。利用以上两部分,成功设计了一个16阶FIR滤波器,并且达到了高速的目的,但在实现面积上还有待优化。

关键字:FPGA  数字滤波器  FIR  Matlab 引用地址:优化FIR数字滤波器的FPGA实现

上一篇:基于FPGA+DSP的高速中频采样信号处理平台的实现
下一篇:用DSP实现抖动(Jitter)测量的方法

推荐阅读最新更新时间:2024-05-02 21:23

Fraunhofer IIS成为Tensilica授权的设计中心合作伙伴
    Tensilica日前宣布,世界著名的音频和多媒体技术公司Fraunhofer IIS,正式加入Tensilica公司Xtensions™的合作伙伴网络,并成为Tensilica公司授权的设计中心。Fraunhofer IIS将为共同客户提供与音频相关的SOC(片上系统)设计服务。 “Fraunhofer IIS多年来专注于音频信号处理、接收器和广播系统领域,具有丰富的开发经验,使其成为Tensilica设计中心宝贵的合作伙伴”。Tensilica公司多媒体营销部门高级总监Larry Przywara表示,“另外,Fraunhofer IIS在数字广播系统 - 包括DRM,DAB,卫星广播和DVB - SH,以及音频编码标准
[嵌入式]
SUES在全院范围实施MATLAB和SIMULINK
广泛部署 MathWorks 工具,为学校贯彻国家教育部“卓越工程师教育培养计划”提供后盾 中国北京 – 2011 年 7 月 1 日 – MathWorks 日前宣布,上海工程技术大学 (SUES) 为其汽车工程学院部署了 MATLAB、Simulink 和 30 多种其他 MathWorks 产品,用于分析、设计、仿真、代码生成和验证。该项举措将让全院师生和实验室人员都从中受益。这些产品因为在汽车行业的广泛应用而得到学校的青睐,计划被安装到汽车工程学院的所有教学场所内,包括新成立的 SUES-MathWorks 汽车仿真技术中心。 上海工程技术大学是入选中国国家教育部“卓越工程师教育培养计划”(PETOE) 的 61
[半导体设计/制造]
利用Virtex-5 FPGA 降低功耗
全球首款65纳米 FPGA在不影响性能的同时实现最低功耗 作者:Derek Curd Xilinx公司高级产品部 高级应用工程师 VirtexTM-5 系列产品的推出,使得 Xilinx 公司再一次成为向 FPGA 客户提供新技术和能力的主导力量。过渡至 65 纳米工艺的 FPGA 具备采用更小尺寸工艺所带来的传统优势:低成本、高性能和更强的逻辑能力。尽管这些优势能够为高级系统设计带来激动人心的机会,但65纳米工艺节点本身也带来了新的挑战。 例如,在为产品选择 FPGA 时,功耗的考虑变得越来越重要。很可能下一代设计会需要在功耗预算不变(或更小)的情况下,集成更多的特性和实现更高的性能。 在本文中,我将分析功耗降低所带来的
[应用]
Altera推出业界第一款基于FPGA的Serial RapidIO Gen2解决方案,支持实施下一代无线基站
    Altera公司 (NASDAQ: ALTR) 今天宣布,开始提供业界第一款基于Serial RapidIO® Gen2 FPGA的解决方案,进一步提高下一代3G和4G无线基站的带宽,链路更加灵活。Altera成功的实现了Stratix® IV GX FPGA中的RapidIO MegaCore® 功能IP内核与集成器件技术公司 (IDT) Serial RapidIO Gen 2交换机的互操作性。Altera成熟的Serial RapidIO Gen2解决方案为高性能通信系统中使用的链路射频卡、主机处理器和数字信号处理器等提供20-Gbaud基于数据包的互联功能,提高了系统带宽。     IDT通信业务部产品管理主任Ste
[嵌入式]
CAN总线各个功能模块的设计
  引言   CAN(Controller Area Network)是由ISO定义的一种串行通信总线,它是一种能有效地支持高安全等级的分布实时控制的新一代网络通信协议,属于现场总线范畴。CAN最早被设计作为汽车环境中微控制器的通讯,在车载各电子控制装置与ECU之间交换信息,形成汽车电子控制网络,目前应用领域已经相当广泛。   近年来,支持CAN协议的芯片不断推出,给CAN总线用户带来了极大的方便。随着我国对现场总线技术需求的增加,CAN总线已经会成为我国最常用的现场总线之一。   基于CAN总线的ECU电子控制单元的开发,也是现在最热门的研究。现在对CAN总线芯片的研究已经不再局限于单一芯片的研究,而是把所有的功能芯片都集
[嵌入式]
FPGA动态探头与数字VSA对DSP设计实时分析
随着 FPGA 在数字通信设计领域(蜂窝基站、卫星通信和雷达)的高性能信号处理电路中成为可行的选择,分析和调试工具必须包括能帮助您在最短时间内得到电路最佳性能的新技术。 虽然现在已经有多种连接仿真与射频模拟信号的信号分析工具,但重要的是要能够测量 FPGA 子电路中的信号质量[谱图、I-Q 星座图、误差矢量幅度(EVM)]。将安捷伦(Agilent)的 89601A 矢量信号分析(VSA)软件与逻辑分析仪产品(1680、1690 和 16900 家族)连接构成数字 VSA 工具。当这一工具与Xilinx ChipScope Pro 及 Agilent 跟踪内核一起使用时,就能快速和容易地对 FPGA 设计中的任何地方进行信号分析。
[测试测量]
用<font color='red'>FPGA</font>动态探头与数字VSA对DSP设计实时分析
e络盟携手Digilent发起FPGA设计挑战赛
比赛鼓励社区成员使用Diligent Cmod S7参赛来检验自身的FPGA技能 中国上海,2021年9月17日 – 安富利旗下全球电子元器件产品与解决方案分销商e络盟通过其在线互动社区发起FPGA趣味设计挑战赛,以检验并展示社区成员的FPGA专业知识与技能。 “通过举办FPGA系列活动,我们帮助e络盟全球社区成员更深入地学习了FPGA编码和设备设计实用技巧。对此,我们感到非常欣慰,”e络盟社区与社交媒体全球主管Dianne Kibbey表示。“此次设计挑战赛鼓励社区成员探索FPGA器件的广泛用途及FPGA技术的未来应用价值,为社区成员提供了一个展示自身设计技能的绝佳平台,也将激发出他们的无限创造力。” 挑战赛要
[嵌入式]
e络盟携手Digilent发起<font color='red'>FPGA</font>设计挑战赛
基于流水线技术的并行高效FIR滤波器设计
摘要:基于流水线技术,利用FPGA进行并行可重复配置高精度的FIR滤波器设计。使用VHDL可以很方便地改变滤波器的系数和阶数。在DSP中采用这种FIR滤波器的设计方法可以充分发挥FPGA的优势。 关键词:FIR滤波器 FPGA 流水线技术 数字滤波器可以滤除多余的噪声,扩展信号频带,完成信号预调,改变信号的特定频谱分量,从而得到预期的结果。数字滤波器在DVB、无线通信等数字信号处理中有着广泛的应用。在数字信号处理中,传统滤波器通过高速乘法累加器实现,这种方法在下一个采样周期到来期间,只能进行有限操作,从而限制了带宽。现实中的信号都是以一定的序列进入处理器的,因此处理器在一个时钟周期内只能处理有限的位数,不能完全并行处理。基于并
[半导体设计/制造]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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