基于FPGA的IIR数字低通滤波器的设计_第1页
基于FPGA的IIR数字低通滤波器的设计_第2页
基于FPGA的IIR数字低通滤波器的设计_第3页
基于FPGA的IIR数字低通滤波器的设计_第4页
基于FPGA的IIR数字低通滤波器的设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、赤峰学院毕业论文(设计) 题 目 基于FPGA的IIR数字低通滤波器设计学生姓名 学 号 院 系 物理与电子信息工程系专 业 电子信息工程指导教师 二O一一 年 六 月 一 日基于FPGA的IIR数字低通滤波器的设计与实现XXX赤峰学院物理与电子信息工程系,赤峰024000摘要:本文介绍了基于FPGA的IIR数字低通滤波器的设计与实现,首先介绍了IIR数字低通滤波器的原理和分类。接着介绍了IIR数字低通滤波器的设计方法,有用脉冲响应不变法和双线性变换法。又介绍了用VHDL语言在QuartusII软件上生成IIR数字滤波器的各模块(时序控制模块、延时模块、顶层模块、乘法累加模块),并用各个模块构

2、建一个IIR的二阶节。最后通过实例阐明了基于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数字滤波器传输函数的标准表达式:其对应的差分方程为:图2-1 直接I型图2-2 直接II型2.2级联型IIR数字滤波器的结构将系统函数H(Z)因式分解为较低的二阶型的乘积,每个双二阶用一个直接型实现,整个系统用双二阶的级联实现,每一个二阶型传递函数为:图2-3 级联型2.3并联型IIR数字滤波器的结构将系统函数H(Z)因式分解为双二阶之和,每个双二阶用一个直接型实现,整个系统函数作为二阶节的并联网络实现2。每一个二阶型传递函数为:图2

5、-4 并联型2.4 IIR数字滤波器的类型IIR滤波器主要有巴特沃斯滤波器、切比雪夫滤波器和椭圆滤波器几种。给出了以上三种滤波器实现同样性能指标所需的阶数和阻带衰减的比较,如表1所示 表1三种滤波器性能比较原型阶数阻带衰减/dB巴特沃斯615切比雪夫I型425椭圆函数3273 IIR数字低通滤波器的设计低通滤波器让某一频率以下的信号分量通过,而对该频率以上的信号分量大大抑制的电容、电感与电阻等器件的组合装置。所以低通滤波是一种可以通过低频信号而且衰减和抑制高频信号的方式,所以其频率响应函数由此可以看出低通滤波器的同频带位于的整数倍。用FPGA实现滤波器的基本思想就是基于来实现的3.1用脉冲响应

6、不变法设计IIR数字低通滤波器设模拟滤波器的系统函数为,相应的单位冲激响应是,=.代表拉氏变换,对进行等间隔采样,采样间隔为T,得到,将=作为数字滤波器的单位脉冲响应,那么数字滤波器的系统函数便是的Z变换。因此脉冲响应不变法是一种时域逼近法,它使在采样点上等于。但是,模拟滤波器的设计结果是,所以下面基于脉冲响应不变法的思路,退出直接从到的转换公式。设模拟滤波器只有单阶极点,且分母多项式的阶次高于分子多项式的阶次,将用部分分式表示 式1式1中,为的单阶极点。将进行逆拉氏变换,得到 式2式2中,是单位阶跃函数。对进行等间隔采样,采样间隔为T,得到 式3对式3进行Z变换,得到数字滤波器的系统函数,即

7、 式4对比式1和式4,的极点映射到Z平面的极点,系数不变。如果原的频谱不是限于之间,则会在奇数附近产生频谱混叠,对应数字频率在附近产生频谱混叠。为了避免这一现象,令那么 式5式5称为实用公式,此时 3.2用双线性变换法设计IIR数字低通滤波器脉冲不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特向。产生的原因是模拟低通滤波器不是带限于折叠频率,在离散化(采样)后产生了频谱混叠,在通过映射关系,使数字滤波器在附近形成频谱混叠。为了使这一缺点消除,我们使用非线性频率压缩方法,将整个模拟频率轴压缩到之间,再用转换到Z平面上。设,经过非线性频率压缩后用,表示,这里用正切变换

8、频率压缩:式6式6中,T为采样间隔。当从经过0变化到时,则由经过0变化到,实现了s平面上整个虚轴完全压缩到平面上虚轴的之间的转换。由式6得代入,得到:在通过从平面转换z平面上,得到:式7式8式7和式8成为双线性变换。从平面到平面的非线性频率压缩,使带限于,因此再用脉冲不变法从平面转换到z平面不可能产生频谱混叠现象。这就是双线性变换法的优点,另外,从平面转换到z平面仍然采用转换关系, 平面的之间水平带的左半部分映射到z平面单位圆内部,虚轴映射为单位圆,这样因果稳定,转换的也是因果稳定的。双线性变换法设计的IIR数字低通滤波器的缺点是和之间成非线性关系,使得数字滤波器频响曲线不能保真地模仿模拟滤波

9、器的频响曲线形状。4  IIR数字低通滤波器各模块的设计IIR数字滤波器包括以下几个模块:时序控制模块、延时模块、顶层模块、乘法累加模块。时序控制模块主要产生两个信号,一个是时延信号加到延时模块,实现时延功能;另一个是计算处理信号,加到乘法累加模块,实现先加后乘的功能。延时模块主要作用是对数据进行时延,使前一个数据赋给后一个数据,然后将数据输入到乘法累加模块。乘法累加模块主要在时钟的作用下实现加法和乘法的功能,最后输出滤波器数据。4.1 时序控制模块的设计时序控制模块主要用来产生对其它模块的时序控制信号。首先对系统进行初始化处理,当RES信号为”1”时,对整个系统进行清零11。当RE

10、S信号为“0”时,时序控制模块在时钟CLK上升沿的作用下产生两个信号CLK_REG及CLK_ REGBT。其中,CLK_REG信号用来作为延时模块、乘法累加模块的输入时钟,CLK_REGBT每隔6个时钟产生一个高电平作为这三个模块的复位信号。图4-1 时序控制模块图图4-2 时序控制模块时序仿真图图4-3 时序控制模块功能仿真图时序控制模块仿真如图4-2和图4-3所示,在clk的上升延到来时,counter以6个时钟为周期开始进行计数,clk_regbt每隔6个时钟输出一个低电平,clk_reg则每隔6个时钟后输出一个高电平。输出的两个时钟信号正好控制延时模块、乘法累加模块的运行,符合设计要求

11、。程序编写说明:首先在实体中定义输入信号res,clk,输出信号reg,regbt,在结构体中定义信号参量counter,clk_en,en;然后确定输出信号与输入信号的关系,编写算法clk_regbt<=not clk and clk_en and en和clk_reg<=not clk and not clk_en and en产生输出信号;最后以counter为0到5为一个周期循环计算以上输出信号。程序见附图。4.2 延时模块的设计其主要作用是在时钟作用下将差分方程的各x、y值依次逐位延迟一个时钟,实现延时运算,即当输入为x(n)和y(n)时,经过一次延时后其输出分别为x(n

12、-1)和y(n-1)。图4-4 延时模块图图4-5 延时模块时序仿真图图4-6 延时模块时序功能仿真图延时模块仿真图如上图4-5和图4-6所示,由图可以看出当输入的xn、yout都为时,在时钟信号上升沿的作用下产生延时,经第一个时钟后x0、x1、x2、y0、y1的值分别为1,0,0,1,0。经第二个时钟后x0、x1、x2、y0、y1的值分别为1,1,0,1,1。经第三个时钟后x0、x1、x2、y0、y1的值分别为2,1,1,2,1。经第四个时钟后由此可见该模块仿真值正确。程序编写说明:首先在实体中定义输入信号res,clk,xn,yout,输出信号x0、x1、x2、y1、y2,在实体中定义延迟

13、信号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<=xn;reg_y2<=reg_y1; reg_y1<=yout实现延时。程序见附录。4.3 乘法累加模块的设计乘法累加模块用来实现输入数据与系数ai、bi分别相乘后再相加的运算。即实现的算法。乘法累加模块输出的信号送入累加器后,与寄存于累加器中的中问结果相加。图4-7 乘法累加模块图图4-8 第一级乘法累加模块时序仿真

14、图图4-9 第一级乘法累加模块功能仿真图乘法累加模块仿真图如上图4-8和图4-9所示,clk_regbt及clk_reg为输入时钟,由时序控制模块提供。x0、x1、x2、y1、y2为输入信号,yout为输出信号,图4-8和图4-9中yout的值3为x0、x1、x2、y1、y2的值1、2、3、4、5和系数、相乘后再相加的结果,完成了乘法累加的功能。程序编写说明:首先在实体中定义输入信号clk_regbt、clk_reg、res、x0、x1、x2、y1、y2,输出信号yout,在结构体中定义信号参量cnt、tmpa、tmpb、ytmp、p,将MATLAB中设计出来的IIR数字滤波器系数A,B写入滤

15、波器程序中;然后用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 顶层模块图图4-13 顶层模块时序仿真图图4-14 顶层模块功能仿真图4.5 IIR数字低通滤波器的系统仿真结果分析

16、。系统先开始处于初始状态,当RES信号为“1”时,对整个系统进行清零。在RES为“0”的前提,时序控制模块在时钟clk上升沿的作用下产生两个信号CLK_REG及CLK_REGBT,其中CLK_REG信号用来作为延时模块、补码乘加模块和累加模块的输入时钟,CLK_REGBT每隔6个时钟产生一个高电平作为这三个模块的复位信号。延时模块在接收到CLK_REG高电平信号时清零输出端,接收到低电平时,在CLK_REGBT上升沿的作用下对输入信号进行延时,以实现一次延时运算,而后将延时信号输出,送给乘法累加模块。乘法累加模块在接收延时信号的同时也接收输入的系数信号,在CLK_REGBT上升沿的作用下实现系

17、数和延时信号的乘法累加运算,而此步骤需要6个时钟来完成,正好与时序控制模块的输出信号CLK_REGBT相一致。乘法累加模块的输出一部分送入延时模块以实现信号的反馈,另一部分则送入到累加模块,在累加模块中进行结果累加后输出,得到最终结果。4.6 高阶IIR数字低通滤波器的FPGA 实现要实现一个高阶IIR 数字低通滤波器,如果采用直接型结构实现,需要的乘法器和延迟单元相对较多,而且分子和分母的系数相差很大, 因此需要较多的二进制位数才能实现相应的精度要求。而采用二阶节级联实现,一方面各基本节的零极点可以很方便地单独进行调整,另一方面可以降低对二进制位数的要求, 因此选用级联结构。下面以四阶IIR

18、 数字低通滤波器为例来说明高阶滤波器的实现。5 IIR数字低通滤波器的FPGA实现5.1原理分析由表1可见,椭圆滤波器给出的设计阶数比前两种低,且频率特性较好,过渡带较窄,所以耗费的硬件资源少。本系统选用椭圆函数滤波器进行设计。数字滤波器实际上是一个采用有限精度算法实现的线性非时变离散系统,它的设计步骤为:首先根据实际需要确定其性能指标,再求得系统函数H(z),最后采用有限精度算法实现根据实际需,要设计一低通滤波器, 本系统以设计一个4 阶低通滤波器为例, 通频带衰减不得低于3dB,阻频带衰减最少低于50dB,上限阻带频率为300Hz,采样频率为1000Hz。系统函数H(z)的计算采用Matl

19、ab软件比较方便, 在MATLAB中调用ellip()函数计算,b,aellip(4,3,50,300 500),可以求得直接型椭圆IIR 滤波器的各个系数,如图5-1图5-1 MATLAB计算结果有图5-1可知H(z)为:由上试可知,这是一个四阶IIR系统。利用Matlab频率响应函数freqz(b,a)可得出出该系统的幅频特性和相频特性如图5-2 所示,可见满足设计要求图5-2 系统的幅频特性和相频特性这是一个四阶的IIR数字低通滤波器,要想实现最好采用二阶节级联实现,本例为四阶,需要二个二阶节,所以我把H(z)的直接型结构转换为级联型结构。利用MATLAB把直接型结构转化为级联型结构。结

20、果如下:由上式可以看出,每个二阶节的分子分母系数差异减少了并且可看出要实现这一性能,需要四阶椭圆滤波器,用二个基本二阶节级联来实现,其具体级联形式如图5-3所示。图5-3 二个二节阶级联的流程图本例的数字低通滤波器采用二节级联实现, 一方面各基本节的零点、极点可以很方便地单独进行调整,另一方面可以降低对二进制数位数的要求,所需的存储单元较少,在硬件实现时甚至还可以用一个二阶节进行时分复用, 进一步降低对FPGA硬件资源的要求。将的二阶节系统函数进行逆Z 变换,得到其差分方程为:为了使得设计简便及资源的充分利用,我们应该对系数进一步量化,把这些系数转化为整数,这里,将二阶网络的的系数扩大倍,然后

21、再将输出网络的系数缩小倍,这样的话,会大大减少FPGA 硬件资源的利用率,经过扩大后的式子如下:可以看出,一个基本的二阶节的实现需要五次乘法运算和四次加法运算(采用二进制补码将减法运算变为加法运算)两个二阶节共需要十次乘法运算虽然现在已有上千万门的FPGA产品可供选用,但是一般应用时全部采用硬件阵列乘法器毕竟不太合适,而如果采用串行乘法器进行分时复用,其工作速度也不太理想 本文采用一个折中的方法实现,即乘加单元(MAC)的乘法器采用阵列乘法器,而不使用串行乘法器,以提高运算速度5.2顶层IIR模块IIR 滤波器要正常工作,就必须要有对外接口,其中包括时钟,复位,输入输出数据等,本设计的顶层模块

22、主要由二个IIR二阶节子模块和输入输出寄存器构成,输入口包括复位输入、时钟、使能和输入数据信号, 输出为经过IIR 滤波器后的输出数据信号。顶层模块原理框图如图5-4 所示图5-4顶层模块原理图5.3 IIR数字滤波器的仿真方法介绍首先新建工程文件,然后新建VHDL程序保存在新建的工程中,接着将要仿真的IIR数字滤波器的VHDL程序设为顶层模块,进行全编译,看看有没错误,直到仿真到没有错误为止;然后新建波形文件,定义输入信号波形,设置仿真周期,时钟周期;最后在settings中设置为时序或功能仿真,加入波形文件,注意的是在功能仿真时要加入功能网表然后在仿真,否则或出现错误。6 仿真结果利用Qu

23、artusII编译仿真, 经过编译综合完之后,加入冲激激励信号,仿真后的结果如图6-1 所示,从图分析可得知,经过5 个单位的时钟周期后出现的仿真结果与之前在MATLAB 软件中仿真得出的冲激响应图相符合。 图6-1仿真结果在上述设计中只需要加入A/ D、D/ A 转换器及相应的信号输入输出接口电路,就可以完成一个完整IIR数字低通滤波器的设计。7 结束语本文介绍了IIR 数字低通滤波器的原理、设计以及在FPGA上实现的方法。在实际使用中,可以根据不同精度要求,方便地对该IIR数字低通滤波器参数等进行修改以满足不同的指标要求,灵活地组成任意阶不同类型的滤波器。使用乘加块实现数学运算,可进一步节

24、省硬件资源和缩短运行周期。IIR数字滤波器良好的幅频特性使其广泛应用于实时、高速场合,设计出稳定可靠的高速IIR滤波器有着显而易见的意义。本文以FPGA为载体、以四阶IIR数字低通滤波器的设计为例提出一种快捷设计高速IIR数字低通滤波器的方法,并在理论上对所设计的滤波器稳定性进行了分析。首先利用Matlab得到滤波器的传输函数,然后采用取整的方法,对传输函数系数量化处理,以充分发挥FPGA的高速性能,最后使用VHDL硬件描述语言编程实现IIR数字低通滤波器。仿真表明,该设计法快捷、高效,能在一个时钟周期内完成滤波处理,设计的滤波器能应用于高速场合。根据该方法,经过测试,性能满足要求。8 参考文

25、献1 丁玉美, 高西全.数字信号处理( 第二版)M.西安: 西安电子科技大学出版社,2002.2 陈亚勇MATLAB信号处理详解M.北京: 人民邮电出版社,20013 曾繁泰, 陈美金VHDL程序设计M.北京: 清华大学出版社,20044 王诚, 薛小刚, 钟信潮 FPGA/CPLD设计工具XilinxISE使用详解M.北京: 人民邮电出版社,20055 屈星 严舒 杨白基于FPGA的IIR数字滤波器的设计与仿真。20086李良钰。FPGA四阶IIR数字滤波器实现。2008.7 李登峰基于FPGA和DSP的数字滤波器设计D 南京理工大学 2004.68 梁二虎 刘文怡 张文栋基于FPGA的II

26、R数字滤波器硬件模块的设计J 微计算机信息 2008.029 朱幼莲 陶为戈IIR数字滤波器的FPGA实现J 电气电子教学学报 2007.0210 罗军益 成彬彬 陈泉根 李磊明用MATLAB设计及FPGA实现IIR滤波器的方法 内江科技 J 内江科技 2006.0611 杨晓慧 杨勇健基于FPGA的EDA/SOPC技术与VHDLM 国防工业出版社 2007.0712 王开军 姜宇柏 面向CPLD/FPGA的VHDL设计M 机械工业出版社 2006.1013 罗朝霞 高书莉CPLD/FPGA设计及应用 M 人民邮电出版社 2007.0714 王华 李有军 刘建存 MATLAB电子仿真及应用教程

27、M 国防工业出版社 2007.0415 童位理 基于FPGA的IIR滤波器的快捷设计J 电子元器件应用 2007.0516 赵亚梅 杜红棉 张志杰 基于MATLAB一种IIR数字带通滤波器的设计与仿真J微计算机信息 2007.0517孙福玉MATLAB程序设计教程MM 呼和浩特远方出版社2006.5:117-129FPGA-based IIR digital low pass filter design and implementationXXXChifeng College of Physics and Electronic Information Engineering, Chifeng

28、024000Abstract: This paper describes the FPGA-based IIR digital filter design and implementation, first introduced the digital filter, low pass digital filter and IIR digital filter classification. Then introduced the low-pass IIR digital filter design methods, useful for the same impulse response m

29、ethod and bilinear transformation method in two ways. Finally, to clarify the IIR digital low pass filter FPGA implementationKeywords: FPGA; MATLAB ; QuartusII; IIR digital low-pass filter; Design; To achieve致谢在即将毕业的最后一段日子里,我非常感谢我的指导老师张立萍对我毕业设计的帮助,没有她的帮助,我真不知道我的论文能不能顺利的完成。张老师人真的很好,我知道她工作很忙,但她还是抽出很多时

30、间辅导我的毕业设计。有时候,我工作很忙,她就主动帮我找相关的材料;我程序编完之后,她很仔细的看了又看,给我提了很多宝贵的意见。她是一个很善良又热心的人。同时我要感谢孙福玉老师对我毕业设计上的帮助;一路走来,父母始终无私的付出着对我的爱,是我强大的精神支柱,不用言语,我会用行动证明我也爱他们。附录个模块的VHDL程序1时序控制模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity time_control isport( clk

31、,res:in std_logic; clk_reg,clk_regbt:out std_logic );end time_control;architecture bhv of time_control issignal counter:integer;signal clk_en:std_logic;signal en: std_logic;beginclk_regbt<=not clk and clk_en and en;clk_reg<=not clk and not clk_en and en;process(clk,res)begin if(res='1'

32、)then counter<=0;clk_en<='0'en<='0'elsif(clk'event and clk='1')thenif( counter<6)thenclk_en<='1'en<='1'counter<=counter+1;else counter<=0;clk_en<='0'en<='1'end if;end if;end process;end bhv;2延时模块程序library ieee;

33、use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity time_delay is port (clk:in std_logic; res:in std_logic; xn:in std_logic_vector(11 downto 0); yout:in std_logic_vector(11 downto 0); x0,x1,x2:out std_logic_vector(11 downto 0); y1,y2:out std_logic_vector(1

34、1 downto 0);end time_delay;architecture bhv of time_delay issignal reg_x0,reg_x1,reg_x2:std_logic_vector(11 downto 0);signal reg_y1,reg_y2:std_logic_vector(11 downto 0);beginx0<=reg_x0;x1<=reg_x1;x2<=reg_x2;y1<=reg_y1;y2<=reg_y2process(res,clk)beginif (res='1') then reg_x0<

35、="000000000000"reg_x1<="000000000000"reg_x2<="000000000000"reg_y1<="000000000000"reg_y2<="000000000000"elsif (clk'event and clk='1') then reg_x2<=reg_x1;reg_x1<=reg_x0;reg_x0<=xn;reg_y2<=reg_y1;reg_y1<=yout;end

36、if;end process;end bhv;3一阶乘法累加模块程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_signed.all;entity mult_add1 isport(clk_regbt,clk_reg,res: in std_logic; x0,x1,x2,y1,y2: in std_logic_vector(11 downto 0); yout: out std_logic_vec

37、tor(11 downto 0);end mult_add1;architecture behav of mult_add1 issignal cnt: integer range 0 to 5;signal tmpa,tmpb: std_logic_vector(11 downto 0);signal ytmp,p:std_logic_vector(23 downto 0);constant b0: std_logic_vector(11 downto 0):="000000001011"constant b1: std_logic_vector(11 downto 0)

38、:="000000010111"constant b2: std_logic_vector(11 downto 0):="000000001011"constant a1: std_logic_vector(11 downto 0):="011100100001"constant a2: std_logic_vector(11 downto 0):="110011000101"begintmpa<=b0 when cnt=0 elseb1 when cnt=1 elseb2 when cnt=2 elsea1

39、 when cnt=3 elsea2 when cnt=4 else (others=>'0')tmpb<=x0 when cnt=0 elsex1 when cnt=1 elsex2 when cnt=2 elsey1 when cnt=3 elsey2 when cnt=4 else (others=>'0')p<=tmpa * tmpb;process (clk_reg, clk_regbt,res);begin if res='1' then cnt<=0;ytmp<=(others=>'

40、0');yout<=(others=>'0');elsif clk_reg='1' thencnt<=0;ytmp<=(others=>'0');elsif (clk_regbt'event and clk_regbt='1') thenif cnt<5 then ytmp<=ytmp+p;cnt<=cnt+1;elsif (cnt=5) thenyout(11 downto 0)<=ytmp(21 downto 10);end if;end if;end process;end behave;4二阶乘法累加程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_signed.all

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论