




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、-作者xxxx-日期xxxx數(shù)字時鐘的VHDL設(shè)計【精品文檔】數(shù)字系統(tǒng)設(shè)計與硬件描述語言期末考試作業(yè) 題目: 數(shù)字時鐘的VHDL設(shè)計 學院: 信息學院 專業(yè): 物聯(lián)網(wǎng)工程 學號: 3011204286 姓名: 趙洋 2013-11-06一、 選題設(shè)計描述1. 功能介紹設(shè)計一臺能顯示時、分、秒的數(shù)字鐘。由時鐘信號經(jīng)分頻產(chǎn)生秒脈沖;計時計數(shù)器用24進制計時電路;可手動校時,能分別進行時、分的校正;具有整點報時功能。2. 算法簡介 設(shè)計原理時顯示器秒顯示器分顯示器時譯碼器秒譯碼器分譯碼器報時時計數(shù)器分計數(shù)器秒計數(shù)器校時電路 1HZ分頻器振蕩器圖1 數(shù)字鐘的系統(tǒng)框圖該系統(tǒng)由振蕩器、分頻器、“時、分、秒
2、”計數(shù)器、譯碼器及顯示器、校時電路、整點報時電路等組成。振蕩器和分頻器產(chǎn)生整個系統(tǒng)的時基信號,它直接決定計時系統(tǒng)的精度?!懊胗嫈?shù)器”采用六十進制計數(shù)器,每累計60秒向“分計數(shù)器”進位;“分計數(shù)器”采用六十進制計數(shù)器,每累計60分向“時計數(shù)器”進位;“時計數(shù)器”采用二十四進制計數(shù)器,按照“24翻1”規(guī)律計數(shù)?!皶r、分、秒”計數(shù)器的輸出經(jīng)譯碼器送顯示器顯示。校時電路用來當計時出現(xiàn)誤差時對“時、分、秒”進行校對調(diào)整。 設(shè)計過程1. 設(shè)計思路時鐘脈沖信號作為數(shù)字鐘的時間基準,再經(jīng)分頻器輸出標準秒脈沖。秒計數(shù)器計滿60后向分計數(shù)器進位,分計數(shù)器計滿60后向小時計數(shù)器進位,小時計數(shù)器是計滿24后,系統(tǒng)自動
3、復(fù)位重新開始計數(shù)。計數(shù)器的輸出經(jīng)譯碼電路后送到顯示器顯示??梢杂眯r電路進行校時。2. 數(shù)字鐘的設(shè)計方案 數(shù)字鐘的設(shè)計包括編碼模塊、分頻模塊、秒計時模塊、分計時模塊、小時計時模塊和報時模塊。該數(shù)字鐘可以實現(xiàn)3個功能:計時功能、報時功能和設(shè)置時間功能。2.1. 編碼模塊編碼模塊主要是對時(sethour)、分(setmin)、秒(setsec)的設(shè)置輸入。2.2. 分頻模塊在數(shù)字鐘的設(shè)計中,外部輸入時鐘信號clk1的頻率為8hz,其分頻后的頻率為clk,使其分頻結(jié)果為1hz,用來提供給秒計時模塊、分計時模塊、小時計時模塊。2.3. 秒計時模塊將“秒計時脈沖”clk接信號源單元的1HZ脈沖信號,此
4、時秒顯示將從00計時到59,然后回到00,重新計時。在秒位進行計時的過程中。秒計時器是由一個60進制的計數(shù)器構(gòu)成的,具有置數(shù)和計數(shù)功能。其中rst為置數(shù)信號,當rst為1時,秒計時器置數(shù)。clk為驅(qū)動秒計時器的時鐘,sec1、sec0為秒計時器的高位和低位輸出。2.4. 分計時模塊分計時電路:將“分計時脈沖”clk接信號源單元的1HZ脈沖信號,此時分顯示將從00計時到59,然后回到00,重新計時。在分位進行計時的過程中。分計時器是由一個60進制的計數(shù)器構(gòu)成的,具有置數(shù)和計數(shù)功能。其中rst為置數(shù)信號,當rst為1時,分計時器置數(shù)。min1、min0為分計時器的高位和低位輸出。2.5. 小時計時
5、模塊將“小時計時脈沖”clk接信號源單元的1HZ脈沖信號,此時小時顯示將從00計時到24,然后回到00,重新計時。時計時器是由一個24進制的計數(shù)器構(gòu)成的,具有置數(shù)和計數(shù)功能。其中的rst為置數(shù)信號,當rst為1時,時計時器置數(shù)。hr1、hr0為時計時器的高位和低位輸出。3.2.6, 報時模塊當分位到59時,秒位計到51秒、53秒、55秒、57秒、59秒時報時一次,而后小時位加1。二、 程序源代碼及說明源程序數(shù)字鐘整體程序整個程序分為五個部分,分別為分頻部分、校時部分、秒部分、分部分、小時部分。VHDL程序如下:library IEEE;use IEEE.STD_LOGIC_1164.ALL;u
6、se IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;entity clock_24 isPort ( clk1: in STD_LOGIC;-時鐘rst: in STD_LOGIC;-復(fù)位,高有效sethr: in STD_LOGIC;-小時設(shè)置,增加1setmin: in STD_LOGIC;-分鐘設(shè)置setsec: in STD_LOGIC;-秒設(shè)置hr0 : out STD_LOGIC_VECTOR(3 downto 0);-小時個位hr1 : out STD_LOGIC_VECTOR(3 downto 0);-小時十位
7、min0 : out STD_LOGIC_VECTOR(3 downto 0);-分鐘個位min1 : out STD_LOGIC_VECTOR(3 downto 0);-分鐘十位sec0 : out STD_LOGIC_VECTOR(3 downto 0);-秒個位 sec1 : out STD_LOGIC_VECTOR(3 downto 0);-秒十位speak: out STD_LOGIC-報時輸出 );end clock_24;architecture rtl of clock_24 issignal co_sec0: STD_LOGIC;-秒個位計數(shù)溢出標示signal co_sec
8、1: STD_LOGIC;signal co_min0: STD_LOGIC;signal co_min1: STD_LOGIC;signal co_hr0: STD_LOGIC;signal cnt_sec0: STD_LOGIC_VECTOR(3 downto 0);-秒個位計數(shù)器signal cnt_sec1: STD_LOGIC_VECTOR(3 downto 0);signal cnt_min0: STD_LOGIC_VECTOR(3 downto 0);signal cnt_min1: STD_LOGIC_VECTOR(3 downto 0);signal cnt_hr0: STD
9、_LOGIC_VECTOR(3 downto 0);signal cnt_hr1: STD_LOGIC_VECTOR(3 downto 0);signal state_hour:STD_LOGIC_VECTOR(1 downto 0);-小時個位當前狀態(tài),當state_hour=00,01時,cnt_hr0計數(shù)從0到9,當state_hour=10時,cnt_hr0計算從0到3.begincounter_second0:-秒個位計數(shù)器process(clk1,rst,setsec)beginif(rst=1) then-異步復(fù)位cnt_sec0=1000) thencnt_sec0=cnt_s
10、ec0-1000;elsecnt_sec0=cnt_sec0+0010;end if;elseif(cnt_sec0=1001)then-如果cnt_sec0計數(shù)到9,則將cnt_sec0=0;cnt_sec0=0000;else-否則將cnt_sec0增加1;cnt_sec0=cnt_sec0+0001;-否則計數(shù)器加1end if;end if;if(cnt_sec0=1000) then-產(chǎn)生進位標志co_sec0=1;elseco_sec0=0;end if;end if;end process counter_second0;counter_second1:-秒十位計數(shù)器proces
11、s(clk1,rst)beginif(rst=1) thencnt_sec1=0000;elsif(clk1event and clk1=1)thenif(co_sec0=1)thenif(cnt_sec1=0101)then-如果溢出則置0cnt_sec1=0000;elsecnt_sec1=cnt_sec1+0001;-否則計數(shù)器加1end if;end if;if(cnt_sec0=1000 and cnt_sec1=0101)then-產(chǎn)生進位標志co_sec1=1;elseco_sec1=0;end if;end if;end process counter_second1;coun
12、ter_miniute0:-分個位計數(shù)器process(clk1,rst,setmin)beginif(rst=1) thencnt_min0=0000;elsif(clk1event and clk1=1)thenif(setmin=1)thencnt_min0=cnt_min0+0001;end if;if (co_sec1=1)thenif(cnt_min0=1001)then-如果溢出則置0cnt_min0=0000;elsecnt_min0=cnt_min0+0001;-否則計數(shù)器加1end if;end if;if(cnt_min0=1001 and cnt_sec0=1000 a
13、nd cnt_sec1=0101)then-產(chǎn)生進位標志co_min0=1;elseco_min0=0;end if;end if;end process counter_miniute0;counter_miniute1:-分十位計數(shù)器process(clk1,rst)beginif(rst=1) thencnt_min1=0000;elsif(clk1event and clk1=1)thenif(co_min0=1)thenif(cnt_min1=0101)then-如果溢出則置0cnt_min1=0000;elsecnt_min1=cnt_min1+0001;-否則計數(shù)器加1end i
14、f;end if;if(cnt_min1=0101 and cnt_min0=1001 and cnt_sec0=1000 and cnt_sec1=0101)then-產(chǎn)生進位標志co_min1=1;elseco_min1=0;end if;end if;end process counter_miniute1;counter_hour0:-小時個位計數(shù)器process(clk1,rst,sethr)beginif(rst=1) thencnt_hr0=0000;state_hour=00;elsif(clk1event and clk1=1)thenif(sethr=1)thencnt_h
15、r0-如果當前是00,cnt_hr0的計數(shù)范圍從09if (co_min1=1)thenif(cnt_hr0=1001)then-如果溢出則置0cnt_hr0=0000;state_hour=01;elsecnt_hr0=cnt_hr0+0001;-否則計數(shù)器加1end if;end if;if(cnt_hr0=1001 and cnt_min1=0101 and cnt_min0=1001 and cnt_sec0=1000 and cnt_sec1=0101)thenco_hr0=1;-產(chǎn)生進位標志elseco_hr0-如果當前是01,cnt_hr0的計數(shù)范圍從09if (co_min1=
16、1)thenif(cnt_hr0=1001)then-如果溢出則置0cnt_hr0=0000;state_hour=10;elsecnt_hr0=cnt_hr0+0001;-否則計數(shù)器加1end if;end if;if(cnt_hr0=1001 and cnt_min1=0101 and cnt_min0=1001 and cnt_sec0=1000 and cnt_sec1=0101)thenco_hr0=1;elseco_hr0-如果當前是10,cnt_hr0的計數(shù)范圍從03if (co_min1=1)thenif(cnt_hr0=0011)then-如果溢出則置0cnt_hr0=000
17、0;state_hour=00;elsecnt_hr0=cnt_hr0+0001;-否則計數(shù)器加1end if;end if;if(cnt_hr0=0011 and cnt_min1=0101 and cnt_min0=1001 and cnt_sec0=1000 and cnt_sec1=0101)thenco_hr0=1;-產(chǎn)生進位標志elseco_hr0state_hour=00;end case;end if;end process counter_hour0;counter_hour1:-小時十位計數(shù)器process(clk1,rst)beginif(rst=1) thencnt_h
18、r1=0000;elsif(clk1event and clk1=1)thenif(co_hr0=1)thenif(cnt_hr1=0010)then-如果溢出則置0cnt_hr1=0000;elsecnt_hr1=cnt_hr1+0001;end if;end if;end if;end process counter_hour1;-在*-59-5*的時候speak=1,否則等于0with (cnt_min1=0101 and cnt_min0=1001 and cnt_sec1=0101) selectspeak=1 when TRUE,0 when others;-將計數(shù)器的值賦給相應(yīng)的輸出引腳hr0=cnt_hr0;hr1=cnt_hr1;min0=cnt_min0;min1=cnt_min1;sec0=cnt_sec0;sec1=cnt_sec1;end rtl;三、 仿真結(jié)果及分析整體仿真結(jié)果如下因整體不清晰,做了局部仿真截圖如下由上調(diào)試過程可知,該數(shù)字鐘實現(xiàn)了計時、重置時間和整點報時的功能。在給數(shù)字鐘重置時間后,數(shù)字鐘便開始從所置的時間計時,到達59秒時,秒計時器回到0秒,并且給分鐘加1;當?shù)?/p>
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河池學院《管理溝通(英語)》2023-2024學年第二學期期末試卷
- 重慶移通學院《紀錄片策劃與傳播》2023-2024學年第二學期期末試卷
- 湖北民族大學《自動化系統(tǒng)概論》2023-2024學年第二學期期末試卷
- 河南建筑職業(yè)技術(shù)學院《機械優(yōu)化設(shè)計及應(yīng)用》2023-2024學年第二學期期末試卷
- 南京林業(yè)大學《人工智能概論》2023-2024學年第二學期期末試卷
- 長治學院《二外英語IV》2023-2024學年第二學期期末試卷
- 內(nèi)蒙古體育職業(yè)學院《漢字文化研究》2023-2024學年第一學期期末試卷
- 河北大學工商學院《大數(shù)據(jù)與風險管理》2023-2024學年第二學期期末試卷
- 天津國土資源和房屋職業(yè)學院《軟件分析與設(shè)計》2023-2024學年第二學期期末試卷
- 湖南郵電職業(yè)技術(shù)學院《地方政府管理》2023-2024學年第一學期期末試卷
- 部編版二年級道德與法治下冊第9課《小水滴的訴說》優(yōu)秀課件(含視頻)
- 金風1.5MW機組液壓、偏航及潤滑控制系統(tǒng)
- 跑冒油事故應(yīng)急預(yù)案
- 家譜宗譜WORD模板
- 水泥穩(wěn)定碎石底基層配合比報告
- B類表(施工單位報審、報驗用表)
- 質(zhì)量監(jiān)督員監(jiān)督報告
- 現(xiàn)場零工簽證單及罰款單簽證樣板完整版
- 醫(yī)療安全不良事件分析記錄表
- 上海市住宅修繕施工資料及表式匯編(試行版27)
- (完整版)APQP(現(xiàn)用版)
評論
0/150
提交評論