版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課程設(shè)計(jì)目標(biāo)熟悉并掌握verilog硬件描述語言熟悉quartus軟件開發(fā)環(huán)境學(xué)會(huì)設(shè)計(jì)大中規(guī)模的數(shù)字電路,并領(lǐng)會(huì)其中的設(shè)計(jì)思想二、課程設(shè)計(jì)實(shí)現(xiàn)的功能設(shè)計(jì)一個(gè)數(shù)碼管實(shí)時(shí)顯示時(shí)、分、秒的數(shù)字時(shí)鐘(24小時(shí)顯示模式);可以調(diào)節(jié)小時(shí),分鐘。能夠進(jìn)行24小時(shí)和12小時(shí)的顯示切換??梢栽O(shè)置任意時(shí)刻鬧鐘,并且有開關(guān)鬧鐘功能。有整點(diǎn)報(bào)時(shí)功能,幾點(diǎn)鐘LED燈閃亮幾下。有復(fù)位按鍵,復(fù)位后時(shí)間從零開始計(jì)時(shí),但鬧鐘設(shè)置時(shí)間不變。設(shè)計(jì)原理:1、總原理框圖:譯碼顯示模塊譯碼顯示模塊切換12進(jìn)制顯示復(fù)位分鐘校正小時(shí)校正分頻模塊切換12進(jìn)制顯示復(fù)位分鐘校正小時(shí)校正分頻模塊計(jì)數(shù)模塊 是計(jì)數(shù)模塊輸出整點(diǎn)報(bào)時(shí)信號(hào)到達(dá)整點(diǎn) 輸出整點(diǎn)報(bào)時(shí)信號(hào)到達(dá)整點(diǎn)輸出鬧鐘信號(hào)是否到鬧鐘時(shí)間設(shè)置鬧鐘分鐘設(shè)置鬧鐘小時(shí)模式選擇模塊 輸出鬧鐘信號(hào)是否到鬧鐘時(shí)間設(shè)置鬧鐘分鐘設(shè)置鬧鐘小時(shí)模式選擇模塊 是 附全部代碼:總模塊:moduleclock(clk,reset,MODE,Alarm_ctr,BT2,H12_24,DSH,DSL,DMH,DML,DHH,DHL,dian,bao_signal,nao_signal);inputclk;//50MHzinputreset,MODE,Alarm_ctr,BT2,H12_24;//復(fù)位鍵,模式選擇按鈕,鬧鐘開關(guān)檔,調(diào)節(jié)按鈕,12—24小時(shí)切換檔output[7:0]DMH,DML,DHH,DHL;//4個(gè)數(shù)碼管顯示輸入信號(hào)outputdian,bao_signal,nao_signal;//時(shí)分間隔點(diǎn),報(bào)時(shí)信號(hào),鬧鐘信號(hào)output[3:0]DSH,DSL;//秒鐘輸出信號(hào)wire[3:0]SH,SL,MH,ML,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;wireKeydone1;wireKeydone2;wireco1,co11,co111,co2,co22,co222,set_co2;wire[3:0]mode_flag;assigndian=1'b0;devide_fu1(_1HZ,_10ms,_250ms,_500ms,reset,clk);//分頻,得到4種不同頻率的時(shí)鐘信號(hào)key_pressu2(_10ms,MODE,Keydone1);//模式檔按鈕去抖動(dòng)key_pressu20(_10ms,BT2,Keydone2);//調(diào)節(jié)按鈕去除抖動(dòng)modeu3(Keydone1,mode_flag);//通過模式按鈕產(chǎn)生不同模式secondu4(_1HZ,reset,mode_flag,Keydone2,SH24,SL24,co1);//秒計(jì)時(shí)minuteu5(co11,reset,MH24,ML24,co2);//分計(jì)時(shí)houru6(co22,reset,HH24,HL24);//小時(shí)計(jì)時(shí)SEG7_LUTu7(DML,ML);//4個(gè)數(shù)碼管顯示SEG7_LUTu8(DMH,MH);SEG7_LUTu9(DHL,HL);SEG7_LUTu10(DHH,HH);display_LEDu11(DSL,SL);//LED燈顯示秒或模式燈display_LEDu12(DSH,SH);mode_chooseu13(mode_flag,Keydone2,_250ms,co1,co2,set_co2,co11,co22,co111,co222);//選擇模式進(jìn)行不同操作hour12_24u14(HH24,HL24,HH12,HL12);//12--24小時(shí)切換boshiu15(HH,HL,MH,ML,SH,SL,_1HZ,bao_signal);//整點(diǎn)報(bào)時(shí)set_naozhongu16(co111,co222,set_HH,set_HL,set_MH,set_ML,set_co2);//設(shè)置鬧鐘時(shí)間Naozhongu17(Alarm_ctr,_500ms,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal);cnt<=8'd0;SH<=4'd0;SL<=4'd0;co<=1'b1;endelsebeginco=1'b0;cnt=cnt+8'd1;SL<=cnt%10;SH<=cnt/10;endendendendmodulemoduleminute(cp,reset,MH,ML,co);inputcp,reset;outputco=1'b0;output[3:0]ML,MH;reg[3:0]MH,ML;reg[7:0]cnt;regco;always@(posedgecpornegedgereset)beginif(!reset)beginML=4'b0;MH=4'b0;cnt<=8'b0;endelsebeginif(cnt==8'd59)begincnt<=8'd0;MH<=4'd0;ML<=4'd0;co<=1'b1;endelsebeginco=1'b0;cnt=cnt+8'd1;ML<=cnt%10;MH<=cnt/10;endendendendmodulemodulehour(cp,reset,HH,HL);inputcp,reset;output[3:0]HL,HH;reg[3:0]HH,HL;reg[7:0]cnt;always@(posedgecpornegedgereset)beginif(!reset)beginHL=4'b0;HH=4'b0;cnt<=8'b0;endelsebeginif(cnt==8'd23)begincnt<=8'd0;HH<=4'd0;HL<=4'd0;endelsebegincnt=cnt+8'd1;HL<=cnt%10;HH<=cnt/10;endendendEndmodule模式選擇模塊:同過一個(gè)模式檔按鍵MODE,按一下產(chǎn)生對(duì)應(yīng)一種模式mode_flag,并且可以循環(huán)。在不同的模式下可以進(jìn)行不同的操作。其中mode_flag=4'0000為正常顯示計(jì)時(shí),mode_flag=4'0001為小時(shí)調(diào)鐘模式,mode_flag=4'00010為分鐘調(diào)鐘模,mode_flag=4'0011為鬧鐘小時(shí)設(shè)置模式,mode_flag=4'0100為鬧鐘分鐘設(shè)置模式。modulekey_press(_10ms,KEY,Keydone);inputKEY,_10ms;outputKeydone;regdout1,dout2,dout3;always@(posedge_10ms)begindout1<=KEY;dout2<=dout1;dout3<=dout2;endassignKeydone=(dout1|dout2|dout3);endmodulemodulemode(MODE,mode_flag);inputMODE;output[3:0]mode_flag;reg[3:0]mode_flag;always@(negedgeMODE)beginmode_flag=mode_flag+4'b1;if(mode_flag==4'b0101)mode_flag=2'b0;endendmodule moduleLED_mode(mode_flag,SH24,SL24,SH,SL);input[3:0]mode_flag;input[3:0]SH24,SL24;output[3:0]SH,SL;reg[3:0]SH,SL;always@(mode_flag)begincase(mode_flag)4'b0000:beginSH<=SH24;SL<=SL24;end4'b0001:beginSH<=4'b0000;SL<=4'b0001;end4'b0010:beginSH<=4'b0000;SL<=4'b0010;end4'b0011:beginSH<=4'b0000;SL<=4'b0100;end4'b0100:beginSH<=4'b0000;SL<=4'b1000;enddefault:beginSH<=SH24;SL<=SL24;endendcaseendendmoduleModuleLUT_mode(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;inputH12_24;output[3:0]MH,ML,HH,HL;reg[3:0]MH,ML,HH,HL;always@(mode_flagorH12_24)begincase(mode_flag)4'b0011,4'b0100:beginHH<=set_HH;HL<=set_HL;MH<=set_MH;ML<=set_ML;enddefault:beginif(H12_24)beginHH<=HH12;HL<=HL12;MH<=MH24;ML<=ML24;endelsebeginHH<=HH24;HL<=HL24;MH<=MH24;ML<=ML24;endendendcaseendendmodulemodulemode_choose(mode_flag,BT2,_250ms,co1,co2,set_co2,co11,co22,co111,co222);input[3:0]mode_flag;inputBT2,_250ms,co1,co2,set_co2;outputco11,co22,co111,co222;supply1Vdd;regco11,co22,co111,co222;always@(mode_flag)begincase(mode_flag)4'b0001:beginif(~BT2)co22<=_250ms;elsebeginco22<=co2;co11<=co1;endend4'b0010:beginif(~BT2)beginco11<=_250ms;co22<=co2;endelsebeginco11<=co1;co22<=co2;endend4'b0011:beginco22<=co2;co11<=co1;if(~BT2)co222<=_250ms;elseco222<=set_co2;end4'b0100:beginco22<=co2;co11<=co1;if(~BT2)co111<=_250ms;elseco111<=Vdd;enddefault:beginco11<=co1;co22<=co2;endendcaseendendmodule鬧鐘模塊:moduleset_naozhong(co111,co222,set_HH,set_HL,set_MH,set_ML,co2);inputco111,co222;output[3:0]set_HH,set_HL,set_MH,set_ML;supply1Vdd;outputco2;minute(co111,Vdd,set_MH,set_ML,co2);hour(co222,Vdd,set_HH,set_HL);endmodulemodulenaozhong(Alarm_ctr,_1HZ,set_HH,set_HL,set_MH,set_ML,HH24,HL24,MH24,ML24,nao_signal);inputAlarm_ctr,_1HZ;input[3:0]set_HH,set_HL,set_MH,set_ML;input[3:0]HH24,HL24,MH24,ML24;outputnao_signal;regsignal;regnao_signal;reg[16:0]Q;always@(posedge_1HZ)beginif((~signal)&&(Alarm_ctr))beginif((set_HH==HH24)&&(set_HL==HL24)&&(set_MH==MH24)&&(set_ML==ML24))signal<=1'b1;elsesignal<=1'b0;endelseif((signal)&&(Alarm_ctr))beginnao_signal<=~nao_signal;Q=Q+nao_signal;if(Q>=8'd720)beginQ<=16'b0;signal<=1'b0;endendelsebeginsignal<=1'b0;nao_signal<=1'b0;endendendmodule12——24小時(shí)切換模塊:modulehour12_24(HH24,HL24,HH12,HL12);input[3:0]HH24,HL24;output[3:0]HH12,HL12;reg[3:0]HH12,HL12;regflag;always@(HH24orHL24)beginif((HH24*10+HL24)<=12)beginHH12<=HH24;HL12<=HL24;endelseif(((HH24*10+HL24)>=13)&&((HH24*10+HL24)<=19))beginHH12<=4'd0;HL12<=HL24-4'd2;endelseif(((HH24*10+HL24)>=19)&&((HH24*10+HL24)<=21))beginHH12<=4'd0;HL12<=HL24+4'd8;endelsebeginHH12<=HH24-4'd1;HL12<=HL24-4'd2;endendendmodule整點(diǎn)報(bào)時(shí)模塊:moduleboshi(HH,HL,MH,ML,SH,SL,_500ms,bao_signal);input[3:0]HH,HL,MH,ML,SH,SL;input_500ms;outputbao_signal;regbao_signal;reg[7:0]Q1,Q2;regbao;always@(posedge_500ms)beginif(((SH*10+SL)==8'd59)&&((MH*10+ML)==8'd59))beginQ1<=7'b0;bao<=1'b1;endelseif((Q1<10*HH+HL)&&(bao))beginbao_signal<=~bao_signal;Q1<=Q1+bao_signal;endelseif(Q1==(10*HH+HL))bao<=1'b0;elsebeginbao_signal<=1'b0;endendendmodule譯碼顯示模塊:一、數(shù)碼管顯示:通過傳入響應(yīng)的4位十進(jìn)制數(shù),運(yùn)用case語句轉(zhuǎn)換輸出相應(yīng)的8位二進(jìn)制顯示碼,送入數(shù)碼管顯示。二、LED顯示:moduledisplay_LED(s_out,s_int);input[3:0]s_int;output[3:0]s_out;reg[3:0]s_out;wire[3:0]s_out1; always@(s_int)begincase(s_int)4'h0:s_out=4'b0000;4'h1:s_out=4'b0001;4'h2:s_out=4'b0010;4'h3:s_out=4'b0011;4'h4:s_out=4'b0100;4'h5:s_out=4'b0101;4'h6:s_out=4'b0110;4'h7:s_out=4'b0111;4'h8:s_out=4'b1000;4'h9:s_out=4'b1001;endcaseendassigns_out1=~s_out;EndmodulemoduleSEG7_LUT(oSEG1,iDIG);input[3:0]iDIG;output[7:0]oSEG1;reg[7:0]oSEG;wire[7:0]oSEG1;always@(iDIG)begincase(iDIG)4'h0:oSEG=8'b00111111;4'h1:oSEG=8'b00000110; 4'h2:oSEG=8'b01011011;4'h3:oSEG=8'b01001111; 4'h4:oSEG=8'b01100110;4'h5:oSEG=8'b01101101;4'h6:oSEG=8'b01111101;4'h7:oSEG=8'b00000111;4'h8:oSEG=8'b01111111;4'h9:oSEG=8'b01101111;4'ha:oSEG=8'b01110111;4'hb:oSEG=8'b01111100;4'hc:oSEG=8'b00111001;4'hd:oSEG=8'b01011110;4'he:oSEG=8'b01111001;4'hf:oSEG=8'b01110001;endcaseendassignoSEG1=~oSEG;endmodulemoduledisplay_LED(s_out,s_int);input[3:0]s_int;output[3:0]s_out;reg[3:0]s_out;wire
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度智能駕駛資金入股合同
- 音樂類課程設(shè)計(jì)
- 二零二五年度購房合同解除條件協(xié)議書
- 2025年度旅游景區(qū)經(jīng)營權(quán)部分轉(zhuǎn)讓合同
- 2025年度鋼結(jié)構(gòu)廠房設(shè)計(jì)與施工一體化合同示范
- 2025年度外籍務(wù)工人員雇傭與管理協(xié)議
- 2025年度二零二五年度特色食堂品牌授權(quán)轉(zhuǎn)讓合同
- 二零二五年度虛擬偶像產(chǎn)業(yè)股權(quán)投資合同
- 2025年度股份制企業(yè)股份回購合同樣本
- 二零二五年度公共區(qū)域花卉租擺與維護(hù)協(xié)議
- 江蘇省連云港市2023-2024學(xué)年八年級(jí)下學(xué)期期末道德與法治試卷(含答案解析)
- 2024年大學(xué)試題(宗教學(xué))-佛教文化筆試考試歷年高頻考點(diǎn)試題摘選含答案
- 七年級(jí)語文下冊(cè)專項(xiàng)練習(xí)知識(shí)(對(duì)聯(lián))
- 團(tuán)餐食品安全年度匯報(bào)
- 膀胱癌診斷治療指南
- 窗簾方案模板
- 僵尸企業(yè)注銷工作總結(jié)范文
- 網(wǎng)站性能優(yōu)化與改進(jìn)方案
- 不飽和聚酯樹脂工藝流程圖
- 五年級(jí)數(shù)學(xué)(小數(shù)乘除法)計(jì)算題專項(xiàng)練習(xí)及答案
- 冷鏈凍品研究報(bào)告-冷鏈凍品行業(yè)市場(chǎng)深度分析及發(fā)展策略研究報(bào)告(2024年)
評(píng)論
0/150
提交評(píng)論