资源描述:
《用状态机实现的eda多功能数字钟课程设计vhdl代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、21ic中国电子网:http://www.21ic.com/21ic电子技术论坛:http://bbs.21ic.com/设计并实现具有一定功能的数字钟1、该数字钟可以实现3个功能:计时功能、整点报时功能和重置时间功能,因此有3个功能:计时、重置时间、复位。2、对所有设计的小系统能够正确分析;3、基于VHDL语言描述系统的功能;4、在quartus2环境中编译通过;5、仿真通过并得到正确的波形;6、给出相应的设计报告。其中计时模块有4部分构成:秒计时器(second)、分计时器(minute)、时计时器(hour)、日计时器(date)、月计时器(mouth)、年计时器
2、(year)1)秒计时器(second)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,秒计时器清0;set为置数信号,当set为0时,秒计时器置数,置s1的值。clk为驱动秒计时器的时钟,sec为秒计时器的输出,ensec为秒计时器的进位信号,作为下一级的时钟输入信号。2)分计时器(minute)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,分计时器清0;set为置数信号,当set为0时,分计时器置数,置m1的值。clkm为驱动分计时器工作的时钟,与ens
3、ec相连接;min为分计时器的输出;enmin为分计时器的进位信号,作为下一级的时钟输入信号。3)时计时器(hour)是由一个24进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,时计时器清0;set为置数信号,当set为0时,时计时器置数,置h1的值。clkh为驱动时计时器工作的时钟,与enmin相连接;hour为时计时器的输出;enhour为时计时器的进位信号,作为下一级的时钟输入信号。4)日计时器(date1)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,星期计时器
4、清0;set为置数信号,当set为0时,星期计时器置数,置d1的值。clkd为驱动星期计时器工作的时钟,与enhour相连接;date为日计时器的输出,endate为分计时器的进位信号,作为下一级的时钟输入信号,由于月份的天数存在天数不同,闰年2月的天数为28天等情况,还设计了一个润年判别器,准确显示时间。5)月计时器(mouth)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,星期计时器清0;set为置数信号,当set为0时,星期计时器置数,置mou1的值,clkmou为驱动星期计时器工作的时钟,与enday相连
5、接;mou为日计时器的输出,enmou为分计时器的进位信号,作为下一级的时钟输入信号。6)计时器(year)是由一个60进制的计数器构成的,具有清0、置数和计数功能。其中reset为清0信号,当reset为0时,星期计时器清0;set为置数信号,当set为0时,星期计时器置数,置y1的值,clky为驱动星期计时器工作的时钟,与enmou相连接;year为日计时器的输出。VHDL程序1、屏幕切换模块运用状态机进行屏幕切换,分别显示年月日,以及时分秒libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.
6、ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;21ic中国电子网:http://www.21ic.com/21ic电子技术论坛:http://bbs.21ic.com/--Uncommentthefollowinglinestousethedeclarationsthatare--providedforinstantiatingXilinxprimitivecomponents.--libraryUNISIM;--useUNISIM.VComponents.all;entitymux3isPort(clk,Reset,sel:instd_logi
7、c;int1,int2,int3,int4,int5,int6,int7,int8,int9,int10,int11,int12:INSTD_LOGIC_VECTOR(3DOWNTO0);--rstmusta1,a2,a3,a4,a5,a6:outstd_logic_vector(3downto0));endmux3;architectureBehavioralofmux3isTYPEstatesIS(st0,st1,st2,st3,st4,st5,st6,st7);SIGNALSTX:states;beginCOM1:PROCESS(S