資源描述:
《用狀態(tài)機(jī)實(shí)現(xiàn)的EDA多功能數(shù)字鐘課程設(shè)計(jì)VHDL代碼.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、設(shè)計(jì)并實(shí)現(xiàn)具有一定功能的數(shù)字鐘1、該數(shù)字鐘可以實(shí)現(xiàn)3個(gè)功能:計(jì)時(shí)功能、整點(diǎn)報(bào)時(shí)功能和重置時(shí)間功能,因此有3個(gè)功能:計(jì)時(shí)、重置時(shí)間、復(fù)位。2、對(duì)所有設(shè)計(jì)的小系統(tǒng)能夠正確分析;3、基于VHDL語言描述系統(tǒng)的功能;4、在quartus2環(huán)境中編譯通過;5、仿真通過并得到正確的波形;6、給出相應(yīng)的設(shè)計(jì)報(bào)告。其中計(jì)時(shí)模塊有4部分構(gòu)成:秒計(jì)時(shí)器(second)、分計(jì)時(shí)器(minute)、時(shí)計(jì)時(shí)器(hour)、日計(jì)時(shí)器(date)、月計(jì)時(shí)器(mouth)、年計(jì)時(shí)器(year)1)秒計(jì)時(shí)器(second)是由一個(gè)60進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)和計(jì)數(shù)功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),秒
2、計(jì)時(shí)器清0;set為置數(shù)信號(hào),當(dāng)set為0時(shí),秒計(jì)時(shí)器置數(shù),置s1的值。clk為驅(qū)動(dòng)秒計(jì)時(shí)器的時(shí)鐘,sec為秒計(jì)時(shí)器的輸出,ensec為秒計(jì)時(shí)器的進(jìn)位信號(hào),作為下一級(jí)的時(shí)鐘輸入信號(hào)。2)分計(jì)時(shí)器(minute)是由一個(gè)60進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)和計(jì)數(shù)功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),分計(jì)時(shí)器清0;set為置數(shù)信號(hào),當(dāng)set為0時(shí),分計(jì)時(shí)器置數(shù),置m1的值。clkm為驅(qū)動(dòng)分計(jì)時(shí)器工作的時(shí)鐘,與ensec相連接;min為分計(jì)時(shí)器的輸出;enmin為分計(jì)時(shí)器的進(jìn)位信號(hào),作為下一級(jí)的時(shí)鐘輸入信號(hào)。3)時(shí)計(jì)時(shí)器(hour)是由一個(gè)24進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)和計(jì)數(shù)
3、功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),時(shí)計(jì)時(shí)器清0;set為置數(shù)信號(hào),當(dāng)set為0時(shí),時(shí)計(jì)時(shí)器置數(shù),置h1的值。clkh為驅(qū)動(dòng)時(shí)計(jì)時(shí)器工作的時(shí)鐘,與enmin相連接;hour為時(shí)計(jì)時(shí)器的輸出;enhour為時(shí)計(jì)時(shí)器的進(jìn)位信號(hào),作為下一級(jí)的時(shí)鐘輸入信號(hào)。4)日計(jì)時(shí)器(date1)是由一個(gè)60進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)和計(jì)數(shù)功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),星期計(jì)時(shí)器清0;set為置數(shù)信號(hào),當(dāng)set為0時(shí),星期計(jì)時(shí)器置數(shù),置d1的值。clkd為驅(qū)動(dòng)星期計(jì)時(shí)器工作的時(shí)鐘,與enhour相連接;date為日計(jì)時(shí)器的輸出,endate為分計(jì)時(shí)器的進(jìn)位信號(hào),作為下一
4、級(jí)的時(shí)鐘輸入信號(hào),由于月份的天數(shù)存在天數(shù)不同,閏年2月的天數(shù)為28天等情況,還設(shè)計(jì)了一個(gè)潤(rùn)年判別器,準(zhǔn)確顯示時(shí)間。5)月計(jì)時(shí)器(mouth)是由一個(gè)60進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)和計(jì)數(shù)功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),星期計(jì)時(shí)器清0;set為置數(shù)信號(hào),當(dāng)set為0時(shí),星期計(jì)時(shí)器置數(shù),置mou1的值,clkmou為驅(qū)動(dòng)星期計(jì)時(shí)器工作的時(shí)鐘,與enday相連接;mou為日計(jì)時(shí)器的輸出,enmou為分計(jì)時(shí)器的進(jìn)位信號(hào),作為下一級(jí)的時(shí)鐘輸入信號(hào)。6)計(jì)時(shí)器(year)是由一個(gè)60進(jìn)制的計(jì)數(shù)器構(gòu)成的,具有清0、置數(shù)和計(jì)數(shù)功能。其中reset為清0信號(hào),當(dāng)reset為0時(shí),星期計(jì)
5、時(shí)器清0;set為置數(shù)信號(hào),當(dāng)set為0時(shí),星期計(jì)時(shí)器置數(shù),置y1的值,clky為驅(qū)動(dòng)星期計(jì)時(shí)器工作的時(shí)鐘,與enmou相連接;year為日計(jì)時(shí)器的輸出。VHDL程序1、屏幕切換模塊運(yùn)用狀態(tài)機(jī)進(jìn)行屏幕切換,分別顯示年月日,以及時(shí)分秒libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;--Uncommentthefollowinglinestousethedeclarationsthatare--providedforinstantiatingXilin
6、xprimitivecomponents.--libraryUNISIM;--useUNISIM.VComponents.all;entitymux3isPort(clk,Reset,sel:instd_logic;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;architectureBehavioralofmux3isTYPE
7、statesIS(st0,st1,st2,st3,st4,st5,st6,st7);SIGNALSTX:states;beginCOM1:PROCESS(STX,int1,int2,int3,int4,int5,int6,int7,int8,int9,int10,int11,int12)BEGIN--決定轉(zhuǎn)換狀態(tài)的進(jìn)程CASESTXISWHENst0=>a1<=int1;a2<=int2;a3<=