




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、赤峰学院毕业论文(设计)题 目 基于FPGA的IIR数字低通滤波器设计学生姓名 学 号院 系物理与电子信息工程系专 业 电子信息工程指导教师 年六月一日基于FPGA的IIR数字低通滤波器的设计与实现XXX赤峰学院物理与电子信息工程系,赤峰024000摘要:本文介绍了基于 FPGA的IIR数字低通滤波器的设计与实现,首先介绍了IIR数字低通滤波器的原理和分类。接着介绍了IIR数字低通滤波器的设计方法,有用脉冲响应不变法和双线性变换法。又介绍了用VHDL语言在QuartusII软件上生成IIR数字滤波器的各模块(时序控制模块、延时模块、顶层模块、乘 法累加模块),并用各个模块构建一个IIR的二阶节
2、。最后通过实例阐明了基于FPGA的四阶IIR数字低通滤波器的设计,在 QuartusII软件上仿真,并得到仿真图。关键词:FPGA; MATLAB; QuartusII ; IIR数字低通滤波器;设计;实现1引言在当今数字技术发展的时代,数字滤波器被广泛应用于频谱分析,模式识别,语言与图像处理等领域,数字滤波器有着精度高、实时性高、处理速度快等特点。数字滤波器根据单 位脉冲响应的不同,可以分为有限长脉冲响应( FIR )滤波器和无限长脉冲响应(IIR)滤波 器。FIR具有良好的相位特性,而 IIR滤波器具有很好的幅频特性。IIR滤波器所要求的阶数不仅比 FIR滤波器低,而且可以利用模拟滤波器的
3、设计成果,设计工作量相对较小,采用FPGA实现的IIR滤波器同样具有多种优越性。再者按信号通过数字滤波器的特性(主要是 幅频特性)来分类:有低通数字滤波器、高通数字滤波器、带通数字滤波器和带阻数字滤波 器。为了更好的了解数字滤波器,我们用Field Programmable Gate Array (现场可编程门阵列)即FPGA来实现。FPGA以其优越的实时性和设计的灵活性,成了控制系统中重要的一 部分,并直接采用 VHDL编程简化设计步骤。可以在 QuartusII、MAX+plusII等软件上作仿 真。从而使得 FPGA在当今通信、自动控制以及信号处理等方面得到很广泛的应用。在本 文设计中提
4、出了基于现场可编程门阵列器件(FPGA )实现IIR数字低通滤波器。并在QuartusII上做仿真。2 IIR数字滤波器的基本结构及类型2.1直接型IIR数字滤波器的结构IIR数字滤波器传输函数的标准表达式:M bZH1akZ上kJNM其对应的差分方程为:yn) =aky(n-k) akx(n-k)kk 二0x(n)5y(n)图2-1直接I型x(n)o*/w/*、V丄HFSf1场,a_/J-1图2-2直接II型2.2级联型IIR数字滤波器的结构将系统函数H ( Z)因式分解为较低的二阶型的乘积,每个双二阶用一个直接型实现, 整个系统用双二阶的级联实现,每一个二阶型传递函数为:Hk(Z)比三耳弓
5、;k”k1 Ak,才人毎絃y(n)图2-3级联型2.3并联型IIR数字滤波器的结构将系统函数H ( Z)因式分解为双二阶之和,每个双二阶用一个直接型实现,整个系统 函数作为二阶节的并联网络实现2。每一个二阶型传递函数为:Hk(z)=Bk,0 + Bk,1Zk=1,k1宀,才Ak,2Z2.4 IIR数字滤波器的类型IIR滤波器主要有巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器几种。给出了以上三 种滤波器实现同样性能指标所需的阶数和阻带衰减的比较,如表1所示表1三种滤波器性能比较原型阶数阻带衰减/dB巴特沃斯615切比雪夫1型425椭圆函数3273 IIR数字低通滤波器的设计低通滤波器让某一频率以下
6、的信号分量通过,而对该频率以上的信号分量大大抑制的电容、电感与电阻等器件的组合装置。所以低通滤波是一种可以通过低频信号而且衰减和抑制高频信号的方式,所以其频率响应函数H(ej)IH(e)0豹 cc oc由此可以看出低通滤波器的同频带位于2:的整数倍。用FPGA实现滤波器的基本思想就是NM基于 y(n) =、aky(n- k)-二 akx(n-k)来实现的k 二73.1用脉冲响应不变法设计IIR数字低通滤波器设模拟滤波器的系统函数为 Ha(S),相应的单位冲激响应是ha(t),Ha(s)= LTha(t). LT代表拉氏变换,对ha(t)进行等间隔采样,采样间隔为T,得到ha( nT),将 h(
7、n) = ha(nT)作为数字滤波器的单位脉冲响应,那么数字滤波器的系统函数H (z)便是h(n)的Z变换。因此脉冲响应不变法是一种时域逼近法,它使h(n)在采样点上等于ha(t)。但是,模拟滤波器的设计结果是 Ha(s),所以下面基于脉冲响应不变法的思路,退出直接从Ha(s)到H(z)的转换公式。设模拟滤波器Ha(s)只有单阶极点,且分母多项式的阶次高于分子多项式的阶次,将Ha(s)用部分分式表示N AHa(s)i 式 1im s Sj式1中,Si为Ha(S)的单阶极点。将 Ha(S)进行逆拉氏变换,得到Nha(t) = Ae u(t)式2iT式2中,U(t)是单位阶跃函数。对 ha(t)进
8、行等间隔采样,采样间隔为T,得到Nh(n) =ha(nT)二 AesnTu(nt) 式 3对式3进行Z变换,得到数字滤波器的系统函数H (z),即NH(z)八i 二对比式1和式4, Ha(s)的极点s映射到Z平面的极点esT ,系数A不变。如果原ha(t)的频谱不是限于 _2;T之间,则会在奇数 二T附近产生频谱混叠,对应 数字频率在:二附近产生频谱混叠。为了避免这一现象,令 h(n)二Tha(nT)那么NH(z)八i 4TA1 V式5称为实用公式,此时H(ejW) = Ha(jT)|叫 n3.2用双线性变换法设计 IIR数字低通滤波器脉冲不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频
9、响偏离模拟滤波器的频响特向。产生的原因是模拟低通滤波器不是带限于折叠频率/T,在离散化(采样)后产生了频谱混叠,在通过映射关系z二esT,使数字滤波器在=二附近形成频谱混叠。为了使这一缺点消除,我们使用非线性频率压缩方法,将整个模拟频率轴压缩到之间,再用z二esT转换到Z平面上。设Ha(s),s二j,经过非线性频率压缩后用Ha(s),s二j-1表示,这里用正切变换频率压缩:21tan(1T)式 6T2式6 中, T为采样间隔。当1从占汀 经过0变化到;;T时,门则由-二经过0变化到, 实现了 s平面上整个虚轴完全压缩到s平面上虚轴的士兀/T之间的转换。由式 6得2j1T2-ej11T2 2 1
10、-ej1rjT ejg飞处厂?7代入S = j 11 , S = j l】1,得到:2 1 -eTSStT 1 e lT在通过z = e5从Si平面转换z平面上,得到:2 1 -ZS _Ti z12 s z& ST式7和式8成为双线性变换。从 S平面到S平面的非线性频率压缩,使Ha(s)带限于Trad S,因此再用脉冲不变法从$平面转换到z平面不可能产生频谱混叠现象。这就是Si平面双线性变换法的优点,另外,从$平面转换到z平面仍然采用转换关系z = eSlT,的二T之间水平带的左半部分映射到z平面单位圆内部,虚轴映射为单位圆,这样H a (s)因果稳定,转换的 H (z)也是因果稳定的。双线性
11、变换法设计的IIR数字低通滤波器的缺点是和门之间成非线性关系,使得数字滤波器频响曲线不能保真地模仿模拟滤波器的频响曲线形状。4 IIR数字低通滤波器各模块的设计IIR数字滤波器包括以下几个模块:时序控制模块、延时模块、顶层模块、乘法累加模 块。时序控制模块主要产生两个信号,一个是时延信号加到延时模块,实现时延功能;另-个是计算处理信号,加到乘法累加模块,实现先加后乘的功能。延时模块主要作用是对数据 进行时延,使前一个数据赋给后一个数据,然后将数据输入到乘法累加模块。乘法累加模块主要在时钟的作用下实现加法和乘法的功能,最后输出滤波器数据。4.1时序控制模块的设计时序控制模块主要用来产生对其它模块
12、的时序控制信号。首先对系统进行初始化处理, 当RES信号为” ”时,对整个系统进行清零11。当RES信号为“ 0”时,时序控制模块在时钟CLK上升沿的作用下产生两个信号CLK_REG 及CLK_ REGBT。其中,CLK_REG 信号用来作为延时模块、 乘法累加模块的输入时钟, CLK_REGBT每隔6个时钟产生一个高电平 作为这三个模块的复位信号。time: controlclk_regi res clk_regbtelkm arararaRviiiiifBiBi号,豺ij汕尸二书还石師“1instl图4-1时序控制模块图YdU a16.65 I:30 P 40.0 鑒 糾 m ffiD m
13、 IW.O m 腹卩 u HC p u IW .O m 130(D li 20D.C m 师 fl ns 2(D m1.5.65 雅图4-3时序控制模块功能仿真图时序控制模块仿真如图4-2和图4-3所示,在elk的上升延到来时,counter以6个时钟为周期开始进行计数,clk_regbt每隔6个时钟输出一个低电平,clk_reg则每隔6个时钟后输出一个高电平。输出的两个时钟信号正好控制延时模块、乘法累加模块的运行,符合设计要求。程序编写说明:首先在实体中疋义输入信号res,clk,输出信号reg, regbt,在结构体中疋义信号参量 coun ter,clk_e n,e n;然后确定输出信号
14、与输入信号的关系,编写算法clk_regbt=notelk and clk_en and en 禾口 clk_reg *11I .UwwyyywwawYYyiin i图4-4延时模块图图4-5延时模块时序仿真图R MaSteilneBsr IEGSe * 1 Roiter1仙才 JEins StatEnd图4-6延时模块时序功能仿真图延时模块仿真图如上图4-5和图4-6所示,由图可以看出当输入的xn、yout都为0,1,2,3,4,5?时,在时钟信号上升沿的作用下产生延时,经第一个时钟后x0、x1、x2、y0、y1的值分别为1,0,0,1,0。经第二个时钟后 x0、x1、x2、y0、y1的值分
15、别为1,1,0, 1,1。经第三个时钟后x0、x1、x2、y0、y1的值分别为2,1, 1,2, 1。经第四个时钟后由此可见该模块仿真值正确。程序编写说明:首先在实体中定义输入信号res,clk,xn,yout,输出信号x0、x1、x2、y1、y2,在实体中定义延迟信号reg_x0,reg_x1,reg_x2,reg_y1,reg_y2;然后把依次定义好的延迟信号送给x0、x1、x2、y1、y2 ;最后在时钟CLK上升沿到来时,用算法reg_x2=reg_x1;reg_x1=reg_x0; reg_x0=x n; reg_y2=reg_y1; reg_y1=yout 实现延时。程序见附录。4.
16、3乘法累加模块的设计乘法累加模块用来实现输入数据与系数ai、bi分别相乘后再相加的运算。即实现yn = b)Xn + b人+ P人/ + a 十a2的算法。乘法累加模块输出的信号送入累加器后,与寄存于累加器中的中问结果相加。.fmult addlITresjrD11.Djc111.0JVlHV211 JOclk_n&gbt youtH1.D dk_reg;Kl11 JO:.yiLH.D i卿t .图4-7乘法累加模块图图4-8第一级乘法累加模块时序仿真图End臓ler能站: 1L65n$ Fahler:卿89n$I书网4印囚吊StaihAZmnonnMAMn图4-9第一级乘法累加模块功能仿真图
17、乘法累加模块仿真图如上图4-8和图4-9所示,clk_regbt及clk_reg为输入时钟,由时序控制模块提供。xO、x1、x2、y1、y2为输入信号,yout为输出信号,图4-8和图4-9中yout的值3为xO、x1、x2、y1、y2的值1、2、3、4、5和系数ai、bj相乘后再相加的结果, 完成了乘法累加的功能。程序编写说明:首先在实体中定义输入信号clk_regbt、clk_reg、res、x0、x1、x2、y1、y2,输出信号yout,在结构体中定义信- 号参量 ent、tmpa、tmpb、ytmp、p,将 MATLAB 中 设计出来的IIR数字滤波器系数 A,B写入滤波器程序中; 然
18、后用cnt=cnt+1命令使cnt依次 增加,用 tmpa=b0,b1,b2,a0,a1,tmpb=x0,x1,x2,y1,y2, p=tmpa * tmpb ,ytmp=ytmp+p 命令实 现乘法累加运算。同理可得到第二级乘法累加仿真图:图4-10第二级乘法累加模块时序仿真图图4-11第二级乘法累加模块功能仿真图4.4顶层模块的设计顶层模块设计采用了原理图输入方法,原理图输入方式非常直观,便于信号观察和电路的调节。图4-12顶层模块图b Masi?Tins Ger SIZSre * jPciik 1 Wut甘 I.CQuc Slat-EndA 磯 A图4-13顶层模块时序仿真图MadffT
19、neiBar扯型nsi 卜 PcilEr985i43n3血盘淑布nsSlatlErriAMO.D osi叮UE I1.26 fjsL42miiJ.5S u1.“匹J.9 is1 1.僅吃1春15岀 K22530j(lx3ytrnrrrrn_SiQy汕“炸图4-14顶层模块功能仿真图4.5 IIR数字低通滤波器的系统仿真结果分析。系统先开始处于初始状态,当RES信号为“ 1”时,对整个系统进行清零。在RES为“0”的前提,时序控制模块在时钟elk上升沿的作用下产生两个信号CLK_REG 及CLK_REGBT,其中CLK_REG信号用来作为延时模块、补码乘加模块和累加模块的输入时 钟,CLK_RE
20、GBT每隔6个时钟产生一个高电平作为这三个模块的复位信号。延时模块在接收到CLK_REG高电平信号时清零输出端,接收到低电平时,在CLK_REGBT上升沿的作用下对输入信号进行延时,以实现一次延时运算,而后将延时信号输出,送给乘法累加模块。 乘法累加模块在接收延时信号的同时也接收输入的系数信号,在CLK_REGBT上升沿的作用下实现系数和延时信号的乘法累加运算,而此步骤需要6个时钟来完成,正好与时序控制模块的输出信号 CLK_REGBT相一致。乘法累加模块的输出一部分送入延时模块以实现信 号的反馈,另一部分则送入到累加模块, 在累加模块中进行结果累加后输出,得到最终结果。4.6高阶IIR数字低
21、通滤波器的 FPGA实现要实现一个高阶IIR数字低通滤波器,如果采用直接型结构实现,需要的乘法器和延 迟单元相对较多,而且分子和分母的系数相差很大,因此需要较多的二进制位数才能实现相应的精度要求。而采用二阶节级联实现,一方面各基本节的零极点可以很方便地单独进行 调整,另一方面可以降低对二进制位数的要求,因此选用级联结构。下面以四阶IIR数字低通滤波器为例来说明高阶滤波器的实现。5 IIR数字低通滤波器的FPGA实现5.1原理分析由表1可见,椭圆滤波器给出的设计阶数比前两种低,且频率特性较好,过渡带较窄,所以耗费的硬件资源少。本系统选用椭圆函数滤波器进行设计。数字滤波器实际上是一个采用有限精度算
22、法实现的线性非时变离散系统,它的设计步骤为:首先根据实际需要确定其性能指标,再求得系统函数H(z),最后采用有限精度算法实现 ? 根据实际需,要设计一低通滤波器,本系统以设计一个 4阶低通滤波器为例,通频带衰减不得低于3dB,阻频带衰减最少低于 50dB,上限阻带频率为 300Hz,采样频率为1000Hz。b,a5-1系统函数H(z)的计算采用 Matlab软件比较方便,在MATLAB中调用ellip()函数计算,=ellip ( 4, 3, 50, 300 / 500),可以求得直接型椭圆IIR滤波器的各个系数,如图羊 1ATLABCurrent Directory:File Idit Vi
23、tw tfeb Window Help空 | X-骚盛ee | ji | ? 此 a=ellip (4,玄 50, 300/500)0 11160.36740 52010.3&T40. 1115系统的幅频特性和相频特性如图5-2所示,可见满足设计要求?I. DOOO -0. 0252图5-1 MATLAB 计算结果有图5-1可知H (z)为:7 bkZ,H(z)二k=0N1bkZ“k=00.1116 0.3674z0.5201Z0.3674z0.1116z*1 -0.0262zJ 1.0095z-0.2549z0.3596z*由上试可知,这是一个四阶IIR系统。利用Matlab频率响应函数fr
24、eqz(b,a)可得出出该020406080- - -0.10.20.30.40.50.60.7 OS 091Normalized Frequency (xti rad/samplenuo-4L0 10.20.3G.40.50.6070.80.91Normaled Frequency (xji rad/samplejo o o o O o nu nu T-2-3( (也Hep) sroqd图5-2系统的幅频特性和相频特性这是一个四阶的IIR数字低通滤波器,要想实现最好采用二阶节级联实现,本例为四阶,需要二个二阶节,所以我把 H(z)的直接型结构转换为级联型结构。利用MATLAB把直接型结构转化
25、为级联型结构。结果如下:H(z)=H (z) H2(z)1 2 1 20.11160.2086Z0.1116z1.0 1.4039z1.0z- - - -1 -0.5361z4 0.4138z1 -0.5099z 0.869z,由上式可以看出,每个二阶节的分子?分母系数差异减少了 ?并且可看出要实现这一性能,需要 四阶椭圆滤波器,用二个基本二阶节级联来实现,其具体级联形式如图 5-3所示。(n)40 111Bk1 ky(n)FFFFrFr 44L.*JIk0-53610. 2096L虹0.50991.4039弋r1k-0 413840.1115L匸一-o.see41 k图5-3二个二节阶级联的
26、流程图本例的数字低通滤波器采用二节级联实现,一方面各基本节的零点、极点可以很方便地单独进行调整,另一方面可以降低对二进制数位数的要求,所需的存储单元较少, 在硬件实现时甚至还可以用一个二阶节进行时分复用,进一步降低对FPGA硬件资源的要求。将 比 的二阶节系统函数进行逆 Z变换,得到其差分方程为:y1(n) = a0x(n)a/(n1) a2x( n) b0y(ny(n2)= 0.1116x(n) 0.2086x(n -1) 0.1116x(n)_0.5361y(n- 1)_0.4138y(n - 2)为了使得设计简便及资源的充分利用,我们应该对系数进一步量化,把这些系数转化为整数,这里,将二
27、阶网络的的系数扩大 210倍,然后再将输出网络的系数缩小210倍,这样的话,会大大减少FPGA硬件资源的利用率,经过扩大后的式子如下:y1(n) =114x(n) 214x(n -1) 114x(n) 549y(n -1)424y(n -2)可以看出,一个基本的二阶节的实现需要五次乘法运算和四次加法运算(采用二进制补码将减法运算变为加法运算)?两个二阶节共需要十次乘法运算?虽然现在已有上千万门的FPGA产品可供选用,但是一般应用时全部采用硬件阵列乘法器毕竟不太合适,而如果采用串行乘法器进行分时复用,其工作速度也不太理想 ?本文采用一个折中的方法实现,即乘加单元(MAC)的乘法器采用阵列乘法器,
28、而不使用串行乘法器,以提高运算速度?5.2顶层IIR模块IIR滤波器要正常工作, 就必须要有对外接口, 其中包括时钟,复位,输入输出数据等, 本设计的顶层模块主要由二个IIR二阶节子模块和输入输出寄存器构成,输入口包括复位输入、时钟、使能和输入数据信号,输出为经过IIR滤波器后的输出数据信号。顶层模块原理框图如图5-4所示elkres图5-4顶层模块原理图xn5.3 IIR数字滤波器的仿真方法介绍首先新建工程文件,然后新建VHDL程序保存在新建的工程中,接着将要仿真的IIR数字滤波器的 VHDL程序设为顶层模块,进行全编译,看看有没错误,直到仿真到没有错 误为止;然后新建波形文件, 定义输入信
29、号波形,设置仿真周期,时钟周期;最后在settings 中设置为时序或功能仿真,加入波形文件,注意的是在功能仿真时要加入功能网表然后在仿 真,否则或出现错误。6仿真结果利用QuartusII编译仿真,经过编译综合完之后,加入冲激激励信号,仿真后的结果如图6-1所示,从图分析可得知,经过5个单位的时钟周期后出现的仿真结果与之前在MATLAB 软件中仿真得出的冲激响应图相符合。diLlkeiL国a?国 r45ltH OOEJLjirLrLrTrLmmrLnLrLrLrLTLrLrma01joomOjobo隔页岡醐axoajoooof他0 z阴0 0 n:SCO 0 as16-0 n=图6-1仿真结
30、果在上述设计中只需要加入A/ D、D/ A转换器及相应的信号输入输出接口电路,就可以完成一个完整IIR数字低通滤波器的设计。7结束语本文介绍了 IIR数字低通滤波器的原理、设计以及在FPGA上实现的方法。在实际使用中,可以根据不同精度要求,方便地对该IIR数字低通滤波器参数等进行修改以满足不同的指标要求,灵活地组成任意阶不同类型的滤波器。使用乘加块实现数学运算,可进一步节省硬件资源和缩短运行周期。IIR数字滤波器良好的幅频特性使其广泛应用于实时、高速场 合,设计出稳定可靠的高速IIR滤波器有着显而易见的意义。本文以FPGA为载体、以四阶IIR数字低通滤波器的设计为例提出一种快捷设计高速IIR数
31、字低通滤波器的方法,并在理论上对所设计的滤波器稳定性进行了分析。首先利用Matlab得到滤波器的传输函数,然后采用取整的方法,对传输函数系数量化处理,以充分发挥FPGA的高速性能,最后使用VHDL硬件描述语言编程实现 IIR数字低通滤波器。仿真表明,该设计法快捷、高效,能在一个时 钟周期内完成滤波处理,设计的滤波器能应用于高速场合。根据该方法,经过测试,性能满足要求。8参考文献1 丁玉美,高西全数字信号处理(第二版)M.西安:西安电子科技大学出版社,2002.2 陈亚勇MATLAB信号处理详解M.北京:人民邮电出版社,20013 曾繁泰,陈美金VHDL程序设计M.北京:清华大学出版社,2004
32、4 王诚,薛小刚,钟信潮 FPGA/CPLD设计工具一一XilinxISE 使用详解M.北京:人 民邮电出版社,2005屈星严舒杨白基于FPGA的IIR数字滤波器的设计与仿真。2008李良钰。FPGA四阶IIR数字滤波器实现。2008.7 李登峰基于FPGA和DSP的数字滤波器设计D南京理工大学 2004.68 梁二虎刘文怡张文栋基于FPGA的IIR数字滤波器硬件模块的设计J微计算机信息 2008.029朱幼莲陶为戈IIR数字滤波器的FPGA实现J电气电子教学学报 2007.0210罗军益成彬彬陈泉根李磊明用MATLAB设计及FPGA实现IIR滤波器的方法 内 江科技J内江科技2006.061
33、1杨晓慧 杨勇健基于FPGA的EDA/SOPC技术与VHDLM国防工业出版社 2007.0712王开军姜宇柏 面向CPLD/FPGA的VHDL设计M机械工业出版社 2006.1013罗朝霞高书莉CPLD/FPGA设计及应用M人民邮电出版社 2007.0714王华李有军刘建存MATLAB电子仿真及应用教程M国防工业出版社 2007.0415童位理 基于FPGA的IIR滤波器的快捷设计J电子元器件应用 2007.0516赵亚梅杜红棉张志杰基于MATLAB 种IIR数字带通滤波器的设计与仿真J微计算机信息 2007.0517孙福玉MATLAB程序设计教程MM呼和浩特远方出版社.2006.5 : 11
34、7-129FPGA-based IIR digital low pass filter design andimplementationXXXChifeng College of Physics and Electronic Information Engineering, Chifeng 024000 Abstract: This paper describes the FPGA-based IIR digital filter design and implementation, first introduced the digital filter, low pass digital f
35、ilter and IIR digital filter classification. Then introduced the low-pass IIR digital filter design methods, useful for the same impulse response method and bilinear transformation method in two ways. Finally, to clarify the IIR digital low pass filter FPGA implementationKeywords: FPGA; MA TLAB ; Qu
36、artusII; IIR digital low-pass filter; Design; To achieve致谢在即将毕业的最后一段日子里,我非常感谢我的指导老师张立萍对我毕业设计的帮助,没有她的帮助,我真不知道我的论文能不能顺利的完成。张老师人真的很好,我知道她工作很忙,但她还是抽出很多时间辅导我的毕业设计。有时候,我工作很忙,她就主动帮我找相关的材料;我程序编完之后,她很仔细的看了又看,给我提了很多宝贵的意见。她是一个很善良又热心的人。同时我要感谢孙福玉老师对我毕业设计上的帮助;一路走来,父母始终无私的付 出着对我的爱,是我强大的精神支柱,不用言语,我会用行动证明我也爱他们。附录个模块
37、的VHDL程序1时序控制模块程序 library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_arith.all;use ieee.std_logic_ un sig ned.all; en tity time_c on trol is port( clk,res:i n std_logic;clk_reg,clk_regbt:out std_logic ); end time_c on trol;architecture bhv of time_c on trol is sig nal coun ter:i nteger;sig
38、nal clk_e n: std_logic;sig nal en: std_logic; beginclk_regbt=not clk and clk_e n and en; clk_reg=not clk and not clk_e n and en; process(clk,res)beginif(res=1)the ncoun ter=0;clk_e n=0:en =0;elsif(clkeve nt and clk=1)then if( coun ter6)the n clk_e n=1;en =1;coun ter=co un ter+1;else coun ter=0; clk_
39、e n=0;en =1;end if;end if;end process;end bhv;2延时模块程序 library ieee;use ieee.stdo gic_1164.all;use ieee.std_logic_ un sig ned.all;use ieee.std_logic_arith.all;en tity time_delay isport (clk:in std_logic;res:in std_logic;xn:in stdo gic_vector(11 dow nto 0);yout: in std_logic_vector(11 dow nto 0); x0,x
40、1,x2:out stdo gic_vector(11 dow nto 0); y1,y2:out stdo gic_vector(11 dow nto 0);end time_delay;architecture bhv of time_delay issig nal reg_x0,reg_x1,reg_x2:stdo gic_vector(11 dow nto 0);sig nal reg_y1,reg_y2:std_logic_vector(11 dow nto 0);beginx0=reg_x0;x1=reg_x1;x2=reg_x2;y1=reg_y1;y2=reg_y2proces
41、s(res,clk)beginif (res=1) thenreg_x0=000000000000;reg_x1=000000000000;reg_x2=000000000000;reg_y1=000000000000;reg_y2=000000000000;elsif (clkeve nt and clk=1) the nreg_x2=reg_x1;reg_x1=reg_x0;reg_x0=x n;reg_y2=reg_y1;reg_y1=yout;end if;end process;end bhv;3一阶乘法累加模块程序 library ieee;use ieee.stdo gic_11
42、64.all;use ieee.std_logic_arith.all;use ieee.std_logic_ un sig ned.all;use ieee.std_logic_sig ned.all;en tity mult_add1 isport(clk_regbt,clk_reg,res: in std_logic;x0,x1,x2,y1,y2: in std_logic_vector(11 dow nto 0);yout: out std_logic_vector(11 dow nto 0);end mult_add1;architecture behav of mult add1
43、is sig nal ent: in teger range 0 to 5; sig nal tmpa,tmpb: std_logic_vector(11 dow nto 0);sig nal ytmp,p:std_logic_vector(23 dow nto 0);con sta nt b0: stdo gic_vector(11 dow nto 0):=000000001011;con sta nt b1: stdo gic_vector(11 dow nto 0):=000000010111;con sta nt b2: stdo gic_vector(11 dow nto 0):=000000001011;con sta nt a1: stdo gic_vector(11 dow nto 0):=011100100001;con sta nt a2: stdo gic_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2021学年上海复旦附中高一(下)期中英语试题及答案
- 离思五首其一:古代诗词情感解读教案
- 小学演讲活动方案
- 酒店承包经营协议书
- 银行贷款审批实务问题
- 公交公司售卡活动方案
- 公交开通活动方案
- 技术开发保密与成果共享协议条款修订
- 公众号赠书活动方案
- 叙事作文小家中的大道理400字11篇范文
- 2024届江苏省徐州市、南通市等2地高三第二次调研测试语文试题
- 智能化立体停车楼项目分析报告
- 超声检查健康宣教课件
- 广西创业担保贷款培训课件
- 2024届江苏省南京市联合体数学七年级第二学期期末监测试题含解析
- 《现场改善技巧》课件
- 国开电大《人文英语3》一平台机考总题库珍藏版
- 玻璃隔断墙施工方案
- Python GUI设计:tkinter菜鸟编程
- 新家庭如何塑造人
- 2024届新高考数学热点冲刺复习“三新”背景下如何提高成绩+以《数列》为例浅谈教材使用
评论
0/150
提交评论