收藏 分销(赏)

基于VHDL毕业设计.doc

上传人:w****g 文档编号:3359648 上传时间:2024-07-03 格式:DOC 页数:43 大小:701.04KB 下载积分:12 金币
下载 相关 举报
基于VHDL毕业设计.doc_第1页
第1页 / 共43页
基于VHDL毕业设计.doc_第2页
第2页 / 共43页


点击查看更多>>
资源描述
本科毕业设计 基于VHDL的FIR滤波器设计 学院名称 工程学院 专业名称 电子信息工程 论文提交日期 2023年5月 14 日 论文答辩日期 2023年5月 19 日 摘 要 常用的实时数字信号解决的器件有可编程的数字信号解决(DSP)芯片(如AD系列、TI系列)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。 有限长冲击响应(FIR)滤波器,由于FIR系统只有零点、系统稳定,便于实现FFT(快速傅里叶变换)算法、运算速度快、线性相位的特性和设计更为灵活等突出优点而在工程实际中获得广泛应用,属于数字信号解决的基本模块之一。本论文对基于FPGA的FIR数字滤波器实现进行了研究,所做的重要工作如下: 1.介绍了FIR数字滤波器的基本理论和FPGA的基本概况,以及FPGA设计流程、设计指导原则和常用的设计指导思想与技巧。 2.以FIR数字滤波器的基本理论为依据,使用分布式算法为滤波器的硬件实现算法,并对其进行了具体的讨论。 3.设计出一个16阶低通线性相位FIR滤波器实例。设计使用VHDL语言通过Quartus II软件进行仿真。 关键词: FIR滤波器 FPGA Quartus II Matlab VHDL The Design of FIR Filter base on VHDL (College of Engineering, South China Agricultural University,Guangzhou 510642, China) Abstract: Common real-time digital signal processing devices have programmable digital signal processing (DSP) chip (such as AD series, TI series), application-specific integrated circuit (ASIC), field programmable gates array (FPGA), etc. Limited long shock response (FIR filter, because FIR system only zero, the system is stable, easy to realize FFT (fast Fourier transform) algorithm, quick speed, linear phase characteristic and design more flexible such prominent advantages and in engineering practice being widely applied digital signal processing, belong to one of the basic modules. This paper based on FPGA realizing the FIR digital filters is studied, the main work done as follows: 1. Introduced the basic theory of FIR digital filters with FPGA, and the basic situation of FPGA design process, the design guiding principle and common design guiding ideology and skill. 2. With the basic theory of FIR digital filters, by using distributed algorithm based on the hardware implementation algorithm for filter, and its are discussed in detail. 3. Design a 17 order low-pass linear phase FIR filter examples. Design uses VHDL language through simulation Quartus II software, and the simulation results and Matlab simulation results are compared and analyzed. Key words:FIR filter FPGA Quartus II Distributed Arithmetic Matlab VHDL 目 录 1 前言 1 1.1 课题背景及意义 1 1.2 课题重要研究内容 2 1.3 FPGA介绍 2 1.4 工作平台介绍 3 1.4.1 MATLAB 3 1.4.2 Quartus II 3 2 FIR滤波器原理 4 2.1 FIR滤波器概念 4 2.2 FIR滤波器特点 4 2.3 FIR滤波器工作原理 4 3 方案分析及计算 6 3.1 FIR滤波器方案设计 6 3.1.1 分布式 7 3.1.2 直接型 7 3.2 FIR滤波器结构 7 3.3 基于Matlab的FIR滤波器系数计算 8 4 基于VHDL的FIR滤波器的设计及仿真实现 12 4.1 寄存器模块 12 4.2 加法器模块 13 4.3 减法器模块 15 4.4 乘法器模块 18 5 仿真 19 6 结论 20 参 考 文 献 22 附    录 23 附录A FIR原理图 23 附录B 代码 24 致 谢 31 本科生毕业设计成绩评估表 1 前言 1.1 课题背景及意义 数字滤波器一词出现在60年代中期。由于电子计算机技术和大规模集成电路的发展,数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现。数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置。数字滤波器的功能是对输入离散信号的数字代码进行运算解决,以达成改变信号频谱的目的。数字滤波器是一个离散系统,该系统能对输入的离散信号进行解决,从而获取所需的有用信息。 在数字信号解决中,FIR数字滤波器是最常用的单元之一。它用于将输入信号x[n]的频率特性进行特定的修改,转换成此外的输出序列y[n]。 与IIR滤波器相比较,在设计和实现上FIR滤波器具有如下优越性: 1)相位响应可为严格的线性,因此它不存在延迟失真,只有固定的时间延迟。 2)、由于不存在稳定性问题,所以设计相对简朴。 3)、只包含实数算法,不涉及复数算法,不需要递推运算。 此外,也应看到,IIR滤波器虽然设计简朴,但重要是用于设计具有分段常数特性的滤波器,如低通、高通、带通和带阻等,往往脱离不了模拟滤波器的格局。而FIR滤波器则要灵活的多,特别是他易于适应某些特殊应用,如构成数字微分器或希尔伯特变换器等,因而有更大的适应性和广阔的应用领域。 传统的FIR数字滤波器多采用诸如TMS320CXX系列的专用DSP芯片,根据输入采样的移位相乘累加编写软件,运用软硬件的互相结合完毕滤波器的设计。但DSP芯片是基于哈佛体系结构的,它的顺序解决方式限制了数据的解决速度和吞吐量。 而FPGA有着规整的内部逻辑块整列和丰富的连线资源,特别适合用于细粒度和高并行度结构的FIR滤波器的实现,相对于串行运算主导的通用DSP芯片来说,并行性和可扩展性都更好。由于在性能、成本、灵活性和功耗等方面的优势,基于FPGA的数字信号解决器已广泛应用于图像、视频和无线通信领域。 采用分布式算法的FPGA 滤波器,其突出的优点是:运算速度不再和滤波器的阶数正相关,而是与采样数据的宽度相关,特别适合于高阶高速FIR滤波器的设计,在提高系统运营速度和节省硬件资源方面具有很大的优势。并且,通过改变阶数和查找表中的系数,还可以将此设计灵活地运用于实现高通、低通和带阻滤波器,可移植性较好。因此,这种方法在高速数字信号解决中将有很好的应用前景。 1.2 课题重要研究内容 本课题的通过对FIR滤波器的实现结构比较,选取合适的FIR滤波器设计方案,用MATLAB进行滤波器的系数计算并基于VHDL语言设计实现滤波器功能,通过Quartus II对其仿真。 1.3 FPGA介绍 目前以硬件描述语言(Verilog 或 VHDL)所完毕的电路设计,可以通过简朴的综合与布局,快速的烧录至FPGA上进行测试,是现代IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。 系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就仿佛一个电路实验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完毕所需要的逻辑功能。 FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完毕复杂的设计,并且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也也许会提供便宜的但是编辑能力差的FPGA。由于这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完毕的,然后将设计转移到一个类似于ASIC的芯片上。此外一种方法是用CPLD(复杂可编程逻辑器件)。 早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA涉及了一些相对大数量的可编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。 CPLD和FPGA的重要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺少编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。 CPLD和FPGA此外一个区别是大多数的FPGA具有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运营。 FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部涉及可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。(吴继华,王诚,2023;潘松,黄继业,2023) 1.4 工作平台介绍 1.4.1 MATLAB MATLAB是由美国mathworks公司发布的重要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大限度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。  1.4.2 Quartus II Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完毕从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完毕设计流程外,提供了完善的用户图形界面设计方式。具有运营速度快,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充足运用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其杰出的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 和谐的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。(潘松,黄继业,2023) 2 FIR滤波器原理 2.1 FIR滤波器概念 FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号解决系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像解决、模式辨认等领域都有着广泛的应用。 2.2 FIR滤波器特点 有限冲激响应(FIR)数字滤波器和无限冲激响应(IIR)数字滤波器广泛应用于数字信号解决系统中。IIR数字滤波器方便简朴,但它相位的非线性,规定采用全通网络进行相位校正,且稳定性难以保障。FIR滤波器具有很好的线性相位特性,使得它越来越受到广泛的重视。 有限冲击响应(FIR)滤波器的特点: (1)既具有严格的线性相位,又具有任意的幅度; (2)FIR滤波器的单位抽样响应是有限长的,因而滤波器性能稳定; (3)只要通过一定的延时,任何非因果有限长序列都能变成因果的有限长序列,因而能用因果系统来实现; (4)FIR滤波器由于单位冲击响应是有限长的,因而可用快速傅里叶变换(FFT)算法来实现过滤信号,可大大提高运算效率。 (5)FIR也有助于对数字信号的解决,便于编程,用于计算的时延也小,这对实时的信号解决很重要。 (6)FIR滤波器比较大的缺陷就是阶次相对于IIR滤波器来说要大很多。 2.3 FIR滤波器工作原理 有限长脉冲响应(FIR)滤波器的系统函数只有零点,除原点外,没有极点,因而FIR滤波器总是稳定的。假如他的单位脉冲响应是非因果的,总可以方便的通过适当的移位得到因果的单位脉冲响应,所以FIR滤波器不存在稳定性和是否可实现的问题。它的另一个突出的优点是在满足一定的对称条件时,可以实现严格的线性相位。由于线性相位滤波器不会改变输入信号的形状,而只是在时域上使信号延时,因此线性相位特性在工程实际中具有非常重要的意义,如在数据通信、图像解决等应用领域,往往规定信号在传输和解决过程中不能有明显的相位失真,因而线性相位FIR滤波器得到了广泛的应用。 长度为M的因果有限冲激响应滤波器由传输函数H(z)描述: (1) 它是次数为M-1的z-1的一个多项式。在时域中上述有限冲激响应输入输出关系为: (2) 其中y(n)和x(n)分别是输出和输入序列。 有限冲激响应滤波器的一种直接型实现,可由式(2)生成,M=5的情况如图1所示。其转置,如图2所示,是第二个直接型结构。通常一个长度为M的有限冲激响应滤波器由M个系数描述,并且需要M个乘法器和(M-1)个双输入加法器来实现。 图1 直接型有限冲激响应滤波器结构 图2 图1结构转置后的直接型有限冲激响应滤波器结构 长度为M的线性相位有限冲激响应滤波器由对称的冲激响应h(n)=h(M-1-n)或反对称的冲激响应h(n)=-h(M-1-n)描述。运用线性相位有限冲激响应滤波器的对称(或反对称)性质,可以将传输函数的直接型实现所需的乘法器总量减少一半。例如,图3显示了一个具有对称冲击响应的、长度为7的有限冲激响应传输函数的实现。 图3 线性相位有限冲激响应结构 3 方案分析及计算 3.1 FIR滤波器方案设计 随着数字技术日益广泛的应用,以现场可编程门阵列(FPGA)为代表的ASIC器件得到了迅速普及和发展,器件集成度和速度都在高速增长。FPGA既具有门阵列的高逻辑密度和高可靠性,又具有可编码逻辑器件的用户可编程特性,可以减少系统设计和维护的风险,减少产品成本,缩短设计周期。 3.1.1 分布式 分布式算法是一种以实现乘加运算为目的的运算方法。它与传统算法实现乘加运算的不同在于执行部分积运算的先后顺序不同。简朴地说,分布式算法在完毕乘加功能时是通过将各输入数据每一相应位产生的部分积预先进相加形成相应部分积,然后在对各部门积进行累加形成最终结果,而传统算法是等到所有乘积产生之后再进行相加来完毕乘加运算的。与传统算法相比,分布式算法可极大地减少硬件电路规模,很容易实现流水线解决,提高电路的执行速度。 3.1.2 直接型 有限冲激响应滤波器的一种直接型实现,如图4所示。通常一个长度为M的有限冲激响应滤波器由M个系数描述,并且需要M个乘法器和(M-1)个双输入加法器来实现。 图4 最后结合自己自身的情况和方案的设计难易限度综合考虑,决定选择直接型结构完毕本次的毕业设计。 3.2 FIR滤波器结构 FIR滤波器的结构重要是非递归结构,没有输出到输入的反馈。并且FIR滤波器很容易获得严格的线性相位特性,避免被解决信号产生相位失真。而线性相位体现在时域中仅仅是h(n)在时间上的延迟,这个特点在图像信号解决、数据传输等波形传递系统中是非常重要的。此外,他不会发生阻塞现象,能避免强信号淹没弱信号,因此特别适合信号强弱相差悬殊的情况。 3.3 基于Matlab的FIR滤波器系数计算 在matlab命令编辑窗口输入Fdatool指令,敲击回车可以打开Filter Design & Analysis Tool窗口(如图5所示),在该工具的帮助下,我们可以完毕f.i.r.滤波器系数的计算工作。 图5 Filter Design & Analysis Tool窗口 Fdatool界面总共分两大部分,一部分是design filter,在界面的下半部分,用来设立滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。design filter部分重要分为: Response Type(响应类型)选项,涉及Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的滤波器。本次设计在该选项中选择Lowpass选项。 Design Method(设计方法)选项,涉及IIR滤波器的Butterworth(巴特沃思)法、Chebyshev Type i(切比雪夫i型)法、 Chebyshev Type ii(切比雪夫ii型) 法、Elliptic(椭圆滤波器)法等和FIR滤波器的Equiripple法、Least-squares(最小乘方)法、Window(窗函数)法等多种方法。结合本次设计规定,选择FIR滤波器的窗函数法进行设计。选定窗函数法后,会在右侧出现Options区域,进行窗函数法相关参量的设立,根据设计规定选择Kaiser窗并设立Beta为:0.5。 Filter Order(滤波器阶数)选项,定义滤波器的阶数,涉及Specify order(指定阶数)和Minimum order(最小阶数)。在Specify order中填入所要设计的滤波器的阶数(n阶滤波器,specify order=n-1),假如选择Minimum order则matlab根据所选择的滤波器类型自动使用最小阶数。本次设计为16阶滤波器,所以选定Specify order并填入15。 Frenquency Specifications选项,可以具体定义频带的各参数,涉及采样频率Fs和频带的截止频率。它的具体选项由Response Type选项和Design Metho选项决定。我们规定的 Lowpass(低通)滤波器只需要定义Fs、Fc。采用窗函数设计滤波器时由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必然义阻带参数。 Magnitude Specifications选项,可以定义幅值衰减的情况。采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必然义。本设计中的参数设定结果如图6所示。 图6 滤波器参数设定结果 参数设定完毕,单击工具窗口下方的Design Filter按钮,开始进行相关参数计算。在计算结果中我们可以看到该滤波器的一些相关曲线,如幅频响应(如图7)、相频响应(如图8)、冲激响应(如图9)等以及具体的系数值(如图11)。 图7 幅频响应 图8 相频响应 图9 冲激响应 图10 所设计滤波器冲激系数 计算的结果可通过File下拉菜单中的Export命令取出,点击Export打开Export对话框(如图11),点击OK按钮可将滤波器系数数据存放到当前工作空间,并以Num命名。 图11 冲激系数输出对话框 保存并关闭滤波器设计分析工具回到matlab主窗口,在命令编辑区输入Num可得到工具的计算结果(如图12)。 图12 输出在matlab的冲激系数 对FIR滤波器的系数进行调整,做整数化操作(如图13)。可得到滤波器整数化的系数为[-31 -88 -106 -54 70 239 401 499 499 401 239 70 -54 -106 -88 -31] 图13 整数化后的冲激系数 4 基于VHDL的FIR滤波器的设计及仿真实现 4.1 寄存器模块 寄存器用于寄存一组二值代码,只规定它们具有置1、置0的功能即可。在本设计中用D触发器组成寄存器,实现寄存功能。本设计中使用带异步复位rst端的D触发器,当rst=1时,输出信号q=0,当rst=0且上升沿脉冲到达时q=d。 程序如下: LIBRARY ieee; USE ieee.std_logic_1164.all; LIBRARY ieee; USE ieee.std_logic_1164.all; ARCHITECTURE dff16 OF dff16 IS BEGIN PROCESS (rst,clk) BEGIN IF(rst='1')THEN q<=(OTHERS=>'0'); ELSIF(clk'EVENT AND clk='1')THEN q<=d; END IF; END PROCESS; END dff16; 仿真结果如图14所示: 图14 寄存器仿真结果 4.2 加法器模块 实现两个有符号数的相加运算。即将输入的两数,在时钟脉冲到来时相加运算,输出结果。 在本设计中共有8个两个10位有符号数相加产生一个11位有符号数的加法器、一个18位和19位有符号数相加产生20位有符号数的加法器、一个两个20位有符号数相加产生一个21位有符号数的加法器、一个两个19位有符号数相加产生一个20位有符号位数的加法器、一个20位和21位有符号数相加产生22位有符号数的加法器,以及一个20位和22位有符号数相加产生23位有符号数的加法器电路。 其中一个20位和22位有符号数相加产生23位有符号数的加法器电路为最后一级,所以在加法器电路中在引入低位舍去功能只保存最终10位输出,最终保存10位输出采用了直接取输出23位数的高十位的方法,因此在输出中近似等于除掉了2^13即8192以后的结果。 10位有符号数相加产生一个11位有符号数的加法器设计: LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY sum101011 IS PORT(a,b: IN SIGNED(9 DOWNTO 0); clk: IN STD_LOGIC; s:OUT SIGNED(10 DOWNTO 0)); END SUM101011; ARCHITECTURE sum101011 OF sum101011 IS BEGIN PROCESS(clk) BEGIN IF(clk'EVENT AND clk='1')THEN s<=(a(9)&a)+(b(9)&b); END IF; END PROCESS; END sum101011; 仿真结果如图15所示: 图15 两10位相加产生11位加法器仿真结果 18位和19位有符号数相加产生20位有符号数的加法器设计: LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY sum7023918 IS PORT(a: IN SIGNED(17 DOWNTO 0); b: IN SIGNED(18 DOWNTO 0); clk: IN STD_LOGIC; s:OUT SIGNED(19 DOWNTO 0)); END sum7023918; ARCHITECTURE sum7023918 OF sum7023918 IS BEGIN PROCESS(clk) BEGIN IF(clk'EVENT AND clk='1')THEN s<=(a(17)&a(17)&a)+(b(18)&b); END IF; END PROCESS; END sum7023918; 仿真结果如图16所示: 图16 18位19位相加产生20位数仿真结果 4.3 减法器模块 实现零值减去两个有符号数的减法运算。即用零值减去输入的两数,在时钟脉冲到来时做减法运算,输出结果。 -31和-88的乘结果都只包含了乘系数31和88的数值,并没有将两个负号代入,所以两乘法器后面的加法器运算改为减法器模块,采用0-31*累加结果-88*累加结果的方法,实现(-31)*累加结果+(-88)*累加结果的计算。-106和-54后面的加法器采用同样的方式解决。 -31和-88的减法器设计: LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY sub318817 is PORT(clk : in STD_LOGIC; Din1 :in signed (15 downto 0); Din2 :in signed (17 downto 0); Dout :out signed(18 downto 0)); END sub318817; ARCHITECTURE sub318817 of sub318817 IS SIGNAL s1: signed(17 downto 0):=(Din1(15)&Din1(15)&Din1); SIGNAL s2: signed(18 downto 0):=(OTHERS=>'0'); BEGIN PROCESS(Din1,Din2,clk) BEGIN IF clk'event and clk='1' THEN Dout<=s2-Din2-s1; END IF; END PROCESS; END sub318817; 仿真结果如图17所示: 图17 -31和-88减法器的仿真结果 -106和-54的减法器的设计: LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY sub1065417 is PORT(clk : in STD_LOGIC; Din1 :in signed (17 downto 0); Din2 :in signed (16 downto 0); Dout :out signed(18 downto 0)); END sub1065417; ARCHITECTURE sub1065417 of sub1065417 IS SIGNAL s1: signed(17 downto 0):=(Din2(16)&Din2); SIGNAL s2: signed(18 downto 0):=(OTHERS=>'0'); BEGIN PROCESS(Din1,Din2,clk) BEGIN IF clk'event and clk='1' THEN Dout<=s2-Din1-s1; END IF; END PROCESS; END sub1065417; 仿真结果如图18所示: 图18 -106和-54减法器的仿真结果 4.4 乘法器模块 从资源和速度考虑,常系数乘法运算可用移位相加来实现。将常系数分解成几个2的幂的和形式。滤波器系数分别为-31、-88、-106、-54、70、239、401、499、499、401、239、70、-54、-106、-88、-31。算法:其中带负号数先乘去负号的整数部分,在后面的求和中做减法运算。编码方式如下:31被编码为2^5-2^0、88被编码为2^6+2^4+2^3、106被编码为2^6+2^5+2^3+2^1、54被编码为2^6-2^3-2^1、70被编码为2^6+2^2+2^1、239被编码为2^8-2^4-2^0、401被编码为2^9-2^7+2^4+2^0、499被编码为2^9-2^3-2^2-2^0。 实现输入带符号数据与固定数据两个二进制数的乘法运算。当到达时钟上升沿时,将两数输入,运算并输出结果。 乘31电路设计: LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_arith.all; ENTITY mult31 IS PORT( clk : IN STD_LOGIC; Din : IN SIGNED (10 DOWNTO 0); Dout : OUT SIGNED (15 DOWNTO 0)); END mult31; ARCHITECTURE mult31 OF mult31 IS SIGNAL s1 : SIGNED (15 DOWNTO 0); SIGNAL s2 : SIGNED (10 DOWNTO 0); SIGNAL s3 : SIGNED (15 DOWNTO 0); BEGIN A1:PROCESS(Din,s1,s2,s3) BEGIN s1<=Din&"00000"; s2<=Din; IF (Din(10)='0') THEN s3<=('0'&s1(14 downto 0))-("00000"&s2(10 DOWNTO 0)); ELSE s3<=('1'&s1(14 downto 0))-("11111"&s2(10 DOWNTO 0)); END IF; END PROCESS; A2: PROCESS(clk,s3) BEGIN IF clk'EVENT AND clk='1' THEN Dout<=s3; END IF; END PROCESS; END mult31; 仿真结果如图19所示: 图19 乘31仿真结果 5 仿真 仿真结果如图20所示: 我们任意设定输入信号为: Din=[99,0,0,0,70,0,0,0,99,0,0,0,70,0,0,0,99,0,0,0,70,0,0,0,99,0,0,0,70,0,0,0] 图20 滤波器仿真结果 6 结论 表1仿真结果验证 输出结果y[n] 理论值 仿真结果 MATLAB卷积值/512 经仿真器仿真 -2.3203 -3 -3.4805 -4 2.5137 2 5.6074 5 -4.1543 -5 -12.516 -13 4.4844 4 35.289 35 42.695 41 20.734 20 7.1348 7 17.701 17 26.418 26 15.24 15 8.9121 8 24.699 24 y[0] 38.598 37 y[1] 24.699 24 y[2] 8.9121 8 y[3] 15.24 15 y[4] 24.777 24 y[5] 15.24 15 y[6] 8.9121 8 y[7] 24.699 24 y[8] 38.598 37 y[9] 24.699 24 y[10] 8.9121 8 y[11] 15.24 15 y[12] 24.777 24 y[13] 15.24 15 y[14] 8.9121 8 y[15] 24.699 24 y[16] 38.598 37 y[17] 24.699 24 由上面仿真波形可以读出结果,经比较,仿真结果与输出信号理论值基本吻合。且波形基本没有毛刺,作品基本达成设计规定。 参 考 文
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服