多功能數(shù)字鐘論文帶程序_第1頁(yè)
多功能數(shù)字鐘論文帶程序_第2頁(yè)
多功能數(shù)字鐘論文帶程序_第3頁(yè)
多功能數(shù)字鐘論文帶程序_第4頁(yè)
多功能數(shù)字鐘論文帶程序_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 真的是為了下載券沒辦法了,很多有用的文件都需要下載券,求幫忙,這份程序是真的靠譜。 EDA2多功能數(shù)字鐘 院系:學(xué)號(hào):912000720姓名: 同組人:指導(dǎo)老師:時(shí)間:2014 年 11 月 摘要本實(shí)驗(yàn)通過(guò)使用 Quartus7.1軟件,并結(jié)合verilog語(yǔ)言的知識(shí)設(shè)計(jì)多功能數(shù)字鐘,可以實(shí)現(xiàn)正常的時(shí)、分、秒的計(jì)數(shù)功能,分別由六個(gè)數(shù)碼管顯示計(jì)時(shí),可以利用開關(guān)實(shí)現(xiàn)系統(tǒng)的計(jì)時(shí)保持、清零和校分、校時(shí)的功能。同時(shí),該電路系統(tǒng)還可以完成在 59'53'', 59'55'', 59'57 '' 低音報(bào)時(shí), 59'59'

2、;' 高音報(bào)時(shí)的基本功能。在此基礎(chǔ)上,該電路還實(shí)現(xiàn)了設(shè)定鬧鐘,定時(shí)叫醒,和關(guān)閉鬧鐘的功能,在利用 Quartus進(jìn)行相應(yīng)的設(shè)計(jì)、仿真、調(diào)試后下載到EP3C25F324C8實(shí)驗(yàn)系統(tǒng)上,驗(yàn)證設(shè)計(jì)的正確性。關(guān)鍵詞QuartusII,數(shù)字鐘,Verilog HDL,分層設(shè)計(jì)AbstractThis experiment is based on Quartus 7.1,with the knowledge of Verilog HDL and system design, to design a multifunctional digital clock. The basic function

3、of the multifunctional digital clock is a 24-hour timer, and the exact time can be showed by six LED lights. Also we can achieve the functions like time keeping, clearing and time and week adjusting by using the switches. Beyond the basic function, I improved the multifunctional digital clock and it

4、 can beep in low frequency at 59'53'' , 59'55'' , 59'57 '' and in high frequency at 59'59''. Based on this the basic design, I also design extra functions of alarm, whose time can be adjusted by switch. It can also be turned off by switch. All these de

5、signing and simulating work are based on Quartus. After all the work finished on computer, I downloaded the final circuit to EP3C25F324C8 experiment system to test the accuracy of the design.Key wordsQuartus, Digital clock , Verilog HDL, Layered designing目 錄一、設(shè)計(jì)要求.3二、分層設(shè)計(jì)及其分工.3三、多功能數(shù)字時(shí)鐘頂層設(shè)計(jì).4四、各子模塊設(shè)

6、計(jì)原理及程序.54.1 分頻電路.54.2 計(jì)數(shù)器.64.3 計(jì)時(shí)電路.84.4 整點(diǎn)報(bào)時(shí).94.5 LED電路.104.6 定時(shí)鬧鐘.12五、程序下載、仿真與調(diào)試.135.1 管腳設(shè)定 .135.2 修改 Device&Pins Options 及重新編譯.135.3 程序下載及運(yùn)行結(jié)果.14六、實(shí)驗(yàn)中遇到的問(wèn)題及其應(yīng)對(duì)方案.15七、實(shí)驗(yàn)總結(jié)與感想.15八、參考文獻(xiàn).151、 設(shè)計(jì)要求1.1 設(shè)計(jì)基本部分要求能進(jìn)行正常的時(shí)、分、秒計(jì)時(shí)功能;分別由六個(gè)數(shù)碼管顯示時(shí)分秒的計(jì)時(shí);K1 是系統(tǒng)的使能開關(guān)(K1=0 正常工作,K1=1 時(shí)鐘保持不變);K2 是系統(tǒng)的清零開關(guān)(K2=0 正常工作

7、,K2=1 時(shí)鐘的分、秒全清零);K3 是系統(tǒng)的校分開關(guān)(K3=0 正常工作,K3=1 時(shí)可以快速校分);K4 是系統(tǒng)的校時(shí)開關(guān)(K4=0 正常工作,K4=1 時(shí)可以快速校分);使時(shí)鐘具有整點(diǎn)報(bào)時(shí)功能(當(dāng)時(shí)鐘計(jì)到 59'53''時(shí)開始報(bào)時(shí),在 59'53'', 59'55'',59'57 '' 時(shí)報(bào)時(shí)頻率為 500Hz, 59'59'' 時(shí)報(bào)時(shí)頻率為 1000Hz);1.2 設(shè)計(jì)提高部分要求鬧表設(shè)定功能;萬(wàn)年歷功能;自己添加其他功能;2、 分層設(shè)計(jì)及其分工2.1 分層設(shè)計(jì)為了

8、實(shí)現(xiàn)多功能數(shù)字鐘,我們采用了Verilog語(yǔ)言描述其功能,如圖2.1所示,為本實(shí)驗(yàn)的層次分析設(shè)計(jì)結(jié)構(gòu)圖。圖2.1 多功能數(shù)字鐘電路的層次模型Digital Clock直接或間接的調(diào)用了下面所有的函數(shù),規(guī)定了整個(gè)系統(tǒng)的輸入和輸出變量,是整個(gè)系統(tǒng)的Top-Level Entity。Top Frequency調(diào)用了48MHz分為1kHz的Original Frequency模塊和1kHz分為500Hz,1Hz的實(shí)用分頻模塊,構(gòu)成了整個(gè)電路的頻率基礎(chǔ)。Top Clock由3種計(jì)數(shù)器和一個(gè)二選一電路實(shí)現(xiàn),表示時(shí)的模24計(jì)數(shù)器和模12計(jì)數(shù)器在整個(gè)電路中同時(shí)保持計(jì)時(shí),通過(guò)二選一電路選擇其中一個(gè),顯示在LED

9、電路中。Radio是控制整點(diǎn)報(bào)時(shí)的電路,聲調(diào)由分頻電路的1kHz和500Hz提供。Alarm是鬧鐘控制電路,通過(guò)比較鬧鐘時(shí)間和計(jì)時(shí)時(shí)間得到需要叫醒的時(shí)刻,并且連續(xù)響鈴1min,但是它的程序與Bell合并,寫入了一個(gè)程序中。LED顯示電路,通過(guò)遠(yuǎn)大于1Hz的掃描頻率,在每1s內(nèi)掃描多次時(shí)、分、秒數(shù)值,并閃爍顯示在七段譯碼管上,由于掃描頻率很高,人眼是不會(huì)分辨出顯示時(shí)間在閃爍的。2.2 分工情況整個(gè)多功能時(shí)鐘的設(shè)計(jì)由鄭蕤荻和我(徐潔)共同完成,既有明確的分工以提高效率,也有互相幫助,互相指出錯(cuò)誤的合作過(guò)程,以下為我們兩個(gè)人明確分工的情況:*:Digital Clock, Top Clock, 2t

10、o1 MUX, Comparator, Bell, LED;*:Top Frequency, Original Frequency, Divided Frequency, All the counters and Radio.三、多功能數(shù)字時(shí)鐘頂層設(shè)計(jì)Digital Clock為整個(gè)多功能數(shù)字鐘系統(tǒng)的頂層設(shè)計(jì),它直接或間接的調(diào)用了所有的子程序,實(shí)現(xiàn)了將整個(gè)底層程序貫穿聯(lián)接的功能,規(guī)定了多功能數(shù)字鐘的輸入和輸出。輸入有:EP3C25F324C8的自帶晶振頻率48MHz,清零信號(hào),清零按鈕,12/24小時(shí)切換按鈕,開啟鬧鐘時(shí)間設(shè)置鍵,計(jì)時(shí)時(shí)設(shè)置鍵,計(jì)時(shí)分設(shè)置鍵,鬧鐘時(shí)設(shè)置鍵,鬧鐘分設(shè)置鍵以及鬧鐘關(guān)

11、閉按鍵;輸出有:LED管的位碼和段碼。Digital Clock,程序中簡(jiǎn)稱DC,verilog語(yǔ)言程序及各句含義如下:/Digital_Clockmodule DC(LED_Hr,LED_Min,LED_Sec,ALARM,_48MHz,AdjMinkey,AdjHrkey,SetMinkey, SetHrkey,CtrlBell,Mode1,Mode2,nCR,Segout,Seg_in,Count, SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8);input _48MHz; /系統(tǒng)的輸入時(shí)鐘信號(hào)input nCR; /系統(tǒng)總清零信號(hào)output SG1,SG2,SG3,

12、SG4,SG5,SG6,SG7,SG8; /select LEDoutput 7:0 LED_Hr,LED_Min,LED_Sec; /輸出變量,輸出8421BCD碼給顯示器wire 7:0 LED_Hr,LED_Min,LED_Sec; /說(shuō)明變量的類型wire _1kHzIN,_1Hz, _500Hz; /分頻器輸出信號(hào)input AdjMinkey, AdjHrkey; /校正計(jì)時(shí)器小時(shí)、分鐘的輸入按鍵wire 7:0 Hour,Hour_24,Hour_12,Minute,Second; /計(jì)時(shí)器的輸出信號(hào)input SetHrkey, SetMinkey; /設(shè)定鬧鐘小時(shí)、分鐘輸入按

13、鍵wire 7:0 Set_Hr,Set_Min; /設(shè)定的鬧鐘時(shí)間輸出信號(hào)wire ALARM_Radio; /仿電臺(tái)報(bào)時(shí)信號(hào)輸出wire ALARM_Clock; /鬧鐘的信號(hào)輸出output ALARM; /仿電臺(tái)或鬧鐘的聲音信號(hào)輸出input CtrlBell; /控制鬧鐘的聲音是否輸出的按鍵input Mode1,Mode2; /*控制顯示模式切換的按鍵 Mode1=1時(shí),顯示鬧鐘設(shè)定的時(shí)間,Mode1=0時(shí),顯示計(jì)時(shí)器的時(shí)間 Mode2=1時(shí),顯示24小時(shí)制,Mode2=0時(shí),顯示12小時(shí)制*/output6:0Segout; / 7-segment code output,seg

14、out6.0-gfedcbaoutput2:0Count;output 3:0Seg_in;Top_Frequency(_48MHz,CP,_1Hz,_500HzOut,nCR);top_clock U1(Hour,Minute,Second,_1Hz,nCR,AdjMinkey,AdjHrkey,Mode2); /計(jì)時(shí)主體電路LED2(CP,LED_Hr7:4,LED_Hr3:0,LED_Min7:4,LED_Min3:0,LED_Sec7:4, LED_Sec3:0,Segout,Seg_in,Count,SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8);Radio U2

15、(ALARM_Radio,Minute, Second,CP,_500Hz); /仿電臺(tái)整點(diǎn)報(bào)時(shí)Bell U3 (ALARM_Clock, Set_Hr,Set_Min,Hour,Minute,Second,SetHrkey,SetMinkey,CP,_500Hz,_1Hz,CtrlBell);/定時(shí)鬧鐘模塊assign ALARM=ALARM_Radio | ALARM_Clock; /揚(yáng)聲器總控制模塊/選擇要顯示的數(shù)碼送數(shù)模塊_2to1MUX MU2(LED_Hr,Mode1,Set_Hr,Hour); _2to1MUX MU3(LED_Min,Mode1,Set_Min,Minute);

16、_2to1MUX MU4(LED_Sec,Mode1,8'h00,Second);endmodule4、 各子模塊設(shè)計(jì)原理及程序4.1 分頻電路分頻模塊是為了實(shí)現(xiàn)EP3C25F324C8的自帶晶振頻率48MHz,往1kHz,500Hz以及1Hz的分頻,由于48MHz直接分到1kHz后,所有波形都沒有辦法在QuartusII仿真中直觀的看見,為了調(diào)試和檢驗(yàn)的方便,我們將48MHz分為1kHz稱為原始分頻,與后面的分頻斷開。下面是該電路的verilog程序以及其原理簡(jiǎn)介:/Top_Frequencymodule Top_Frequency(_48MHz,_1kHzIN,_1HzOut,_5

17、00HzOut,nCR);input _48MHz,nCR;output _1kHzIN,_500HzOut,_1HzOut;wire _1kHzIN;wire _1HzOut,_500HzOut;Original_Frequency U0(_1kHzIN,_48MHz,nCR);Divided_Frequency U1(_1HzOut,_500HzOut,nCR,_1kHzIN);endmodule/Original_Frequencymodule Original_Frequency (_1kHzIN,_48MHz,nCR);input _48MHz,nCR;output _1kHzIN;

18、supply1 Vdd;wire 19:0Q;wire EN1,EN2,EN3,EN4;counter10 EU0(Q3:0,nCR,Vdd,_48MHz);counter10 EU1(Q7:4,nCR,EN1,_48MHz);counter10 EU2(Q11:8,nCR,EN2,_48MHz);counter6 EU3(Q15:12,nCR,EN3,_48MHz);counter10 EU4(Q19:16,nCR,EN4,_48MHz);assign EN1=(Q3:0=4'h9);assign EN2=(Q7:4=4'h9)&(Q3:0=4'h9);ass

19、ign EN3=(Q11:8=4'h9)&(Q7:4=4'h9)&(Q3:0=4'h9);assign EN4=(Q15:12=4'h5)&(Q11:8=4'h9)&(Q7:4=4'h9)&(Q3:0=4'h9);assign _1kHzIN=Q18;endmodulemodule Divided_Frequency(_1HzOut,_500HzOut,nCR,_1kHzIN);input _1kHzIN,nCR;output _1HzOut,_500HzOut;supply1 Vdd; /定義Vd

20、d為高電平wire 11:0 Q; /計(jì)數(shù)器的輸出信號(hào)(中間變量)wire EN1,EN2; /計(jì)數(shù)器使能信號(hào)(中間變量)counter10 DU0(Q3:0,nCR,Vdd,_1kHzIN); /調(diào)用十進(jìn)制計(jì)數(shù)器模塊counter10 DU1(Q7:4,nCR,EN1,_1kHzIN);counter10 DU2(Q11:8,nCR,EN2,_1kHzIN);assign EN1=(Q3:0=4'h9);assign EN2=(Q7:4=4'h9)&(Q3:0=4'h9);assign _1HzOut=Q11;assign _500HzOut=Q0;endmo

21、dule4.2 計(jì)數(shù)器計(jì)數(shù)器是整個(gè)數(shù)字鐘電路的最基本模塊,在分頻、時(shí)鐘等處被多次調(diào)用,模60計(jì)數(shù)器是秒和分的計(jì)數(shù)器,模12和模24為時(shí)的計(jì)數(shù)器,分頻中則多次用到十分頻、八分頻以及六分頻,verilog語(yǔ)言程序及原理簡(jiǎn)介如下:/counter24.vmodule counter24(CounterH,CounterL,nCR,EN,CP); input CP,nCR,EN; /timing impulse CP,zero clearing singal nCR,enable singal EN output 3:0 CounterH,CounterL; reg 3:0 CounterH,Coun

22、terL;/*定義了兩個(gè)四位Reg型矢量,等效于8個(gè)變量(CounterH0、CounterH1、CounterH2、CounterH3),(CounterL0、CounterL1、CounterL2、CounterL3)*/ always(posedge CP or negedge nCR) /時(shí)鐘上升沿或清零信號(hào)跳變?yōu)榈碗娖綍r(shí),條件為真 begin if(nCR) CounterH,CounterL<= 8'h00; /nCR=0,異步清零 else if (EN) CounterH,CounterL<=CounterH,CounterL; /對(duì)使能信號(hào)無(wú)效的處理 el

23、se if (CounterH>2)|(CounterL>9)|(CounterH=2)&&(CounterL>=3) CounterH,CounterL<=8'h00; /對(duì)小時(shí)計(jì)時(shí)器出錯(cuò)的處理 else if (CounterH=2)&&(CounterL<3) begin CounterH<=CounterH; CounterL<=CounterL+1'b1;end /進(jìn)行20到23計(jì)數(shù) else if (CounterL=9) begin CounterH<=CounterH+1'b

24、1; CounterL<=4'b0000;end /小時(shí)十位進(jìn)位計(jì)數(shù) else begin CounterH<=CounterH; CounterL<=CounterL+1'b1;end /小時(shí)個(gè)位計(jì)數(shù) endendmodule/counter60.vmodule counter10(Q,nCR,EN,CP);input CP,nCR,EN;output 3:0 Q;reg 3:0 Q; /定義了一個(gè)四位Reg型矢量,等效于4個(gè)變量(Q0、Q1、Q2、Q3)always (posedge CP or negedge nCR) /時(shí)鐘上升沿或清零信號(hào)跳變?yōu)榈碗娖?/p>

25、時(shí),條件為真beginif(nCR) Q<=4'b0000; /nCR=0,計(jì)數(shù)器被異步清零else if (EN) Q<=Q; /EN=0,使能無(wú)效,暫停計(jì)數(shù)else if (Q=4'b1001) Q<=4'b0000; else Q<=Q+1'b1; /計(jì)數(shù)器増1計(jì)數(shù)endendmodulemodule counter6(Q,nCR,EN,CP);input CP,nCR,EN;output 3:0 Q;reg 3:0 Q;always(posedge CP or negedge nCR)beginif (nCR) Q<=4&#

26、39;b0000; /nCR=0,計(jì)數(shù)器被異步清零else if (EN) Q<=Q; /EN=0,暫停計(jì)數(shù)else if (Q=4'b0101) Q<=4'b0000;else Q<=Q+1'b1; /計(jì)數(shù)器増1計(jì)數(shù)end endmodulemodule counter60(Counter,nCR,EN,CP);input CP,nCR,EN;output 7:0 Counter; /模六十計(jì)數(shù)器的輸出信號(hào)wire 7:0 Counter; /輸出為8421BCD碼wire ENP; /計(jì)數(shù)器十位的使能信號(hào)(中間變量)counter10 UC0 (C

27、ounter3:0,nCR,EN,CP); /計(jì)數(shù)器的個(gè)數(shù)counter6 UC1 (Counter7:4,nCR,ENP,CP); /計(jì)數(shù)器的十位assign ENP=(Counter3:0=4'h9); /產(chǎn)生計(jì)數(shù)器十位的使能信號(hào)endmodule/counter12module counter12(CntH,CntL,nCR,EN,CP); input CP,nCR,EN; /timing impulse CP,zero clearing singal nCR,enable singal EN output 3:0 CntH,CntL; reg 3:0 CntH,CntL; al

28、ways(posedge CP or negedge nCR) begin if(nCR) CntH,CntL<= 8'h00; else if (EN) CntH,CntL<=CntH,CntL; else if (CntH>1)|(CntL>9)|(CntH=1)&&(CntL>=1) CntH,CntL<=8'h00; else if (CntH=1)&&(CntL<1) begin CntH<=CntH; CntL<=CntL+1'b1;end else if (CntL=9)

29、 begin CntH<=CntH+1'b1; CntL<=4'b0000;end else begin CntH<=CntH; CntL<=CntL+1'b1;end endendmodule4.3 計(jì)時(shí)電路計(jì)時(shí)電路將秒往分的進(jìn)位,以及分往時(shí)的進(jìn)位寫入了程序,再利用分頻得出的1Hz頻率作為秒的CP信號(hào),使得整個(gè)時(shí)鐘電路得以正常工作。Verilog程序及其原理簡(jiǎn)介如下:/top_clock.vmodule top_clock (Hour,Minute,Second,_1Hz,nCR,AdjMinkey,AdjHrkey,Mode2); input

30、 _1Hz,nCR,AdjMinkey,AdjHrkey; output7:0 Hour,Minute,Second; wire7:0 Hour,Hour_24,Hour_12, Minute, Second; supply1 Vdd; /定義Vdd為高電平 wire MinCP,HrCP; /分別為分鐘,小時(shí)計(jì)數(shù)器時(shí)鐘信號(hào)的中間變量 input Mode2; /*控制顯模式切換的按鍵 Mode2=1時(shí),顯示24小時(shí)制,Mode2=0時(shí),顯示12小時(shí)制*/Hour:Minute:Second countercounter60 UT1(Second,nCR,Vdd,_1Hz); counter6

31、0 UT2(Minute,nCR,Vdd,MinCP); counter24 UT3(Hour_247:4,Hour_243:0,nCR,Vdd,HrCP); counter12 UT4(Hour_127:4,Hour_123:0,nCR,Vdd,HrCP); _2to1MUX MU1(Hour,Mode2,Hour_24,Hour_12);assign MinCP= AdjMinkey ? _1Hz : (Second=8'h59);/產(chǎn)生分鐘計(jì)數(shù)器時(shí)鐘信號(hào)。AdjMinkey=1,校正分鐘;AdjMinkey=0分鐘正常計(jì)時(shí)assign HrCP= AdjHrkey ? _1Hz

32、: (Minute,Second= 16'h5959);/產(chǎn)生小時(shí)計(jì)數(shù)器時(shí)鐘信號(hào)。AdjHrkey=1,小時(shí)分鐘;AdjHrkey=0小時(shí)正常計(jì)時(shí)endmodule4.4 整點(diǎn)報(bào)時(shí)整點(diǎn)報(bào)時(shí)電路的關(guān)鍵就在于一個(gè)case語(yǔ)句,在符合條件時(shí),輸出特定頻率的聲音。Verilog程序及其原理簡(jiǎn)介如下:/Radio.vmodule Radio (ALARM_Radio,Minute,Second,_1kHzIN,_500Hz);input _1kHzIN,_500Hz; /定義輸入端口變量input 7:0 Minute,Second; output ALARM_Radio; /定義輸出端口變量r

33、eg ALARM_Radio; /說(shuō)明變量的類型always (Minute or Second) /generate alarm signalif (Minute=8'h59) case (Second)8'h53,8'h55,8'h57:ALARM_Radio=_500Hz;8'h59:ALARM_Radio=_1kHzIN;default :ALARM_Radio=1'b0;endcaseelse ALARM_Radio=1'b0;endmodule4.5 LED電路LED顯示電路,通過(guò)遠(yuǎn)大于1Hz的掃描頻率,在每1s內(nèi)掃描多次時(shí)、

34、分、秒數(shù)值,并閃爍顯示在七段譯碼管上,由于掃描頻率很高,人眼是不會(huì)分辨出顯示時(shí)間在閃爍的。其程序及原理簡(jiǎn)介如下:module LED2(CP,LED_HrH3:0,LED_HrL3:0,LED_MinH3:0,LED_MinL3:0,LED_SecH3:0,LED_SecL3:0,Segout,Seg_in,Count,SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8);input CP; /1kHz clockinput 3:0 LED_HrH,LED_HrL,LED_MinH,LED_MinL,LED_SecH,LED_SecL;output6:0Segout; / 7-se

35、gment code output,segout6.0-gfedcbaoutput SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8; /select LEDoutput 3:0Seg_in;output 2:0Count;reg SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8;reg 6:0Segout;reg 2:0Count; /internal 3-bit counterreg 3:0Seg_in; /4-bit binary code/select LED0LED5 displayalways(posedge CP) /CP=1kHz case(Coun

36、t) 3'b000:begin SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8=8'b01111111; /LED0 display Seg_in=LED_HrH3:0; Count=Count+1; /Count=1 end 3'b001:begin SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8=8'b10111111; /LED1 display Seg_in=LED_HrL3:0; Count=Count+1; /Count=2 end 3'b010:begin SG1,SG2,SG3,SG4,SG5,SG6,SG

37、7,SG8=8'b11011111; /LED2 display Seg_in=LED_MinH3:0; Count=Count+1; /Count=3 end 3'b011: begin SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8=8'b11101111; /LED3 display Seg_in=LED_MinL3:0; Count=Count+1; /Count=4 end 3'b100:begin SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8=8'b11110111; /LED4 display Seg_in

38、=LED_SecH3:0; Count=Count+1; /Count=5 end 3'b101:begin SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8=8'b11111011; /LED5 display Seg_in=LED_SecL3:0; Count=Count+1; /Count=6 end 3'b110:begin SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8=8'b11111111; /LED4 display Seg_in=LED_SecH3:0; Count=Count+1; /Count=7 end 3&

39、#39;b111:begin SG1,SG2,SG3,SG4,SG5,SG6,SG7,SG8=8'b11111111; /LED5 display Seg_in=LED_SecL3:0; Count=Count+1; /Count=0 end endcase/ BCD Code=>7 Segment Code(ag)always(Seg_in) case(Seg_in) /gfedcba4'b0000:Segout=7'b1000000;4'b0001:Segout=7'b1111001;4'b0010:Segout=7'b0100

40、100;4'b0011:Segout=7'b0110000;4'b0100:Segout=7'b0011001;4'b0101:Segout=7'b0010010;4'b0110:Segout=7'b0000010;4'b0111:Segout=7'b1111000;4'b1000:Segout=7'b0000000;4'b1001:Segout=7'b0010000;4'b1010:Segout=7'b0001000;4'b1011:Segout=7'

41、;b0000011;4'b1100:Segout=7'b0100111;4'b1101:Segout=7'b0100001;4'b1110:Segout=7'b0000110;4'b1111:Segout=7'b0001110;default: Segout= 7'b0100011;endcaseendmodule4.6 定時(shí)鬧鐘定時(shí)鬧鐘的關(guān)鍵部分在于比較器,如果鬧鐘所定的時(shí)間與計(jì)時(shí)的時(shí)間相同時(shí),就以奇數(shù)秒低,偶數(shù)秒高的頻率發(fā)出鬧鈴聲響,可由按鍵關(guān)閉。Verilog程序及其基本原理如下:module Bell (ALARM

42、_Clock,Set_Hr,Set_Min,Hour,Minute,Second,SetHrkey,SetMinkey,_1kHzIN,_500Hz,_1Hz,CtrlBell);output ALARM_Clock;output 7:0Set_Hr,Set_Min; /設(shè)定的鬧鈴時(shí)間wire7:0Set_Hr,Set_Min;wire ALARM_Clock; /鬧鈴輸出信號(hào) input _1kHzIN,_500Hz,_1Hz; /定義輸入端口變量input SetHrkey,SetMinkey; /設(shè)定鬧鐘小時(shí)、分鐘的輸入鍵input CtrlBell; /控制鬧鐘的時(shí)間是否輸出的按鍵in

43、put 7:0Hour,Minute,Second; /定義內(nèi)部節(jié)點(diǎn)信號(hào)supply1 Vdd; /定義Vdd為高電平wire HrH_EQU,HrL_EQU,MinH_EQU,MinL_EQU;/比較器的內(nèi)部信號(hào)wire Time_EQU; /相等比較電路的輸出/鬧鐘設(shè)定模塊(Set Hour &Minute counter)/60進(jìn)制分鐘比較器:用于鬧鐘設(shè)定分鐘counter60 SU1(Set_Min,Vdd,SetMinkey,_1Hz); /24進(jìn)制小時(shí)計(jì)數(shù)器:用于鬧鐘設(shè)定小時(shí)counter24 SU2(Set_Hr7:4,Set_Hr3:0,Vdd,SetHrkey,_1H

44、z);/比較鬧鐘的設(shè)定時(shí)間和計(jì)數(shù)器的當(dāng)前時(shí)間是否相等_4bitcomparator SU4(HrH_EQU,Set_Hr7:4,Hour7:4);_4bitcomparator SU5(HrL_EQU,Set_Hr3:0,Hour3:0);_4bitcomparator SU6(MinH_EQU,Set_Min7:4,Minute7:4);_4bitcomparator SU7(MinL_EQU,Set_Min3:0,Minute3:0);/鬧鐘聲音控制信號(hào)assign Time_EQU= (HrH_EQU && HrL_EQU && MinH_EQU &

45、;& MinL_EQU);assign ALARM_Clock=CtrlBell ? (Time_EQU && (Second0=1'b1)&&_500Hz)|(Second0= 1'b0)&&_1kHzIN):1'b0;endmodule /_4bitcomparator.vmodule _4bitcomparator (EQU,A,B);/4-bit comparator input3:0 A,B; output EQU=(A=B);endmodule5、 程序下載、仿真與調(diào)試編譯好的程序經(jīng)過(guò)管腳設(shè)定后即可下載到 FPGA 芯片進(jìn)行調(diào)試。5.1 管腳設(shè)定具體的管腳設(shè)定如下:5.2 修改 Device&Pins Options 及重新編譯管腳分配保存好后,選擇 Assignments 選項(xiàng)中的 De

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論