EDA模電子時鐘設(shè)計0001_第1頁
EDA模電子時鐘設(shè)計0001_第2頁
EDA模電子時鐘設(shè)計0001_第3頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、蘇州科技學(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 軟件進行編程與仿真,設(shè)計語言可以選擇 VerilogHDL 或 VHDL。1.2 目的與意義訓(xùn)練綜合運用學(xué)過的數(shù)字電子技術(shù)、數(shù)字系統(tǒng)設(shè)計技術(shù)HDL 硬件設(shè)計 和計算機編程及電路相關(guān)根本知識,培養(yǎng)獨立設(shè)計比擬復(fù)雜數(shù)字系統(tǒng)設(shè)計能力

2、。通過綜合設(shè)計, 力爭掌握使用 EDA 工具設(shè)計數(shù)字系統(tǒng)電路的根本方法, 包括原理方案的 確定、詳細設(shè)計中的編程與仿真等一系列過程,為以后進行工程實踐問題的研究打下設(shè)計基 礎(chǔ)。時鐘,自從它創(chuàng)造的那天起,就成為人類的朋友,但隨著社會的進步,科技的的開展, 人們對它的功能又提出了新的要求, 怎樣讓時鐘更好的為人民效勞, 怎樣讓我們的老朋 友煥 發(fā)青春呢?這就要求人們不斷設(shè)計出新型時鐘。現(xiàn)代社會,守時已不僅關(guān)系到一個人的職業(yè)生涯,還成了衡量一個人道德的標準。時鐘 為人們提供了科學(xué)利用時間規(guī)律的依據(jù),然而,普通的機械鐘表與半機械鐘表對于忙碌的生 活顯然早已不太適應(yīng),設(shè)計一款高精度數(shù)字時鐘勢在必行。本課

3、題將通過對目前市場上的數(shù) 字電子鐘的研究,利用EDA技術(shù)設(shè)計一款高精度數(shù)字式電子鐘,使人們可以得到精確時間顯 示, 幫助人們合理安排時間,方便人們的生活。第二局部原理方案設(shè)計設(shè)計一個多功能數(shù)字時鐘,具有時分、秒計數(shù)顯示、鬧鐘功能。能夠利用按鍵實現(xiàn)對鬧鐘時間的設(shè)定并在當前顯示時間到時后能夠進行鬧鐘提示。能夠利用按鍵實現(xiàn)“較時、“較分功能,隨時對數(shù)碼管的顯示進行校正和校對。數(shù)字中系統(tǒng)主要由系統(tǒng)時鐘,三個功能按 鍵mode,turn,change, FPGA,數(shù)碼管和蜂鳴器局部組成。數(shù)碼管T顯示模塊0 n二計時模塊鬧鐘模塊ATT控制模塊圖i多功能數(shù)字時鐘整體模塊圖2.1分頻模塊方案設(shè)計分頻模塊用于為

4、系統(tǒng)的實現(xiàn)提供穩(wěn)定的工作頻率和計時信號源,產(chǎn)生分頻為1HZ頻率的信號作為計時模塊的信號源。分頻算法設(shè)計:定義變量并根據(jù)需要得到的分頻信號設(shè)定計數(shù)值,對該變量進行加或減 計數(shù),每到達一次計數(shù)值點,將該變量清零或重置,并且對輸出信號取一次反,即可以得到 所需的分頻信號。在這里使用任意分頻計數(shù)器。定義變量并且設(shè)定一個上限值,每次加計數(shù)到該上限值時, 輸出該計數(shù)值的最高位。2.2顯示模塊計時模塊是對1s的信號源進行秒計時,計時滿后向上進位的設(shè)計思想。譯碼顯示模塊采 用的是數(shù)碼管的動態(tài)掃描方式。2.3 控制模塊 設(shè)置三個按鍵,一個作為功能控制信號,按鍵每次加一,加到三在歸零。為0:計時功能; 為 1:鬧

5、鈴功能 ; 為 2:手動校對功能。一個按鍵選擇是調(diào)整時間,還是分鐘,假設(shè)長時間按住該鍵,可使秒信號清零,用于精確 調(diào)時。一個按鍵用于手動調(diào)整,每按一次,計數(shù)器加 1,如果長按,那么連續(xù)快速加 1;用于快速 調(diào)時和定時。第三局部 詳細設(shè)計過程圖 2 頂層模塊3.1 分頻模塊該模塊為任意分頻計數(shù)器,在這里使用了兩個分頻模塊,分別輸出4Hz和1Khz的時鐘信 號。功能:對輸入時鐘clock進行F_DIV倍分頻后輸出clk_out。其中F_DIV為分頻系數(shù), 分頻系數(shù)范圍為12An n=F_DIV_WIDTH假設(shè)要改變分頻系數(shù),改變參數(shù)F_DIV或F_DIV_WIDTH 到相應(yīng)范圍即可。假設(shè)分頻系數(shù)為

6、偶數(shù),那么輸出時鐘占空比為50%;假設(shè)分頻系數(shù)為奇數(shù),那么輸出時鐘占空比取決于輸入時鐘占空比和分頻系數(shù)當輸入為50%時,輸出也是 50%。圖 3 分頻模塊 div_4hz圖 4 分頻模塊 div_1k定義變量為分頻系數(shù),假設(shè)位偶數(shù),那么產(chǎn)生分頻系數(shù)的一半個時鐘周期為高電平,分頻系數(shù)的一半個時鐘周期為低電平;假設(shè)為奇數(shù),那么相應(yīng)地偏移一個。假設(shè)分頻系數(shù)為偶數(shù),那么輸出時鐘占空比為50%;假設(shè)分頻系數(shù)為奇數(shù),那么輸出時鐘占空比取決于輸入時鐘占空比和分頻系數(shù)當輸入為50%時,輸出也是 50%。module div_4hz (clock,clk_out); /I/O口聲明input clock;/輸入

7、時鐘output clk_out;/輸出時鐘/ 內(nèi)部存放器reg clk_p_r;/ 上升沿輸出時鐘reg clk_n_r;/下降沿輸出時鐘regF_DIV_WIDTH - 1:0 count_p;/ 上升沿脈沖計數(shù)器regF_DIV_WIDTH - 1:0 count_n;/ 下降沿脈沖計數(shù)器/ 參數(shù)- 分頻系數(shù)/ 分頻系數(shù) 修改這里parameter F_DIV_WIDTH = 32;/ 分頻計數(shù)器寬度wire full_div_p;/上升沿計數(shù)滿標志wire half_div_p;/上升沿計數(shù)半滿標志wire full_div_n;/下降沿計數(shù)滿標志wire half_div_n; /

8、下降沿計數(shù)半滿標志/ 判斷計數(shù)標志位置位與否assign full_div_p = (count_p F_DIV - 1); assign half_div_p = (count_p 1) - 1);assign full_div_n = (count_n F_DIV - 1); assign half_div_n = (count_n 1) - 1);/ 時鐘輸出assign clk_out = (F_DIV = 1) ?clock : (F_DIV0 ? (clk_p_r & clk_n_r) : clk_p_r); / 上升沿脈沖計數(shù) always (posedge clock)begi

9、nif(full_div_p)begincount_p = count_p + 1b1;if(half_div_p)clk_p_r = 1b0;elseclk_p_r = 1b1;endelsebegincount_p = 0; clk_p_r = 1b0;endend/ 下降沿脈沖計數(shù) always (negedge clock) beginif(full_div_n)begincount_n = count_n + 1b1;if(half_div_n)clk_n_r = 1b0;elseclk_n_r = 1b1;endelsebegincount_n = 0;clk_n_r = 1b0;

10、endendendmodule3.2 顯示模塊該模塊設(shè)計為時鐘顯示模塊,一共 8 個共陽極數(shù)碼管,顯示格式為。整個時鐘的工作應(yīng)該是在 1Hz 信號的作用下進行, 這樣每來一個時鐘信號, 秒增加 1 秒, 當秒從 59 秒跳轉(zhuǎn)到 00 秒時,分鐘增加 1 分,同時當分鐘從 59 分跳轉(zhuǎn)到 00 分時,小時增加 1 小時,小時的范圍為 023 時。由于分鐘和秒鐘顯示的范圍都是從 059,可以用一個 4 位的二進制碼顯示十位,用一個 四位的二進制碼( BCD 碼)顯示個位;對于小時因為他的范圍是從 023,同樣可以用一個 4 位的二進制碼顯示十位,用一個 4位的二進制碼( BCD 碼)顯示個位。 由

11、于動態(tài)掃描,需要一個頻率較高的時鐘信號用于刷新顯示。送入顯示的數(shù)上下 4 位別離開 來,分別用于顯示十位和個位。圖 5 顯示模塊 scan_ledmodule scan_led(clk_1k,dig,seg,hourh,hourl1,minh,minl1,sech,secl1);input clk_1k;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 ) be

12、gincount=count+1b1;endalways (posedge clk_1k )begincase(count)3d0 :dataout_buf = secl1;3d1 :dataout_buf= sech;3d2 :dataout_buf= 4ha;3d3 :dataout_buf = minl1;3d4 :dataout_buf= minh;3d5 :dataout_buf = 4ha;3d6 :dataout_buf= hourl1;3d7 :dataout_buf = hourh;endcasecase(count)3d0 :dig = 8b1111_1110;3d1 :d

13、ig = 8b1111_1101;3d2 :dig = 8b1111_1011;3d3 :dig = 8b1111_0111;3d4 :dig = 8b1110_1111;3d5 :dig = 8b1101_1111;3d6 :dig = 8b1011_1111;3d7 :dig = 8b0111_1111;endcaseendalways(dataout_buf) begincase(dataout_buf)4h0:seg=8b0000_0011;4h1:seg=8b1001_1111;4h2:seg=8b0010_0101;4h3:seg=8b0000_1101; 4h4:seg=8b10

14、01_1001;4h5:seg=8b0100_1001;4h6:seg=8b0100_0001;4h7:seg=8b0001_1111;4h8:seg=8b0000_0001;4h9:seg=8b0000_1001;4ha:seg=8b1111_1101;endcaseendendmodule3.3 時鐘控制模塊該模塊設(shè)計為多功能數(shù)字鐘的控制模塊。 各信號引腳功能定義為:mode功能控制信號;為0:計時功能; 為1:鬧鈴功能;為2:手動校對功能;turn :在手動校對時,選擇是調(diào)整時間,還是分鐘,假設(shè)長時間按住該鍵,可使秒信號清 零,用于精確調(diào)時;change:手動調(diào)整時,每按一次,計數(shù)器加1

15、,如果長按,那么連續(xù)快速加1;用于快速調(diào) 時和定時;hour,min, sec:時,分,秒顯示信號;alert :揚聲器驅(qū)動信號;用于產(chǎn)生鬧鈴音和報時音;鬧鈴音為持續(xù) 20秒的急促的“嘀 嘀嘀音,假設(shè)按住“ change鍵,可屏蔽該鬧鈴音;整點報時音為“嘀嘀嘀嘀嘟四短一長 音;LD_alert :接發(fā)光二極管,指示是否設(shè)置了鬧鐘功能;LD_hour:接發(fā)光二極管,指示當前調(diào)整的是小時信號;LD_min: 接發(fā)光二極管,指示當前調(diào)整的是分鐘信號。mode按鍵每觸發(fā)一次,定義一個變量 m自加,從0加到2;加滿2,重新置為0。用case語 句產(chǎn)生 3 種模式。圖 6 時鐘模塊 clock1modul

16、e 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_alert,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;re

17、g1: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,ctb,m_clk,h_clk;always (posedge clk)beginclk_2Hz=clk_2Hz;if(sound=3) begin sound=0; ear=1; endelsebegin sound=sound+1; ear=0; endend / ear 信號用于

18、產(chǎn)生或屏蔽聲音always (posedge clk_2Hz) /由 4HZ 的輸入時鐘產(chǎn)生 1HZ 的時基信號 clk_1Hz=clk_1Hz;always (n egedge mode) / modd言號控制系統(tǒng)在三種功能間的轉(zhuǎn)換beginif(m=2)m=0;else m=m+1;endalways (negedge turn) /產(chǎn)/ 生 count1, count1 , count a , countb 四個信號fm=fm;alwaysbegincase(m)2: begin if(!fm)begin count1=!change; LD_min,LD_hour=2; end els

19、ebegin counta=!change; LD_min,LD_hour=1; end count2,countb=0;end1: begin if(!fm)begin count2=!change; LD_min,LD_hour=2; end elsebegin countb=!change; LD_min,LD_hour=1; end count1,counta=2b00;enddefault: count1,count2,counta,countb,LD_min,LD_hour=0; endcaseendalways (negedge clk) if(count2) begin if(

20、loop1=3) num1=1;elsebegin loop1=loop1+1; num1=0; end end else begin loop1=0; num1=0; end always (negedge clk) if(countb) begin if(loop2=3) num2=1;else begin loop2=loop2+1; num2=0; end endelse begin loop2=0; num2=0; end always (negedge clk) if(count1) begin if(loop3=3) num3=1;elsebegin loop3=loop3+1;

21、 num3=0; endendelse begin loop3=0; num3=0; end always (negedge clk) if(counta) begin if(loop4=3) num4=1;elsebegin loop4=loop4+1; num4=0; endendelse begin loop4=0; num4=0; end assign ct1=(num3&clk)|(!num3&m_clk); assign ct2=(num1&clk)|(!num1&count2);assign cta=(num4&clk)|(!num4&h_clk);assign ctb=(num

22、2&clk)|(!num2&countb); always (posedge clk_1Hz)if(!(secM8h59)|(!tum)&(!m)beginsec1=0; if(!(!turn)&(!m) minclk=1;endelse begin if(sec13:0=4b1001)endbegin sec13:0=4b0000; sec17:4=sec17:4+1; else sec13:0=sec13:0+1; minclk=0;endassign m_clk=minclk|count1;always (posedge ct1)beginif(min1=8h59) begin min1

23、=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=8h23) hour1=0;else if(hour13:0=9)begin hour17:4=hour17:4+1; hour13:0=0; end else hour13:0=hour13:0+1;always (posedge ct2) if(amin=8

24、h59) amin=0;else if(amin3:0=9)begin amin3:0=0; amin7:4=amin7:4+1; end else amin3:0=amin3:0+1;always (posedge ctb) if(ahour=8h23) ahour=0;else if(ahour3:0=9)begin ahour3:0=0; ahour7:4=ahour7:4+1; end else ahour3:0=ahour3:0+1;always if(min1=amin)&(hour1=ahour)&(amin|ahour)&(change) if(sec18h20) alert1=1;else alert1=0; else alert1=0; always case(m)3b00:beginhour=hour1;min=min1;sec=sec1;end3b01:beginhour=ahour;min=amin;sec=8hzz;end3b10:beginhour=hour1;min=min1;sec8h54)|(!(min1|sec1)if(sec18h54) alert2=ear&

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論