硬件課程設(shè)計(jì)(論文)-基于FPGA的數(shù)字時(shí)鐘設(shè)計(jì)_第1頁(yè)
硬件課程設(shè)計(jì)(論文)-基于FPGA的數(shù)字時(shí)鐘設(shè)計(jì)_第2頁(yè)
硬件課程設(shè)計(jì)(論文)-基于FPGA的數(shù)字時(shí)鐘設(shè)計(jì)_第3頁(yè)
硬件課程設(shè)計(jì)(論文)-基于FPGA的數(shù)字時(shí)鐘設(shè)計(jì)_第4頁(yè)
硬件課程設(shè)計(jì)(論文)-基于FPGA的數(shù)字時(shí)鐘設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、信息與控制工程學(xué)院硬件課程設(shè)計(jì)說(shuō)明書(shū)基于FPGA的數(shù)字時(shí)鐘設(shè)計(jì)學(xué)生學(xué)號(hào): 學(xué)生姓名: 專業(yè)班級(jí): 指導(dǎo)教師: 職 稱: 教授 起止日期: 2021.3.282021.4.15 吉林化工學(xué)院Jilin Institute of Chemical Technology硬件課程設(shè)計(jì)任務(wù)書(shū)一、設(shè)計(jì)題目:基于FPGA的數(shù)字時(shí)鐘設(shè)計(jì)二、設(shè)計(jì)目的1掌握利用EDA開(kāi)發(fā)工具M(jìn)ax+plusII進(jìn)行可編程邏輯器件設(shè)計(jì)的方法; 2掌握用FPGA進(jìn)行計(jì)數(shù)器、譯碼器及LED動(dòng)態(tài)掃描顯示驅(qū)動(dòng)電路設(shè)計(jì)的方法;3熟練掌握可編程邏輯器件的文本輸入VHDL層次化設(shè)計(jì)方法;4掌握利用Max+plusII進(jìn)行軟件仿真及對(duì)可編程邏輯器

2、件進(jìn)行硬件下載的方法。三、設(shè)計(jì)任務(wù)及要求設(shè)計(jì)并實(shí)現(xiàn)數(shù)字鐘。下載芯片:EPF10K10LC84Altera的FLEX10K系列芯片。時(shí)鐘根本功能:1具有時(shí)、分、秒顯示,24小時(shí)循環(huán)計(jì)時(shí)功能;2具有時(shí)間校準(zhǔn)調(diào)時(shí)/對(duì)時(shí)功能??蓴U(kuò)展其它功能。四、設(shè)計(jì)時(shí)間及進(jìn)度安排設(shè)計(jì)時(shí)間共三周11.3.285,具體安排如下表:周安排設(shè) 計(jì) 內(nèi) 容設(shè)計(jì)時(shí)間第一周學(xué)習(xí)可編程邏輯器件開(kāi)發(fā)工具M(jìn)ax+plusII的使用及原理圖輸入設(shè)計(jì)方法,熟悉硬件電路顯示及驅(qū)動(dòng)電路,學(xué)習(xí)VHDL,設(shè)計(jì)時(shí)、分、秒模塊,并進(jìn)行軟件仿真。1第二周學(xué)習(xí)可編程邏輯器件的文本輸入層次化設(shè)計(jì)方法,設(shè)計(jì)數(shù)字鐘的譯碼、動(dòng)態(tài)掃描及整點(diǎn)報(bào)時(shí)模塊,設(shè)計(jì)數(shù)字鐘頂層電

3、路,下載實(shí)現(xiàn)數(shù)字時(shí)鐘的根本功能。8第三周實(shí)現(xiàn)根本要求之外的其它擴(kuò)展功能;用PROTEL軟件繪制整體硬件原理圖;撰寫(xiě)并完成硬件課程設(shè)計(jì)說(shuō)明書(shū),測(cè)試硬件設(shè)計(jì)作品的功能,進(jìn)行課程設(shè)計(jì)辯論。5五、指導(dǎo)教師評(píng)語(yǔ)及學(xué)生成績(jī)指導(dǎo)教師評(píng)語(yǔ):年 月 日成績(jī)指導(dǎo)教師(簽字):目 錄 TOC o 1-3 h z HYPERLINK l _Toc36024262 硬件課程設(shè)計(jì)任務(wù)書(shū) PAGEREF _Toc36024262 h I HYPERLINK l _Toc36024263 第1章 設(shè)計(jì)的硬件平臺(tái)及開(kāi)發(fā)工具 PAGEREF _Toc36024263 h 1 HYPERLINK l _Toc36024264 1.

4、1 硬件平臺(tái) PAGEREF _Toc36024264 h 1 HYPERLINK l _Toc36024265 1.2 開(kāi)發(fā)工具 PAGEREF _Toc36024265 h 1 HYPERLINK l _Toc36024266 第2章 數(shù)字時(shí)鐘的設(shè)計(jì)方案及FPGA的頂層設(shè)計(jì) PAGEREF _Toc36024266 h 2 HYPERLINK l _Toc36024267 2.1 數(shù)字鐘整體設(shè)計(jì)方案 PAGEREF _Toc36024267 h 2 HYPERLINK l _Toc36024268 2.1.1 數(shù)字鐘的功能 PAGEREF _Toc36024268 h 2 HYPERLIN

5、K l _Toc36024269 2.1.2 硬件要求 PAGEREF _Toc36024269 h 2 HYPERLINK l _Toc36024270 2.1.3 引腳說(shuō)明以及設(shè)計(jì)方案 PAGEREF _Toc36024270 h 2 HYPERLINK l _Toc36024271 2.2 可編程邏輯器件FPGA的頂層設(shè)計(jì) PAGEREF _Toc36024271 h 2 HYPERLINK l _Toc36024272 第3章 數(shù)字時(shí)鐘的底層模塊設(shè)計(jì) PAGEREF _Toc36024272 h 4 HYPERLINK l _Toc36024273 3.1 秒模塊設(shè)計(jì) PAGEREF

6、_Toc36024273 h 4 HYPERLINK l _Toc36024274 3.1.1 秒模塊VHDL程序 PAGEREF _Toc36024274 h 4 HYPERLINK l _Toc36024275 3.1.2 秒模塊的仿真實(shí)現(xiàn) PAGEREF _Toc36024275 h 5 HYPERLINK l _Toc36024276 3.2 分模塊設(shè)計(jì) PAGEREF _Toc36024276 h 6 HYPERLINK l _Toc36024277 3.2.1 分模塊VHDL程序 PAGEREF _Toc36024277 h 6 HYPERLINK l _Toc36024278 3

7、.2.2 分模塊的仿真實(shí)現(xiàn) PAGEREF _Toc36024278 h 7 HYPERLINK l _Toc36024279 3.3 時(shí)模塊設(shè)計(jì) PAGEREF _Toc36024279 h 7 HYPERLINK l _Toc36024280 3.3.1 時(shí)模塊VHDL程序 PAGEREF _Toc36024280 h 8 HYPERLINK l _Toc36024281 3.3.2 時(shí)模塊的仿真實(shí)現(xiàn) PAGEREF _Toc36024281 h 9 HYPERLINK l _Toc36024282 3.4 動(dòng)態(tài)顯示掃描模塊設(shè)計(jì) PAGEREF _Toc36024282 h 9 HYPER

8、LINK l _Toc36024283 3.4.1 動(dòng)態(tài)顯示掃描模塊VHDL程序 PAGEREF _Toc36024283 h 9 HYPERLINK l _Toc36024284 3.4.2 動(dòng)態(tài)顯示掃描模塊的仿真實(shí)現(xiàn) PAGEREF _Toc36024284 h 10 HYPERLINK l _Toc36024285 3.5 段碼譯碼模塊設(shè)計(jì) PAGEREF _Toc36024285 h 11 HYPERLINK l _Toc36024286 3.5.1 段碼譯碼模塊VHDL程序 PAGEREF _Toc36024286 h 11 HYPERLINK l _Toc36024287 3.5.

9、2 段碼譯碼模塊的仿真實(shí)現(xiàn) PAGEREF _Toc36024287 h 12 HYPERLINK l _Toc36024288 3.6 整點(diǎn)報(bào)時(shí)模塊設(shè)計(jì)發(fā)揮局部 PAGEREF _Toc36024288 h 12 HYPERLINK l _Toc36024289 3.6.1 整點(diǎn)報(bào)時(shí)模塊VHDL程序 PAGEREF _Toc36024289 h 12 HYPERLINK l _Toc36024290 3.6.2 整點(diǎn)報(bào)時(shí)模塊的仿真實(shí)現(xiàn) PAGEREF _Toc36024290 h 13 HYPERLINK l _Toc36024291 第4章 數(shù)字時(shí)鐘的設(shè)計(jì)實(shí)現(xiàn) PAGEREF _Toc36

10、024291 h 14 HYPERLINK l _Toc36024292 數(shù)字時(shí)鐘的硬件設(shè)計(jì)過(guò)程 PAGEREF _Toc36024292 h 14 HYPERLINK l _Toc36024293 硬件下載過(guò)程 PAGEREF _Toc36024293 h 14 HYPERLINK l _Toc36024294 4.2.1 接口設(shè)置 PAGEREF _Toc36024294 h 14 HYPERLINK l _Toc36024295 4.2.2 器件編程的下載 PAGEREF _Toc36024295 h 14 HYPERLINK l _Toc36024296 4.3 硬件電路連接 PAGE

11、REF _Toc36024296 h 15 HYPERLINK l _Toc36024297 4.3.1 硬件電路連接說(shuō)明 PAGEREF _Toc36024297 h 16 HYPERLINK l _Toc36024298 結(jié) 論 PAGEREF _Toc36024298 h 17 HYPERLINK l _Toc36024299 參考文獻(xiàn) PAGEREF _Toc36024299 h 18 HYPERLINK l _Toc36024300 附錄 PAGEREF _Toc36024300 h 19第1章 設(shè)計(jì)的硬件平臺(tái)及開(kāi)發(fā)工具1.1 硬件平臺(tái)本設(shè)計(jì)基于復(fù)雜可編程邏輯器件CPLD/FPGA設(shè)

12、計(jì)并實(shí)現(xiàn)數(shù)字時(shí)鐘。采用Altera公司的器件進(jìn)行設(shè)計(jì),開(kāi)發(fā)調(diào)試時(shí)采用Altera的FPGA芯片F(xiàn)LEX10K10LC84,設(shè)計(jì)完成后下載生成數(shù)字鐘硬件于Altera的CPLD芯片EPM7128SLC84中,實(shí)現(xiàn)數(shù)字鐘功能。利用Altera可編程邏輯器件開(kāi)發(fā)實(shí)驗(yàn)系統(tǒng)進(jìn)行設(shè)計(jì)。系統(tǒng)提供FPGA/CPLD下載板及相應(yīng)的其它硬件資源。時(shí)鐘的時(shí)間顯示采用6位LED數(shù)碼管動(dòng)態(tài)掃描驅(qū)動(dòng)方式,采用系統(tǒng)提供的1Hz脈沖輸出作為時(shí)鐘的秒輸入。按鍵作為調(diào)準(zhǔn)時(shí)、分及秒清零的功能鍵。蜂鳴器和發(fā)光二極管用于產(chǎn)生整點(diǎn)時(shí)的聲光報(bào)時(shí)信號(hào)。1.2 開(kāi)發(fā)工具利用Altera的可編程邏輯器件開(kāi)發(fā)工具M(jìn)AX+PLUS,采用原理圖輸入的

13、設(shè)計(jì)方法進(jìn)行數(shù)字鐘的設(shè)計(jì)與調(diào)試。MAX+PLUS是一個(gè)集成的軟件開(kāi)發(fā)平臺(tái),提供了從設(shè)計(jì)輸入、編譯、器件適配、軟件仿真到器件下載的全部功能。圖1-1為工具環(huán)境。圖1-1 MAX+PlusII工具環(huán)境第2章 數(shù)字時(shí)鐘的設(shè)計(jì)方案及FPGA的頂層設(shè)計(jì)2.1 數(shù)字鐘整體設(shè)計(jì)方案 數(shù)字鐘的功能1以24小時(shí)制顯示時(shí)、分、秒計(jì)數(shù); 2時(shí)間清零,時(shí)設(shè)置,分設(shè)置功能;3整點(diǎn)報(bào)時(shí)功能。 硬件要求1可編程邏輯器件主芯片:EPF10K10LC84-4;2顯示器件:采用六個(gè)八段LED共陰極數(shù)碼管,以動(dòng)態(tài)掃描方式顯示時(shí)間;3時(shí)間設(shè)定與調(diào)準(zhǔn):三個(gè)按鍵用于調(diào)時(shí)、調(diào)分及啟動(dòng)計(jì)時(shí);4采用蜂鳴器與發(fā)光二極管進(jìn)行整點(diǎn)聲光報(bào)時(shí);5由晶振

14、CD4060組成的脈沖發(fā)生電路提供數(shù)字鐘計(jì)時(shí)的秒脈沖輸入1Hz和動(dòng)態(tài)掃描驅(qū)動(dòng)模塊輸入脈沖頻率約為1kHz。 引腳說(shuō)明以及設(shè)計(jì)方案clk為秒脈沖輸入端,由晶振與分頻計(jì)數(shù)器CD4060組成的脈沖發(fā)生電路提供頻率為1Hz的秒脈沖輸入信號(hào);smclk為動(dòng)態(tài)掃描控制模塊的輸入端,由脈沖發(fā)生電路輸入頻率約1kHz的脈沖信號(hào);hourset、minset和reset分別為時(shí)設(shè)置、分設(shè)置和時(shí)間清零輸入端,連接按鈕開(kāi)關(guān);a、b、c、d、e、f、g、dp為顯示段碼輸出,接數(shù)碼管的段碼輸入led7s6-len7s0;sel0、sel1、sel2接SN74LS138N譯碼器的輸入端;speaker為數(shù)字鐘的整點(diǎn)聲音報(bào)

15、時(shí)輸出,接蜂鳴器進(jìn)行整點(diǎn)聲音報(bào)時(shí),lamp0、 lamp1和lamp2為數(shù)字鐘的報(bào)時(shí)燈光輸出,分別接三只LED發(fā)光二極管,進(jìn)行整點(diǎn)報(bào)時(shí)發(fā)光。數(shù)字鐘電路原理圖見(jiàn)附錄。2.2 可編程邏輯器件FPGA的頂層設(shè)計(jì)用頂層設(shè)計(jì)采用原理圖輸入設(shè)計(jì)、底層設(shè)計(jì)采用VHDL設(shè)計(jì)的原理圖與VHDL混合設(shè)計(jì)方法設(shè)計(jì)帶整點(diǎn)報(bào)時(shí)功能的數(shù)字鐘,所以此設(shè)計(jì)可分為頂層與底層設(shè)計(jì),共分為六個(gè)模塊,即時(shí)模塊、分模塊、秒模塊、動(dòng)態(tài)掃描控制模塊、段碼譯碼模塊和整點(diǎn)報(bào)時(shí)模塊。頂層電路設(shè)計(jì)原理圖如2-1所示。秒模塊主體為60進(jìn)制的計(jì)數(shù)器,daout為向動(dòng)態(tài)掃描控制模塊提供秒的個(gè)位和十位數(shù)據(jù)的信號(hào)。reset 為秒清零;enmin為分鐘進(jìn)位

16、,每60秒產(chǎn)生一個(gè)高電平的信號(hào),作為分模塊的時(shí)鐘輸入;clk為秒模塊的時(shí)鐘輸入,接1Hz脈沖信號(hào);min_set為分鐘設(shè)置,低電平是不影響秒模塊工作,當(dāng)它為高電平時(shí),enmin信號(hào)會(huì)隨之產(chǎn)生一個(gè)和clk頻率相同的信號(hào),到達(dá)調(diào)整分鐘的目的。分模塊主體為60進(jìn)制的計(jì)數(shù)器,daout為向動(dòng)態(tài)掃描控制模塊提供分的個(gè)位和十位數(shù)據(jù)的信號(hào)。Enhour為分鐘進(jìn)位,每60分產(chǎn)生一個(gè)高電平的信號(hào),作為時(shí)模塊的時(shí)鐘輸入;秒計(jì)數(shù)到60時(shí)的進(jìn)位輸出信號(hào)enhour1和分鐘調(diào)整輸入信號(hào)minset,經(jīng)或關(guān)系后接分的脈沖輸入端clk; clk1為時(shí)調(diào)整脈沖,接1Hz脈沖; hour_set為時(shí)鐘設(shè)置,低電平是不影響分模塊

17、工作,當(dāng)它為高電平時(shí),enmin信號(hào)會(huì)隨之產(chǎn)生一個(gè)和clk頻率相同的信號(hào),到達(dá)調(diào)整時(shí)的目的。時(shí)模塊為一個(gè)24進(jìn)制的計(jì)數(shù)器,daout為向動(dòng)態(tài)掃描控制模塊提供秒的個(gè)位和十位數(shù)據(jù)的信號(hào)。分計(jì)數(shù)到60時(shí)的進(jìn)位輸出信號(hào)enhour1和時(shí)調(diào)整輸入信號(hào)hourset,經(jīng)或關(guān)系后接時(shí)脈沖輸入端clk。daout為向動(dòng)態(tài)掃描控制模塊提供時(shí)的個(gè)位和十位數(shù)據(jù)的信號(hào)。動(dòng)態(tài)掃描模塊中smclk為動(dòng)態(tài)掃描控制模塊的脈沖輸入,由外部脈沖發(fā)生電路提供,頻率約為1kHz;sel0、sel1、sel2接外部38譯碼器74LS138的輸入端A、B、C譯碼器輸出經(jīng)75451驅(qū)動(dòng)LED數(shù)碼管的位選端;sec6.0、min6.0、ho

18、ur5.0分別為秒模塊、分模塊、時(shí)模塊計(jì)數(shù)段碼輸出控制信號(hào)。該模塊實(shí)現(xiàn)時(shí)間的動(dòng)態(tài)掃描顯示控制。段碼譯碼模塊是將動(dòng)態(tài)掃描模塊輸出的BCD碼轉(zhuǎn)換成驅(qū)動(dòng)數(shù)碼管所需要的信號(hào)。整點(diǎn)報(bào)時(shí)模塊用于產(chǎn)生整點(diǎn)時(shí)的LED發(fā)光二極管彩燈和報(bào)時(shí)輸出。分模塊輸出的信號(hào)接入dain。整點(diǎn)聲音報(bào)時(shí)輸出信號(hào)speak接蜂鳴器輸入,信號(hào)lamp2.0控制整點(diǎn)時(shí)產(chǎn)生60秒的LED發(fā)光二極管彩燈閃爍報(bào)時(shí)輸出信號(hào)。 圖2-1 頂層電路設(shè)計(jì)原理圖第3章 數(shù)字時(shí)鐘的底層模塊設(shè)計(jì)3.1 秒模塊設(shè)計(jì)圖3-1 秒模塊頂層設(shè)計(jì)原理圖 秒模塊VHDL程序library ieee;use ieee.std_logic_1164.all;use ie

19、ee.std_logic_unsigned.all; entity sec isport(clk,reset,min_set:in std_logic;-clk為1Hz的秒脈沖輸入信號(hào),reset為秒清零復(fù)位信號(hào) -min_set為分鐘調(diào)整 enmin:out std_logic; -enmin為秒模塊進(jìn)位輸出daout:out std_logic_vector(6 downto 0); -2n-160,n=7,27=64,分鐘用7位二進(jìn)制數(shù)表示 -daout6.4為十位,daout3.0為個(gè)位,60循環(huán)計(jì)數(shù)end entity sec;architecture behave of sec i

20、s signal count:std_logic_vector(6 downto 0); -定義內(nèi)部計(jì)數(shù)節(jié)點(diǎn),60循環(huán)計(jì)數(shù) signal enmin1,enmin2:std_logic; -enmin為60秒產(chǎn)生的進(jìn)位,enmin2為調(diào)分鍵產(chǎn)生的向分模塊的進(jìn)位begindaout=count; enmin2=(min_set and clk); enmin=(enmin1 or enmin2); -60秒鐘到和調(diào)分鍵均向分模塊產(chǎn)生進(jìn)位脈沖process(clk,reset,min_set)beginif(reset=0)then count=0000000; -檢測(cè)秒模塊的1Hz脈沖上升沿el

21、sif(clkevent and clk=1)then if(count(3 downto 0)=1001)then -秒的個(gè)位是否到“9”if count(6 downto 4)=101then -秒各位到“9”后,十位計(jì)數(shù)到“5”enmin1=1; -秒模塊的60秒進(jìn)位輸出enmin置“1”,向分模塊產(chǎn)生進(jìn)位count=0000000; -秒計(jì)數(shù)值“0000000”零秒elsecount=count+7; -秒各位到“9”后,十位計(jì)數(shù)沒(méi)到“5”,那么加“7”變?yōu)椤?”,同時(shí)向十位進(jìn)位end if;elsecount=count+1; -秒個(gè)位沒(méi)計(jì)到“9”時(shí),秒計(jì)數(shù)值加“1”enmin1=0

22、; -秒模塊的60秒進(jìn)位輸出enmin1置“0”,不向分模塊進(jìn)位end if;end if;end process;end behave; 秒模塊的仿真實(shí)現(xiàn)由圖3-2可以看出 clk輸入脈沖信號(hào)時(shí),動(dòng)態(tài)掃描控制模塊daout和count開(kāi)始啟動(dòng)計(jì)數(shù),此時(shí)分設(shè)置min_set為低電平。在ns時(shí)將min_set設(shè)置為高電平,此刻分進(jìn)位enmin產(chǎn)生與clk相同頻率的信號(hào)脈沖,當(dāng)在ns時(shí),min_set為低電平,那么enmin也為低電平無(wú)脈沖。當(dāng)ns時(shí),清零reset設(shè)置為低電平,此刻daout和count都將清零,當(dāng)735.0ns時(shí)reset恢復(fù)為高電平,daout和coutn兩者重新開(kāi)始計(jì)數(shù)。6

23、05.0ns時(shí)daout計(jì)數(shù)到六十,enmin產(chǎn)生脈沖后daout和count清零并重新開(kāi)始計(jì)數(shù)。如上所述功能實(shí)現(xiàn)。圖3-2 秒模塊仿真圖3.2 分模塊設(shè)計(jì)圖3-3 分模塊頂層設(shè)計(jì)原理圖 分模塊VHDL程序LIBRARY ieee;_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY min ISPORT(clk,clk1,hour_set:IN STD_LOGIC; -clk為分鐘模塊的脈沖輸入信號(hào),接秒模塊的進(jìn)位輸出 -clk1接秒脈沖輸入,hour_set為小時(shí)調(diào)整enhour:OUT STD_LOGIC; -enhour為分鐘模塊

24、的進(jìn)位輸出daout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-2n-160,n=7,27=64,分鐘用7位二進(jìn)制數(shù)表示-daout6.4為十位,daout3.0,60循環(huán)計(jì)數(shù)END ENTITY min;ARCHITECTURE behave OF min ISSIGNAL count:STD_LOGIC_VECTOR(6 DOWNTO 0);-定義內(nèi)部計(jì)數(shù)節(jié)點(diǎn),60循環(huán)計(jì)數(shù)SIGNAL enhour1,enhour2:STD_LOGIC;-enhour1為60分鐘產(chǎn)生的進(jìn)位。enhour2為調(diào)時(shí)鍵的脈沖BEGINdaout= count;enhour2=(hour

25、_set and clk1);enhour=(enhour1 or enhour2); -60分鐘到和調(diào)時(shí)鍵均向小時(shí)模塊產(chǎn)生進(jìn)位脈沖PROCESS(clk)BEGINIF(clkevent and clk=1)THEN -檢測(cè)分鐘模塊的脈沖上升沿IF(count(3 downto 0)=1001)THEN -分鐘的各位是否到“9”IF count(6 downto 4)=101THEN -分鐘各位到“9”后,十位計(jì)數(shù)到“5”enhour1=1; -分鐘模塊的60分鐘進(jìn)位輸出enhour1置“1”,向時(shí)模塊產(chǎn)生進(jìn)位count=0000000; -分鐘計(jì)數(shù)值回零“0000000”零分ELSEcou

26、nt=count+7; -分鐘各位到“9”后,十位計(jì)數(shù)沒(méi)到“5”,那么“7”變?yōu)椤?”,同時(shí)向十位進(jìn)位END IF;ELSEcount=count+1; -分鐘各位沒(méi)計(jì)到“9”時(shí),分鐘計(jì)數(shù)值加“1”enhour1=0; -分鐘模塊的60分鐘進(jìn)位輸出enhour1置“0”,不向時(shí)模塊進(jìn)位END IF;END IF;END PROCESS;END behave; .2 分模塊的仿真實(shí)現(xiàn)由圖3-4可以看出,當(dāng)clk輸入脈沖信號(hào)時(shí),態(tài)掃描控制模塊daout和count開(kāi)始啟動(dòng)計(jì)數(shù),這時(shí)時(shí)進(jìn)位enhour為低電平,且時(shí)設(shè)置hour_set也為低電平。在s時(shí),將hour_set設(shè)置為高電平,此時(shí)enhou

27、r產(chǎn)生與clk1相同的頻率信號(hào)。當(dāng)s時(shí),hour_set恢復(fù)低電平,enhour也變?yōu)榈碗娖綗o(wú)脈沖。1.21us時(shí),daout計(jì)數(shù)到60,enhour產(chǎn)生脈沖,daout和count清零并將重新計(jì)數(shù)。如上所述功能實(shí)現(xiàn)。圖3-4 分模塊仿真圖3.3 時(shí)模塊設(shè)計(jì)圖3-5 時(shí)模塊頂層設(shè)計(jì)原理圖 時(shí)模塊VHDL程序LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY hour ISPORT(clk:IN STD_LOGIC;daout:OUT STD_LOGIC_VECTOR(5 DOWNTO 0

28、);- 2n-124,n=6,26 =32,小時(shí)用6位二進(jìn)制數(shù)表示-daout5.4為十位,daout3.0為個(gè)位,24循環(huán)計(jì)數(shù)END ENTITY hour;ARCHITECTURE behave OF hour ISSIGNAL count:STD_LOGIC_VECTOR(5 DOWNTO 0);-定義內(nèi)部計(jì)數(shù)節(jié)點(diǎn),24循環(huán)計(jì)數(shù)BEGINdaout=count;PROCESS(clk)BEGINIF(clkevent and clk=1)THEN -檢測(cè)小時(shí)模塊的脈沖上升沿IF(count(3 downto 0)=1001)THEN -小時(shí)的各位是否到“9”IF(count16#23#)

29、THEN count=count+7; -小時(shí)各位到“9”后,計(jì)數(shù)沒(méi)到“23”,那么加“7”變?yōu)椤?”,同時(shí)向十位進(jìn)位ELSE count=000000;-小時(shí)各位到“9”后,如果計(jì)數(shù)值大于“23”,那么置小時(shí)為“零END IF;ELSIF(count16#23#)THEN count=count+1; -小時(shí)個(gè)位沒(méi)計(jì)到“9”且計(jì)數(shù)沒(méi)到“23”時(shí),加“1”ELSE count=000000; -小時(shí)計(jì)數(shù)已到“23”時(shí),計(jì)數(shù)值回零“000000”零時(shí)END IF;END IF;END PROCESS;END behave;.2 時(shí)模塊的仿真實(shí)現(xiàn)由圖3-6可以看出,當(dāng)clk輸入脈沖信號(hào)時(shí),動(dòng)態(tài)掃描

30、控制模塊daout和count開(kāi)始啟動(dòng)計(jì)數(shù)。在970.0ns時(shí),daout和count到達(dá)24,并且從重新開(kāi)始計(jì)數(shù)。如上所述功能實(shí)現(xiàn)。圖3-6 時(shí)模塊仿真圖3.4 動(dòng)態(tài)顯示掃描模塊設(shè)計(jì)圖3-7 動(dòng)態(tài)顯示掃描模塊頂層設(shè)計(jì)原理圖 動(dòng)態(tài)顯示掃描模塊VHDL程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity selmk isport(clk1:in std_logic; -動(dòng)態(tài)掃描輸入脈沖sec,min:in std_logic_ve

31、ctor(6 downto 0); -7位二進(jìn)制數(shù)表示的秒、分計(jì)數(shù)輸入hour:in std_logic_vector(5 downto 0); -6位二進(jìn)制數(shù)表示的小時(shí)計(jì)數(shù)輸入daout:out std_logic_vector(3 downto 0); -4位十進(jìn)制碼計(jì)數(shù)輸入dp:out std_logic; -時(shí)、分、秒間的間隔“點(diǎn)輸出sel:out std_logic_vector(2 downto 0); -3位數(shù)碼管位選輸出,接外部3-8譯碼器輸出,譯碼輸出再經(jīng)驅(qū)動(dòng)接數(shù)碼管共陰極端end entity selmk;architecture behave of selmk issig

32、nal count:std_logic_vector(2 downto 0); -定義內(nèi)部計(jì)數(shù)節(jié)點(diǎn),六進(jìn)制循環(huán)計(jì)數(shù)6個(gè)數(shù)碼管顯示beginsel=101)then count=000; else countdaout=sec(3 downto 0);dpdaout(3)=0;daout(2 downto 0)=sec(6 downto 4);dpdaout=min(3 downto 0);dpdaout(3)=0;daout(2 downto 0)=min(6 downto 4);dpdaout=hour(3 downto 0);dpdaout(3 downto 2)=00;daout(1 d

33、ownto 0)=hour(5 downto 4);dpled7sled7sled7sled7sled7sled7sled7sled7sled7sled7snull;end case;end process;end behave;.2 段碼譯碼模塊的仿真實(shí)現(xiàn)由圖3-10可以看出,此模塊是將掃描模塊的dout信號(hào)輸出的BCD碼轉(zhuǎn)換為數(shù)碼管可以顯示的段碼。如上所述功能實(shí)現(xiàn)。圖 3-10段碼譯碼模塊時(shí)序仿真圖3.6 整點(diǎn)報(bào)時(shí)模塊設(shè)計(jì)發(fā)揮局部圖3-11 整點(diǎn)報(bào)時(shí)模塊頂層設(shè)計(jì)原理圖 整點(diǎn)報(bào)時(shí)模塊VHDL程序LIBRARY ieee;use ieee.std_logic_1164.all;use ieee

34、.std_logic_unsigned.all;entity bsmk isport(clk:in std_logic; -脈沖輸入,可接1Hz秒脈沖輸入,用于整點(diǎn)聲報(bào)時(shí)發(fā)出間斷報(bào)時(shí)響聲dain:in std_logic_vector(6 downto 0); -分鐘模塊計(jì)數(shù)輸入speak:out std_logic; -整點(diǎn)聲報(bào)時(shí)輸出,外接蜂鳴器lamp:out std_logic_vector(2 downto 0);-整點(diǎn)光報(bào)時(shí)輸出,可外接紅、藍(lán)、黃三個(gè)發(fā)光二極管end entity bsmk;architecture behave of bsmk issignal count:std_

35、logic_vector(1 downto 0); -定義內(nèi)部計(jì)數(shù)節(jié)點(diǎn)beginprocess(clk)beginspeak10)then count=01;else count=count+1;end if;if(count=01)then lamp=001; -整點(diǎn)光報(bào)時(shí),可接紅色發(fā)光二極管elsif(count=10)then lamp=010; -整點(diǎn)光報(bào)時(shí),可接綠色發(fā)光二極管elsif(count=11)then lamp=100; -整點(diǎn)光報(bào)時(shí),可接黃色發(fā)光二極管end if;else lamp=000; count(0)=0; -沒(méi)到整點(diǎn)時(shí),無(wú)聲光報(bào)時(shí)輸出end if;end i

36、f;end process;end behave;.2 整點(diǎn)報(bào)時(shí)模塊的仿真實(shí)現(xiàn)clk為脈沖輸入信號(hào),lamp表示報(bào)警燈的信號(hào)顯示,speak表示蜂鳴器報(bào)警信號(hào)顯示。由圖3-12可以看出,當(dāng)clk輸入脈沖信號(hào)時(shí),dain并沒(méi)有信號(hào)產(chǎn)生。而count開(kāi)始啟動(dòng)計(jì)數(shù),在40.0ns時(shí),報(bào)時(shí)speak開(kāi)始報(bào)警,lamp閃爍顯示。在210.0ns時(shí),dain變?yōu)?,speak和lamp都變?yōu)榈碗娖讲辉賵?bào)警。由此可以看出在dain為零時(shí),分鐘即為零。如上所述功能實(shí)現(xiàn)。圖3-12 整點(diǎn)報(bào)時(shí)模塊仿真圖第4章 數(shù)字時(shí)鐘的設(shè)計(jì)實(shí)現(xiàn)(1) 開(kāi)發(fā)環(huán)境的翻開(kāi) 單擊“開(kāi)始 “所有程序 “MAX+plus II 10.0 B

37、ASELINE “MAX+plus II 10.0 BASELINE(2) 建立文件 單擊“MAX+plus II “Gnaphic Editor來(lái)建立新的文件,輸入各模塊原理圖、引腳、原件,定義后連接原理圖和原件以及引腳,單擊“保存“編譯進(jìn)行文件的編譯錯(cuò)誤檢查。 接口設(shè)置在當(dāng)前文件下單擊“File “Project “Set Project to Current File指定文件,點(diǎn)擊“MAX+plus II “Programmer彈出下載對(duì)話框如圖4-1,后選擇“Options“Hardware Setup在對(duì)話框中選擇“ByteBlaster(MV)后單擊確定按鈕完成設(shè)置。圖4-1 接口設(shè)置對(duì)話框 器件編程的下載接口設(shè)置成功以后,單擊“JIAG “Multi-Device JIAG Chain Setup進(jìn)入器件編程選擇對(duì)話框,如圖4-2,此時(shí)點(diǎn)擊“Select Programming File找到文件名為“的編程文

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論