基于FPGA的FIR滤波器设计与实现.doc
《基于FPGA的FIR滤波器设计与实现.doc》由会员分享,可在线阅读,更多相关《基于FPGA的FIR滤波器设计与实现.doc(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录引 言5第一章 FPGA的设计流程61.1 FPGA概述61.2 FPGA设计流程81.3硬件描述语言HDL(Hardware Description Language)101.4 FPGA开发工具Quartus 软件设计流程11第二章 有限冲激响应(FIR)滤波器的原理及设计142.1数字信号处理基础原理142.2 FIR滤波器背影知识172.3 FIR数字滤波器原理182.4 利用窗函数法设计FIR滤波器22第三章 FIR 数字滤波器的FPGA实现273.1串行FIR滤波器原理273.2分布式算法基础273.3直接型FIR滤波器的原理结构图303.4具有转置结构的FIR滤波器31第四章
2、 结论与总结36谢 辞37参考文献38摘要:本论文课题是基于FPGA的FIR滤波器设计与实现 。数字滤波器是语音与图象处理、模式识别、雷达信号处理、频谱分析等应用中的一种基本的处理部件,它能满足滤波器对幅度和线性相位的严格要求,避免模拟滤波器所无法克服的电压漂移、温度漂移和噪声等问题。有限冲激响应(FIR)滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。因此在许多应用领域都显示了强大的生命力,具有重要应用意义。本文介绍了用VHDL实现线性相位FIR(有限长单位冲激响应)滤波器。提出了一种基于FPGA的FIR滤波器设计方案。介绍了基于FPGA的FIR滤波器的数字信号处理的算法设计,采用直
3、接型和转置型的基本结构来设计,其运算效率明显提高,并结合先进的EDA软件进行高效的设计和实现,并给出了用Quartus 运行的仿真结果。该设计对FPGA硬件资源的利用高效合理,用VHDL编程,在PFGA中实现了高采样率的FIR滤波器。关键字:FIR滤波器;FPGA;VHDL;MATLAB;Quartus Abstract: Digital filter is a fundamental device used in pronunciation &pattern process, pattern-recognition, radar signal process and spectral ana
4、lysis. It can meet the high needs to range and phase, and can avoid such problems as voltage drifting, temperature drifting and noise that analogue filters cannot overcome. FIR filter can assure a strict linear phase identity while designing any range and frequency. Therefore, FIR filter has shown i
5、ts strong vitality in many fields and its importance in using. In the paper, the way to use VHDL to design linear phase FIR filter is introduced and its importance in using. In the paper, the way to use VHDL to design linear phase FIR filter is introduced and its designing thoughts are expounded. Th
6、is paper introduces the design scheme of FIR filter based on FPGA, introduces that the design technology of FIR filter based on FPGA about digital system processing arithmetic. FIR filter adopts the basic structure of direct type, the result are shifting and adding. Integrating advanced software of
7、EDA to design and achieve, and giving some emulator results. This design makes high use of hardware resource about FPGA, programming with VHDL language, achieving FIR filter with high sampling level based on PDGA. Keywords: Finite Impulse Response Digital Filter(FIR)、Field Programmable Gate、 Array(F
8、PGA)、VHDL、Quartus 引 言在数字信号处理技术不断发展的今天,数字滤波器正在迅速地代替传统的模拟滤波器,所以有越来越多的人们在研究数字滤波器的结构以及其实现。在数字滤波器中,有限冲激响应(FIR)滤波器具有无限冲激响应(IIR)滤波器所没有的线性相位,所以本课题研究的就是FIR数字滤波器,主要讨论了它的结构以及实现的方法。目前FIR滤波器的实现方法有3种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要;使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度较慢。FPGA有着规整的内部逻
9、辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。本人毕业设计就是基于FPGA运用VHDL设计实现FIR滤波器。众所周知,Quartus 是美国ALTERA公司自行开发的一种针对其公司生产的系列FPGA的设计、仿真、编程的工具软件,Quartus 是FPGA应用软件中比较典型和常见的一种工具,在我国应用较为普遍。本设计就是用Quartus 所支持的一种很常用的硬件描述语言(VHDL)来编程,并在Quartus 上编译与仿真。1 FPGA的设计流程可编程逻辑器件(PLD, Programmable Logic Device)是厂
10、家作为一种通用型器件生产的半定制电路,用户可以通过对器件编程实现使之实现所需要的逻辑功能.它的应用和发展不仅简化了电路设计,降低了成本,提高了系统的可靠性,而且给数字系统的设计方式带来了革命性的变化。1.1 FPGA概述1 简单PLD的基本结构简单PLD包括PROM, PLA, PAL和GAL。其结构特点是由与阵列和或阵列组成,能有效地实现“积之和”形式的布尔逻辑函数。简单PLD的基本结构图如图2.1所示。图中与阵列和或阵列是电路的主体,主要用来实现组合逻辑函数。输入由缓冲器组成,它使输入信号具有足够的驱动能力并产生互补输入信号。输出电路可以提供不同的输出方式。 图1.1简单PLD的基本结构2
11、 现场可编程门阵列 FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,是20世纪80年代中期出现的高密度可编程逻辑器件。FPGA的出现是超大规模集成电路技术和计算机辅助设计技术发展的结果。FPGA器件集成度高、体积小,具有通过用户编程实现专门应用的功能。它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的结果。使用FPGA器件可以大大缩短系统的研制周期,减少资金投入。更为可贵的是,采用FPGA器件可以将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性,同时还可以很方便地对设计进行在线修改。FPGA
12、一般由三种可编程电路和一个用于存放编程数据的SRAM组成,这三种可编程电路是:可编程逻辑块CLB、输入输出模块IOB和互连资源IR,其基本结构如图2.2所示。可编程逻辑块是实现逻辑功能的基本单元,它们通常规则地排列成一个阵列,散布于整个芯片;可编程输入/输出模块主要完成芯片上逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连线线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。FPGA的功能由逻辑结构的配置数据决定。工作时,这些配置数据存放在片内的SRAM或熔丝图上。基于SRAM的FPGA器件,在工作前需要从
13、芯片外部加载配置数据,配置数据可以控制加载过程,在现场修改器件的逻辑功能,即所谓现场编程。1、 可编程逻辑块(CLB)CLB是FPGA的主要组成部分,是实现逻辑功能的基本单元。它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中有许多不同规格的数据选择器,分别用来选择触发器激励输入信号、时钟有效边沿、时钟能使信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器均为查找表结构,其工作原理类似于ROM。2、 输入/输出模块(IOB) IOB提供了器件引脚和内部逻辑功能阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存
14、器、输出缓冲器组成,每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。3、可编程互连资源(IR)可编程逻辑互连资源可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。3 FPGA VS. CPLD可编程逻辑器件的两种主要类型是FPGA(Field Programmable Gate Array,现场可编程门阵列)和CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。虽然两者都是可编程逻辑器件,但是两者
15、之间仍有较大的区别。(1) FPGA是触发器密集型的器件,具有大量的触发器资源;而CPLD是组合逻辑密集型的器件,触发器资源少。(2) FPGA的集成度远高于CPLD。(3) FPGA的分段式布线结构决定了其延迟的不可预测性,而CPLD的连续式布线结构决定了它的时延是均匀的和可预测的。因此,FPGA的应用范围远较CPLD广泛,FPGA可以用工业控制通信消费类电子等各种领域中较为复杂的设计,而CPLD一般只用于实现简单的控制,如地址译码等。4 主流FPGA厂商介绍目前主要的FPGA生产厂家为Xilinx和Altera。Xilinx公司是FPGA领域的老牌厂商,曾在FPGA领域占有绝对的领先优势。
16、目前,它在低端市场推出了Spartan-2和Spartan-3系列产品,在高端市场则推出了Virtex-2、Virtex-4系列产品。Altera公司是目前在FPGA领域惟一可以和Xilinx平起平坐的公司。它在低端市场的产品有Cyclone和Cyclone系列,在高端市场则有Stratix、StratixGX及Stratix系列产品。1.2 FPGA设计流程FPGA的电路设计是通过FPGA开发系统实现。用户无需了解FPGA的内部构造和工作原理,只要在计算机上输入电路原理图或硬件描述语言,FPGA开发系统就能自动进行模拟、验证、分割、布局和布线,最后实现FPGA的内部配置。FPGA的设计流程如
17、图1.2所示。 图1.2 FPGA设计流程图IC电路设计一般都采用自顶向下的设计方法。所谓自顶向下的设计就是从系统总体要求出发,从上到下地逐步将设计内容细化,最后完成系统硬件的整体设计。在利用VHDL的硬件设计方法中,设计者将至上自下分成3个层次对系统硬件进行设计。第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数字模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用什么方法来实现。考虑更多的是系统的结构及其在工作过程中是否能达到系统设计规格书的要求。第二层次是RTL方
18、式描述。这一层次称为寄存器传输描述。如前所述,用行为方式描述的系统结构的程序,其抽象度很高,是很难直接影射到具体逻辑元件结构的硬件实现的。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序该为RTL方式描述的VHDL语言程序。也就是说,系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。在完成编写RTL方式的描述程序以后,再用仿真工具对RTL方式描述的程序进行仿真。如果通过这一步仿真,那么就可以利用综合工具进行综合了。第三层次是逻辑综合。逻辑综合这一阶段是利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)。此时,如果需要,可以将逻辑综
19、合结果,以逻辑原理图方式输出。也就是说,逻辑综合的结果相当于在人工设计硬件电路时,根据系统要求画出了系统的逻辑电路原理图。此后对逻辑综合结果在门电路级上再进行仿真,并检查定时关系。如果一切正常,那么系统的硬件设计就基本结束。如果三个层次的某个层次上发现有问题,都应返回上一层次,寻找并修改相应的错误,然后再向下继续未完的工作。由自顶向下的设计过程可知,从总体行为设计开始到最终逻辑综合,形成网表为止,每一步都要进行仿真检查,这样有利于尽早发现系统设计中存在的问题,从而可以大大缩短系统硬件设计周期。这是用VHDL语言设计系统硬件的最突出的优点之一。1.3硬件描述语言HDL(Hardware Desc
20、ription Language)1 硬件描述语言简介硬件描述语言是一种用形式化方法来描述数字电路的设计数字逻辑系统的语言。它可以使数字逻辑电路设计者利用这种语言来描述自己的设计思想,然后利用电子设计自动化(EDA)工具进行仿真,自动综合到门级电路,再利用ASIC或FPGA实现其具体功能。从80年代后期开始,硬件描述语言逐步向着标准化的方向发展,最终VHDL和Verilog适应了标准化需求,成为IEEE标准。此后用这两种标准的硬件描述语言进行数字逻辑设计的方法逐渐流行。与传统的电路图设计方法相比,用硬件描述语言进行电路设计有如下好处:(1)使用硬件描述语言,可以在较高的抽象层次描述设计,也就是
21、说这样的设计方法不仅提高了设计人员的效率,而且设计与特定的工艺无关。逻辑综合工具能自动地把设计转换成针对某种工艺的门级网表,如果出现了新的工艺,设计者不必重新设计电路,而只要针对新工艺,重新综合即可。(2) 使用硬件描述语言进行设计,可以在设计阶段进行功能验证,这样设计者可以不断地修改和优化RTL代码描述,直到满足设计需求。大部分的错误和缺陷在这时被排除,防止错误被带到门级或者物理设计阶段。实践证明,错误发现越早,排除错误所花费的代价就越少。由于用硬件描述语言进行的设计可以在早期进行验证,从而极大地缩短设计周期,节约设计成本。(3)设计用文本的方式表示,简单高效,可以对设计添加注释,易于开发、
22、调试和维护。2 VHDL语言简介VHDL是 Very-High-Speed Integrated Circuit Hardware Description Language的英文缩写, 1987年底,由IEEE(The Institute of Electrical and Electronics Engineers)和美国国防部将其标准化。VHDL语言是一种行为描述语言,其主要用于描述数字系统的结构、行为、功能和接口。VHDL还是一种与实现技术相独立的语言,即不束缚于某一特定的模拟程序或数字装置上,也不把设计方法强加于设计者。它允许设计者在其使用范围内选择工艺和方法。VHDL语言的语言形式和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA FIR 滤波器 设计 实现
限制150内