当前位置:文档之家› 毕业设计178基于FPGA的FIR滤波器设计

毕业设计178基于FPGA的FIR滤波器设计

目录引言 (1)1.软件及硬件平台 (1)1.1VHDL语言特点 (2)1.2MAX PLUS II开发环境 (3)1.3可编程逻辑器件 (4)1.4ALTERA公司FLEX10K系列 (5)2.FIR滤波器基本理论 (6)2.1数字滤波器概述 (6)2.2有限长单位冲激响应(FIR)滤波器 (6)2.2.1 FIR滤波器特点 (6)2.2.2 FIR滤波器结构 (6)2.3FIR数字滤波器的实现方法 (8)3.基于FPGA实现FIR滤波器的研究 (9)3.1基于乘法器结构的FIR滤波器在FPGA上的实现结构 (9)3.1.1基于乘累加 FIR 滤波器结构 (9)3.1.2 基于并行乘法器直接型 FIR 滤波器结构 (10)3.2基于分布式(DA)算法的FIR滤波器在FPGA上实现结构 (11)3.2.1 用分布式原理实现FIR滤波器-串行方式 (12)3.2.2 用分布式原理实现FIR滤波器-并行方式 (13)3.3CSD码及最优化方法 (14)4.线性相位FIR滤波器的设计 (16)4.1FIR滤波器的设计要求 (16)4.2软件环境和硬件平台选择 (16)4.3FIR滤波器的设计方案 (16)4.4各模块设计 (17)5.仿真结果及分析 (21)5.1仿真结果 (21)5.2仿真结果分析 (22)6.总结 (22)致谢 (23)参考文献 (23)ABSTRACT (25)基于FPGA的FIR滤波器设计摘要:本文提出了一种采用现场可编程门阵列器件(FPGA)实现FIR数字滤波器的方案,并以Altera公司的FPGA器件EPF10K30为例完成了FIR滤波器的模块化设计过程。

底层采用VHDL语言描述设计文件,顶层使用底层产生的模块连接组成FIR滤波器,并在MAX+plusII上进行了实验仿真。

仿真结果表明:该设计方案可行,可为今后的数字滤波器模块化研究提供另一种思路。

关键词:VHDL;FPGA;FIR滤波器;Maxplus引言许多工程技术领域都涉及到信号,这些信号包括电的、磁的、机械的、热的、声的、光的及生物体的等等。

如何在较强的背景噪声和干扰信号下提取出真正的信号并将其用于实际工程,这正是信号处理要研究解决的问题。

20世纪60年代,数字信号处理理论得到迅猛发展,理论体系和框架趋于成熟,到现在它已经成长为一门独立的数字信号处理学科。

数字滤波器在数字信号处理中占有很重要的地位,它涉及的领域很广,如:通信系统、系统控制、生物医学工程、机械振动、遥感遥测、地质勘探、航空航天、电力系统、故障检测、自动化仪器等。

系统数字滤波是提取有用信息非常重要而灵活的方法,是现代信号处理的重要内容。

相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应可接近理想特性,且精度很高又容易集成。

在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用,属于数字信号处理的基本模块之一。

在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。

硬件描述语言(VHDL)是数字系统高层设计的核心,是实现数字系统设计新方法的关键技术之一。

随着可编程逻辑器件在速度和集成度方面的飞速发展,使用FPGA来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR滤波器,FIR数字滤波器在数字信号处理系统中应用非常普遍,常被用来对原始(或输入)样本数据进行消除高频、抑制噪声等处理以产生所需的输出。

数字滤波器的好坏对相关的众多工程技术领域影响很大,一个好的数字滤波器会有效地推动众多工程技术领域的技术改造和科学发展。

所以对数字滤波器的工作原理、硬件结构和实现方法进行研究具有一定的意义。

本设计将采用现场可编程门阵列器件(FPGA)实现FIR数字滤波器的方案,底层采用VHDL语言描述设计文件,顶层使用底层产生的模块连接组成FIR滤波器,并在Max+plusII上进行实验仿真。

由仿真结果判断设计的可行性。

1.软件及硬件平台1.1 VHDL语言特点VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。

VHDL还具有以下优点:(1)VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于物理实现。

(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用。

(3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。

(4)VHDL 是一个标准语言,为众多的EDA厂商支持,因此移植性好。

VHDL设计是行为级的设计,所带来的问题是设计者的设计思想与实际电路结构是相脱节的。

设计者主要是根据VHDL的语法规则,对系统目标的逻辑行为进行描述,然后通过综合工具进行电路结构的综合、编译、优化,通过仿真工具进行逻辑功能仿真和系统延时的仿真。

实际设计过程中,由于每个设计工程师对语言规则、对电路行为的理解程度不同,每个是大相径庭。

因此,即使最后综合出的电路都能实现相同的逻辑功能,其电路的复杂程度和时延特性都会有很大的区别,甚至某些臃肿的电路还会产生难以预料的问题。

从这些问题出发,很有必要深入讨论在VHDL设计中如何简化电路结构,优化电路设计的问题。

一段独立的VHDL代码至少包含3个组成部分:库(LIBRARY)声明:列出了当前设计中需要用到的所有库文件,如ieee,std和work等。

实体(ENTITY):定义了电路的输入/输出引脚。

构造体(ARCHITECTURE):所包含的代码描述了电路要实现的功能。

库是一些常用代码的集合,将电路设计中经常使用的代码存放到库中有利于设计的重用和代码共享,库的典型结构如图1-1。

代码通常以函数(FUNCTION)、过程(PROCEDURE)或元件(COMPONENT)等标准形式存放在包裹(PACKAGE)中,用户可以根据需要对其进行编译使用。

图1-1 一个库的基本组成部分为了更有效的编写VHDL代码,必须知道哪些数据类型是可用的以及怎样说明和使用它们。

表1-1中总结了VHDL中基本的可综合的数据类型。

表1-1 VHDL中基本的可综合的数据类型数据类型可综合的数据BIT,BIT_VECTOR ‘0’,‘1’STD_LOGIC,STD_LOGIC_VECTIR ‘X’,‘0’,‘1’,‘Z’STD_ULOGIC,STD_ULOGIC_VECTOR ‘X’,‘0’,‘1’,‘Z’BOOLEAN True,FalseNA TURAL 0到+2147483647INTEGER -2147483647到+2147483647UNSIGNED 0到+2147483647用户自定义整型INTEGER的子集用户自定义枚举类型根据用户自定义进行编码得到SUBTYPE 任何预定义或用户自定义类型的子集ARRAY 任意上述单一类型数据的集合RECORD 任意上述多重类型数据的集合VHDL的语法基础的学习令人感到枯燥乏味,但只有在对数据类型、运算操作符及其属性有了深刻理解之后,才有可能写出高质量和高效率的代码。

表1-2总结了VHDL中数据类型、运算操作符及其属性。

表1-2 VHDL中数据类型、运算操作符及其属性1.2 MAX plusII开发环境Max+plusII(Multiple Array Matrix and Programmable Logic User System)是Altera公司在Windows 环境下开发的可编程逻辑设计软件平台。

该软件提供了一种真正与结构无关的全集成化的设计环境,可支持不同结构的器件,如FLEX、MAX以及CLASSIC系列器件等;丰富的设计库可供设计者灵活使用;允许用各种输入方式输入逻辑设计文件,经过系统编辑器的编译、综合等操作后分配到一个或多个器件中。

MAX+plusII开发系统的特点如下(1)开放的接口MAX+plusII支持与其他工业标准EDA(Electronic Design Automation)工具软件共同使用的接口,这一接口符合EDIF200和EDIF300标准、参数化模块库LPM(Library of Parameterized Modules)2.1.0、标准延迟格式SDF(Standard Delay Format)1.0和SDF2.0、VITAL95、Verilog HDL、VHDL1987和VHDL1993以及其他标准。

同时也可以使用其他的电子设计自动化EDA工具软件进行设计输入,再利用MAX+plusII进行编译处理。

(2)与结构无关(指VHDL描述在逻辑综合前与结构无关)MAX+plusII系统的核心Compiler(编译程序),支持Altera公司的FLEX10K、FLEX10KA、FLEX10KB、FLEX10KE、MAX5000、MAX7000、MAX9000、FLEX6000、FLEX8000等可编程逻辑器件系列,提供了一个真正与结构无关的可编程逻辑设计开发环境。

它的编译器还提供了强大的逻辑综合与优化功能,使用者可在最短的时间内完成高效的设计。

(3)多平台MAX+plusII可在PC机的MS Windows和Windows NT环境下,以及多种工作站的Windows环境下运行。

(4)完全集成化MAX+plusII的设计输入、处理与校验功能全部集成在统一的开发环境下,这样可以加快动态调试,缩短开发周期。

(5)多种设计库MAX+plusII提供了丰富的库单元,其中包括74系列的全部器件和多种特殊的逻辑宏单元器件(Macor-Function),以及新型的参数化宏功能器件(Mega-Function)。

调用库单元进行设计,可以缩短设计周期。

(6)模块化工具设计者可以从各种设计输入、处理和校验选项中进行选择,从而使设计环境用户化。

(7)硬件描述语言(HDL)MAX+plusII软件支持VHDL、Verilog HDL和Altera公司自己的硬件描述语言AHDL。

(8)开放核的特点MAX+plusII软件具有开放核(Opencore)的特点,允许设计人员添加自己的宏函数。

(9)Magecore的功能Magecore是为复杂的系统及功能提供的、经过校验的HDL(硬件电路)网表文件,能使FLEX10K、FLEX8000、FLEX600、MAX9000HE、MAX7000器件系列实现最优化设计。

1.3 可编程逻辑器件FPGA (Field Programmable Gates Array, 现场可编程门阵列)和CPLD (Complex Progr ammable Logic Device,复杂可编程逻辑器件)属于高容量的可编程逻辑器件,是在PAL、 GAL等简单PLD的基础之上发展起来的。

相关主题