版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、蘇州科技學(xué)院EDA電子綜合設(shè)計蘇州科技學(xué)院天平學(xué)院EDA電子綜合設(shè)計院 系: 專 業(yè): 班 級: 學(xué) 號: 姓 名: 第一部分:設(shè)計說明1.1設(shè)計任務(wù)設(shè)計一款數(shù)字電子時鐘,具體要求如下:1:輸入條件:50MHz時鐘,2個輸入按鍵;2:功能實現(xiàn):具有顯示時、分、秒功能;采用LED數(shù)碼管顯示;具有鬧鐘與對時功能,對時精確到分,鬧鐘設(shè)置與對時采用按鍵作為輸入信號。3:采用altera公司的quartusII軟件進(jìn)行編程與仿真,設(shè)計語言可以選擇VerilogHDL或VHDL。1.2目的與意義訓(xùn)練綜合運用學(xué)過的數(shù)字電子技術(shù)、數(shù)字系統(tǒng)設(shè)計技術(shù)(HDL硬件設(shè)計)和計算機(jī)編程及電路相關(guān)基本知識,培養(yǎng)獨立設(shè)計比
2、較復(fù)雜數(shù)字系統(tǒng)設(shè)計能力。通過綜合設(shè)計,力爭掌握使用EDA工具設(shè)計數(shù)字系統(tǒng)電路的基本方法,包括原理方案的確定、詳細(xì)設(shè)計中的編程與仿真等一系列過程,為以后進(jìn)行工程實踐問題的研究打下設(shè)計基礎(chǔ)。時鐘,自從它發(fā)明的那天起,就成為人類的朋友,但隨著社會的進(jìn)步,科技的的發(fā)展,人們對它的功能又提出了新的要求,怎樣讓時鐘更好的為人民服務(wù),怎樣讓我們的老朋 友煥發(fā)青春呢?這就要求人們不斷設(shè)計出新型時鐘?,F(xiàn)代社會,守時已不僅關(guān)系到一個人的職業(yè)生涯,還成了衡量一個人道德的標(biāo)準(zhǔn)。時鐘為人們提供了科學(xué)利用時間規(guī)律的依據(jù),然而,普通的機(jī)械鐘表與半機(jī)械鐘表對于忙碌的生活顯然早已不太適應(yīng),設(shè)計一款高精度數(shù)字時鐘勢在必行。本課題
3、將通過對目前市場上的數(shù)字電子鐘的研究,利用EDA技術(shù)設(shè)計一款高精度數(shù)字式電子鐘,使人們可以得到精確時間顯示,幫助人們合理安排時間,方便人們的生活。第二部分 原理方案設(shè)計設(shè)計一個多功能數(shù)字時鐘,具有時分、秒計數(shù)顯示、鬧鐘功能。能夠利用按鍵實現(xiàn)對鬧鐘時間的設(shè)定并在當(dāng)前顯示時間到時后能夠進(jìn)行鬧鐘提示。能夠利用按鍵實現(xiàn)“較時”、“較分”功能,隨時對數(shù)碼管的顯示進(jìn)行校正和校對。數(shù)字中系統(tǒng)主要由系統(tǒng)時鐘,三個功能按鍵(mode,turn,change),F(xiàn)PGA,數(shù)碼管和蜂鳴器部分組成。分頻模塊計時模塊鬧鐘模塊顯示模塊控制模塊蜂鳴器圖1多功能數(shù)字時鐘整體模塊圖2.1分頻模塊方案設(shè)計分頻模塊用于為系統(tǒng)的實現(xiàn)
4、提供穩(wěn)定的工作頻率和計時信號源,產(chǎn)生分頻為1HZ頻率的信號作為計時模塊的信號源。分頻算法設(shè)計:定義變量并根據(jù)需要得到的分頻信號設(shè)定計數(shù)值,對該變量進(jìn)行加或減計數(shù),每到達(dá)一次計數(shù)值點,將該變量清零或重置,并且對輸出信號取一次反,即可以得到所需的分頻信號。在這里使用任意分頻計數(shù)器。定義變量并且設(shè)定一個上限值,每次加計數(shù)到該上限值時,輸出該計數(shù)值的最高位。2.2顯示模塊計時模塊是對1s的信號源進(jìn)行秒計時,計時滿后向上進(jìn)位的設(shè)計思想。譯碼顯示模塊采用的是數(shù)碼管的動態(tài)掃描方式。2.3控制模塊設(shè)置三個按鍵,一個作為功能控制信號,按鍵每次加一,加到三在歸零。為0:計時功能; 為1:鬧鈴功能; 為2:手動校對
5、功能。 一個按鍵選擇是調(diào)整時間,還是分鐘,若長時間按住該鍵,可使秒信號清零,用于精確調(diào)時。 一個按鍵用于手動調(diào)整,每按一次,計數(shù)器加1,如果長按,則連續(xù)快速加1;用于快速調(diào)時和定時。第三部分 詳細(xì)設(shè)計過程圖2 頂層模塊3.1分頻模塊3.1.1模塊功能描述該模塊為任意分頻計數(shù)器,在這里使用了兩個分頻模塊,分別輸出4Hz和1Khz的時鐘信號。功能:對輸入時鐘clock進(jìn)行F_DIV倍分頻后輸出clk_out。其中F_DIV為分頻系數(shù),分頻系數(shù)范圍為12n (n=F_DIV_WIDTH)若要改變分頻系數(shù),改變參數(shù)F_DIV或F_DIV_WIDTH到相應(yīng)范圍即可。若分頻系數(shù)為偶數(shù),則輸出時鐘占空比為5
6、0%;若分頻系數(shù)為奇數(shù),則輸出時鐘占空比取決于輸入時鐘占空比和分頻系數(shù)(當(dāng)輸入為50%時,輸出也是50%)。圖3 分頻模塊div_4hz圖4 分頻模塊div_1k3.1.2模塊設(shè)計思想定義變量為分頻系數(shù),若位偶數(shù),則產(chǎn)生分頻系數(shù)的一半個時鐘周期為高電平,分頻系數(shù)的一半個時鐘周期為低電平;若為奇數(shù),則相應(yīng)地偏移一個。3.1.3設(shè)計關(guān)鍵知識點若分頻系數(shù)為偶數(shù),則輸出時鐘占空比為50%;若分頻系數(shù)為奇數(shù),則輸出時鐘占空比取決于輸入時鐘占空比和分頻系數(shù)(當(dāng)輸入為50%時,輸出也是50%)。module div_4hz (clock,clk_out); /I/O口聲明inputclock;/輸入時鐘ou
7、tputclk_out;/輸出時鐘/內(nèi)部寄存器regclk_p_r;/上升沿輸出時鐘reg clk_n_r;/下降沿輸出時鐘regF_DIV_WIDTH - 1:0 count_p;/上升沿脈沖計數(shù)器regF_DIV_WIDTH - 1:0 count_n;/下降沿脈沖計數(shù)器/參數(shù)-分頻系數(shù)parameter F_DIV = 12500000;/分頻系數(shù)<<<<-修改這里parameter F_DIV_WIDTH = 32; /分頻計數(shù)器寬度wire full_div_p;/上升沿計數(shù)滿標(biāo)志wire half_div_p;/上升沿計數(shù)半滿標(biāo)志wire full_div_
8、n;/下降沿計數(shù)滿標(biāo)志wire half_div_n;/下降沿計數(shù)半滿標(biāo)志/判斷計數(shù)標(biāo)志位置位與否assign full_div_p = (count_p < F_DIV - 1);assign half_div_p = (count_p < (F_DIV>>1) - 1);assign full_div_n = (count_n < F_DIV - 1);assign half_div_n = (count_n < (F_DIV>>1) - 1);/時鐘輸出assignclk_out = (F_DIV = 1) ? clock : (F_DIV
9、0 ? (clk_p_r & clk_n_r) : clk_p_r);/上升沿脈沖計數(shù)always (posedge clock)beginif(full_div_p)begincount_p <= count_p + 1'b1;if(half_div_p)clk_p_r <= 1'b0;elseclk_p_r <= 1'b1;endelsebegincount_p <= 0;clk_p_r <= 1'b0;endend/下降沿脈沖計數(shù)always (negedge clock)beginif(full_div_n)begi
10、ncount_n <= count_n + 1'b1;if(half_div_n)clk_n_r <= 1'b0;elseclk_n_r <= 1'b1;endelsebegincount_n <= 0;clk_n_r <= 1'b0;endendendmodule3.2顯示模塊3.2.1模塊功能描述該模塊設(shè)計為時鐘顯示模塊,一共8個共陽極數(shù)碼管,顯示格式為XX.XX.XX。3.2.2模塊設(shè)計思想整個時鐘的工作應(yīng)該是在1Hz信號的作用下進(jìn)行,這樣每來一個時鐘信號,秒增加1秒,當(dāng)秒從59秒跳轉(zhuǎn)到00秒時,分鐘增加1分,同時當(dāng)分鐘從59
11、分跳轉(zhuǎn)到00分時,小時增加1小時,小時的范圍為023時。由于分鐘和秒鐘顯示的范圍都是從059,可以用一個4位的二進(jìn)制碼顯示十位,用一個四位的二進(jìn)制碼(BCD碼)顯示個位;對于小時因為他的范圍是從023,同樣可以用一個4位的二進(jìn)制碼顯示十位,用一個4位的二進(jìn)制碼(BCD碼)顯示個位。3.2.3設(shè)計關(guān)鍵知識點由于動態(tài)掃描,需要一個頻率較高的時鐘信號用于刷新顯示。送入顯示的數(shù)高低4位分離開來,分別用于顯示十位和個位。圖5 顯示模塊scan_ledmodule scan_led(clk_1k,dig,seg,hourh,hourl1,minh,minl1,sech,secl1);input clk_1
12、k;input3:0 hourh,hourl1,minh,minl1,sech,secl1;output7:0dig;output7:0seg;reg7:0dig;reg7:0seg;reg3:0dataout_buf;reg2:0count;always (posedge clk_1k )begin count<=count+1'b1;endalways (posedge clk_1k )begin case(count) 3'd0 : dataout_buf = secl1; 3'd1 : dataout_buf= sech; 3'd2 : datao
13、ut_buf= 4'ha; 3'd3 : dataout_buf = minl1; 3'd4 : dataout_buf= minh; 3'd5 : dataout_buf = 4'ha; 3'd6 : dataout_buf= hourl1; 3'd7 : dataout_buf = hourh; endcasecase(count)3'd0 : dig = 8'b1111_1110; 3'd1 : dig = 8'b1111_1101; 3'd2 : dig = 8'b1111_1011
14、; 3'd3 : dig = 8'b1111_0111; 3'd4 : dig = 8'b1110_1111; 3'd5 : dig = 8'b1101_1111; 3'd6 : dig = 8'b1011_1111; 3'd7 : dig = 8'b0111_1111; endcaseendalways(dataout_buf)begincase(dataout_buf)4'h0:seg=8'b0000_0011;4'h1:seg=8'b1001_1111;4'h2:seg
15、=8'b0010_0101;4'h3:seg=8'b0000_1101;4'h4:seg=8'b1001_1001;4'h5:seg=8'b0100_1001;4'h6:seg=8'b0100_0001;4'h7:seg=8'b0001_1111;4'h8:seg=8'b0000_0001;4'h9:seg=8'b0000_1001;4'ha:seg=8'b1111_1101; endcaseendendmodule3.3時鐘控制模塊3.3.1模塊設(shè)計功能該模
16、塊設(shè)計為多功能數(shù)字鐘的控制模塊。 各信號引腳功能定義為:mode:功能控制信號;為0:計時功能; 為1:鬧鈴功能; 為2:手動校對功能; turn:在手動校對時,選擇是調(diào)整時間,還是分鐘,若長時間按住該鍵,可使秒信號清零,用于精確調(diào)時; change:手動調(diào)整時,每按一次,計數(shù)器加1,如果長按,則連續(xù)快速加1;用于快速調(diào)時和定時;hour,min,sec:時,分,秒顯示信號; alert:揚聲器驅(qū)動信號;用于產(chǎn)生鬧鈴音和報時音;鬧鈴音為持續(xù)20秒的急促的“嘀嘀嘀”音 ,若按住“change”鍵,可屏蔽該鬧鈴音;整點報時音為“嘀嘀嘀嘀嘟”四短一長音;LD_alert:接發(fā)光二極管,指示是否設(shè)置了
17、鬧鐘功能; LD_hour:接發(fā)光二極管,指示當(dāng)前調(diào)整的是小時信號; LD_min: 接發(fā)光二極管,指示當(dāng)前調(diào)整的是分鐘信號。3.3.2模塊設(shè)計思想mode按鍵每觸發(fā)一次,定義一個變量m自加,從0加到2;加滿2,重新置為0。用case語句產(chǎn)生3種模式。圖6 時鐘模塊clock1module clock(clk,clk_1k,mode,change,turn,alert,hourh,hourl1,minh,minl1,sech,secl1,LD_alert,LD_hour,LD_min);input clk,clk_1k,mode,change,turn;output alert,LD_aler
18、t,LD_hour,LD_min;output3:0 hourh,hourl1,minh,minl1,sech,secl1;reg7:0 hour,min,sec,hour1,min1,sec1,ahour,amin;reg1:0 m,fm,num1,num2,num3,num4;reg1:0 loop1,loop2,loop3,loop4,sound;reg LD_hour,LD_min;reg clk_1Hz,clk_2Hz,minclk,hclk;reg alert1,alert2,ear;reg count1,count2,counta,countb;wire ct1,ct2,cta,
19、ctb,m_clk,h_clk;always (posedge clk)beginclk_2Hz<=clk_2Hz;if(sound=3) begin sound<=0; ear<=1; endelse begin sound<=sound+1; ear<=0; endend / ear信號用于產(chǎn)生或屏蔽聲音always (posedge clk_2Hz) /由4HZ的輸入時鐘產(chǎn)生1HZ的時基信號clk_1Hz<=clk_1Hz;always (negedge mode) / mode信號控制系統(tǒng)在三種功能間的轉(zhuǎn)換begin if(m=2) m<=0;
20、 else m<=m+1;endalways (negedge turn) /產(chǎn)生count1, count1 ,count a ,countb四個信號fm<=fm;always begin case(m) 2:begin if(!fm) begincount1<=!change; LD_min,LD_hour<=2; endelse begin counta<=!change; LD_min,LD_hour<=1; endcount2,countb<=0; end 1:begin if(!fm) begincount2<=!change; LD
21、_min,LD_hour<=2; endelsebegin countb<=!change; LD_min,LD_hour<=1; endcount1,counta<=2'b00; end default: count1,count2,counta,countb,LD_min,LD_hour<=0; endcase endalways (negedge clk)if(count2) beginif(loop1=3) num1<=1;elsebegin loop1<=loop1+1; num1<=0; endendelse begin lo
22、op1<=0; num1<=0; endalways (negedge clk)if(countb) beginif(loop2=3) num2<=1;elsebegin loop2<=loop2+1; num2<=0; endendelse begin loop2<=0; num2<=0; endalways (negedge clk)if(count1) beginif(loop3=3) num3<=1;elsebegin loop3<=loop3+1; num3<=0; endendelse begin loop3<=0;
23、 num3<=0; endalways (negedge clk)if(counta) beginif(loop4=3) num4<=1;elsebegin loop4<=loop4+1; num4<=0; endendelse begin loop4<=0; num4<=0; endassign ct1=(num3&clk)|(!num3&m_clk);assign ct2=(num1&clk)|(!num1&count2);assign cta=(num4&clk)|(!num4&h_clk);assign
24、 ctb=(num2&clk)|(!num2&countb);always (posedge clk_1Hz)if(!(sec18'h59)|(!turn)&(!m) beginsec1<=0; if(!(!turn)&(!m) minclk<=1;endelse beginif(sec13:0=4'b1001) begin sec13:0<=4'b0000; sec17:4<=sec17:4+1; endelse sec13:0<=sec13:0+1; minclk<=0;endassign m_cl
25、k=minclk|count1;always (posedge ct1)beginif(min1=8'h59) begin min1<=0; hclk<=1; endelse beginif(min13:0=9)begin min13:0<=0; min17:4<=min17:4+1; endelse min13:0<=min13:0+1; hclk<=0;endendassign h_clk=hclk|counta;always (posedge cta)if(hour1=8'h23) hour1<=0;elseif(hour13:0
26、=9) begin hour17:4<=hour17:4+1; hour13:0<=0; endelse hour13:0<=hour13:0+1;always (posedge ct2)if(amin=8'h59) amin<=0;elseif(amin3:0=9)begin amin3:0<=0; amin7:4<=amin7:4+1; endelse amin3:0<=amin3:0+1;always (posedge ctb)if(ahour=8'h23) ahour<=0;elseif(ahour3:0=9)begin
27、ahour3:0<=0; ahour7:4<=ahour7:4+1; endelse ahour3:0<=ahour3:0+1;alwaysif(min1=amin)&&(hour1=ahour)&&(amin|ahour)&&(change)if(sec1<8'h20) alert1<=1;else alert1<=0;else alert1<=0;always case(m)3'b00:begin hour<=hour1; min<=min1; sec<=sec1; end3'b01:begin hour<=ahour; min<=amin; sec<=8'hzz; end3'b10:begin hour<=hour1; min<=min1; sec<=8'hzz; endendcaseassign LD_alert=(ahour|amin)?1:0;assign alert=(alert1)?clk_1k&clk:0)|alert
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年國際spa原料供應(yīng)合同
- 2024年度版權(quán)質(zhì)押合同版權(quán)價值評估與質(zhì)押期限
- 風(fēng)控課件教學(xué)課件
- 2024年土地使用權(quán)抵押購房合同
- 2024年商標(biāo)許可使用合同:某知名品牌
- 合同履約成本的會計處理分錄-記賬實操
- 2024年度個人向公司提供的借款合同模板
- 2024天然氣企業(yè)信息安全保護(hù)合同
- 2024年度大數(shù)據(jù)可視化設(shè)計合同
- 2024年店面租賃與管理合同
- 軍隊文職考試《公共科目》試題及答案指導(dǎo)(2024年)
- 山東省青島市2023-2024學(xué)年七年級上學(xué)期期末考試數(shù)學(xué)試題(含答案)
- 2024下半年江蘇蘇州城市學(xué)院招聘管理崗位工作人員27人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 小學(xué)心理健康課教案分享-《身體“紅綠燈”》
- 2022年信息科技課程新課標(biāo)義務(wù)教育信息科技課程標(biāo)準(zhǔn)2022版解讀課件
- 小學(xué)生防火安全教育課件
- 口語交際:商量(教學(xué)設(shè)計)2023-2024學(xué)年統(tǒng)編版語文二年級上冊
- 鄉(xiāng)土嵌合:農(nóng)村社會工作的實踐面向與行動路徑
- 2024年大學(xué)生信息素養(yǎng)大賽(省賽)考試題庫(含答案)
- 國資國企企業(yè)學(xué)習(xí)二十屆三中全會精神專題培訓(xùn)
- 影片制片人合同
評論
0/150
提交評論