資源描述:
《用狀態(tài)機實現(xiàn)的eda多功能數(shù)字鐘課程設(shè)計vhdl代碼》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、21ic中國電子網(wǎng):http://www.21ic.com/21ic電子技術(shù)論壇:http://bbs.21ic.com/設(shè)計并實現(xiàn)具有一定功能的數(shù)字鐘1、該數(shù)字鐘可以實現(xiàn)3個功能:計時功能、整點報時功能和重置時間功能,因此有3個功能:計時、重置時間、復(fù)位。2、對所有設(shè)計的小系統(tǒng)能夠正確分析;3、基于VHDL語言描述系統(tǒng)的功能;4、在quartus2環(huán)境中編譯通過;5、仿真通過并得到正確的波形;6、給出相應(yīng)的設(shè)計報告。其中計時模塊有4部分構(gòu)成:秒計時器(second)、分計時器(minute)、時計時器(hour)、日計時器(date)、月計時器(mouth)、年計時器
2、(year)1)秒計時器(second)是由一個60進制的計數(shù)器構(gòu)成的,具有清0、置數(shù)和計數(shù)功能。其中reset為清0信號,當reset為0時,秒計時器清0;set為置數(shù)信號,當set為0時,秒計時器置數(shù),置s1的值。clk為驅(qū)動秒計時器的時鐘,sec為秒計時器的輸出,ensec為秒計時器的進位信號,作為下一級的時鐘輸入信號。2)分計時器(minute)是由一個60進制的計數(shù)器構(gòu)成的,具有清0、置數(shù)和計數(shù)功能。其中reset為清0信號,當reset為0時,分計時器清0;set為置數(shù)信號,當set為0時,分計時器置數(shù),置m1的值。clkm為驅(qū)動分計時器工作的時鐘,與ens
3、ec相連接;min為分計時器的輸出;enmin為分計時器的進位信號,作為下一級的時鐘輸入信號。3)時計時器(hour)是由一個24進制的計數(shù)器構(gòu)成的,具有清0、置數(shù)和計數(shù)功能。其中reset為清0信號,當reset為0時,時計時器清0;set為置數(shù)信號,當set為0時,時計時器置數(shù),置h1的值。clkh為驅(qū)動時計時器工作的時鐘,與enmin相連接;hour為時計時器的輸出;enhour為時計時器的進位信號,作為下一級的時鐘輸入信號。4)日計時器(date1)是由一個60進制的計數(shù)器構(gòu)成的,具有清0、置數(shù)和計數(shù)功能。其中reset為清0信號,當reset為0時,星期計時器
4、清0;set為置數(shù)信號,當set為0時,星期計時器置數(shù),置d1的值。clkd為驅(qū)動星期計時器工作的時鐘,與enhour相連接;date為日計時器的輸出,endate為分計時器的進位信號,作為下一級的時鐘輸入信號,由于月份的天數(shù)存在天數(shù)不同,閏年2月的天數(shù)為28天等情況,還設(shè)計了一個潤年判別器,準確顯示時間。5)月計時器(mouth)是由一個60進制的計數(shù)器構(gòu)成的,具有清0、置數(shù)和計數(shù)功能。其中reset為清0信號,當reset為0時,星期計時器清0;set為置數(shù)信號,當set為0時,星期計時器置數(shù),置mou1的值,clkmou為驅(qū)動星期計時器工作的時鐘,與enday相連
5、接;mou為日計時器的輸出,enmou為分計時器的進位信號,作為下一級的時鐘輸入信號。6)計時器(year)是由一個60進制的計數(shù)器構(gòu)成的,具有清0、置數(shù)和計數(shù)功能。其中reset為清0信號,當reset為0時,星期計時器清0;set為置數(shù)信號,當set為0時,星期計時器置數(shù),置y1的值,clky為驅(qū)動星期計時器工作的時鐘,與enmou相連接;year為日計時器的輸出。VHDL程序1、屏幕切換模塊運用狀態(tài)機進行屏幕切換,分別顯示年月日,以及時分秒libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.
6、ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;21ic中國電子網(wǎng):http://www.21ic.com/21ic電子技術(shù)論壇: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