版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1、 課程設(shè)計(jì)目標(biāo) 1. 熟悉并掌握verilog 硬件描述語言2. 熟悉quartus 軟件開發(fā)環(huán)境3. 學(xué)會(huì)設(shè)計(jì)大中規(guī)模的數(shù)字電路,并領(lǐng)會(huì)其中的設(shè)計(jì)思想 二、課程設(shè)計(jì)實(shí)現(xiàn)的功能(1) 設(shè)計(jì)一個(gè)數(shù)碼管實(shí)時(shí)顯示時(shí)、分、秒的數(shù)字時(shí)鐘(24小時(shí)顯示模式);(2) 可以調(diào)節(jié)小時(shí),分鐘。(3) 能夠進(jìn)行24小時(shí)和12小時(shí)的顯示切換。(4) 可以設(shè)置任意時(shí)刻鬧鐘,并且有開關(guān)鬧鐘功能。(5) 有整點(diǎn)報(bào)時(shí)功能,幾點(diǎn)鐘LED燈閃亮幾下。(6) 有復(fù)位按鍵,復(fù)位后時(shí)間從零開始計(jì)時(shí),但鬧鐘設(shè)置時(shí)間不變。3、 設(shè)計(jì)原理:1、總原理框圖:譯碼顯示模塊切換12進(jìn)制顯示復(fù)位分鐘校正小時(shí)校正分頻模塊計(jì)數(shù)模塊是輸出整點(diǎn)報(bào)時(shí)信
2、號(hào)到達(dá)整點(diǎn)輸出鬧鐘信號(hào)是否到鬧鐘時(shí)間設(shè)置鬧鐘分鐘設(shè)置鬧鐘小時(shí)模式選擇模塊是2、 各個(gè)子模塊設(shè)計(jì): (1)、分頻模塊 :分頻模塊的作用主要是要獲得各種頻率的時(shí)鐘信號(hào)。輸入信號(hào)為50MHZ的信號(hào),要想獲得1HZ的信號(hào)作為秒脈沖計(jì)時(shí),則要對(duì)50MHZ信號(hào)分頻。通過計(jì)數(shù)的方式,當(dāng)計(jì)數(shù)從0開始到24 999999時(shí),1HZ信號(hào)取反一次,計(jì)數(shù)又從0開始,如此循環(huán),就可以得到1HZ脈沖信號(hào)。對(duì)于其他信號(hào)也是如此,只是計(jì)數(shù)值不一樣,得到的分頻信號(hào)不同。部分代碼如下: always(posedge _50MHZ or negedge nCR)begin if(nCR) begin Q1=32d24999999)
3、 begin Q1=32d0; _1HZ=_1HZ; end else begin Q1=Q1+1d1; end(2) 、計(jì)數(shù)模塊 : 秒計(jì)數(shù):在1HZ脈沖下進(jìn)行秒計(jì)時(shí),當(dāng)計(jì)時(shí)達(dá)到59秒后,在下一個(gè)脈沖來臨變0,并發(fā)出一個(gè)脈沖信號(hào),可供下面分鐘計(jì)數(shù)作為輸入脈沖信號(hào)計(jì)時(shí)。分鐘計(jì)數(shù):在輸入脈沖下,分鐘開始計(jì)時(shí),當(dāng)計(jì)時(shí)達(dá)到59后,在下一個(gè)脈沖來臨變0,并發(fā)出一個(gè)脈沖,供小時(shí)計(jì)數(shù)的輸入脈沖新號(hào)。小時(shí)計(jì)數(shù):脈沖信號(hào)來臨時(shí),計(jì)數(shù)加1,達(dá)到23后在下一個(gè)脈沖的作用下清零,從新計(jì)時(shí)。如果有復(fù)位信號(hào),則時(shí)分秒全部清零。部分代碼如下: module second(cp,reset,mode_flag,BT2,SH
4、,SL,co);input cp,reset,BT2;input3:0mode_flag;output co=1b0;/輸出脈沖信號(hào)reg co;output 3:0SL,SH; /輸出秒計(jì)時(shí)的十位、各位reg3:0SH,SL; reg7:0cnt;always(posedge cp or negedge reset )beginif(!reset) begin /有復(fù)位,清零 cnt=8d0; SH=4d0; SL=4d0;endelse if(mode_flag=4b0010)&(!BT2) begin/ 如果分鐘調(diào)節(jié),秒清零 cnt=8d0; SH=4d0; SL=4d0;end if(
5、cnt=8d59) /計(jì)時(shí)達(dá)到59,下一個(gè)脈沖下從新計(jì)時(shí) begin cnt=8d0; SH=4d0; SL=4d0; co=1b1; end else begin co=1b0; cnt=cnt+8d1; SL=cnt%10; /秒十位 SH=cnt/10; /秒各位 end end end endmodule 分計(jì)時(shí)和小時(shí)計(jì)時(shí)代碼和上述類似,不再舉出。second u4(_1HZ,reset,mode_flag,Keydone2,SH24,SL24,co1);minute u5(co11,reset,MH24,ML24,co2);hour u6(co22,reset,HH24,HL24);
6、 (3) 、模式選擇模塊 :同過一個(gè)模式檔按鍵MODE,按一下產(chǎn)生對(duì)應(yīng)一種模式mode_flag,并且可以循環(huán)。在不同的模式下可以進(jìn)行不同的操作。其中mode_flag=40000為正常顯示計(jì)時(shí),mode_flag=40001為小時(shí)調(diào)鐘模式,mode_flag=400010為分鐘調(diào)鐘模,mode_flag=40011為鬧鐘小時(shí)設(shè)置模式,mode_flag=40100為鬧鐘分鐘設(shè)置模式。模式產(chǎn)生:module mode (MODE,mode_flag); input MODE ; output 3:0mode_flag; reg 3:0mode_flag; always (negedge MOD
7、E )begin /如果檢測(cè)到有按鍵按下mode_flag = mode_flag+ 4b1; /模式值加1if(mode_flag = 4b0101) /到最后一個(gè)模式后返回第一的模式mode_flag = 2b0; ndEndmodule模式選擇:module mode_choose(mode_flag,BT2,_250ms,co1,co2,set_co2,co11,co22,co111,co222); input 3:0mode_flag; /輸入模式方式,響應(yīng)對(duì)應(yīng)操作 input BT2,_250ms,co1,co2,set_co2; /調(diào)節(jié)按鈕,時(shí)鐘信號(hào),正常計(jì)時(shí)分鐘脈沖信號(hào), 正常
8、計(jì)時(shí)小時(shí)脈沖信號(hào),鬧鐘設(shè)置分鐘進(jìn)位信號(hào)。 output co11,co22,co111,co222; / 分鐘脈沖信號(hào),小時(shí)脈沖信號(hào),鬧鐘設(shè)置分鐘脈沖信號(hào),鬧鐘設(shè)置小時(shí)脈沖信號(hào); supply1 Vdd; reg co11,co22,co111,co222; always(mode_flag)begin case (mode_flag) 4b0001: begin if(BT2) co22=_250ms; /小時(shí)調(diào)鐘模式,有按鍵,則脈沖為250ms else begin co22=co2; /沒有按鍵,正常計(jì)時(shí) co11=co1; end end 4b0010: begin if(BT2) b
9、egin co11=_250ms; /小時(shí)調(diào)鐘模式,有按鍵,則脈沖為250ms co22=co2;end else begin co11=co1; /沒有按鍵,正常計(jì)時(shí) co22=co2; end end 4b0011: begin co22=co2; co11=co1; if(BT2) co222=_250ms; / 鬧鐘小時(shí)設(shè)置信號(hào) else co222=set_co2;end 4b0100: begin co22=co2; co11=co1; if(BT2) co111=_250ms; /鬧鐘分鐘設(shè)置信號(hào) else co111=Vdd; end default :begin co11=c
10、o1; co22=co2; end endcase end endmodule (4) 、任意鬧鐘模塊 : 一、設(shè)置鬧鐘:當(dāng)對(duì)應(yīng)于鬧鐘設(shè)置模式mode_flag=40011和4b0100時(shí),有設(shè)置信號(hào)輸入時(shí),則開始設(shè)置。對(duì)應(yīng)代碼:module set_naozhong(co111,co222,set_HH,set_HL,set_MH,set_ML,co2); input co111,co222; / 鬧鐘分鐘,小時(shí)設(shè)置信號(hào) output 3:0set_HH,set_HL,set_MH,set_ML; /輸出相應(yīng)的鬧鐘設(shè)置時(shí)間 supply1 Vdd; output co2; minute (c
11、o111,Vdd,set_MH,set_ML,co2);hour (co222,Vdd,set_HH,set_HL); endmodule 二、鬧鐘響應(yīng):當(dāng)正常計(jì)時(shí)達(dá)到鬧鐘設(shè)置得時(shí)間后,通過比較二者之間的時(shí)間,相等,則產(chǎn)生一個(gè)鬧鐘允許響應(yīng)信號(hào),在鬧鐘開關(guān)打開和鬧鐘允許響應(yīng)信號(hào)同時(shí)滿足的情況下,則產(chǎn)生鬧鐘響應(yīng)信號(hào),并送到相應(yīng)的鬧鐘設(shè)備LED燈。如果鬧鐘檔處于關(guān)閉狀態(tài),則不會(huì)產(chǎn)生鬧鐘響應(yīng)信號(hào)。響應(yīng)代碼如下:module naozhong (Alarm_ctr,_1HZ,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal); inpu
12、t Alarm_ctr,_1HZ; input 3:0 set_HH,set_HL,set_MH,set_ML; input 3:0 HH24,HL24,MH24,ML24; output nao_signal; reg signal; reg nao_signal; reg 16:0 Q; /計(jì)數(shù),調(diào)節(jié)鬧鐘響應(yīng)時(shí)間長度 always(posedge _1HZ)begin if(signal)&(Alarm_ctr)begin if(set_HH=HH24)&(set_HL=HL24)&(set_MH=MH24)&(set_ML=ML24)signal=1b1 /達(dá)到鬧鐘設(shè)置時(shí)間,產(chǎn)生鬧鐘允許
13、響應(yīng)信號(hào) else signal=1b0;end /未達(dá)到,不產(chǎn)生 else if(signal)&(Alarm_ctr)begin /鬧鐘開關(guān)打開和鬧鐘允許響應(yīng)信號(hào)同時(shí)滿足 nao_signal=8d720)begin /響應(yīng)時(shí)間完畢,關(guān)閉鬧鐘允許響應(yīng)信號(hào) Q=16b0; signal=1b0;end end else begin signal=1b0; nao_signal=1b0;end end endmodule (5) 、整點(diǎn)報(bào)時(shí)模塊 :檢測(cè)分鐘和秒鐘計(jì)數(shù)是否都達(dá)到了59,然后再下一個(gè)秒脈沖的作用下發(fā)出整點(diǎn)報(bào)時(shí)信號(hào),送到LED。并開始計(jì)數(shù),計(jì)數(shù)達(dá)到報(bào)時(shí)信號(hào)響應(yīng)次數(shù)后,終止報(bào)時(shí)信號(hào)。部
14、分代碼如下: always(posedge _500ms)begin if(SH*10+SL)=8d59)&(MH*10+ML)=8d59)begin Q1=7b0; bao=1b1;end /允許報(bào)時(shí) else if(Q110*HH+HL)&(bao) begin bao_signal=bao_signal; / 產(chǎn)生報(bào)時(shí)信號(hào) Q1=Q1+bao_signal; /響一次計(jì)數(shù)加一 end else if(Q1=(10*HH+HL) /報(bào)時(shí)次數(shù)達(dá)到整點(diǎn)時(shí)數(shù),終止信號(hào) bao=1b0; else begin bao_signal=1b0; end End(6) 、1224小時(shí)切換模塊:將24小時(shí)
15、切換成12小時(shí),并存入相應(yīng)的寄存器。如果撥上切換顯示檔,則切換顯示。 相應(yīng)代碼如下: module hour12_24(HH24,HL24,HH12,HL12); input 3:0 HH24,HL24; output 3:0 HH12,HL12; reg 3:0 HH12,HL12; always(HH24 or HL24)begin if(HH24*10+HL24)=12) begin HH12=HH24; HL12=13)&(HH24*10+HL24)=19) begin HH12=4d0; HL12=19)&(HH24*10+HL24)=21) begin HH12=4d0; HL12
16、=HL24+4d8; end else begin HH12=HH24-4d1; HL12=HL24-4d2; end end endmodule (7) 、譯碼顯示模塊:一、數(shù)碼管顯示:通過傳入響應(yīng)的4位十進(jìn)制數(shù),運(yùn)用case語句轉(zhuǎn)換輸出相應(yīng)的8位二進(jìn)制顯示碼,送入數(shù)碼管顯示。 代碼如下: module SEG7_LUT(oSEG1,iDIG); input3:0iDIG; /輸入要顯示的數(shù) output7:0oSEG1; reg7:0oSEG; wire 7:0oSEG1; always (iDIG) begincase(iDIG) 4h0: oSEG = 8b00111111;4h1:
17、oSEG = 8b00000110;4h2: oSEG = 8b01011011; 4h3: oSEG = 8b01001111; 4h4: oSEG = 8b01100110;4h5: oSEG = 8b01101101;4h6: oSEG = 8b01111101; 4h7: oSEG = 8b00000111;4h8: oSEG = 8b01111111;4h9: oSEG = 8b01101111;endcase end assign oSEG1=oSEG; /由于是共陰極數(shù)碼管,低電平顯示,所以取反Endmodule 二、LED顯示 :module display_LED(s_out
18、,s_int);input3:0s_int;output3:0s_out;reg3:0s_out;wire 3:0s_out1;always (s_int)begincase(s_int) 4h0:s_out=4b0000;4h1:s_out=4b0001;4h2:s_out=4b0010;4h3:s_out=4b0011;4h4:s_out=4b0100;4h5:s_out=4b0101;4h6:s_out=4b0110;4h7:s_out=4b0111;4h8:s_out=4b1000;4h9:s_out=4b1001;endcaseendassign s_out1=s_out;Endmo
19、dule設(shè)計(jì)過程常見問題:(1) 要注意編寫程序的過程中begin和end配對(duì)問題,類似于C語言中的括號(hào)匹配問題,在編寫計(jì)數(shù)模塊時(shí)編譯不通過,最后檢查出是缺少一個(gè)end結(jié)束符號(hào),經(jīng)修改后編譯通過。(2)Verilog HDL語言編寫時(shí)的語法問題。在最初的計(jì)時(shí)模塊的程序設(shè)計(jì)中,將小時(shí)、分鐘的調(diào)節(jié)信號(hào)放在了另外的一個(gè)always語句塊中,編譯無法通過,經(jīng)查閱資料,在Verilog HDL語言的編寫中應(yīng)該注意不同的always語句塊不可以對(duì)同一個(gè)變量進(jìn)行操作,即一個(gè)變量不可以經(jīng)過兩個(gè)always語句塊操作。將對(duì)小時(shí)和分鐘調(diào)節(jié)信號(hào)的操作與計(jì)時(shí)放在同一個(gè)語句塊中,編譯通過。(3) 數(shù)碼管剛開始時(shí)顯示于實(shí)
20、際計(jì)數(shù)不一樣,主要是由譯碼錯(cuò)誤造成的原因。數(shù)碼管一開始不變化,說明計(jì)數(shù)沒有進(jìn)行,是由于分鐘的輸入脈沖信號(hào)錯(cuò)誤引起。心得體會(huì)這次的課程設(shè)計(jì)結(jié)束了,在這次的設(shè)計(jì)中我學(xué)會(huì)了很多東西。首先是對(duì)Verilog HDL語言的設(shè)計(jì)思想有了深入理解,將這種自頂向下的設(shè)計(jì)理念運(yùn)用于實(shí)踐中,設(shè)計(jì)多功能數(shù)字鐘,突出了Verilog HDL作為硬件描述語言的良好可讀性和可移植性,對(duì)上學(xué)期所學(xué)的而理論知識(shí)有了深刻的理解。其次是對(duì)Verilog HDL語言的語法熟悉,在這次的課程設(shè)計(jì)中,我學(xué)習(xí)到很多Verilog HDL語言的語法知識(shí),比如在兩個(gè)不同的語句塊中不能對(duì)同一個(gè)變量進(jìn)行操作,比如在用Verilog HDL語言中
21、編寫程序時(shí)要注意begin和end語句的匹配問題,在使用Verilog HDL語言時(shí)不可以使用中文注釋等等。對(duì)于這種語言的學(xué)習(xí)也有了很大的幫助。最后是設(shè)計(jì)作品時(shí)的設(shè)計(jì)邏輯和設(shè)計(jì)思想,在選擇不同的系統(tǒng)方案時(shí)要綜合考慮,選擇最優(yōu)方案。各個(gè)模塊的實(shí)現(xiàn)也要考慮綜合情況而制定出最符合實(shí)際情況的實(shí)現(xiàn)方案,方案間要進(jìn)行對(duì)比、實(shí)踐,最終確定。在這次的課程設(shè)計(jì)中我不僅學(xué)習(xí)到有關(guān)程序編寫以及設(shè)計(jì)方面的邏輯思維,對(duì)系統(tǒng)功能的實(shí)現(xiàn)也有了較為深入的了解,對(duì)各模塊的調(diào)試等也學(xué)習(xí)到不少東西,總之,從這次設(shè)計(jì)中學(xué)到很多東西,也鞏固了我的理論學(xué)習(xí)。附代碼:總模塊:module clock(clk,reset,MODE,Alar
22、m_ctr,BT2,H12_24,DSH,DSL,DMH,DML,DHH,DHL,dian,bao_signal,nao_signal); input clk;/50MHz input reset,MODE,Alarm_ctr,BT2,H12_24;/復(fù)位鍵,模式選擇按鈕,鬧鐘開關(guān)檔,調(diào)節(jié)按 鈕 ,1224小時(shí)切換檔 output 7:0DMH,DML,DHH,DHL; /4個(gè)數(shù)碼管顯示輸入信號(hào) output dian,bao_signal,nao_signal; /時(shí)分間隔點(diǎn),報(bào)時(shí)信號(hào),鬧鐘信號(hào) output 3:0DSH,DSL; /秒鐘輸出信號(hào) wire 3:0 SH,SL,MH,ML,
23、HH,HL; wire 3:0 LED_mode; wire 3:0 HH12,HL12,HH24,HL24,MH24,ML24,SH24,SL24; wire 3:0 set_HH,set_HL,set_MH,set_ML; wire _1HZ,_10ms,_250ms,_500ms; wire Keydone1; wire Keydone2; wire co1,co11,co111,co2,co22,co222,set_co2; wire 3:0mode_flag; assign dian=1b0; devide_f u1(_1HZ,_10ms,_250ms,_500ms,reset,cl
24、k); /分頻,得到4種不同頻率的時(shí)鐘信號(hào)key_press u2(_10ms,MODE,Keydone1); /模式檔按鈕去抖動(dòng)key_press u20(_10ms,BT2,Keydone2); /調(diào)節(jié)按鈕去除抖動(dòng)mode u3(Keydone1,mode_flag); /通過模式按鈕產(chǎn)生不同模式second u4(_1HZ,reset,mode_flag,Keydone2,SH24,SL24,co1); /秒計(jì)時(shí)minute u5(co11,reset,MH24,ML24,co2); /分計(jì)時(shí)hour u6(co22,reset,HH24,HL24); /小時(shí)計(jì)時(shí) SEG7_LUT u7
25、(DML,ML); /4個(gè)數(shù)碼管顯示SEG7_LUT u8(DMH,MH);SEG7_LUT u9(DHL,HL);SEG7_LUT u10(DHH,HH);display_LED u11(DSL,SL); /LED燈顯示秒或模式燈display_LED u12(DSH,SH);mode_choose u13(mode_flag,Keydone2,_250ms,co1,co2,set_co2,co11,co22,co111,co222); /選擇模式進(jìn)行不同操作 hour12_24 u14(HH24,HL24,HH12,HL12); /12-24小時(shí)切換boshi u15(HH,HL,MH,M
26、L,SH,SL,_1HZ,bao_signal); /整點(diǎn)報(bào)時(shí)set_naozhong u16(co111,co222,set_HH,set_HL,set_MH,set_ML,set_co2); /設(shè)置鬧鐘時(shí)間Naozhong u17(Alarm_ctr,_500ms,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal); /任意鬧鐘響應(yīng)LUT_mode u18(mode_flag,H12_24,HH12,HL12,HH24,HL24,MH24,ML24,set_HH,set_HL,set_MH,set_ML,MH,ML,HH,
27、HL);/通過模式選擇數(shù)碼管顯示 LED_mode u19(mode_flag,SH24,SL24,SH,SL); 模式選擇LED燈顯示Endmodule分頻模塊:module devide_f(_1HZ,_10ms,_250ms,_500ms,nCR,_50MHZ); input _50MHZ,nCR; output _1HZ,_10ms,_250ms,_500ms; reg _1HZ,_10ms,_250ms,_500ms; reg31:0Q1,Q2,Q3,Q4; always(posedge _50MHZ or negedge nCR)begin if(nCR) begin Q1=32d
28、0; Q2=32d0; Q3=32d0; Q4=32d24999999) begin Q1=32d249999) begin Q2=32d6299999) begin Q4=32d12499999) begin Q3=32d0; _500ms=_500ms; end else begin Q1=Q1+1d1; Q2=Q2+1d1; Q3=Q3+1d1; Q4=Q4+1d1; end end endmodule計(jì)時(shí)模塊:module second(cp,reset,mode_flag,BT2,SH,SL,co);input cp,reset,BT2;input3:0mode_flag;outpu
29、t co=1b0;reg co;output 3:0SL,SH;reg3:0SH,SL;reg7:0cnt;always(posedge cp or negedge reset )beginif(!reset) begin SL=4b0;SH=4b0;cnt=8b0;endelse if(mode_flag=4b0010)&(!BT2) begin SL=4b0;SH=4b0;cnt=8b0;endelsebegin if(cnt=8d59) begin cnt=8d0; SH=4d0; SL=4d0; co=1b1; end else begin co=1b0; cnt=cnt+8d1; S
30、L=cnt%10; SH=cnt/10; end end end endmodule module minute (cp,reset,MH,ML,co);input cp ,reset;output co=1b0;output 3:0ML,MH;reg3:0MH,ML;reg7:0cnt;reg co;always(posedge cp or negedge reset)beginif(!reset) begin ML=4b0;MH=4b0;cnt=8b0;endelsebegin if(cnt=8d59) begin cnt=8d0; MH=4d0; ML=4d0; co=1b1; end
31、else begin co=1b0; cnt=cnt+8d1; ML=cnt%10; MH=cnt/10; end end end endmodule module hour (cp,reset,HH,HL);input cp,reset;output 3:0HL,HH;reg3:0HH,HL;reg7:0cnt;always(posedge cp or negedge reset)beginif(!reset) begin HL=4b0;HH=4b0;cnt=8b0;end elsebegin if(cnt=8d23) begin cnt=8d0; HH=4d0; HL=4d0; end e
32、lse begin cnt=cnt+8d1; HL=cnt%10; HH=cnt/10; end end end Endmodule模式選擇模塊:module key_press(_10ms,KEY,Keydone);input KEY,_10ms;output Keydone;reg dout1,dout2,dout3;always (posedge _10ms)begin dout1 = KEY; dout2 = dout1; dout3 = dout2; endassign Keydone = (dout1 | dout2 | dout3);endmodule module mode (
33、MODE,mode_flag); input MODE ; output 3:0mode_flag; reg 3:0mode_flag; always (negedge MODE ) beginmode_flag = mode_flag+ 4b1;if(mode_flag = 4b0101)mode_flag = 2b0; endendmodule module LED_mode (mode_flag,SH24,SL24,SH,SL); input 3:0 mode_flag; input 3:0 SH24,SL24; output 3:0SH,SL; reg 3:0SH,SL; always
34、(mode_flag )begin case (mode_flag) 4b0000:begin SH=SH24; SL=SL24;end 4b0001: begin SH=4b0000; SL=4b0001;end 4b0010: begin SH=4b0000; SL=4b0010;end 4b0011: begin SH=4b0000; SL=4b0100;end 4b0100: begin SH=4b0000; SL=4b1000;end default : begin SH=SH24; SL=SL24;end endcase end endmodule Module LUT_mode
35、(mode_flag,H12_24,HH12,HL12,HH24,HL24,MH24,ML24,set_HH,set_HL,set_MH,set_ML,MH,ML,HH,HL);input 3:0 HH12,HL12,HH24,HL24,MH24,ML24;input 3:0 set_HH,set_HL,set_MH,set_ML;input 3:0 mode_flag;input H12_24;output 3:0 MH,ML,HH,HL;reg 3:0 MH,ML,HH,HL;always(mode_flag or H12_24) begin case (mode_flag) 4b0011
36、, 4b0100: begin HH=set_HH; HL=set_HL; MH=set_MH; ML=set_ML; end default:begin if(H12_24)begin HH=HH12; HL=HL12; MH=MH24; ML=ML24;end else begin HH=HH24; HL=HL24; MH=MH24; ML=ML24;end end endcase end endmodule module mode_choose(mode_flag,BT2,_250ms,co1,co2,set_co2,co11,co22,co111,co222); input 3:0mo
37、de_flag; input BT2,_250ms,co1,co2,set_co2; output co11,co22,co111,co222; supply1 Vdd; reg co11,co22,co111,co222; always(mode_flag)begin case (mode_flag) 4b0001: begin if(BT2) co22=_250ms; else begin co22=co2; co11=co1; end end 4b0010: begin if(BT2) begin co11=_250ms; co22=co2;end else begin co11=co1
38、; co22=co2; end end 4b0011: begin co22=co2; co11=co1; if(BT2) co222=_250ms; else co222=set_co2;end 4b0100: begin co22=co2; co11=co1; if(BT2) co111=_250ms; else co111=Vdd; end default :begin co11=co1; co22=co2; end endcase end endmodule 鬧鐘模塊 :module set_naozhong(co111,co222,set_HH,set_HL,set_MH,set_ML,co2); input co111,co222; output 3:0set_HH,set_HL,set_MH,set_ML; supply1 Vdd; output co2; minute (co111,Vdd,set_MH,set_ML,co2);h
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年供應(yīng)鏈金融融資咨詢與解決方案合同2篇
- 二零二五年度木材采購與木材市場(chǎng)調(diào)研分析合同2篇
- 二零二五年度環(huán)保型打井安全協(xié)議書編制指南4篇
- 2025年度家居裝飾門店承包經(jīng)營協(xié)議4篇
- 二零二五年度高端瑜伽館會(huì)員服務(wù)合同3篇
- 2025年度新材料研發(fā)企業(yè)廠長聘用與產(chǎn)業(yè)化合同4篇
- 二零二五年礦山資產(chǎn)轉(zhuǎn)讓與安全生產(chǎn)監(jiān)督協(xié)議3篇
- 二零二五年度留學(xué)家庭陪伴與情感支持合同4篇
- 二零二五年度綠色建筑項(xiàng)目承包施工中介協(xié)議3篇
- 二零二五年度煤泥處理與固體廢棄物綜合利用合同4篇
- 2024年社區(qū)警務(wù)規(guī)范考試題庫
- 2024年食用牛脂項(xiàng)目可行性研究報(bào)告
- 消防安全隱患等級(jí)
- 溫室氣體(二氧化碳和甲烷)走航監(jiān)測(cè)技術(shù)規(guī)范
- 部編版一年級(jí)語文下冊(cè)第一單元大單元教學(xué)設(shè)計(jì)
- 《保單檢視專題》課件
- 北京地鐵13號(hào)線
- 2023山東春季高考數(shù)學(xué)真題(含答案)
- 職業(yè)衛(wèi)生法律法規(guī)和標(biāo)準(zhǔn)培訓(xùn)課件
- 高二下學(xué)期英語閱讀提升練習(xí)(二)
- 民事訴訟證據(jù)清單模板
評(píng)論
0/150
提交評(píng)論