欢迎来到天天文库
浏览记录
ID:47709297
大小:32.55 KB
页数:3页
时间:2020-01-20
《EDA实验二 含异步清零和同步使能的十进制加减法计数器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、EDA实验二 含异步清零和同步使能的十进制加减法计数器一、实验目的1.了解加减计数器的工作原理。2.进一步熟悉QUARTUSII软件的使用方法和VHDL输入。3.熟悉仿真时序设定。二、实验设备1.PC机 一台;四、实验内容完成一个0~99计数器,有四个输入信号:复位reset、使能enable、时钟clk和加减选择sel,三路输出信号:计数值、进位和借位信号。要求每来一个时钟信号,加或减1(sel=‘0’时执行加,sel=‘1’时执行减);计数值为99时再加1,输出进位信号,并且计数值归
2、零;计数值为0时再减1,输出借位信号,并且计数值变成99(即0~99循环计数);复位信号reset有效时(低电平有效)计数值清0,使能信号enable有效时(高电平有效)计数器才进行工作,否则不进行累加或累减。五、实验步骤1.打开QUARTUSII软件,新建一个VHDL文件。2.输入程序代码,点击保存时,系统会提示建立一个新的工程(Project),按照QUARTUSII的提示建立好工程;3.按照实验原理和自己的想法,在VHDL编辑窗口调整完成VHDL程序;4.对自己编写的VHDL程序进行编译,对程
3、序的错误进行修改;5.进行仿真,附录:电路实体定义可参照如下:ENTITYcounterISPORT(clk,reset,enable,sel:INSTD_LOGIC;--定义时钟、异步复位、同步使能、选择信号cq:OUTSTD_LOGIC_VECTOR(6downto0);--计数值c1out:OUTSTD_LOGIC;--进位信号c2out:OUTSTD_LOGIC--借位信号);ENDcounter;VHDL程序代码如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.A
4、LL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYcounterISPORT(clk,reset,enable,sel:INSTD_LOGIC;--定义时钟、异步复位、同步使能、选择信号cq:OUTSTD_LOGIC_VECTOR(6downto0);--计数值c1out:OUTSTD_LOGIC;--进位信号c2out:OUTSTD_LOGIC--借位信号);ENDcounter;ARCHITECTUREcounter99OFcounterISBEGINPROCESS
5、(clk,reset,enable,sel)VARIABLEcot:STD_LOGIC_VECTOR(6downto0);BEGINIFreset='0'THENcot:=(OTHERS=>'0');ELSIFclk'EVENTANDclk='1'THENIFenable='1'THENIFsel='0'THENc2out<='0';IFcot<99THENcot:=cot+1;c1out<='0';ELSEcot:=(OTHERS=>'0');c1out<='1';ENDIF;ELSIFsel='
6、1'THENc1out<='0';IFcot>0THENcot:=cot-1;c2out<='0';ELSEcot:="1100011";c2out<='1';ENDIF;ENDIF;ENDIF;ENDIF;cq<=cot;ENDPROCESS;ENDcounter99;仿真结果如下:
此文档下载收益归作者所有