基于FPGA的IIR数字滤波器完美版_第1页
基于FPGA的IIR数字滤波器完美版_第2页
基于FPGA的IIR数字滤波器完美版_第3页
基于FPGA的IIR数字滤波器完美版_第4页
基于FPGA的IIR数字滤波器完美版_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、吉 林 农 业 大 学本 科 毕 业 设 计题目名称:基于FPGA的IIR数字滤波器 学生姓名: 王伟 (12093223) 院 系:信息技术学院 专业年级:09级电子信息科学与技术指导教师: 郭颖 职 称: 讲师 2013 年 4 月 24目 录1 序 言11.1 课题研究的背景和意义11.2 国内外发展现状11.3 IIR数字滤波器概念31.4 IIR数字滤波器的原理31.5 IIR数字滤波器的设计方法41.5.1 IIR数字滤波器的模拟转换设计法41.5.2 IIR数字滤波器的零极点累试法41.5.3 优化设计法51.6 IIR数字滤波器的硬件实现方案51.6.1.方案一:直接相乘累加式

2、51.6.2.方案二:基于ROM查表法的VHDL结构化设计61.6.3 方案三:基于ROM查表法的改进型设计72 EDA技术和可编程逻辑器件92.1 电子设计自动化EDA技术92. 2 可编程逻辑器件92.2.1 可编程逻辑器件简介92.2.2 使用FPGA器件进行开发的优点92.2.3 FPGA设计的开发流程102.3 硬件描述语言VHDL及数字系统设计方法112.3.1 硬件描述语言VHDL简介112.3.2 利用VHDL设计数字系统113 IIR数字滤波器的设计与仿真结果分析113.1 各模块的设计与仿真结果分析113.1.1 时序控制模块的设计与仿真结果分析123.1.2 延时模块的设

3、计与仿真结果分析123.1.3 补码乘加模块的设计与仿真结果分析133.1.4 累加模块的设计与仿真结果分析153.1.5 顶层模块设计153.2 IIR数字滤波器的仿真与结果分析163.2.1 IIR数字滤波器的系统设计163.2.2 IIR数字滤波器的系统仿真与结果分析173.2.3 高阶IIR数字滤波器的实现19参考文献21致 谢22附 录23 基于FPGA的IIR滤波器设计姓 名:王伟专 业:电子信息科学与技术指导教师:郭颖摘 要:数字信号处理在科学和工程技术许多领域中得到广泛的应用,与FIR数字滤波器相比,IIR数字滤波器可以用较低的阶数获得较高的选择性,故本课题采用一种基于FPGA

4、的IIR数字滤波器的设计方案,首先分析了IIR数字滤波器的原理及设计方法,然后通过MAX+PLUS的设计平台,采用自顶向下的模块化设计思想将整个IIR数字滤波器分为:时序控制、延时、补码乘加和累加四个功能模块。分别对各模块采用VHDL进行描述后,进行了仿真和综合。仿真结果表明,本课题所设计的IIR数字滤波器运算速度较快,系数改变灵活,有较好的参考价值。关键词:电子设计自动化,IIR数字滤波器,现场可编程门阵列,硬件描述语言The design for IIR digital filter based on FPGAName:Wangwei Major:Electronic informatio

5、n science and technologyTutor:GuoYingAbstract: Digital signal processing is widely used in lots of fields, such as in science and project technique. Compared with FIR digital filter, IIR digital filter can get high selectivity with low factorial. A kind of IIR digital filter design method was introd

6、uced in the paper, which is based on FPGA. By used the design plant of MAX+PLUS, we adopt blocking method named “Top-down ” and divide the entire IIR digital filter into four blocks, which are Clock control, Time delay, Multiply-addition and Progression. After described with VHDL, we do emulate and

7、synthesis to each block. The result shows that, the introduced IIR digital filter runs fast, and the coefficient changes agility. It has high worth for consulting.Keywords: Electronic design automation, IIR digital filter, FPGA, the hardware description language 1 序 言随着EDA技术的发展和应用领域的扩大和深入,EDA技术在电子信息

8、、通信、自动控制及计算机应用等领域的重要性日益突出。这些技术的使用使得现代电子产品的体积减小、性能增强、集成化程度提高,与此同时其可编程能力也得以提高。在使用EDA进行电子设计时,设计人员可按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,采用硬件描述语言(DHL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件1。VHDL语言是EDA设计中常用的一种IEEE标准语言,其具有覆盖面广、描述能力强、可读性好、支持大规模设计及逻辑单元利用等优点,因此受到越来越多的电子工程师的青睐2。本次设计采用EDA技术中的模块化设计思想,就IIR数字滤波器中的一些关键电路进行设计,主要内

9、容包括:时序控制模块、延时模块、补码乘加模块、累加模块和IIR数字滤波器的顶层设计。分别对各模块采用VHDL进行描述后,进行了仿真和综合,取得了较好的设计效果。实验结果表明,本课题所设计的IIR数字滤波器具有运算速度快,系数改变灵活方便等特点。1.1 课题研究的背景和意义 数字滤波器是现代数字信号处理系统的重要组成部分之一,具有模拟滤波器所无法替代的新特性,因此在通信、语音与图像处理、自动控制等领域有着广泛的应用,它对于降低噪声、提高信噪比及信号的频谱纯度等方面有着重要的意义。数字滤波器根据单位脉冲响应的不同,可分为FIR(有限长脉冲响应)滤波器和IIR(无限长脉冲响应)滤波器,FIR优点在于

10、具有良好的相位特性,IIR优点在于具有良好的幅频特性,可以根据不同的系统性能要求选择不同的滤波器。IIR滤波器以较少的阶数即可完成FIR滤波器需较多阶数的幅频特性;在对线性相位不做特别要求的情况下,IIR滤波器在相同门级规模和同频率速度下可得到更好的带外衰减特性,因此IIR滤波器更广泛地应用于一些特殊场合3。数字滤波器是今后信号处理系统的滤波器主流器件,将在更多的数字信号处理应用领域得到广泛应用。本文研究基于FPGA设计稳定的IIR数字滤波器的相关理论、设计方法及仿真。1.2 国内外发展现状目前,数字滤波器的实现可以采用两种方法:软件实现和硬件实现。软件实现即是在通用的微型计算机上用软件来实现

11、。利用计算机的存储器、运算器和控制器把滤波器所要完成的运算编成程序通过计算机来执行,软件可由使用者自己编写,也可使用现成的。国内外的研究机构、公司已经推出了不同语言的信号滤波处理软件包,但这种方法速度较慢,难以对信号进行实时处理,虽然可以用快速傅立叶变换算法来加快计算速度,但要达到实时处理要付出很高的代价,因而多用于教学与科研。硬件实现即是设计专用的数字滤波硬件,目前主要采用MCU(单片机)、DSP(数字信号处理器)、ASIC(专用集成电路)来实现。其中,单片机速度较慢;ASIC虽然性能良好,但通常是为专门限定的某一或某几个特定功能而设计,灵活性差;软件编程的通用数字信号处理芯片(如TMS32

12、0CXX)是目前应用较广的一种方法。DSP处理器实质上是一种适用于数字信号处理的单片微处理器,其主要特点是灵活性大,适应性强,具有可编程功能且处理速度较高。近年来,由于多媒体技术和无线通信的发展对DSP应用的要求不断地增长,这些应用对信号处理要求高,需要采用处理速度高的硬件来实现DSP,所以,随着CMOS工艺的线宽不断缩小,从研制高性能的DSP专用芯片一DSP处理器,直到近年来可以在单片机上集成DSP的应用,持续地推动了LSI DSP这一领域的发展。但是,采用DSP处理器的解决方案日益面临着不断增加的巨大挑战,而自身的技术瓶颈(如:运行速度、吞吐量、总线结构的可变性、系统的可重构配置性、硬件可

13、升级性等等)致使这种解决方案在DSP的许多新的应用领域中的道路越来越窄4。例如,软件无线电的概念在10年前就已经提出,并付诸研究和实现,仅其领域中的数字信号处理的等效速度也需达50GIPS,然而到目前为止,最快的DSP处理器,如1rI的C6X系列也没能超过5GIPS,至于现在最常用的TMS320C54X系列,也只有01GIPS。不言而喻,在许多应用领域,以DSP处理器为核心的DSP系统具有很大的局限性。FPGA在器件密度、处理速度等达到片上系统的要求后,它所具有的系统内可重构的特性成为实现DSP应用的优选方案之一。在许多诸如实时图像处理、联合战术无线电通信系统、3G移动通信基站、实时工控系统、

14、卫星导航设备等领域中,FPGA的DSP解决方案为数字信号处理开创了新的领域,使得构造的数字信号处理系统能够保持基于软件解决方案的灵活性又能接近ASIC的性能5。国外有许多院校和科研机构在研究基于FPGA的DSP应用,比较突出的有Denmark大学的研究小组正在从事FPGA实现数字滤波器的研究,由于FPGA实现乘法器困难,因此,他们重点研究开发无乘法的滤波器算法。加州大学洛杉机分校的研究小组采用运行时重构技术开发了一种视频通讯系统,该系统用一片FPGA可每帧重构四次完成视频图像压缩和传送的操作。此外,他们还在进行Mojave项目的开发工作,力图采用运行时重构技术来实现自动目标识别应用。我国的DS

15、P技术起步较早,产品的研究开发成绩斐然,基本上与国外同步发展,而在FPGA信号处理和系统方面,有了喜人的进展,正在进行与世界先进国家同样的研究,如西北工业大学和国防科技大学ATR实验室采用了FPGA可重构计算系统进行机载图像处理和自动目标识别,主要是利用该系统进行复杂的卷积运算,同时利用它的可变性来达到自适应的目的。北京理工大学研究利用FPGA提高加解密运算的速度等等。现在,可编程逻辑器件在密度、性能和功耗上都有显著的进步,为数字信号处理开创了新的领域,使得构造的数字信号处理系统能够保持基于软件的解决方案的灵活性,又能够接近ASIC的性能。FPGA内部的功能块中的SRAM查找表(Look Up

16、 Table,LUT)构成函数发生器,这种结构特别适用于并行处理结构,如分布式算法,相对于串行运算为主导的通用DSP芯片来说,其并行度和可扩展性都很好,它逐渐成为构造可编程的高性能算法结构的新的选择。据分析,在未来,数字信号处理器将会主宰需要复杂算法的应用领域,而FPGA将会统治更多的应用,如FIR、IIR滤波器,CORDIC算法或FFT。1.3 IIR数字滤波器概念数字滤波器是完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统。输入一组数字量,通过运算输出的是另一组数字量。数字滤波器具有稳定性好、精度高、灵活性大等突出优点。随着数字技术的发展,用数字技术设计滤波器的功能越来越

17、受到人们的注意和广泛的应用。1.4 IIR数字滤波器的原理数字滤波器(digital filter)是由数字乘法器、加法器和延时单元组成的一种装置,其功能是对输入的离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。由于电子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现6。相比于模拟滤波器来说,数字滤波器具有无漂移,能够处理频率较低的信号,频率响应可以做到非常接近理想滤波器的特性,精度高,容易集成,易于修改等优点,这使得数字滤波器在近些年得以迅猛的发展。数字滤波器从实现的网络结构或者从单位脉冲响应的长度不同,可以分为无限脉冲响应(IIR

18、)滤波器和有限脉冲响应(FIR)滤波器,两者的设计方法、性能、结构等方面都有很大的差别。当系统没有严格的相位要求的时候,IIR滤波器以较少的阶数即可完成FIR滤波器较多阶数的幅频特性,而且成本低,信号延时少。因此工程实际应用中往往采用IIR滤波器。一个数字滤波器的系统函数可以表示为: = (公式1) 直接由得出表示输入输出关系的常系数线性差分方程为: (公式2) 式中、为滤波系数,当均为零时,该滤波器为FIR数字滤波器,当不均为零时,则为IIR数字滤波器。与FIR数字滤波器相比,IIR数字滤波器可以用较低的阶数获得高的选择性,所用的存储单元少,成本低、信号延迟小,并且IIR数字滤波器可以借助于

19、模拟滤波器的设计成果,设计工作量相对较小,为此,本文就IIR数字滤波器进行相关讨论。IIR数字滤波器有直接型、级联型和并联型三种基本结构。由IIR数字滤波器的阶差分方程(公式2)可知,设=2,则网络结构如图1-1所示。x(n)a0b1a2b0a1y(n)z-1z-1图1-1 直接型结构 Figure1-1 Direct structure1.5 IIR数字滤波器的设计方法IIR数字滤波器的设计方法通常有模拟转换法、零极点累试法和优化设计法2。1.5.1 IIR数字滤波器的模拟转换设计法利用模拟滤波器成熟的理论和设计方法来设计IIR数字滤波器是经常使用的方法。设计过程是:按照技术要求设计一个模拟

20、滤波器,得到滤波器的传输函数,再按一定的转换关系将转换成数字滤波器的系统函数。将传输函数从s平面转移到z平面的方法有多种,但工程上常用的是脉冲响应不变法和双线性变换法。1.5.2 IIR数字滤波器的零极点累试法上述介绍的模拟转换设计法实际上是数字滤波器的一种间接设计方法,而且幅度特性受到所选模拟滤波器特性的限制。例如巴特沃斯低通幅度特性是单调下降,而切比雪夫低通特性带内或带外有上、下波动等,对于要求任意幅度特性的滤波器,则不适合采用这种方法。下述介绍的在数字域直接设计IIR数字滤波器的设计方法,其特点是适合设计任意幅度特性的滤波器。在IIR数字滤波器的直接设计法中零极点累试法较为常用,设单位脉

21、冲响应的零极点表达式为2: (公式3) 按照(公式3),系统特性取决于系统零极点的分布,通过分析,我们知道系统极点位置主要影响系统幅度特性峰值位置及其尖锐程度,零点位置主要影响系统幅度特性的谷值位置及其凹下的程度;且通过零极点分析的几何作图法可以定性地画出其幅度特性。上面的结论及方法提供了一种直接设计滤波器的方法。这种设计方法是根据其幅度特性先确定零极点位置,再按照确定的零极点写出其系统函数,画出其幅度特性,并与希望的进行比较,如不满足要求。可通过移动零极点位置或增加(减少)零极点,进行修正。1.5.3 优化设计法IIR 数字滤波器除模拟转换设计法和零极点累试法外,还有一种直接在频域或者时域中

22、进行设计,联立方程后需要计算机作辅助运算的方法,即所谓的优化设计法。1.6 IIR数字滤波器的硬件实现方案滤波器的实现主要包括两大类:DSPTMS320系列芯片的实现和ISP器件的实现(主要包括FPGA和CPLD)。其中利用DSPTMS320系列芯片实现滤波时速度较慢,而利用ISP器件实现时,其运算速度比DSP器件要快好多倍。FPGA的实现包括其自带的核的实现方法和自编程实现方法。核的实现方法虽然好用并且结构缜密,但一般情况下使用的权限都会受到注册购买的限制,因此基于FPGA的自编程实现方法成了滤波器实现的首选3。以下简要介绍IIR数字滤波器的设计方案和基于FPGA的实现方法4。1.6.1.方

23、案一:直接相乘累加式对于二阶的IIR数字滤波器,其传递函数为: (公式4) 滤波器信号流图见图1-1,在第n时刻,是当时的输入样本; 是n时刻的IIR滤波器的输出: (公式5)因此,可以用硬件乘法器和硬件加法器来实现乘法和加法。由式(1.2.2)可以看出,按照这种设计方法,要用到5个乘法器和6个加法器。对于FPGA的设计来说,这种方法的缺点是比较耗费资源。1.6.2.方案二:基于ROM查表法的VHDL结构化设计采用ROM查表的方法,主要是为了避免使用硬件乘法器。二阶IIR的一般表示形式为: (公式6)其中是输入序列,是输出序列,和是系数。假设输入序列为位2的补码,并以定点表示,并<1,对

24、于可以表示为: (公式7)式中:表示的第位,上标为0的是符号位,因此可以定义一个5bit为变量的函数为: (公式8)由此可以得到:- (公式9)由于函数仅有32种可能取值,因此可以设计一个32*b位的ROM构成的如图1-2描述的基于ROM的实现结构。数据输入串行移入SR1和SR2,由抽头处得到,每计算出一个值后,便并行加载到SR3中,然后串行移入SR4,并在抽头处得到和。ROM的输入地址由组成。按此方法设计的优点是避免了占主要运算量的乘法运算,节省了FPGA的硬件资源,缺点与FIR滤波器利用ROM方法设计相同,即使用不够灵活。当系数发生变化时,更改ROM内的数据十分不便,特别是当阶数比较大时,

25、ROM内的数据较多,程序外的运算量也很大,修改数据更为不便。 图1-2 ROM查表法实现框图 Figure1-2 The ROM table look-up chart1.6.3 方案三:基于ROM查表法的改进型设计此方法结合了直接相乘累加式和ROM查表法的优点,使得设计灵活,设计周期短,节省资源。二阶IIR的一般表示形式为: (公式10)这里是输入序列,是输出序列,和是系数。设输入序列为位2的补码,并以定点表示,并<1,对于可以表示为: (公式11) 式中:表示的第位,上标为0的是符号位,因此可以定义一个5bit为变量的函数为: (公式12) 同理可得: (公式13)由此可以得到: (

26、公式14) 令,可以推出: (公式15)从式(公式15)中可以看出,可以用一个五路8位*1位乘法器在8个时钟周期内实现上述算式。其加法可以直接调用软件的库实现。本方案实现结构如图1-3所示。X(n)X(n-1)X(n-2)X(n-1)X(n-2)输入b0kb1ka0ka2ka1k输出Y(n)累 加 器 图1-3 改进型实现框图 Figure1-3 Improved structure图1-3中的作为FPGA接口上的A/D器件的转换数据输入寄存器,各寄存器内的数据与各自的系数的最高位相乘后,送入累加器相加,并且其和向左移一位,以实现乘2运算。下一个时钟,寄存器内数据与其系数的次高位相乘,再送入累

27、加器与其数据相加,再左移一位。接下的6个时钟进行类似的操作。第8个时钟后,累加器将其数据输出,即,并对累加器清零,同时将寄存器数据送入寄存器,将寄存器数据送入寄存器,同理,。接着再进行下一次运算。对上述三种方法相比较而言,方案三实现较为方便简洁,在节省了FPGA硬件资源的同时,使得设计灵活,设计周期大为缩短,故本设计在方案三为基础上作改进后,来实现IIR数字滤波器的。2 EDA技术和可编程逻辑器件2.1 电子设计自动化EDA技术EDA是Electronic Design Automation的缩写,意为电子设计自动化,即利用计算机自动完成电子系统的设计。回顾近30年的电子设计技术的发展历程,可

28、将EDA技术分为三个阶段4:七十年代为CAD(Computer Aide Design)阶段。这个阶段主要分别研制了一个个单独的软件工具,主要有电路模拟、逻辑模拟、版图编辑、PCB布局布线等,通过计算机的使用,从而可以把设计人员从大量繁琐、重复的计算和绘图工作中解脱出来。八十年代为CAE阶段。这个阶段在集成电路与电子系统方法学,以及设计工具集成方面取得了众多成果,与CAD相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计。九十年代为EDA阶段,尽管CAD/CAE技术取得了巨大的成功,但在整个设计过程中,自动化和智能化程度还不高

29、,各种EDA软件界面千差万别,学习实用困难直接影响到设计环节间的衔接。基于以上不足,人们开始追求贯穿整个设计过程的自动化,即电子系统设计自动化。2. 2 可编程逻辑器件2.2.1 可编程逻辑器件简介可编程阵列逻辑器件PAL(Programmable Array Logic)和通用阵列逻辑器件GAL(Generic Array Logic)都属于简单PLD。随着技术的发展,简单PLD在集成度和性能方面的局限性也暴露出来。其寄存器、I/O引脚、时钟资源的数目有限,没有内部互连,因此包括复杂可编程逻辑器件CPLD(Complex PLD)和现场可编程门阵列器件FPGA(Field Programma

30、ble Gate Array)在内的复杂PLD迅速发展起来,并向着高密度、高速度、低功耗以及结构体系更灵活、适用范围更广阔的方向发展10。FPGA具备阵列型PLD的特点,结构又类似掩膜可编程门阵列,因而具有更高的集成度和更强大的逻辑实现功能,使设计变得更加灵活和易实现。相对于 CPLD,它还可以将配置数据存储在片外的EPROM或者计算机上,设计人员可以控制加载过程,在现场修改器件的逻辑功能,即所谓的现场可编程。所以FPGA得到了更普遍的应用4。2.2.2 使用FPGA器件进行开发的优点使用FPGA器件设计数字电路,不仅可以简化设计过程,而且可以降低整个系统的体积和成本,增加系统的可靠性。使用F

31、PGA器件设计数字系统电路的主要优点如下:2.2.2.1 增大功能密集度功能密集度是指在给定的空间能集成的逻辑功能数量。可编程逻辑芯片内的组件门数高,一片FPGA可代替几十片乃至上百片中小规模的数字集成电路芯片。用FPGA实现数字系统时用的芯片数量少,从而减少印刷板面积和数目,最终导致系统规模的减小。2.2.2.2 缩短设计周期由于FPGA器件集成度高,使用时印刷线路板电路布局布线简单。FPGA器件的可编程性和灵活性,决定了用它设计一个系统所需时间比传统方法大为缩短。2.2.2.3 工作速度快FPGA/CPLD器件的工作速度快,一般可以达到几百兆赫兹,远远大于DSP器件。使用FPGA器件后实现

32、系统所需要的电路级数少,因而整个系统的工作速度会得到提高9。2.2.3 FPGA设计的开发流程设计开始需利用EDA工具的文本或图形编辑器将设计者的设计意图用文本方式(如VHDL程序)或图形方式(原理图、状态图等)表达出来。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。编译形成标准VHDL文件后,在综合前即可以对所描述的内容进行功能仿真,又可称为前仿真。由于此时的仿真只是根据VHDL的语义进行的,与具体电路没有关系,仿真过程不涉及具体器件的硬件特性,如延迟特性。设计的第三步是综合,将软件设计与硬件的可实现性挂钩,这是软件化为硬电路的关键步骤。综合后,可生成V

33、HDL网表文件,利用网表文件进行综合后仿真。综合通过后必须利用FPGA布局/布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,这个过程叫做实现过程。布局布线后应进行时序仿真。时序仿真中应将布局布线后的时延文件反标到设计中,使仿真既包含门时延,又包含线时延的信息。与前面各种仿真相比,这种仿真包含的时延信息最为全面、准确,能较好地反映芯片的实际工作情况11。如果以上的所有过程,都没有发现问题,即满足原设计要求,就可以将适配器产生的配置/下载文件通过编程器或下载电缆载入目标芯片中。2.3 硬件描述语言VHDL及数字系统设计方法2.3.1 硬件描述语言VHDL简介硬件描述语言(Ver

34、y High Speed Integrated Circuit Hardware Description Language, VHDL)是一种用于设计硬件电子系统的计算机语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能。它主要用于描述数字系统的结构、行为、功能和接口,非常适用于可编程逻辑芯片的应用设计。与其它的HDL相比,VHDL具有更强大的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言8。2.3.2 利用VHDL设计数字系统利用VHDL语言设计数字系统硬件电路,与传统的设计方

35、法相比,具有以下优点:2.3.2.1 采用自顶向下(TOP-DOWN)的设计方法自顶向下是指从系统总体要求出发,在顶层进行功能方框图的划分和结构设计。由于设计的主要仿真和调试过程在高层次上完成,这一方面有利于提高了设计的效率。2.3.2.2 降低了硬件电路的设计难度在使用VHDL语言设计硬件电路时,可以免除编写逻辑表达式或真值表的过程,使得设计难度大大下降,从而也缩短了设计周期。2.3.2.3 主要设计文件是用VHDL语言编写的源程序在传统的硬件电路设计中,最后形成的主要文件是电路原理图,而采用VHDL语言设计系统硬件电路时主要的设计文件是VHDL语言编写的源程序。2.3.2.4 方便ASIC

36、移植VHDL语言的效率之一,就是如果你的设计是被综合到一个FPGA或CPLD的话,则可以使你设计的产品以最快的速度上市。当产品的产量达到相当的数量时,采用VHDL进行的设计很容易转换成专用集成电路来实现8。所以本次设计采用利用VHDL语言的数字系统设计方法。3 IIR数字滤波器的设计与仿真结果分析3.1 各模块的设计与仿真结果分析本课题在实现方案三的基础上,结合参考文献4-6将IIR滤波器的硬件系统分为四个模块:时序控制、延时、补码乘加和累加模块。以下就各个模块的实现及仿真作简要的分析。3.1.1 时序控制模块的设计与仿真结果分析时序控制模块主要用来产生对其它模块的时序控制信号。模块的符号如图

37、3-1(a)所示,输入信号CLK是时钟信号,RES是复位信号,CLK_REG及CLK_REGBT是输出信号。图3-1(a) 时序控制模块图Figure3-1(a)The timing control module diagram图3-1(b) 时序控制模块仿真图Figure3-1(b) The timing control simulation module时序控制模块仿真如图3-2(b)所示,其中counter为程序内部计数信号,在clk的上升延到来时,counter以6个时钟为周期开始进行计数,clk_regbt每隔6个时钟输出一个低电平,clk_reg则每隔6个时钟后输出一个高电平。输出

38、的两个时钟信号正好控制延时模块、补码乘加模块和累加模块的模块的运行。符合设计要求。时序控制模块程序见附录1。3.1.2 延时模块的设计与仿真结果分析延时模块的符号如图3-2(a)所示,其主要作用是在clk时钟作用下将差分方程的各、值延迟一个时钟,以实现一次延时运算,即当输入为xn和yn时,经过一次延时后其输出分别为x(n-1)和y(n-1).其中yout是反馈输入信号,xn是输入信号。程序见附录二。图3-2(a) 延时模块图Figure3-2(a) The delay module diagram图3-2(b) 延时模块仿真图Figure3-2(b) The delay module simu

39、lation diagram延时模块仿真图如图3-2(b)所示,由图3-4可以看出当输入的xn、yout都为时,在时钟信号上升沿的作用下产生延时,经第一个时钟后x0、x1、x2、y0、y1的值分别为1,0,0,1,0。经第二个时钟后x0、x1、x2、y0、y1的值分别为2,1,0,2,1。经第三个时钟后x0、x1、x2、y0、y1的值分别为3,2,1,3,2。经第四个时钟后由此可见该模块仿真值正确。延时模块程序见附录1。3.1.3 补码乘加模块的设计与仿真结果分析补码乘加模块主要用来实现输入序列、与系数、分别相乘后再相加的过程。即实现的算法。为了避免过多地使用乘法器,本设计中乘加单元(MAC)

40、的乘法器采用阵列乘法器,以提高运算速度。由于Maxplus的LPM库中乘法运算为无符号数的阵列乘法,所以使用时需要先将两个补码乘数转换为无符号数相乘后,再将乘积转换为补码乘积输出5。每个二阶节完成一次运算共需要6个时钟周期,而且需采用各自独立的MAC实现两级流水线结构,即每个数据经过两个二阶节输出只需要6个时钟周期。模块的符号如图3-3(a)所示。图3-3(a) 补码乘加模块图Figure3-3(a) Complement multiplier module diagram图3-3(b) 补码乘加模块仿真图Figure3-3(b) Complement Multiplier simulatio

41、n module补码乘加模块仿真图如图3-5所示,clk_regbt及clk_reg为输入时钟,由时序控制模块提供。、为系数,x0、x1、x2、y0、y1为输入信号,yout为输出信号,图3-3(b)中75为x0、x1、x2、y0、y1的值15和系数、相乘后再相加的结果,完成了补码乘加的功能。补码乘加模块程序见附录1。3.1.4 累加模块的设计与仿真结果分析补码乘加模块所输出的信号送入累加器后,与寄存于累加器中的上一步计算的中间结果相加,最后将此步的计算结果经由输出引脚输出,所得信号即为最终结果。 即该模块主要实现youtput=yout+youtput(n-1)的算法,模块的符号如图3-4(

42、a)所示。图3-4(a) 累加模块图Figure3-4(a) Cumulative module diagram图3-4(b) 累加模块仿真图Figure3-4(b) Cumulative module simulation diagram累加模块仿真图如图3-4(b),其中res为复位信号,clk为时钟信号,yout为输入信号,由补码乘加模块的输出信号yout提供,由图中可以看出当输入信号yout=,输出为youtput=,实现了累加的功能。符合设计要求。累加模块程序见附录1。3.1.5 顶层模块设计顶层模块设计采用了原理图输入方法,原理图输入方式非常直观,便于信号观察和电路的调节。图3-5

43、 顶层模块图Figure3-5 Top module本课题设计的顶层文件名为iir.gdf,设计生成的逻辑符号如图3-5所示。顶层模块设计程序见附录。3.2 IIR数字滤波器的仿真与结果分析3.2.1 IIR数字滤波器的系统设计IIR数字滤波器顶层原理图如图3-6所示。为了便于理解整个系统的设计,现将系统的运行过程进行说明:图3-6 IIR数字滤波器顶层原理图Figure3-6 IIR digital filter top principle diagram系统先开始处于初始状态,当清零信号为“1”时,对整个系统进行清零。在清零信号为“0”的前提,时序控制模块在时钟clk上升沿的作用下产生两个

44、信号CLK_REG及CLK_REGBT,其中CLK_REG信号用来作为延时模块、补码乘加模块和累加模块的输入时钟,CLK_REGBT每隔6个时钟产生一个高电平作为这三个模块的复位信号。延时模块在接收到CLK_REG高电平信号时清零输出端,接收到低电平时,在CLK_REGBT上升沿的作用下对输入信号进行延时,以实现一次延时运算,而后将延时信号输出,送给补码乘加模块。补码乘加模块在接收延时信号的同时也接收读者输入的系数信号,在CLK_REGBT上升沿的作用下实现系数和延时信号的补码乘加运算,而此步骤需要6个时钟来完成,正好与时序控制模块的输出信号CLK_REGBT相一致。补码乘加模块的输出一部分送

45、入延时模块以实现信号的反馈,另一部分则送入到累加模块,在累加模块中进行结果累加后输出,得到最终结果。3.2.2 IIR数字滤波器的系统仿真与结果分析在各模块编译通过后将各模块进行了综合,针对不同的输入信号和不同的输入系数对IIR数字滤波器进行了仿真,仿真波形如图3-7所示。并将仿真值和计算值进行了比较,如表3.2.1中所示。(a)(b)(c)图3-7 IIR数字滤波器仿真图Figure3-7 IIR数字滤波器仿真图表3.2.1 滤波后输出的数据Table13.2.1 The filtered output data输入数据Xn=0,1,2,3,4,5;a0=a1=a2=b0=b1=1计算值01

46、411244780仿真值01411254369输入数据Xn=0,1,0,1,0,1;a0=a1=a2=b0=b1=1计算值012581524仿真值012591523输入数据Xn=0,1,0,1,0,1;a0=2,a1=a2=b0=b1=1计算值0238142234仿真值0249172741由表3.2.1可见,仿真值结果正确,只是与真值之间存在一定的误差,仿真值越大时误差越大,这是由于有限精度算法所引起的误差,经累加器累加后使得误差变得越来越大,要解决这一问题可以通过增加二进制位数来提高系统的运算精度5。3.2.3 高阶IIR数字滤波器的实现要实现一个高阶IIR数字滤波器,如果采用直接型结构实现

47、,需用的乘法器和延迟单元相对较多,而且分子和分母的系数相差较大,需要较多的二进制位数才能实现相应的精度要求。如果采用二阶节级联实现,一方面各基本节的零点、极点可以很方便地单独进行调整,另一方面可以降低对二进制数位数的要求。以实现一个四阶IIR数字滤波器为例,可以通过两个二阶IIR数字滤波器级联的方式来实现较为简洁。图3-8给出了一个四阶IIR数字滤波器实现的原理图5,具体的工作原理与二阶IIR数字滤波器类似,在此本节即不再细述。图3-8 四阶IIR数字滤波器的顶层原理Figure3-8 The principle of four order IIR digital filters当然,更高阶的

48、IIR数字滤波器的实现方法与四阶滤波器的实现方法类似,只需将多个二阶IIR数字滤波器进行级联,即可实现。参考文献1 刘凌,胡永生译数字信号处理的FPGA实现M北京:清华大学出版社20032 丁玉美,高西全数字信号处理M西安:西安电子科技大学出版社20043 潘松,黄继业EDA技术实用教程M北京:科学出版社20004 潘松,王国栋VHDL实用教程M成都:电子科技大学出版社20015 倪向东基于FPGA的四阶IIR数字滤波器J电子技术应用,20036 王卫兵高阶IIR数字滤波器的FPGA描述J电子元器件,2005,16期:pp3-47 黄任VHDL入门·解惑·经典实例·

49、;经验总结M北京:北京航空航天出版社20058 北京理工大学ASIC研究所VHDL语言100例详解M北京:清华大学出版社19999 Joseph B. Evans, "Efficient F1R Filter Architectures Suitable for FPGA Implementation"M IEEE Trans, Circuits and System,July 199410Javier Valls, Marcos M. Peiro, Trini Sansaloni, Eduardo Boemo, "A Study About FPGA-Based

50、Digital Filters"J, IEEE SIPS, pp191-201,October 199811(美)Uwe Meyer-Baese著刘凌译数字信号处理的FPGA实现北京:清华大学出版社,2006.致 谢本设计是在郭颖老师的悉心指导下完成的,感谢我的导师在我大学期间对我的指导和关怀。几年来,郭颖老师始终关注着我的成长,为我的进步倾注了大量的心血和汗水。在此,向我的导师致以衷心的感谢和深深地敬意。导师高深的学术造诣、严谨的治学态度、一丝不苟的工作作风、渊博的知识以及诲人不倦的导师风范,使我在学习生活中受益匪浅,并激励着我在今后的工作和学习中不断进步。在此,借论文完成之际,再

51、次向我的导师致以最诚挚的敬意和感谢。在论文的研究过程中,我还要感谢电子科学与技术实验室的领导与老师。谢谢他们提供的实验室、实验仪器和无私的帮助!我还特别要感谢我的家人。在多年的求学过程中,他们给予我全力的支持和无限的关怀,使我能够全心全意的投入到学业中去。对于他们为我付出的一切,我将以今后的努力工作、勤奋予以回报。附 录时序控制模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity control is port( clk,r

52、es:in std_logic; clk_reg,clk_regbt:out std_logic );end;architecture bhv of control is signal counter,count_bt:integer ; signal clk_en:std_logic; beginclk_regbt<=not clk and clk_en;clk_reg<=not clk and not clk_en; process(clk,res) begin if(res='1')then counter<=0; count_bt<=0; els

53、if(clk'event and clk='1')then if( counter<6)then clk_en<='1' counter<=counter+1; count_bt<=count_bt-1; else counter<=0; count_bt<=0;clk_en<='0' end if; end if; end process;end bhv;延时模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity delay is port (clk:in std_logic; res:in std_logic; xn:in st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论