1、本 科 毕 业 设 计基于 Verilog 的 FIR 成型滤波器的设计与仿真所在学院 专业班级 电子与信息工程 学生姓名 学号 指导教师 职称 完成日期 年 月 I摘 要当今电子科学技术的发展进度可谓是与时俱进,为了跟上步伐,电子产品更新换代的速度也是相当快。因而电子设计也由传统的手工设计过程向先进的自动化设计发展(即从CAD 到 EDA 及 ESDA: Electronic System Design Automation) 。熟悉并掌握现代设计的工具,就成为电子信息设计人员的基础。数字滤波作为数字信号处理技术的重要组成部分,广泛应用于诸如信号分离、恢复、整形等多种场合中。本文主要讨论的
2、FIR 滤波器因其具有严格的线性相位特性而得到广泛的应用。本设计用硬件语言 Verilog HDL 来实现 FIR 数字滤波器功能。首先介绍 Verilog HDL 语言的发展和由来、基本结构、规定、优点。接着简单介绍硬件语言的应用平台 Quartus软件,FIR滤波器的基本理论,然后通过软硬件结合的方法阐述了滤波器结构化的设计思想和大体的设计流程,最后进入本设计的核心设计部分。首先通过 MATLAB 设计出一个具体指标的 F IR 滤波器,并对滤波器系数进行了处理,使之便于在 FPGA 中实现。用 Verilog HDL 语言设计 FIR 滤波器电路,着重对有限长单位冲激响应(FIR)滤波器
3、设计过程进行了详尽的介绍,依次介绍了寄存器模块、加法器模块、减法器模块和乘法器模块,并且在应用平台Quartus软件中进行仿真,从而得到各模块的仿真图。最终,对各个模块进行调用并加以组合实现滤波器的功能。关键词:Verilog HDL;有限长单位冲激响应(FIR)数字滤波器;Quartus软件IIAbstractNow, you can say that the electronic technology is developing with a very high speed. And the electronic products renewal speed it may be said
4、changes with each new day, so electronic design has been changing from the traditional manual design to the advanced automated design (from CAD to EDA and ESDA: Electronic System Design Automation). Thus is familiar with and grasps these modern design tools, has become the electronic information to
5、design a personnel necessary technology. The digital filters is an important part of digital signal processing and used widely in variety of application such as a signal separation, restoration or shaping. FIR filter discussed in this paper is widely used because of its strict phase distortion sharp
6、 cut-off characteristic. This design emphasis point is realizes the FIR digital filter function with hardware language Verilog HDL. The article first introduced the Verilog HDL languages development and their origin, their basic structures, the stipulation and the merit .And then that simple was int
7、roduce hardware description language application platform Quartus software and the basic theory of the FIR filter. Then the method which unifies through the software and hardware elaborated the filter structure design thought and the roughly design flow. First, a specific F IR filter is designed usi
8、ngMATLAB. In order to realize the filter with FPGA device successfully, its coefficients are well handled. After carries on the simple explanation to the programmable logical component . In turn introduces registers module, adder module, minus skulls module and on time-multiplier module, and in appl
9、ication platform Quartus software simulation, thus all the module simulation diagram. Finally, an arrangement for each module of the filter and to integrate realize function. First, a specific F IR filterKeyword:Verilog HDL language;FIR (Finite Impulse Response) Digital Filter Design;Quartus softwar
10、eIII目 录第 1 章 绪论 .1第 2 章 FIR 数字滤波器介绍 .22.1 FIR 滤波器的原理 .22.2 FIR 滤波器的优点 .22.3 FIR 滤波器的结构 .2第 3 章 17 阶数字滤波器 FIR 设计方案 .43.1 本设计使用的硬件描述语言 .43.1.1 Verilog HDL 设计模块的基本结构 .43.1.2 Verilog 语言要素 .53.1.3 Verilog HDL 的语句 .53.2 FIR 数字滤波器设计工具 Quartus9.0 操作指南 .93.2.1 Quartus软件简介 .93.2.2 Quartus基本设计流程 .103.3 FIR 数字滤
11、波器设计原理 .143.4 设计原理图 .15第 4 章 17 阶数字滤波器总体设计过程 .164.1 基于 matlab 的滤波器参数设置 .164.2 模块电路设计 .184.2.1 寄存器模块 .184.2.2 加法器模块 .204.2.3 减法器模块 .214.2.4 乘法器模块 .22第 5 章 FIR 滤波器仿真及分析 .255.1 仿真结果 .255.2 分析与结论 .255.3 防溢出优化方案 .26结论 .27致谢 .27参考文献 .28IV附录 .291第 1 章 绪论 数字滤波在图像处理、语音识别和模式识别等数字信号处理中占有重要地位。 。数字滤波是数字信号处理的一种重要
12、算法,广泛用于对信号的过滤、检测和参数估计等信号处理中。与模拟滤波器相比,数字滤波器完全符合滤波器相位特性和幅度特性的严格要求,可以解决电压漂移、温度漂移和噪声等问题,模拟滤波器对于这些方面是无法避免的。由此,数字滤波器更加被人们所应用,在工业、农业及其他行业均有应用,它是通过对采样数据信号进行数学运算处理来达到频域滤波的目的。数字滤波器按照单位脉冲响应的长度可以分为有限脉冲响应滤波器(FIR)和无限脉冲响应滤波器(IIR)两大类。有限脉冲响应(FIR)滤波器可以保证严格的线性相位。 FIR 滤波器是用于数字信号处理系统的所有种类,通过卷积,自适应滤波和正交插值方法在非实时系统和低速采样系统,
13、可在软件使用CPU 或 DSP 处理器。但对于无线通信,雷达,工业控制,甚至实时语音信号处理应用,在计算过程中的 FIR 滤波器操作过大,DSP 软件的使用可能无法实现,因此,可编程器件的使用是最好的方法。 目前 FIR 滤波器基本有以下几种实现方法:(1)使用单片通用数字滤波器集成电路。单片通用数字滤波器使用起来既方便又容易,但由于自身存在的一些不足(字长和阶数不够全面) ,有时候就不能满足设计的需要。 (2)采用 DSP 器件实现。可以通过专门的函数进行编译、仿真从而实现 FIR 滤波器。所以运用 DSP 器件实现 FIR 滤波器相比较容易,其广泛应用于各领域。其最大遗憾就是程序一定要顺序
14、执行,虽然 DSP 器件性能一直都在提升,但在有些实时性要求极高的场合中也不能完全适用。(3)采用可编程逻辑器件实现。技术一直在更新,随之可编程逻辑器件的性能(容量和速度)也不断提高,实现单片系统集成已经成为现实。利用可编程逻辑器件实现 FIR 滤波器,由于实现的是硬件并行算法,因此特别适用于某些实时性要求高的场合。传统的直接方法实现 N 阶 FIR 滤波器时需要 N 次乘累加操作,由于逻辑的复杂性需要占用较多的 FPGA 资源。随着技术的发展需要,传统的方法已经不能够满足实时要求,Croisie 等人提出的 DA,是一种利用查找表 (Look UpTable,LUT)代替乘法器的算法,特别适
15、合于以 LUT 为基本单元的 FPGA 结构,从而提高了滤波器的性能和速度。本文采用 MATLAB 辅助设计工具 ,在高速可编程器件( FPGA)上实现 F IR 滤波器的设计。2第 2 章 FIR 数字滤波器介绍数字滤波器可分为 FIR(有限脉冲响应)和 IIR(无限脉冲响应)两种。IIR 滤波器的系数函数是 2 个 z 的多项式的有理分式,而 FIR 滤波器的分母位 1,即只有一个分子多项式。2.1 FIR 滤波器的原理所谓的滤波就是对输入信号通过一定的处理得到输出信号,这个处理通常是提取信号中某频率范围内的信号成分,把这种处理的过程称为滤波。而能实现滤波处理的运算电路或仪器设备统称为滤波
16、器。数字滤波器就是完成信号滤波处理功能的一种装置,是由数字乘法器、加法器和延时单元组成的一种算法或装置,是一种离散时间线性非时变系统,是通过有限精度算法实现的,其输入是一组数字,经过转变后,输出另外一组数字。数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的。2.2 FIR 滤波器的优点数字滤波器具有精度高、灵活性大、稳定性高等突出优点。随着数字技术的发展,滤波技术日益成熟,用数字技术设计滤波器的功能越来越受到人们的注意和广泛的应用。FIR 滤波器的优点有:(1)FIR 滤波器由于单位冲击响应是有限长的,因而可用快速傅立叶变换(FFT)算法来实现过滤信号,可大大提
17、高运算效率。(2)FIR 滤波器的单位抽样响应是有限长的,因此滤波器性能稳定;(3)只要经过一定的延迟时,任何非因果有限长序列,都可以用因果系统来实现;(4)即具有严格的线性相位,又具有任意的幅度;2.3 FIR 滤波器的结构FIR 数字滤波器是一种非递归系统,其冲激响应 h(n)是有限序列,其系统函数的一般形式为:(2-1)10()()NkkHzhz式中,h(k)是因果序列; 是 的 N-1 次多项式,仅在 z=0 处有 N-1 阶极点,在其1他地方没有极点,有 N-1 个零点处在有限 z 平面内的任何位置上。FIR 数字滤波器的输入序列和输出序列的关系可用下式表示:(2-2)10()()(
18、Nkynxhk3式中, 、 分别表示输出序列和输入序列; 是滤波器的冲击响应;N 是冲激()ynx ()hn响应的长度。也可以用卷积的形式来表示序列 和 , 的关系:yx * 。()yx()h其输出序列 y(n)满足下式:(2-3)0()()NkkHzhz典型的直接型 FIR 数字滤波器如图 2.1 所示,图 2.1 直接型 FIR 数字滤波器其基本结构是一条以均匀间隔分节的延时线,对每一节的输出进行加权累加求和,从而得到滤波器的输出。输入序列 表示输入样本的第几个点,输出序列 表示滤波()xn()yn后的输出样本的第几个点,输入序列 由输入序列 的各次延时乘以相应的系数,y()xn然后相加而
19、获得。该结构包含了 N 次乘法和(N-1 )次加法。4第 3 章 17 阶数字滤波器 FIR 设计方案3.1 本设计使用的硬件描述语言随着半导体技术的发展,数字电路已经由中小规模的集成电路向可编程逻辑器件(PLD)及专用集成电路(ASIC)转变。数字电路的设计手段也发生了变化,由传统的手工方式逐渐转变为以 EDA 工具作为设计平台的工作方式。硬件描述语言就是设计人员和EDA 工具之间的一种界面。利用硬件描述语言并借助 EDA 工具,可以完成从系统、算法、协议的抽象层次对电路进行建模、仿真、性能分析直到 IC 版图或 PCB 版图生成的全部设计工作。硬件描述语言发展至今已有近 30 年的历史,已
20、经成功地应用于电子电路设计的各个阶段:建模、仿真、验证和综合等。VHDL 和 Verilog HDL 是目前两种最常用的硬件描述语言,这两种语言符合了设计的多领域、多层次的要求。 VHDL 发展的较早,语法严格,而Verilog HDL 是在 C 语言的基础上发展起来的一种硬件描述语言,语法较自由。 Verilog HDL 是 目 前 应 用 最 为 广 泛 的 硬 件 描 述 语 言 。 Verilog HDL 进 行 设 计 最 大的 优 点 是 其 工 艺 无 关 性 这 使 得 工 程 师 在 功 能 设 计 , 逻 辑 验 证 阶 段 可 以 不 必 过 多 考 虑 门级 及 工 艺
21、 实 现 的 具 体 细 节 , 只 需 根 据 系 统 设 计 的 要 求 施 加 不 同 的 约 束 条 件 , 即 可 设 计 出实 际 电 路 。Verilog HDL 语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用 Verilog 仿真器进行验证。语言从 C 编程语言中继承了多种操作符和结构。Verilog HDL 提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog HDL 语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。3.1.1 Verilog HDL 设计模块的基本结构一个复杂电路系统的
22、完整 Verilog HDL 模型是由若干个 Verilog HDL 模块构成的,每一个模块又可以由若干个子模块构成。Verilog 使用大约 100 个约定义的关键词定义该语言的结构。1. 模块声明:模块声明包括模块名字,模块的输入,输出端口类表。模块的定义格式如下:Module(port_name1port,namen);.Endmodule;其中 module_name 为模块名,是该模块的唯一标识。Port_name 为端口名,这些端口名使用“, ”分隔。2模块端口定义端口是模块与外部其他模块进行信号传递的通道(信号线) ,模块端口分为输入、输出或双向端口。端口的定义有以下几种格式。5
23、(1)input,;其中 input 为关键字,用于声明后面的端口为输入端口; input_port_name 为输入端口名字;other_inputs 为用逗号分隔的其他输入端口的名字。(2)onput,;其中 onput 为关键字,用于声明后面的端口为输出端口;onput_port_name 为输入端口名字;other onputs 为用逗号分隔的其他输出端口的名字。(3)inout,;其中 inout 为关键字,用于声明后面的端口为输入输出类型的端口; other_inouts 为输入输出端口的名字;other_inouts 为用逗号分隔的其他输出端口的名字。3.1.2 Verilog
24、语言要素1.注释在 Verilog HDL 中有两种形式的注释。一种是单行注释,起始于“/ ”,结束于新的一行的开始。另一种是多行注释,或者叫做块注释,以符号“/*”作为开始标志,以“/* ”作为结束标志。块注释不能嵌套。单行注释符号“/”在块注释语句内并无特殊含义。2.间隔符间隔符包括空格字符(|b) 、制表符( |t) 、换行符(|n)以及换页符,这些字符除了起到于其他词法标识符相隔的作用外,可以被忽略,但是在字符串中空白和制表符会被认为是有意义的字符。间隔符除起到分隔的作用外,在必要的地方插入相应的空格或换行符,可以使程序文本易于用户阅读和修改。3.标识符Verilog HDL 中标识符
25、可以是任意一组数字、字母、$符号和_(下划线)符号的组合,是赋予一个对象唯一的名字。标识符飞第一个字符必须是字母或者是下划线。另外,标识符是区分大小写的。标识符分为简单标识符,转义标识符,和生成标识符。4.关键字Verilog HDL 语言内部所使用的词称为关键词或保留字,这些保留字不能随便使用。所有的关键字都使用小写字母。3.1.3 Verilog HDL 的语句语句是构成 Verilog HDL 程序不可缺少的部分。Verilog HDL 的语句包括赋值语句、条件语句、循环语句、结构声明语句和编译预处理语句等类型,每类语句又包括几种不同的语句,在这些语句中,有些语句属于顺序执行语句,有些语
26、句属于并执行语句。1. 赋值语句在 Verilog HDL 中,赋值语句常用于描述硬件设计电路输出与出入之间的信息传送,改变输出结果。Verilog HDL 有门基元、连续赋值、过程赋值和非阻塞赋值 4 中赋值方法,不同的赋值语句十输出产生新值的方法不同。1)门基元赋值语句门基元赋值语句的格式为:基本逻辑门关键词 (门输出,门输入 1,们输入, 。 。 。 。 ,门输入 n) ;其中,基本逻辑门关键关键词是 Verilog HDL 预定义的逻辑门,包括and、or 、not、 xor、nand、nor 等;圆括号中的内容是被描述门的输出与输入信号。例如,具有 a、b、c、d 4 个输入和 y 为输出与非门的门基元赋值语句为: