欢迎来到天天文库
浏览记录
ID:22543284
大小:276.50 KB
页数:8页
时间:2018-10-30
《实验二模可变计数器doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、·南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合■设计□创新实验日期:2010.10.14实验二模可变计数器的设计一、实验目的1.学习计数器的VHDL设计、波形仿真和硬件测试2.学会自己设计程序二、实验内容与要求1.计设置一位控制模的位M,要求M=0:模23计数;当M=1:模109计数。2.计数结果用三位数码管显示,显示BCD码;3.给出此项设计的仿真波形;4.应用实验装置验证此计数器的功能。三、实验思路1、要求分别实现模23和模109的计数,因些我分别用Q1、Q2、Q3代表个位十位和百位。还有一个控制模的位
2、M,当M为0时实现模23计数,只用到Q1和Q2分别为个位和十位;当M为1时实现模109计数,用Q1、Q2、Q3分别为个位十位和百位计数。由于端口不能参与运算,因些在结构体中定义了cq1、cq2、cq3三个信号,分别用来对应Q1Q2Q3;在程序的最后用端口接收信号即可。2.由于要求用三个数码管显示,每个数码管的引脚是四根,因此不要求我们译码,因此定义三个端口Q1Q2Q3类型为标准逻辑矢量,位宽为4;这样个位十位和百位每个位就是由四位电平构成的BCD码。在结构体中定义的信号cq1cq2cq3也需要是标准逻辑矢量位宽为4.3、然后就
3、是进程敏感信号为RSTENM三个,当RST为低电平,EN为高电平时则计数,否则不计数。4、计数时分两种情况(1)当M为0时,实现模23计数,当个位为9则向十位进位,并个位清0,当个位小于9,则个位自身加1;计数到22时当下一个时钟上升沿到来时就清0重计。(2)当M为1时,实现模109计数,当个位为9则向十位进位,并个位清0,当个位小于9,则个位自身加1;当个位和十位均为9时,就向百位进位,同时个位和十位自身清0;计数到108时当下一个时钟上升沿到来时就清0重计。8四、实验程序(部分程序摘自书上模10计数器设计,课本113页)L
4、IBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;--设计库和程序包名,其中将标准逻辑矢量--数据。Unsigned.all的用处是允许当遇到+号时,调用+号的算符重载函数。ENTITYmodeIS--定义实体PORT(M,CLK,RST,EN:INSTD_LOGIC;--定义端口Q1,Q2,Q3:OUTSTD_LOGIC_VECTOR(3DOWNTO0));--定义端口类型为标准逻辑矢量数据ENDmode;ARCHITECTUREAIRU
5、OFmodeIS--结构体表达式SIGNALcq1:STD_LOGIC_VECTOR(3DOWNTO0);--由于端口不能参与运算,定义信号SIGNALcq2:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALcq3:STD_LOGIC_VECTOR(3DOWNTO0);beginPROCESS(M,CLK,RST)BEGINIFRST='1'THENcq1<="0000";cq2<="0000";cq3<="0000";--复位ELSIFCLK'EVENTANDCLK='1'THEN--时钟上升沿到来IFEN
6、='1'THEN--允许信号enCASEMIS--分模23和模109讨论WHEN'0'=>IFcq1=9THENcq1<="0000";cq2<=cq2+1;--个位到9进位清0,十位加1ELSEcq1<=cq1+1;--如果个位不是9,则自加1ENDIF;IFcq2=2andcq1=2THENcq1<="0000";cq2<="0000";--计数到22时再遇到时钟上升沿就清0ELSIFcq2>2THENcq1<="0000";cq2<="0000";--在切换由模109切换到模22时保证不会出错--即比如原来是模109计数
7、计到45然后M由1变为0则需先将45清0再变为模22计数ENDIF;WHEN'1'=>IFcq2=9andcq1=9THENcq1<="0000";cq2<="0000";cq3<=cq3+1;--如果个位和十位都为9,则个位和十位都清0,百位加1ELSIFcq1=9THENcq1<="0000";cq2<=cq2+1;--个位到9进位清0,十位加18ELSEcq1<=cq1+1;--如果个位不是9,则自加1ENDIF;IFcq3=1andcq2=0andcq1=8THENcq1<="0000";cq2<="0000";cq3
8、<="0000";--计数到108时再遇到时钟上升沿就清0ENDIF;ENDCASE;ENDIF;ENDIF;ENDPROCESS;Q3<=cq3;--端口接收信号Q2<=cq2;Q1<=cq1;ENDARCHITECTURE;--结束结构体五、实验步骤1.打开quartus
此文档下载收益归作者所有