基于VHDL的數(shù)字電子時鐘的設(shè)計說明_第1頁
基于VHDL的數(shù)字電子時鐘的設(shè)計說明_第2頁
基于VHDL的數(shù)字電子時鐘的設(shè)計說明_第3頁
基于VHDL的數(shù)字電子時鐘的設(shè)計說明_第4頁
基于VHDL的數(shù)字電子時鐘的設(shè)計說明_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 PAGE33 / NUMPAGES33基于VHDL的數(shù)字電子時鐘的設(shè)計目錄 TOC o 1-3 h z u HYPERLINK l _Toc30710 基于VHDL的數(shù)字電子時鐘的設(shè)計 PAGEREF _Toc30710 1 HYPERLINK l _Toc28567 目錄 PAGEREF _Toc28567 1 HYPERLINK l _Toc13305 摘要 PAGEREF _Toc13305 2 HYPERLINK l _Toc9908 引言 PAGEREF _Toc9908 2 HYPERLINK l _Toc2508 一、設(shè)計分析 PAGEREF _Toc2508 3 HYPERL

2、INK l _Toc32214 1.1 設(shè)計要求 PAGEREF _Toc32214 3 HYPERLINK l _Toc7220 1.2 性能指標(biāo)與功能設(shè)計性能指標(biāo) PAGEREF _Toc7220 3 HYPERLINK l _Toc6748 二、設(shè)計方案 PAGEREF _Toc6748 3 HYPERLINK l _Toc31249 三、設(shè)計環(huán)境 PAGEREF _Toc31249 4 HYPERLINK l _Toc23192 3.1 硬件設(shè)計環(huán)境 PAGEREF _Toc23192 4 HYPERLINK l _Toc20351 3.1.1 可編程器件EP2C5Q208C8N 與開

3、發(fā)板系統(tǒng) PAGEREF _Toc20351 5 HYPERLINK l _Toc11527 3.1.2 64位的計算機(jī)一臺 PAGEREF _Toc11527 5 HYPERLINK l _Toc8364 3.2 軟件設(shè)計環(huán)境 PAGEREF _Toc8364 5 HYPERLINK l _Toc7731 3.2.1 Quartus軟件開發(fā)平臺(8.0版本) PAGEREF _Toc7731 5 HYPERLINK l _Toc25769 3.2.2Windows7操作系統(tǒng) PAGEREF _Toc25769 5 HYPERLINK l _Toc15064 3.2.3 硬件描述語言VHDL

4、PAGEREF _Toc15064 5 HYPERLINK l _Toc18308 四、整體設(shè)計流圖 PAGEREF _Toc18308 7 HYPERLINK l _Toc4100 4.1 各模塊的原理性功能介紹 PAGEREF _Toc4100 7 HYPERLINK l _Toc22121 4.1.1 可編程器件EP2C5Q208C8N PAGEREF _Toc22121 7 HYPERLINK l _Toc8510 4.1.2 CPLD-JTAG接口 PAGEREF _Toc8510 7 HYPERLINK l _Toc11681 4.1.3 晶振和蜂鳴器 PAGEREF _Toc11

5、681 7 HYPERLINK l _Toc11526 4.1.4 LED數(shù)碼管顯示 PAGEREF _Toc11526 8 HYPERLINK l _Toc16288 4.1.5 獨(dú)立按鍵 PAGEREF _Toc16288 9 HYPERLINK l _Toc6692 4.1.6 撥碼開關(guān) PAGEREF _Toc6692 9 HYPERLINK l _Toc17806 4.1.7 Quartus軟件開發(fā)平臺(8.0版本) PAGEREF _Toc17806 9 HYPERLINK l _Toc31906 4.2 設(shè)計的整體框架 PAGEREF _Toc31906 10 HYPERLINK

6、 l _Toc11487 4.2.1在各個模塊都編譯通過的基礎(chǔ)上在頂層用原理圖的方法實(shí)現(xiàn)。 PAGEREF _Toc11487 10 HYPERLINK l _Toc22376 4.2.2 設(shè)計原理與流程圖 PAGEREF _Toc22376 11 HYPERLINK l _Toc13057 4.2.3邏輯流程圖 PAGEREF _Toc13057 12 HYPERLINK l _Toc10185 4.2.4狀態(tài)轉(zhuǎn)移圖 PAGEREF _Toc10185 13 HYPERLINK l _Toc10025 五、系統(tǒng)的模塊化設(shè)計 PAGEREF _Toc10025 13 HYPERLINK l _

7、Toc29327 5.1 軟件程序模塊化設(shè)計 PAGEREF _Toc29327 13 HYPERLINK l _Toc19389 5.1.1 秒/分/時輸入模塊的軟件設(shè)計 PAGEREF _Toc19389 13 HYPERLINK l _Toc1601 5.1.2 秒/分/時計數(shù)模塊的軟件設(shè)計 PAGEREF _Toc1601 14 HYPERLINK l _Toc23546 5.1.3 模式選擇模塊的軟件設(shè)計 PAGEREF _Toc23546 14 HYPERLINK l _Toc1207 5.1.4 數(shù)碼管 PAGEREF _Toc1207 15 HYPERLINK l _Toc81

8、20 5.1.5 鬧鐘模塊的軟件設(shè)計 PAGEREF _Toc8120 16 HYPERLINK l _Toc5692 5.1.5 系統(tǒng)時鐘的軟件設(shè)計 PAGEREF _Toc5692 18 HYPERLINK l _Toc1671 5.2 硬件的測試 PAGEREF _Toc1671 20 HYPERLINK l _Toc31436 5.2.1模擬時鐘電路圖與實(shí)物圖 PAGEREF _Toc31436 20 HYPERLINK l _Toc19577 設(shè)計心得 PAGEREF _Toc19577 23 HYPERLINK l _Toc4655 致 PAGEREF _Toc4655 24 HY

9、PERLINK l _Toc32328 參考文獻(xiàn) PAGEREF _Toc32328 24摘要隨著人類的不斷進(jìn)步,現(xiàn)代電子設(shè)計技術(shù)已進(jìn)入一個全新的階段,傳統(tǒng)的電子設(shè)計方法、工具和器件在更大的程度上被EDA所取代。本實(shí)驗(yàn)則是基于VHDL語言設(shè)計的數(shù)字鐘,具有時、分、秒顯示功能。電路主要有時間計數(shù)模塊、時間顯示模塊以與譯碼模塊。 數(shù)字鐘是一個將“時”、“分”、“秒”顯示于人的視覺器官的計時裝置。它的基本功能是計時,計時周期為24小時,顯示滿刻度23時59分59秒;數(shù)字鐘學(xué)習(xí)的目的是掌握各類計數(shù)器與它們相連的設(shè)計方法,熟悉多個數(shù)碼管顯示的原理與方法以與模塊化設(shè)計方式;掌握用VHDL語言的設(shè)計思想以與

10、整個數(shù)字系統(tǒng)的設(shè)計。此數(shù)字鐘具有時,分,秒計數(shù)顯示功能,以24小時為計數(shù)循環(huán),能實(shí)現(xiàn)清零,調(diào)時,調(diào)分以與鬧鐘等功能。本設(shè)計是一個顯示時(2位)分(2位)秒(2位)共六個數(shù)字的多功能電子鐘。因此將其分頻得1Hz的秒鐘信號,秒計滿60即得1分鐘,分滿60即得1小時信號,小時滿24即得一天。 關(guān)鍵詞:數(shù)字鐘,計數(shù)器,數(shù)碼管,模塊化設(shè)計, VHDL 引言 本設(shè)計采用的VHDL是一種全方位的硬件描述語言具有極強(qiáng)的描述能力能支持系統(tǒng)行為級、寄存器傳輸級和邏輯門級三個不同層次的設(shè)計。當(dāng)今電子產(chǎn)品正向功能多元化,體積最小化,功耗最低化的方向發(fā)展。它與傳統(tǒng)的電子產(chǎn)品在設(shè)計上的顯著區(qū)別師大量使用大規(guī)??删幊踢壿嬈?/p>

11、件,使產(chǎn)品的性能提高,體積縮小,功耗降低.同時廣泛運(yùn)用現(xiàn)代計算機(jī)技術(shù),提高產(chǎn)品的自動化程度和競爭力,縮短研發(fā)周期。EDA技術(shù)正是為了適應(yīng)現(xiàn)代電子技術(shù)的要求,吸收眾多學(xué)科最新科技成果而形成的一門新技術(shù)。 美國ALTERA公司的可編程邏輯器件采用全新的結(jié)構(gòu)和先進(jìn)的技術(shù),加上MaxplusII(或最新的QUARTUS)開發(fā)環(huán)境,更具有高性能,開發(fā)周期短等特點(diǎn),十分方便進(jìn)行電子產(chǎn)品的開發(fā)和設(shè)計。 EDA技術(shù),技術(shù)以大規(guī)??删幊踢壿嬈骷樵O(shè)計載體,以硬件描述語言為系統(tǒng)邏輯描述主要表達(dá)方式,以計算機(jī)、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件與實(shí)驗(yàn)開發(fā)系統(tǒng)為設(shè)計工具,通過有關(guān)的開發(fā)軟件,自動完成用軟件的方式設(shè)計的電子

12、系統(tǒng)到硬件系統(tǒng)的邏輯編譯,邏輯化簡,邏輯分割,邏輯映射,編程下載等工作。最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù)。 本設(shè)計利用VHDL硬件描述語言結(jié)合可編程邏輯器件進(jìn)行的,并通過數(shù)碼管動態(tài)顯示計時結(jié)果。數(shù)字鐘可以由各種技術(shù)實(shí)現(xiàn),如單片機(jī)等.利用可編程邏輯器件具有其他方式?jīng)]有的特點(diǎn),它具有易學(xué)、方便、新穎、有趣、直觀設(shè)計與實(shí)驗(yàn)項目成功率高,理論與實(shí)踐結(jié)合緊密,體積小,容量大,I/O口豐富,易編程和加密等特點(diǎn)。并且它還具有開放的界面,豐富的設(shè)計庫,模塊化的工具以與LPM定制等優(yōu)良性能,應(yīng)用非常方便。因此,本設(shè)計采用可編程邏輯器件實(shí)現(xiàn)。 本設(shè)計主要研究基于FPGA的數(shù)字鐘,要求時間以24小時為

13、一個周期,顯示時、分、秒。具有校時以與報時功能,可以對時、分與秒進(jìn)行單獨(dú)校對,使其校正到標(biāo)準(zhǔn)時間。一、設(shè)計分析1.1 設(shè)計要求1)具有時、分、秒計數(shù)顯示功能,以24小時循環(huán)計時。 2)要求走時誤差不大于每天10秒。 3)具有調(diào)節(jié)小時、分鐘,秒與清零的功能。 4)定時鬧鐘,實(shí)現(xiàn)整點(diǎn)報時,又揚(yáng)聲器發(fā)出報時聲音,發(fā)出滴答的聲音??删幊踢壿嬈骷c外圍電子元器件,設(shè)計一個數(shù)字電子鐘,利用EDA軟件(QUARTUS )進(jìn)行編譯與仿真,設(shè)計輸入可采用VHDL硬件描述語言輸入法)和原理圖輸入法,并下載到EDA實(shí)驗(yàn)開發(fā)系統(tǒng),連接外圍電路,完成實(shí)際測試。 1.2 性能指標(biāo)與功能設(shè)計性能指標(biāo)1)時鐘計數(shù):完成時、分

14、、秒的正確計時并且顯示所計的數(shù)字;對秒、分 60進(jìn)制計數(shù),即從0到59循環(huán)計數(shù),時鐘24進(jìn)制計數(shù),即從0到23循環(huán)計數(shù),并且在數(shù)碼管上顯示數(shù)值。 2)時間設(shè)置:手動調(diào)節(jié)分鐘、小時,可以對所設(shè)計的時鐘任意調(diào)時間,這樣使數(shù)字鐘真正具有使用功能。我們可以通過實(shí)驗(yàn)板上的鍵7和鍵4進(jìn)行任意的調(diào)整,因?yàn)槲覀冇玫臅r鐘信號均是1HZ的,所以每LED燈變化一次就來一個脈沖,即計數(shù)一次。 3)清零功能:reset為復(fù)位鍵,低電平時實(shí)現(xiàn)清零功能,高電平時正常計數(shù)??梢愿鶕?jù)我們自己任意時間的復(fù)位。 4)蜂鳴器在整點(diǎn)時有報時信號產(chǎn)生,蜂鳴器報警。產(chǎn)生“滴答.滴答”的報警聲音。,當(dāng)鬧鐘計數(shù)至我們預(yù)先設(shè)定的時間時,鬧鐘的鈴

15、聲響起,以提示人們時間到了。 二、設(shè)計方案本設(shè)計采用自頂向下的設(shè)計方法和模塊化設(shè)計方式,它由秒計數(shù)模塊,分計數(shù)模塊,小時計數(shù)模塊,報警模塊,秒分時設(shè)置模塊和譯碼模塊,程序包, entity模塊(頂層模塊)八部分組成。 優(yōu)點(diǎn):設(shè)計簡單方便,層次清晰,工程的建立方便,無需單獨(dú)設(shè)計各個組件模塊產(chǎn)生原理圖文件后再進(jìn)行電路連接設(shè)計。 用頂層設(shè)計采用原理圖輸入設(shè)計、底層設(shè)計采用VHDL設(shè)計的原理圖與VHDL混合設(shè)計方法設(shè)計帶整點(diǎn)報時功能的數(shù)字鐘,所以此設(shè)計可分為頂層與底層設(shè)計,共分為六個模塊。即時模塊、分模塊、秒模塊、動態(tài)掃描控制模塊、段碼譯碼模塊和整點(diǎn)報時模塊。 秒模塊主體為60進(jìn)制的計數(shù)器,ss為向動

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

17、電平是不影響分模塊工作,當(dāng)它為高電平時,mm信號會隨之產(chǎn)生一個和clk頻率一樣的信號,達(dá)到調(diào)整時的目的。 時模塊為一個24進(jìn)制的計數(shù)器,動態(tài)掃描控制模塊提供秒的個位和十位數(shù)據(jù)的信號。分計數(shù)到60時的進(jìn)位輸出信號和時調(diào)整輸入信號,經(jīng)或關(guān)系后接時脈沖輸入端clk。為向動態(tài)掃描控制模塊提供時的個位和十位數(shù)據(jù)的信號。 動態(tài)掃描模塊中為動態(tài)掃描控制模塊的脈沖輸入,由外部脈沖發(fā)生電路提供,頻率約為1kHz,sel0、sel1、sel2接外部38譯碼器74LS138的輸入端A、B、C,ss6.0、mm6.0、hh5.0分別為秒模塊、分模塊、時模塊計數(shù)段碼輸出控制信號。該模塊實(shí)現(xiàn)時間的動態(tài)掃描顯示控制。字系統(tǒng)

18、采用自頂向下、由粗到細(xì),逐步分解的設(shè)計方法,最頂層電路是指系統(tǒng)的整體要求,最下層是具體的邏輯電路實(shí)現(xiàn)。自頂向下的設(shè)計方法將一個復(fù)雜的系統(tǒng)逐步分解成若干功能模塊,從而進(jìn)行設(shè)計描述,并且應(yīng)用EDA軟件平臺自動完成各功能模塊的邏輯綜合與優(yōu)化。利用Quartus進(jìn)行具體設(shè)計編程、處理、檢查以與器件編程三、設(shè)計環(huán)境3.1 硬件設(shè)計環(huán)境本設(shè)計使用VHDL硬件開發(fā)板,可編程邏輯器件EP2C5Q208C8N 系列。設(shè)計過程中用到的外圍電路的以與設(shè)計條件: 3.1.1 可編程器件EP2C5Q208C8N 與開發(fā)板系統(tǒng)3.1.2.1 CPLD JTAG接口 3.1.3.2 晶振和蜂鳴器 3.1.4.3 LED數(shù)碼

19、管顯示 3.1.5.4 獨(dú)立按鍵3.1.6.5 撥碼開關(guān)3.1.2 64位的計算機(jī)一臺3.2 軟件設(shè)計環(huán)境3.2.1 Quartus軟件開發(fā)平臺(8.0版本)3.2.2Windows7操作系統(tǒng)3.2.3 硬件描述語言VHDL 3.2.3.1 VHDL的簡介 VHDL的英文全名是Very-High-Speed Integrated Circuit HardwareDescription Language,誕生于1982年。1987年底,VHDL被IEEE和美國國防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語言 。自IEEE公布了VHDL的標(biāo)準(zhǔn)版本,IEEE-1076(簡稱87版)之后,各EDA公司相繼推出了自己的VH

20、DL設(shè)計環(huán)境,或宣布自己的設(shè)計工具可以和VHDL接口。此后VHDL在電子設(shè)計領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)的硬件描述語言。1993年,IEEE對VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本,(簡稱93版)?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述語言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語言。有專家認(rèn)為,在新的世紀(jì)中,VHDL于Verilog語言將承擔(dān)起大部分的數(shù)字系統(tǒng)設(shè)計任務(wù)。3.2.3.2 VHDL的特點(diǎn) (1)用VHDL代碼而不是用

21、原理圖進(jìn)行設(shè)計,意味著整個電路板的模型與性能可用計算機(jī)模擬進(jìn)行驗(yàn)證。 (2) VHDL元件的設(shè)計與工藝u無關(guān),與工藝獨(dú)立,方便工藝轉(zhuǎn)換。 (3)VHDL支持各種設(shè)計方法,自頂向下、自底向上或者混合的都可以。 (4)可以進(jìn)行從系統(tǒng)級到邏輯級的描述,即混合描述。(5)VHDL區(qū)別于其他的HDL,已形成標(biāo)準(zhǔn),其代碼在不同的系統(tǒng)中可交換建模。3.2.3.3 VHDL的設(shè)計流程 1)設(shè)計規(guī)的定義 明確這個系統(tǒng)有哪些設(shè)計要求,和你要想到達(dá)的目標(biāo)。 2)采用VHDL進(jìn)行設(shè)計描述 這部分包括設(shè)計規(guī)劃和程序的編寫。設(shè)計規(guī)劃主要包括設(shè)計方式的選擇與是否進(jìn)行模塊劃分。設(shè)計方式一般包括直接設(shè)計,自頂向下和自底向下設(shè)計

22、,這個和其他軟件語言差不多。最重要還是模塊劃分。 3)VHDL程序仿真 4)綜合、優(yōu)化和布局布線 綜合指的是將設(shè)計描述轉(zhuǎn)化成底層電路的表示形式,其結(jié)果是一個網(wǎng)表或者是一組邏輯方程;優(yōu)化,這個主要是為了提高程序的執(zhí)行效率與減少資源的利用;布局布線,指的是將邏輯關(guān)系轉(zhuǎn)化成電路連接的方式。 5)仿真 ,這個與VHDL程序仿真不同,這個不僅是對邏輯方面的驗(yàn)證,還要進(jìn)行時序功能驗(yàn)證。6)器件編程 四、整體設(shè)計流圖4.1 各模塊的原理性功能介紹4.1.1 可編程器件EP2C5Q208C8N4.1.2 CPLD-JTAG接口4.1.3 晶振和蜂鳴器 晶體振蕩電路是構(gòu)成數(shù)字式時鐘的核心,它保證了時鐘走時準(zhǔn)確與

23、穩(wěn)定。晶體振蕩器它的作用是產(chǎn)生時間標(biāo)準(zhǔn)信號。數(shù)字鐘的精度主要取決于時間標(biāo)準(zhǔn)信號的頻率與其穩(wěn)定度。因此,一般采用石英晶體振蕩器經(jīng)過分頻得到這一信號。晶體振蕩器電路給數(shù)字鐘提供一個頻率穩(wěn)定準(zhǔn)確的32768Hz的方波信號,可保證數(shù)字鐘的走時準(zhǔn)確與穩(wěn)定。不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器電路 4.1.4 LED數(shù)碼管顯示 譯碼是把給定的代碼進(jìn)行翻譯,本設(shè)計即是將時、分、秒計數(shù)器輸出的四位二進(jìn)制數(shù)代碼翻譯為相應(yīng)的十進(jìn)制數(shù),并通過顯示器顯示。 譯碼為編碼的逆過程。它將編碼時賦予代碼的含義“翻譯”過來。實(shí)現(xiàn)譯。碼的邏輯電路成為譯碼器。譯碼器輸出與輸入代碼有唯一的對應(yīng)關(guān)系。74LS47

24、是輸出低電平有效的七段字形譯碼器,它在這里與數(shù)碼管配合使用,下表列出了74LS47的真值表,表示出了它與數(shù)碼管之間的關(guān)系。 譯碼是把給定的代碼進(jìn)行翻譯,本設(shè)計即是將時、分、秒計數(shù)器輸出的四位二進(jìn)制數(shù)代碼翻譯為相應(yīng)的十進(jìn)制數(shù),并通過顯示器顯示,通常顯示器與譯碼器是配套使用的。我們選用的七段譯碼驅(qū)動器(74LS47)和LA5611數(shù)碼管。4.1.5 獨(dú)立按鍵 此次設(shè)計主要外部電路的觸發(fā),每按一下將記一次數(shù)。S1 校對秒的按鍵 S3 校對分的按鍵S6 校對時的按鍵 多功能數(shù)字鐘的鬧鐘功能部分通過按鍵s1,s3,s6,設(shè)定鬧鐘時間,當(dāng)時鐘進(jìn)入鬧鐘設(shè)定的時間4.1.6 撥碼開關(guān) 此次設(shè)計撥碼開關(guān)的主要作

25、用是清零,和選擇模式即狀態(tài)的切換4.1.7 Quartus軟件開發(fā)平臺(8.0版本) 本程序設(shè)計的是基于VHDL的數(shù)字時鐘,采用采用采用采用EDA開發(fā)工具,VHDL語言為硬件描述語言, QUARTUSII作為程序的運(yùn)行平臺,所開發(fā)的程序經(jīng)過調(diào)試運(yùn)行,波形仿真驗(yàn)證,初步實(shí)現(xiàn)了設(shè)計目標(biāo)。4.2 設(shè)計的整體框架4.2.1在各個模塊都編譯通過的基礎(chǔ)上在頂層用原理圖的方法實(shí)現(xiàn)。具體步驟如下: 1)確定總體結(jié)構(gòu) 這是在進(jìn)行系統(tǒng)具體編程設(shè)計之前就應(yīng)該做的工作。有了這一步,就對數(shù)字鐘的模塊有了了解。在具體設(shè)計時只要根據(jù)這些模塊各自的功能編寫程序就大大的提高工作效率。系統(tǒng)總體框圖如圖1所示。 2)系統(tǒng)功能分析

26、整個系統(tǒng)以Altera的芯片為核心,外部設(shè)備比較簡單,只需要幾個撥碼開關(guān)和6個數(shù)碼管,開關(guān)分別作系統(tǒng)復(fù)位和校時用,6個數(shù)碼管分別顯示秒、分和小時。核心部分由3大模塊組成,即時間計數(shù)模塊、控制模塊和顯示模塊。在系統(tǒng)設(shè)計時將控制模塊和時間計數(shù)模塊集成在一起。時間計數(shù)模塊是通過計數(shù)產(chǎn)生秒、分和小時信號,顯示模塊對時間計數(shù)模塊產(chǎn)生的秒、分和小時的信號,通過時鐘掃描逐個在數(shù)碼管上顯示。校時功能主要是在計數(shù)器的設(shè)計上實(shí)現(xiàn),通過設(shè)計正常計時和校時2個選通完成正常計時和校時的切換。 3)系統(tǒng)核心模塊功能分析與實(shí)現(xiàn) 時間計數(shù)模塊。時間計數(shù)模塊由一系列的計數(shù)器進(jìn)行級聯(lián)實(shí)現(xiàn),包括六進(jìn)制、十進(jìn)制、二十四進(jìn)制計數(shù)器。秒

27、和分鐘的計數(shù)器的各位為十進(jìn)制計數(shù)器。小時位為二十四進(jìn)制計數(shù)器則由一個VHDL程序?qū)崿F(xiàn)。顯示模塊。顯示模塊由一個沒有進(jìn)位的六進(jìn)制計數(shù)器、一個六選一選擇器和一個七段譯碼管組成。六進(jìn)制計數(shù)器為六選一選擇器的選擇判斷提供輸入信號,六選一選擇器的選擇輸入端段分別接秒各位、分個位、分十位和小時位計數(shù)器的輸出,用來完成動態(tài)掃描顯示。細(xì)化后的原理框圖:4.2.2 設(shè)計原理與流程圖 數(shù)字電子鐘的邏輯框圖如下,它由振蕩器、分頻器、計數(shù)器、譯碼器顯示器和校時電路組成。振蕩器產(chǎn)生穩(wěn)定的高頻脈沖信號,作為數(shù)字鐘的時間基準(zhǔn),然后經(jīng)過分頻器輸出標(biāo)準(zhǔn)秒脈沖。秒計數(shù)器滿60后向分計數(shù)器進(jìn)位,分計數(shù)器滿60后向小時計數(shù)器進(jìn)位,小

28、時計數(shù)器按照“24翻1”規(guī)律計數(shù)。計數(shù)器的輸出分別經(jīng)譯碼器送顯示器顯示。計時出現(xiàn)誤差時,可以用校時電路校時、校分4.2.3邏輯流程圖4.2.4狀態(tài)轉(zhuǎn)移圖五、系統(tǒng)的模塊化設(shè)計5.1 軟件程序模塊化設(shè)計5.1.1 秒/分/時輸入模塊的軟件設(shè)計 60進(jìn)制計數(shù)器(分、秒計數(shù)器)工作原理: “秒”計數(shù)器電路與“分”計數(shù)器電路都是60進(jìn)制,它由一級10進(jìn)制計數(shù)器和一級6進(jìn)制計數(shù)器連接構(gòu)成,如圖三所示,采用兩片中規(guī)模集成電路74LS90串接起來構(gòu)成的“秒”、“分”計數(shù)器,實(shí)現(xiàn)時采用反饋清零法。(秒分時模塊程序一樣不再重復(fù))architecture art of disshk isbeginprocess(c

29、lk,d)variable count:integer range 0 to 100;-d為置位,計數(shù)段為100次beginif d = 0 thenif clkevent and clk=1 then-信號為1時有效if(count=100) then 當(dāng)掃描為次數(shù)為100次時q=0; -count :=0;else count:=count+1;- 否則開始計數(shù)end if;end if;else q=1;end if;5.1.2 秒/分/時計數(shù)模塊的軟件設(shè)計 entity count isport (cl_r,clk,add: in std_logic; gsec,ssec: out s

30、td_logic_vector(3 downto 0); c: out std_logic); end entity ; architecture art of count issignal co,rclk: std_logic; beginprocess(cl_r,clk,rclk,co,add) isvariable secg,secs,ad: std_logic_vector(3 downto 0);定義 秒的端口 個位,十位beginrclk=add xnor clk; 掃描時鐘要低于系統(tǒng)時鐘if cl_r=0 thensecg:=0000;secs:=0000;co=0;elsif

31、(rclk=1and rclkevent) thenIf secg=1001 and secs=0101 thensecg:=0000;secs:=0000;co=1;-elsif secg=1001 then secs:=secs+1;secg:=0000;co=0;elsif secg1001 thensecg:=secg+1;end if;當(dāng)計數(shù)個位為9,十位為5,計數(shù)值為59時,秒的個位十位都為零,進(jìn)位為一,說明此時計數(shù)為一分鐘。秒的個位一直計數(shù),計數(shù)值不到9時,一直加,直到出現(xiàn)個位出現(xiàn)9,十位加一。5.1.3 模式選擇模塊的軟件設(shè)計entity slc isport(add: in

32、std_logic_vector(2 downto 0);sel:in std_logic;naout,clkout : out std_logic_vector(2 downto 0);end entity;architecture art of slc isbeginprocess(sel,add)beginif(sel=1) then sel為一時,鬧鐘模式開啟,否則繼續(xù)時鐘的顯示naout=add;elseclkoutdata=f0;weidata=f1;weidata=f2;weidata=f3;weidata=f4;weidata=f5;weidata=f0;weidudududu

33、dudududududududududududududududududu=11000000; 段選end case;end if;end process;5.1.5 鬧鐘模塊的軟件設(shè)計 鬧鐘能否正常計數(shù)、能否對計時時間進(jìn)行調(diào)整,定時鬧鈴功能是否正常,動態(tài)掃描顯示是否正常。 原理框圖: (1)計數(shù)模塊:按照時鐘模式完成一天24小時的計時功能。 (2)譯碼模塊:根據(jù)計時模塊的狀態(tài)輸出值來確定對應(yīng)位的數(shù)據(jù)的,其輸出是7段高低電平,以點(diǎn)亮相應(yīng)的數(shù)碼管; (3)計數(shù)控制模塊:根據(jù)外部控制信號,進(jìn)行時鐘計數(shù)的調(diào)整和計時的控制; (4)響鈴控制模塊:根據(jù)外部鬧鐘控制信號完成鬧鐘的定時,當(dāng)計數(shù)模塊技術(shù)到和該模

34、塊所設(shè)定時間一致時,該模塊將驅(qū)動蜂鳴器響鈴。(5)分頻器:根據(jù)外部的輸入時鐘,將外部時鐘成兩路信號,一路用于正常的計數(shù),一路用于七段顯示數(shù)碼管的動態(tài)掃描輸出。architecture art of beep issignal bep : std_logic;beginprocess(bep,clk,hh1,hh2,mm1,mm2,h1,h2,m1,m2)beginif (h1=hh1 and h2=hh2 and mm1=m1 and mm2=m2 ) OR (mm1=0000 and mm2=0000) then 當(dāng)前時間的時分秒完全等于設(shè)置的鬧鐘時間,蜂鳴器才有效,否則蜂鳴器不響,繼續(xù)顯示

35、當(dāng)前的時間if clk=1 and clkevent thenbep=not bep;end if;else bep=1;end if;5.1.5 系統(tǒng)時鐘的軟件設(shè)計process(clk)variable counts:integer range 0 to 50000000;系統(tǒng)時鐘為50MHZbeginif clkevent and clk=1 then 時鐘高電平有效if(counts25000000) then 計數(shù)周期為1ms,1ms掃描100次,clks=1; 0到0.5毫秒為高電平counts:=counts+1;elsif(counts50000000) then 0.5毫秒到

36、1毫秒為低電平clks=0;counts:=counts+1;else counts:=0;end if;end if;end process;process(clk)variable countms:integer range 0 to 50000;分頻段beginif clkevent and clk=1 then 時鐘高電平有效if(countms25000) then 計數(shù)周期為0.1ms.0到0.5毫秒為低電平clkms=1;countms:=countms+1; elsif(countms50000) then 0.05到0.05毫秒為低電平clkms=0;countms:=cou

37、ntms+1;else countms:=0;end if;end if;end process;end architecture fenp;end if;c=co;ssec=secs;gsec=secg;end process;end architecture;動態(tài)掃描,時間1s計數(shù)達(dá)到59秒后本身清零,進(jìn)位給分位,依次類推時鐘信號的輸入模式的切換,鬧鐘的輸入端口三個圖分別為秒分時的輸入端口位選六位,段選8位5.2 硬件的測試 本次選用EP2c5Q208C8N芯片。外部需接幾上升沿按鍵,并接揚(yáng)聲器和不許譯碼器的數(shù)碼管。下載測試后,按復(fù)位鍵后數(shù)碼管顯示0時0分0秒開始計數(shù),分秒時計數(shù)都正確。按

38、動調(diào)分鍵或調(diào)小時鍵后,分位或小時位開始自加,再按鍵后停止。當(dāng)時間到整點(diǎn)時會有十秒報時,按動停止鍵停止報時,不按此鍵時自動到十秒后停止報時。設(shè)計結(jié)果達(dá)到要求。5.2.1模擬時鐘電路圖與實(shí)物圖 數(shù)字鐘實(shí)際上是一個對標(biāo)準(zhǔn)頻率(1HZ)進(jìn)行計數(shù)的計數(shù)電路。由于計數(shù)的起始時間不可能與標(biāo)準(zhǔn)時間(如時間)一致,故需要在電路上加一個校時電路,同時標(biāo)準(zhǔn)的1HZ時間信號必須做到準(zhǔn)確穩(wěn)定。通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘 實(shí)物電路圖:此圖為撥碼開關(guān)的實(shí)物圖,當(dāng)4開關(guān)處于高電平時,說明選擇模式已經(jīng)打開了,你可以選擇是計數(shù)模式,還是顯示時分秒模式,還是鬧鐘模式當(dāng)撥碼開關(guān)2,撥至高電平時,所有數(shù)碼管顯示的數(shù)值將全部清

39、零校對分的獨(dú)立按鍵,每按一下,計數(shù)值加一,計數(shù)范圍0到59校對時的獨(dú)立按鍵,每按一下,計數(shù)值加1,計數(shù)范圍0到23校對秒的獨(dú)立按鍵,每按一下,計數(shù)值加1,計數(shù)范圍,0到59 假使此刻時間為早上九點(diǎn)九分57秒,我們在選擇的模式(撥碼開關(guān))下,將狀態(tài)調(diào)為鬧鐘模式,將鬧鐘定為十點(diǎn)整,也就是10.00.00。然后將撥碼開關(guān)撥下,則數(shù)碼管繼續(xù)此刻的時間顯示,當(dāng)時間顯示為10.00.00時,此時蜂鳴器將產(chǎn)生滴答滴答的聲音。時間為一分鐘。設(shè)計心得通過兩星期的緊工作,最后完成了我的設(shè)計任務(wù)數(shù)字鐘的設(shè)計與制作。通過 本次課程設(shè)計的學(xué)習(xí),我深深的體會到設(shè)計課的重要性和目的性所在。本次設(shè)計課不僅僅培養(yǎng)了我們實(shí)際操作

40、能力,也培養(yǎng)了我們靈活運(yùn)用課本知識,理論聯(lián)系實(shí)際,獨(dú)立自主的進(jìn)行設(shè)計的能力。它不僅僅是一個學(xué)習(xí)新知識新方法的好機(jī)會,同時也是對我所學(xué)知識的一次綜合的檢驗(yàn)和復(fù)習(xí),使我明白了自己的缺陷所在,從而查漏補(bǔ)缺。希望學(xué)校以后多安排一些類似的實(shí)踐環(huán)節(jié),讓同學(xué)們學(xué)以致用。 課程設(shè)計中要求要有耐心和毅力,還要細(xì)心,稍有不慎,一個小小的錯誤就會導(dǎo)致結(jié)果的不正確,而對錯誤的檢查要求我要有足夠的耐心,通過這次設(shè)計和設(shè)計中遇到的問題,也積累了一定的經(jīng)驗(yàn),對以后從事集成電路設(shè)計工作會有一定的幫助。在應(yīng)用VHDL的過程中讓我真正領(lǐng)會到了其并行運(yùn)行與其他軟件(C語言)順序執(zhí)行的差別與其在電路設(shè)計上的優(yōu)越性。用VHDL硬件描述

41、語言的形式來進(jìn)行數(shù)字系統(tǒng)的設(shè)計方便靈活,利用EDA軟件進(jìn)行編譯優(yōu)化仿真極減少了電路設(shè)計時間和可能發(fā)生的錯誤,降低了開發(fā)成本,這種設(shè)計方法必將在未來的數(shù)字系統(tǒng)設(shè)計中發(fā)揮越來越重要的作用。也是本次課程設(shè)計,鞏固了我們以前學(xué)過的專業(yè)知識,通過這次的程序設(shè)計,使我們對數(shù)字系統(tǒng)結(jié)構(gòu)也有了更進(jìn)一步的了解與認(rèn)識,同時對數(shù)據(jù)庫軟件技術(shù),語言等系列知識都有了一定的了解與認(rèn)識。使用技術(shù)開發(fā)頁面的能力也有了提高,也使我們把理論與實(shí)踐從正真意義上結(jié)合了起來,考研了我們的動手能力,查閱相關(guān)資料的能力,還有組織材料的能力。通過此次實(shí)踐,我們從中可以找出自己知識的不足與欠缺,以便我們在日后的學(xué)習(xí)中得以改進(jìn)與提高。致感梁老師

42、一學(xué)期的教導(dǎo),老師嚴(yán)謹(jǐn)?shù)膽B(tài)度、嚴(yán)格的要求以與強(qiáng)烈的專業(yè)素養(yǎng)都對我們有十分深刻的影響,使得我們學(xué)會精益求精,端正自己的學(xué)習(xí)態(tài)度。在此,對梁老師表示衷心的感。通過本次設(shè)計實(shí)驗(yàn),也使我們學(xué)到了很多,也借此機(jī)會綜合鞏固一學(xué)期所學(xué)的知識。也感身邊幫助我的每一個同學(xué)。參考文獻(xiàn)1 國麗,朱維勇.電子技術(shù)實(shí)驗(yàn)指導(dǎo)書.:中國科技大學(xué),2000 2 松,黃繼業(yè).EDA技術(shù)實(shí)用教程.:科學(xué),20023 家龍,王小海,章安元.集成電子技術(shù)基礎(chǔ)教程.:高等教育,20024 宋萬杰,羅豐,吳順君.CPLD技術(shù)與其應(yīng)用.:電子科技大學(xué),1999 5 盧杰,賴毅.VHDL與數(shù)字電路設(shè)計.:科學(xué),2001 6 王金明,吉斌.數(shù)

43、字系統(tǒng)設(shè)計與Verilog HDL.:電子工業(yè),2002 附錄 鬧鐘模塊的程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity beep isport(clk: in std_logic;hh1,hh2,mm1,mm2,h1,h2,m1,m2: in std_logic_vector(3 downto 0);beep: out std_logic);end entity;architecture art of beep issignal bep : std_logic;beginpr

44、ocess(bep,clk,hh1,hh2,mm1,mm2,h1,h2,m1,m2)beginif (h1=hh1 and h2=hh2 and mm1=m1 and mm2=m2 ) OR (mm1=0000 and mm2=0000) thenif clk=1 and clkevent thenbep=not bep;end if;else bep=1;end if;beep=bep;end process;end architecture;數(shù)碼管位選和段選library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigne

45、d.all;entity endslc isport(wei1,wei2: in std_logic_vector(5 downto 0);out1,out2: in std_logic_vector(7 downto 0);sel:in std_logic;wei: out std_logic_vector(5 downto 0);ot:out std_logic_vector(7 downto 0);end entity;architecture art of endslc isbeginprocess(sel,wei1,wei2,out1,out2)beginif(sel=1) then

46、wei=wei1;ot=out1;elsewei=wei2;otdata=f0;weidata=f1;weidata=f2;weidata=f3;weidata=f4;weidata=f5;weidata=f0;weidudududududududududududududududududududududu=11000000;end case;end if;end process;end architecture;蜂鳴器模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity beep is

47、port(clk: in std_logic;hh1,hh2,mm1,mm2,h1,h2,m1,m2: in std_logic_vector(3 downto 0);beep: out std_logic);end entity;architecture art of beep issignal bep : std_logic;beginprocess(bep,clk,hh1,hh2,mm1,mm2,h1,h2,m1,m2)beginif (h1=hh1 and h2=hh2 and mm1=m1 and mm2=m2 ) OR (mm1=0000 and mm2=0000) thenif

48、clk=1 and clkevent thenbep=not bep;end if;else bep=1;end if;beep=bep;end process;end architecture;兩個時鐘信號library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity fps isport(clk: in std_logic;clkms: out std_logic;clks: out std_logic);end entity;architecture fenp of fps isbeginpr

49、ocess(clk)variable counts:integer range 0 to 50000001;beginif clkevent and clk=1 thenif(counts25000000) thenclks=1;counts:=counts+1;elsif(counts50000000) thenclks=0;counts:=counts+1;else counts:=0;end if;end if;end process;process(clk)variable countms:integer range 0 to 50000;beginif clkevent and cl

50、k=1 thenif(countms25000) thenclkms=1;countms:=countms+1;elsif(countms50000) thenclkms=0;countms:=countms+1;else countms:=0;end if;end if;end process;end architecture fenp;外部觸發(fā)時鐘use ieee.std_logic_unsigned.all;entity count isport (cl_r,clk,add: in std_logic; gsec,ssec: out std_logic_vector(3 downto 0); c: out st

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論