基于VHDL語(yǔ)言的數(shù)字電子鐘課程設(shè)計(jì)報(bào)告書(shū)_第1頁(yè)
基于VHDL語(yǔ)言的數(shù)字電子鐘課程設(shè)計(jì)報(bào)告書(shū)_第2頁(yè)
基于VHDL語(yǔ)言的數(shù)字電子鐘課程設(shè)計(jì)報(bào)告書(shū)_第3頁(yè)
基于VHDL語(yǔ)言的數(shù)字電子鐘課程設(shè)計(jì)報(bào)告書(shū)_第4頁(yè)
基于VHDL語(yǔ)言的數(shù)字電子鐘課程設(shè)計(jì)報(bào)告書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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)介

..基于VHDL語(yǔ)言的簡(jiǎn)易電子鐘設(shè)計(jì)[摘要]VHDL是廣泛應(yīng)用的硬件描述語(yǔ)言,可以用在硬件設(shè)計(jì)流程的建模、綜合和模擬等多個(gè)階段。隨著硬件設(shè)計(jì)規(guī)模的不斷擴(kuò)大,應(yīng)用硬件描述語(yǔ)言進(jìn)行描述的CPLD結(jié)構(gòu),成為設(shè)計(jì)專用集成電路和其他集成電路的主流。通過(guò)應(yīng)用VHDL對(duì)數(shù)字時(shí)鐘的設(shè)計(jì),達(dá)到對(duì)VHDL的理解,同時(shí)對(duì)CPLD器件加深了解。該系統(tǒng)在開(kāi)發(fā)軟件QuartusⅡ環(huán)境中設(shè)計(jì)完成,本文給出了設(shè)計(jì)該數(shù)字時(shí)鐘系統(tǒng)的流程和方法,最后通過(guò)CPLD實(shí)現(xiàn)預(yù)定功能。關(guān)鍵詞:電子鐘;硬件描述語(yǔ)言;VHDL;QuartusⅡ;CPLD目錄引言1第一章設(shè)計(jì)任務(wù)及功能要求11.1設(shè)計(jì)課題內(nèi)容11.2功能要求說(shuō)明1第二章系統(tǒng)設(shè)計(jì)方案22.1電子鐘工作原理22.2總體方案設(shè)計(jì)2第三章電子鐘頂層設(shè)計(jì)23.1頂層設(shè)計(jì)分析23.2頂層電路圖3第四章各功能模塊的設(shè)計(jì)44.1正常計(jì)時(shí)模塊4分頻模塊設(shè)計(jì)44.1.260進(jìn)制計(jì)數(shù)器設(shè)計(jì)54.1.324進(jìn)制計(jì)數(shù)器設(shè)計(jì)54.2整點(diǎn)報(bào)時(shí)模塊6整點(diǎn)報(bào)時(shí)設(shè)計(jì)思路及原理圖6整點(diǎn)報(bào)時(shí)仿真波形74.3分時(shí)校對(duì)模塊7分時(shí)校對(duì)設(shè)計(jì)思路及原理圖7分時(shí)校對(duì)仿真波形74.4掃描輸出模塊8掃描輸出設(shè)計(jì)思路及原理圖8掃描輸出仿真波形84.5譯碼顯示模塊9譯碼顯示設(shè)計(jì)思路及原理圖9譯碼顯示仿真波形10第五章系統(tǒng)硬件實(shí)現(xiàn)分析105.1引腳分配105.2系統(tǒng)硬件測(cè)試及分析11第六章結(jié)束語(yǔ)11參考文獻(xiàn)11附錄1頂層電路圖12附錄2程序代碼12..引言數(shù)字時(shí)鐘是一種用數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,數(shù)字時(shí)鐘走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式時(shí)鐘用秒脈沖發(fā)生器的精度穩(wěn)定保證了數(shù)字鐘的質(zhì)量。電子設(shè)計(jì)自動(dòng)化〔EDA技術(shù)發(fā)展越來(lái)越迅速,利用計(jì)算機(jī)輔助設(shè)計(jì)已成為發(fā)展趨勢(shì)。VHDL語(yǔ)言具有強(qiáng)大的電路描述和建模能力,用VHDL開(kāi)發(fā)的數(shù)字電路與開(kāi)發(fā)平臺(tái)以及硬件實(shí)現(xiàn)芯片無(wú)關(guān),可移植性、可重用性好。VHDL語(yǔ)言能夠在系統(tǒng)級(jí)、行為級(jí)、寄存器傳輸級(jí)、門(mén)級(jí)等各個(gè)層次對(duì)數(shù)字電路進(jìn)行描述,并可以在不同層次進(jìn)行不同級(jí)別的仿真,能極大得保證設(shè)計(jì)的正確性和設(shè)計(jì)指標(biāo)的實(shí)現(xiàn)。QuartusⅡ設(shè)計(jì)軟件提供了一個(gè)完整的、多平臺(tái)的設(shè)計(jì)環(huán)境,它可以輕易滿足特定設(shè)計(jì)項(xiàng)目的要求。第一章設(shè)計(jì)任務(wù)及功能要求1.1設(shè)計(jì)課題內(nèi)容1.學(xué)習(xí)ALTERA公司的FPGA/CPLD的結(jié)構(gòu)、特點(diǎn)和性能。2.學(xué)習(xí)集成開(kāi)發(fā)軟件MAX+plusII/QuartusII的使用及設(shè)計(jì)過(guò)程。3.熟悉EDA工具設(shè)計(jì)數(shù)字電路設(shè)計(jì)方法,掌握VHDL硬件描述語(yǔ)言設(shè)計(jì)方法。4.根據(jù)給定題目設(shè)計(jì)數(shù)字電路,來(lái)加深對(duì)可編程邏輯器件的理解和掌握。1.2功能要求說(shuō)明1.在所選擇器件內(nèi)完成簡(jiǎn)易時(shí)鐘的設(shè)計(jì),要求設(shè)計(jì)完成后芯片具有時(shí)、分、秒的計(jì)時(shí);譯碼;輸出七段碼;最大計(jì)時(shí)23時(shí)59分59秒;秒閃功能。2.簡(jiǎn)易時(shí)鐘要求具有對(duì)時(shí)功能,具體對(duì)時(shí)的實(shí)現(xiàn)方式自行決定,要求設(shè)計(jì)合理,以操作簡(jiǎn)單為原則〔根具具體的工作進(jìn)度,可以考慮增加整點(diǎn)報(bào)時(shí)等附加功能。3.在相應(yīng)的器件平臺(tái)上完成設(shè)計(jì)的輸入、編譯、綜合或適配通過(guò)。第二章系統(tǒng)設(shè)計(jì)方案2.1電子鐘工作原理系統(tǒng)主要由振蕩器、分頻器、計(jì)數(shù)器、譯碼顯示電路和校時(shí)電路組成。振蕩器產(chǎn)生穩(wěn)定的分頻脈沖信號(hào),作為數(shù)字鐘的時(shí)間基準(zhǔn),然后經(jīng)過(guò)分頻器輸出標(biāo)準(zhǔn)秒脈沖。秒計(jì)數(shù)器滿60分向分計(jì)數(shù)器進(jìn)位,分計(jì)數(shù)器滿60后向小時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按照二十四進(jìn)制計(jì)數(shù)。計(jì)數(shù)器的輸出分別由譯碼器送顯示器顯示。計(jì)時(shí)出現(xiàn)誤差時(shí),可以用校時(shí)電路校時(shí)、校分。2.2總體方案設(shè)計(jì)數(shù)字電子鐘由振蕩器、分頻器、計(jì)數(shù)器、譯碼顯示電路和校時(shí)電路組成。振蕩器產(chǎn)生穩(wěn)定的高頻脈沖信號(hào),作為數(shù)字鐘的時(shí)間基準(zhǔn),然后經(jīng)過(guò)分頻器輸出標(biāo)準(zhǔn)秒脈沖。秒計(jì)數(shù)器滿60后向分計(jì)數(shù)器進(jìn)位,分計(jì)數(shù)器滿60后向小時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按照"24翻1"規(guī)律計(jì)數(shù)。計(jì)數(shù)器的輸出分別經(jīng)譯碼器送顯示器顯示。計(jì)時(shí)出現(xiàn)誤差時(shí),可以用校時(shí)電路校時(shí)、校分。1>時(shí)鐘產(chǎn)生電路。將開(kāi)發(fā)板上的時(shí)鐘信號(hào)經(jīng)過(guò)分頻得到不同頻率的時(shí)鐘,分別作用于定時(shí)計(jì)數(shù)、LED掃描。2>控制邏輯電路。完成電子鐘的系統(tǒng)邏輯控制,包括計(jì)時(shí)控制、時(shí)間校對(duì)、顯示掃描的邏輯控制,可完成系統(tǒng)復(fù)位、調(diào)整時(shí)間的功能。3>計(jì)時(shí)電路。主要按照時(shí)鐘模式完成計(jì)時(shí)功能。4>譯碼電路。根據(jù)計(jì)時(shí)模塊的狀態(tài)輸出值來(lái)確定對(duì)應(yīng)位的數(shù)據(jù),從而驅(qū)動(dòng)顯示電路。5>顯示控制電路。主要執(zhí)行選擇所對(duì)應(yīng)位的數(shù)據(jù)功能,顯示正確的時(shí)間。為了節(jié)省6個(gè)七段顯示器顯示所需的電流消耗,本文利用視覺(jué)暫留原理來(lái)讓七段顯示器輪流來(lái)顯示。第三章電子鐘頂層設(shè)計(jì)3.1頂層設(shè)計(jì)分析對(duì)于電子鐘的設(shè)計(jì),這里將采用自頂向下的設(shè)計(jì)方法進(jìn)行設(shè)計(jì),因此首先需要進(jìn)行電子鐘的頂層設(shè)計(jì)。這里首先介紹電子鐘的系統(tǒng)結(jié)構(gòu)和模塊劃分,然后設(shè)計(jì)出頂層VHDL設(shè)計(jì)程序。根據(jù)前邊所述的電子鐘的設(shè)計(jì)要求、工作原理和設(shè)計(jì)方案,這里給出設(shè)計(jì)系統(tǒng)結(jié)構(gòu)框圖和外部管腳圖分別如圖3.1和圖3.2所示。譯碼顯示模塊掃描輸出模塊正常計(jì)時(shí)模塊電子鐘系統(tǒng)譯碼顯示模塊掃描輸出模塊正常計(jì)時(shí)模塊電子鐘系統(tǒng)整點(diǎn)報(bào)時(shí)模塊分時(shí)校對(duì)模塊整點(diǎn)報(bào)時(shí)模塊分時(shí)校對(duì)模塊圖3.1系統(tǒng)結(jié)構(gòu)框圖圖3.2系統(tǒng)外部管腳圖由電子鐘的外部管腳圖可知,系統(tǒng)的輸入輸出信號(hào)包括:〔1復(fù)位開(kāi)關(guān)信號(hào)reset:輸入信號(hào);〔2外部輸入的晶振信號(hào)clk_in:輸入信號(hào);〔3分/時(shí)調(diào)整信號(hào)setmin,sethour:輸入信號(hào);〔4報(bào)時(shí)觸發(fā)信號(hào)speak:輸出信號(hào);〔5數(shù)碼管輸出選通信號(hào)sel[5..0]:輸出信號(hào);〔6LED七段數(shù)碼管的輸出信號(hào)led[6..0],dp:輸出信號(hào)。由圖3.1知,系統(tǒng)劃分了五個(gè)模塊,劃分的這五個(gè)模塊,每個(gè)模塊都包含若干個(gè)組件,因此首先建立一個(gè)程序包把所有的組件包含在一起,以便于主程序模塊的調(diào)用,然后再對(duì)每個(gè)組件進(jìn)行編程設(shè)計(jì)。3.2頂層電路圖頂層電路圖見(jiàn)附錄1。第四章各功能模塊的設(shè)計(jì)4.1正常計(jì)時(shí)模塊系統(tǒng)必須維持一個(gè)持續(xù)不斷計(jì)數(shù)的時(shí)鐘,從時(shí)間00:00:00到23:59:59不斷循環(huán)。首先將50MHZ的系統(tǒng)輸入脈沖分頻5000000得到1HZ的基本秒輸入,秒計(jì)數(shù)器滿60后向分計(jì)數(shù)器進(jìn)位,分計(jì)數(shù)器滿60后向小時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按照"24翻1"規(guī)律計(jì)數(shù)。這些功能的實(shí)現(xiàn)要用到三種組件:分頻組件,60進(jìn)制計(jì)時(shí)組件,24進(jìn)制計(jì)時(shí)組件。4.1.1分頻模塊設(shè)計(jì)本設(shè)計(jì)采用CPLD芯片EP2C20,內(nèi)部晶振為50MHz,而數(shù)碼管位掃描信號(hào)clk1=1000Hz,計(jì)時(shí)時(shí)鐘信號(hào)clk=1Hz。所以要用分頻模塊來(lái)對(duì)輸入時(shí)鐘進(jìn)行分頻。下圖4.1是生成的分頻組件元器件圖形。接口:clks:時(shí)鐘輸入,輸入信號(hào)50MHzclk:1Hz輸出信號(hào)clk1:掃描頻率信號(hào)圖4.1分頻模塊器件圖在QuartusⅡ軟件中進(jìn)行仿真后,仿真時(shí)設(shè)置3000分頻得到clk,500分頻得到clk1。仿真時(shí)序圖如圖4.2。圖4.2分頻模塊仿真波形圖由圖4.2知,輸入信號(hào)clks=10ns,輸出信號(hào)clk1=5us,clk=30us,證明分頻是正確的。4.1.260進(jìn)制計(jì)數(shù)器設(shè)計(jì)秒數(shù)的計(jì)數(shù)以1Hz的輸入clk為觸發(fā)信號(hào),分?jǐn)?shù)的計(jì)數(shù)以秒數(shù)的進(jìn)位輸出enmin作為觸發(fā)。下圖4.3是60進(jìn)制計(jì)數(shù)器器件圖形。接口:clk:1hz時(shí)鐘信號(hào)clk1:校時(shí)時(shí)鐘信號(hào)reset:復(fù)位信號(hào)daout:輸出十進(jìn)制信號(hào)setmin,sethour:校分控制信號(hào)enmin,enhour:進(jìn)位信號(hào)圖4.360進(jìn)制秒計(jì)數(shù)器器件圖圖4.360進(jìn)制分計(jì)數(shù)器器件圖在QuartusⅡ軟件中進(jìn)行仿真后,得到仿真時(shí)序圖如圖4.4。圖4.460進(jìn)制計(jì)數(shù)器仿真波形圖由圖4.4知,每來(lái)一個(gè)clk上升沿,計(jì)數(shù)器就加1,當(dāng)計(jì)數(shù)器當(dāng)?shù)竭_(dá)第60個(gè)上升沿時(shí),enmin=1,daout由59歸零,仿真符合60進(jìn)制計(jì)數(shù)器的要求。4.1.324進(jìn)制計(jì)數(shù)器設(shè)計(jì)24進(jìn)制計(jì)數(shù)器的結(jié)構(gòu)和原理與60進(jìn)制計(jì)數(shù)器相類似,只是將除以60改為除以24。個(gè)位數(shù)的進(jìn)位歸零在十進(jìn)制為2時(shí),必須在one等于3時(shí)進(jìn)位,同時(shí)送出進(jìn)位指針full=1,1小時(shí)后將指針歸零。下圖4.5是生成的24進(jìn)制計(jì)數(shù)器器件圖形。接口:clk:分的進(jìn)位信號(hào)reset:復(fù)位信號(hào)daout:輸出十進(jìn)制的小時(shí)數(shù)圖4.524進(jìn)制計(jì)數(shù)器器件圖在QuartusⅡ軟件中進(jìn)行仿真后,得到仿真時(shí)序圖如圖4.6。圖4.624進(jìn)制計(jì)數(shù)器仿真波形由上圖4.6知,每來(lái)一個(gè)clk上升沿,計(jì)數(shù)器就加1,當(dāng)計(jì)數(shù)器當(dāng)?shù)竭_(dá)第24個(gè)上升沿時(shí),daout由59歸零,仿真符合24進(jìn)制計(jì)數(shù)器的要求。4.2整點(diǎn)報(bào)時(shí)模塊4.2.1整點(diǎn)報(bào)時(shí)設(shè)計(jì)思路及原理圖當(dāng)計(jì)數(shù)時(shí)間在59分59秒時(shí),報(bào)時(shí)模塊輸出報(bào)時(shí)控制信號(hào)。輸出speak=clk1=1000Hz驅(qū)動(dòng)蜂鳴器報(bào)時(shí)。下圖4.7是生成的整點(diǎn)報(bào)時(shí)器件圖形。接口:clk1:驅(qū)動(dòng)信號(hào)reset:復(fù)位信號(hào)dainm,dains:輸入秒數(shù)、分?jǐn)?shù)speak:輸出信號(hào)圖4.7整點(diǎn)報(bào)時(shí)器件圖整點(diǎn)報(bào)時(shí)仿真波形在QuartusⅡ軟件中進(jìn)行仿真后,得到仿真時(shí)序圖如圖4.8。圖4.8整點(diǎn)報(bào)時(shí)仿真波形由上圖4.8知,當(dāng)dainm、dains都為0時(shí),speak輸出為clk1,仿真符合整點(diǎn)報(bào)時(shí)的要求。4.3分時(shí)校對(duì)模塊4.3.1分時(shí)校對(duì)設(shè)計(jì)思路及原理圖當(dāng)電子鐘正常計(jì)時(shí),校對(duì)信號(hào)setmin,sethour都為1。當(dāng)需要分校對(duì)時(shí),setmin=0,秒信號(hào)送入分計(jì)數(shù)器時(shí)鐘信號(hào),進(jìn)行時(shí)校對(duì),sethour=0,秒信號(hào)送入時(shí)計(jì)數(shù)器時(shí)鐘信號(hào)。通過(guò)setmin,sethour能夠很方便的校對(duì)成功。下圖4.9是生成的分時(shí)校對(duì)器件圖形。接口:clk:1hz時(shí)鐘信號(hào) reset:復(fù)位信號(hào)setmin:校分控制信號(hào) enmin:進(jìn)位信號(hào)圖4.9校分器件圖4.3.2分時(shí)校對(duì)仿真波形在QuartusⅡ軟件中進(jìn)行仿真后,得到仿真時(shí)序圖如圖4.10。圖4.10校分仿真波形由上圖4.10知,當(dāng)校分控制信號(hào)為setmin=0時(shí),分的時(shí)鐘信號(hào)enmin=clk,實(shí)現(xiàn)分鐘快速計(jì)數(shù)校對(duì)到正確時(shí)間。仿真結(jié)果符合設(shè)計(jì)要求。校時(shí)仿真波形與校分基本類似。4.4掃描輸出模塊掃描輸出設(shè)計(jì)思路及原理圖為了節(jié)省IC的輸出引腳及耗電量,可以將6組數(shù)字輸出作為多路輸出;另外使用八合一型七段顯示器與視覺(jué)暫留效應(yīng)可降低顯示耗電量。首先將6個(gè)數(shù)值通過(guò)掃描模塊分時(shí)選通七段數(shù)碼管,依次將秒、分、時(shí)的數(shù)據(jù)掃描輸出。下面圖4.11是生成的掃描輸出器件圖形。接口:clk1:掃描信號(hào) reset:復(fù)位信號(hào)sec,min,hour:輸入信號(hào)sel:選通信號(hào)daout:輸出信號(hào)dp:小數(shù)點(diǎn)信號(hào)圖4.1掃描輸出器件圖形4.4.2掃描輸出仿真波形在QuartusⅡ軟件中進(jìn)行仿真后,得到仿真時(shí)序圖如圖4.12。圖4.12掃描輸出器件仿真波形由上圖4.12知,每來(lái)一個(gè)clk上升沿,daout就輸出一位,當(dāng)6個(gè)上升沿后,已依次將秒、分、時(shí)輸出。下一個(gè)上升沿重新分時(shí)掃描輸出。仿真可實(shí)現(xiàn)掃描輸出。4.5譯碼顯示模塊4.5.1譯碼顯示設(shè)計(jì)思路及原理圖譯碼為編碼的逆過(guò)程。它將編碼時(shí)賦予代碼的含義"翻譯"過(guò)來(lái)。實(shí)現(xiàn)譯碼的邏輯電路為七段數(shù)碼管。共陽(yáng)極數(shù)碼管輸出與輸入有唯一的對(duì)應(yīng)關(guān)系。輸入輸出關(guān)系如下表4—1。表4—1輸入輸出關(guān)系表輸入輸出字型DCBAabcdefg000000000010000110011111001000100102001100001103010010011004010101001005011001000006011100011117100000000008100100001009譯碼即把給定的代碼進(jìn)行翻譯,本設(shè)計(jì)即是將時(shí)、分、秒計(jì)數(shù)器輸出的四位二進(jìn)制數(shù)代碼翻譯為相應(yīng)的十進(jìn)制數(shù),并通過(guò)數(shù)碼管顯示。下圖4.13是生成的譯碼顯示器件圖形。接口:num:0—9輸入信號(hào)led:七段數(shù)碼管顯示值圖4.13譯碼顯示器件圖形4.5.2譯碼顯示仿真波形在QuartusⅡ軟件中進(jìn)行仿真后,得到仿真時(shí)序圖如圖4.14。圖4.14譯碼顯示器件仿真波形由上圖4.14知,輸入的是0到9的二進(jìn)制表示形式,輸出的是七段顯示譯碼,本設(shè)計(jì)的七段顯示器是共陽(yáng)極的,所以,如輸入時(shí)6的二進(jìn)制0110,輸出是0100000,對(duì)應(yīng)十六進(jìn)制是20。仿真證明程序是可行的。第五章系統(tǒng)硬件實(shí)現(xiàn)分析5.1引腳分配當(dāng)各個(gè)模塊仿真結(jié)束之后,就分配管腳,分配管腳如圖5.1。圖5.1分配管腳圖分配完管腳之后,再編譯一次,編譯通過(guò)之后,就可以下載到CPLD上了。5.2系統(tǒng)硬件測(cè)試及分析將setmin、sethour、reset均接高電平,接通電源,數(shù)碼管能正常顯示數(shù)字,6個(gè)數(shù)碼管分別顯示時(shí)、分、秒,掃描顯示電路設(shè)計(jì)正確。將校分按鍵開(kāi)關(guān)setmin按下接低電平,分會(huì)秒計(jì),則"分"校時(shí)電路能正確校時(shí),同理,校時(shí)一樣,說(shuō)明校對(duì)電路設(shè)計(jì)正確。當(dāng)分計(jì)數(shù)到59分59秒時(shí)下個(gè)時(shí)鐘信號(hào)過(guò)來(lái)?yè)P(yáng)聲器就會(huì)響,則整點(diǎn)報(bào)時(shí)電路設(shè)計(jì)正確。將reset接低電平,數(shù)字鐘準(zhǔn)確清零。通過(guò)對(duì)電路各個(gè)功能進(jìn)行綜合測(cè)試,本電子鐘鐘各項(xiàng)功能指標(biāo)均達(dá)到設(shè)計(jì)要求,則本設(shè)計(jì)取得圓滿成功。第六章結(jié)束語(yǔ)本設(shè)計(jì)是用VHDL語(yǔ)言編寫(xiě)編譯建模設(shè)計(jì)成的。由于初學(xué)VHDL語(yǔ)言,設(shè)計(jì)初期遇到了很多困難,在經(jīng)過(guò)一段時(shí)間的查閱資料以及老師的指導(dǎo)和同學(xué)之間的相互討論后完成了設(shè)計(jì),但程序即使編譯成功仿真還是遇到了很多困難,比如不知道該如何進(jìn)行模塊例化調(diào)用。在經(jīng)過(guò)一次次試驗(yàn)和修改后仿真終于正確,仿真無(wú)誤后就根據(jù)元件引腳進(jìn)行元器件之間的連線。通過(guò)本次課程設(shè)計(jì),讓我對(duì)數(shù)字電子鐘有了更深刻的理解,也對(duì)用VHDL語(yǔ)言設(shè)計(jì)實(shí)驗(yàn)有了更好的了解。進(jìn)一步掌握了有關(guān)數(shù)字鐘的工作原理及相關(guān)設(shè)計(jì)知識(shí)。特別是對(duì)其各工作模塊的功能有了更深一步的了解。實(shí)驗(yàn)過(guò)程中熟悉了對(duì)QuartusⅡ軟件的操作及應(yīng)用,提高了個(gè)人獨(dú)立分析問(wèn)題及解決問(wèn)題的能力,掌握了VHDL硬件描述語(yǔ)言設(shè)計(jì)方法,也深刻體會(huì)到了VHDL在功能設(shè)計(jì)中所具有的優(yōu)越性。參考文獻(xiàn)1.康華光主編,《電子技術(shù)基礎(chǔ)-數(shù)字部分》,高等教育出版社,1998。2.鄭亞民等主編,《可編程邏輯器件開(kāi)發(fā)軟件QuartusⅡ》,國(guó)防工業(yè)出版社,20063.譚會(huì)生等主編,《EDA技術(shù)及應(yīng)用》,XX電子科技大學(xué)出版社,20014.潘松等主編,《EDA技術(shù)實(shí)用教程》,科學(xué)出版社,20065.雷伏容主編,《VHDL電路設(shè)計(jì)》,清華大學(xué)出版社,2006附錄1頂層電路圖附錄2程序代碼--電子鐘頂層VHDL設(shè)計(jì)程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitye_clockisport<clk_in:instd_logic;--晶振時(shí)鐘信號(hào)reset:instd_logic;--復(fù)位信號(hào)setmin,sethour:instd_logic;--校對(duì)控制speak:outstd_logic;--報(bào)時(shí)輸出dp:outstd_logic;--小數(shù)點(diǎn)輸出sel:outstd_logic_vector<5downto0>;--分時(shí)選通led:outstd_logic_vector<6downto0>>;--譯碼顯示ende_clock;architecturestructureofe_clockiscomponentdiv_clk--分頻模塊聲明部分port<clks:instd_logic; clk:outstd_logic; clk1:outstd_logic>;endcomponent;componentsecond--秒模塊聲明部分port<clk,reset,setmin:instd_logic;enmin:outstd_logic;daout:outstd_logic_vector<7downto0>>;endcomponent;componentminute--分模塊聲明部分port<clk,reset,clk1,sethour:instd_logic;enhour:outstd_logic;daout:outstd_logic_vector<7downto0>>;endcomponent;componenthour--時(shí)模塊聲明部分port<clk,reset:instd_logic;daout:outstd_logic_vector<7downto0>>;endcomponent;componentalarm--報(bào)時(shí)模塊聲明部分port<clk1,reset:instd_logic;dainm:instd_logic_vector<7downto0>;dains:instd_logic_vector<7downto0>;speak:outstd_logic>;endcomponent;componentseltime--掃描輸出模塊聲明部分port<clk1,reset:instd_logic;sec,min,hour:instd_logic_vector<7downto0>;dp:outstd_logic;sel:outstd_logic_vector<5downto0>;daout:outstd_logic_vector<3downto0>>;endcomponent;componentdeled--譯碼顯示聲明部分port<num:instd_logic_vector<3downto0>;led:outstd_logic_vector<6downto0>>;endcomponent;signalclk,clk1:std_logic;signalenmin,enhour:std_logic;signalsec:std_logic_vector<7downto0>;signalmin:std_logic_vector<7downto0>;signalhor:std_logic_vector<7downto0>;signaldaout:std_logic_vector<3downto0>;beginu0:div_clkportmap<clk_in,clk,clk1>;u1:secondportmap<clk,reset,setmin,enmin,sec>;u2:minuteportmap<enmin,reset,clk,sethour,enhour,min>;u3:hourportmap<enhour,reset,hor>;u4:alarmportmap<clk1,reset,min,sec,speak>;u5:seltimeportmap<clk1,reset,sec,min,hor,dp,sel,daout>;u6:deledportmap<daout,led>;endstructure;--分頻模塊libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitydiv_clkisport<clks:instd_logic;--晶振時(shí)鐘信號(hào) clk:outstd_logic;--1Hz基準(zhǔn)時(shí)鐘信號(hào) clk1:outstd_logic>;--1000Hz掃描頻率信號(hào)enddiv_clk;architecturebehaveofdiv_clkissignaltemp0:integerrange0to49999999;signaltemp1:integerrange0to49999;beginprocess<clks>begin if<clks'eventandclks='1'>then if<temp0=49999999>then temp0<=0; elsetemp0<=temp0+1; endif; iftemp0>=24999999thenclk<='1';elseclk<='0'; endif; endif;endprocess;process<clks>beginif<clks'eventandclks='1'>then if<temp1=49999>then temp1<=0; elsetemp1<=temp1+1; endif; iftemp1>=24999thenclk1<='1';elseclk1<='0'; endif; endif;endprocess;endbehave;--秒計(jì)數(shù)模塊〔second.vhdlibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitysecondisport<clk,reset,setmin:instd_logic;enmin:outstd_logic;--分鐘時(shí)鐘端daout:outstd_logic_vector<7downto0>>;--數(shù)據(jù)輸出endsecond;architectureartofsecondissignalcount:std_logic_vector<7downto0>;signalenmin_1,enmin_2:std_logic;begindaout<=count;enmin_2<=<notsetminandclk>;--setmin=0,選通校分時(shí)鐘CLKenmin<=<enmin_1orenmin_2>;process<clk,reset>beginif<reset='0'>thencount<="00000000";enmin_1<='0';elsif<clk'eventandclk='1'>thenif<count<3downto0>="1001">thenif<count<16#60#>thenif<count="01011001">thenenmin_1<='1';count<="00000000";elsecount<=count+7;--個(gè)位向十位進(jìn)1endif;elsecount<="00000000";endif;elsif<count<16#60#>thencount<=count+1;enmin_1<='0';elsecount<="00000000";enmin_1<='0';endif;endif;endprocess;endart;--分計(jì)數(shù)模塊〔minute.vhdlibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityminuteisport<clk,reset,clk1,sethour:instd_logic;enhour:outstd_logic;--送小時(shí)時(shí)鐘端daout:outstd_logic_vector<7downto0>>;--數(shù)據(jù)輸出endminute;architecturertlofminuteissignalcount:std_logic_vector<7downto0>;signalenhour_1,enhour_2:std_logic;begindaout<=count;enhour_2<=<notsethourandclk1>;--sethour=0,選通校時(shí)時(shí)鐘CLK1enhour<=<enhour_1orenhour_2>;process<clk,reset,sethour>beginif<reset='0'>thencount<="00000000";enhour_1<='0';elsif<clk'eventandclk='1'>thenifcount<3downto0>="1001"thenif<count<16#60#>thenifcount="01011001"thenenhour_1<='1';count<="00000000";elsecount<=count+7;--個(gè)位向十位進(jìn)1enhour_1<='0';endif;elsecount<="00000000";endif;elsif<count<16#60#>thencount<=count+1;enhour_1<='0'after100ns;elsecount<="00000000";enhour_1<='0';endif;endif;endprocess;endrtl;--小時(shí)計(jì)數(shù)模塊〔hour.vhdlibraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityhourisport<clk,reset:instd_logic;daout:outstd_logic_vector<7downto0>>;--數(shù)據(jù)輸出endhour;architecturertlofhourissignalcount:std_logic_vector<7downto0>;begindaout<=count;process<clk,reset>beginif<reset='0'>thencount<="00000000";elsif<clk'eventandclk='1'>thenifcount<3downto0>="1001"thenif<count<16#23#>thencount<=count+7;--個(gè)位向十位進(jìn)1elsecount<="00000000";endif;elsif<count<16#23#>thencount<=count+1;elsecount<="00000000";endif;endif;endprocess;endrtl;--報(bào)時(shí)模塊libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityalarmisport<clk1,reset:instd_logic;dainm:instd_logic_vector<7downto0>;dains:instd_logic_vector<7downto0>;speak:outstd_logic>;endalarm;architectureartofalarmissignals_speak:std_logic;beginprocess<clk1,reset>beginif<reset='0'>thens_speak<='0';elsif<dainm="00000000">thenif<dains<="00000000">thens_speak<=clk1;elses_speak<='0';endif;elses_speak<='0';endif;endprocess;speak<=s_speak;endart;--時(shí)間掃描模塊libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entityseltimeisport<clk1,reset:instd_logic;sec,min,hour:instd_logic_vector<7downto0>;dp:outstd_logic;sel:outstd_logic_vector<5downto0>;--分時(shí)選通daout:outstd_logic_vector<3downto0>>;--分時(shí)掃描輸出endseltime;architectureartofseltimeissignalcount:std_logic_vector<2downto0>;beginprocess<clk1,reset>beginif<reset='0'>thencount<="000";elsif<clk1'eventandclk1='1'>thenif<count>="101">thencount<="000";elsecount<=count+1;endif;endif;endprocess;process<clk1,reset>beginif<reset='0'>thendaout<="0000";dp<='0';sel<="111111";elsif<clk1'eventandclk1='1'>then ca

溫馨提示

  • 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)論