基于FPGA的數(shù)字時(shí)鐘_第1頁(yè)
基于FPGA的數(shù)字時(shí)鐘_第2頁(yè)
基于FPGA的數(shù)字時(shí)鐘_第3頁(yè)
基于FPGA的數(shù)字時(shí)鐘_第4頁(yè)
基于FPGA的數(shù)字時(shí)鐘_第5頁(yè)
已閱讀5頁(yè),還剩45頁(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、青島農(nóng)業(yè)大學(xué)畢 業(yè) 論 文(設(shè)計(jì)) 題 目: 基于FPGA的數(shù)字時(shí)鐘設(shè)計(jì) 姓 名: 趙曉杰 學(xué) 院: 機(jī)電工程學(xué)院 專 業(yè): 農(nóng)業(yè)電氣化與自動(dòng)化 班 級(jí): 2008.01 學(xué) 號(hào): 指導(dǎo)教師: 趙艷華 2012年6月18日畢業(yè)論文(設(shè)計(jì))誠(chéng)信聲明本人聲明:所呈交的畢業(yè)論文(設(shè)計(jì))是在導(dǎo)師指導(dǎo)下進(jìn)行的研究工作及取得的研究成果,論文中引用他人的文獻(xiàn)、數(shù)據(jù)、圖表、資料均已作明確標(biāo)注,論文中的結(jié)論和成果為本人獨(dú)立完成,真實(shí)可靠,不包含他人成果及已獲得青島農(nóng)業(yè)大學(xué)或其他教育機(jī)構(gòu)的學(xué)位或證書使用過的材料。與我一同工作的同志對(duì)本研究所做的任何貢獻(xiàn)均已在論文中作了明確的說(shuō)明并表示了謝意。論文(設(shè)計(jì))作者簽名:

2、 日期: 年 月 日 畢業(yè)論文(設(shè)計(jì))版權(quán)使用授權(quán)書本畢業(yè)論文(設(shè)計(jì))作者同意學(xué)校保留并向國(guó)家有關(guān)部門或機(jī)構(gòu)送交論文(設(shè)計(jì))的復(fù)印件和電子版,允許論文(設(shè)計(jì))被查閱和借閱。本人授權(quán)青島農(nóng)業(yè)大學(xué)可以將本畢業(yè)論文(設(shè)計(jì))全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫(kù)進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本畢業(yè)論文(設(shè)計(jì))。本人離校后發(fā)表或使用該畢業(yè)論文(設(shè)計(jì))或與該論文(設(shè)計(jì))直接相關(guān)的學(xué)術(shù)論文或成果時(shí),單位署名為青島農(nóng)業(yè)大學(xué)。論文(設(shè)計(jì))作者簽名: 日期: 年 月 日指 導(dǎo) 教 師 簽 名: 日期: 年 月 日目 錄摘 要IAbstractII1 緒 論11.1研究問題背景和現(xiàn)狀11.2研究目的及

3、意義11.3設(shè)計(jì)內(nèi)容及目標(biāo)21.3.1研究?jī)?nèi)容21.3.2研究目標(biāo)22 系統(tǒng)設(shè)計(jì)方案32.1控制方案的選擇32.2時(shí)鐘電路的選擇32.3校時(shí)控制電路的選擇32.4顯示電路的選擇43 系統(tǒng)電路總體設(shè)計(jì)53.1系統(tǒng)設(shè)計(jì)總體框圖53.2電源供電電路設(shè)計(jì)53.2.1外圍電路電源設(shè)計(jì)53.2.2芯片電源電路設(shè)計(jì)63.2.3電源濾波電路63.3 FPGA芯片及其引腳73.4 JTAG下載配置電路設(shè)計(jì)83.5 時(shí)鐘信號(hào)電路設(shè)計(jì)93.6 復(fù)位電路93.7 鍵盤電路設(shè)計(jì)103.8人機(jī)顯示電路103.9 整點(diǎn)報(bào)時(shí)電路設(shè)計(jì)114 FPGA內(nèi)部程序設(shè)計(jì)124.1 分頻器的程序設(shè)計(jì)124.2 秒計(jì)數(shù)器程序設(shè)計(jì)134.3

4、 分計(jì)數(shù)器程序設(shè)計(jì)154.4 小時(shí)計(jì)數(shù)器程序設(shè)計(jì)164.5 日計(jì)數(shù)器程序設(shè)計(jì)164.6 月計(jì)數(shù)器程序設(shè)計(jì)174.7 年計(jì)數(shù)器程序設(shè)計(jì)184.8 鍵盤控制程序設(shè)計(jì)194.9 LCD1602程序設(shè)計(jì)204.10 頂層文件設(shè)置及編譯下載215 總 結(jié)225.1 結(jié)論225.2 設(shè)計(jì)中遇到的問題22參考文獻(xiàn)23致 謝24附錄:25附錄1 最小系統(tǒng)及配置電路圖25附錄2 系統(tǒng)外圍電路圖26附錄3 系統(tǒng)設(shè)計(jì)程序27附錄4 頂層原理圖及引腳設(shè)置43基于FPGA的數(shù)字時(shí)鐘設(shè)計(jì)摘 要利用FPGA器件設(shè)計(jì)數(shù)字電路,不僅可以將時(shí)鐘的硬件電路和設(shè)計(jì)流程簡(jiǎn)化,而且可以減小本設(shè)計(jì)系統(tǒng)的前期成本與模塊體積,提高了系統(tǒng)的穩(wěn)定

5、性,縮短設(shè)計(jì)周期。FPGA不僅可以實(shí)現(xiàn)簡(jiǎn)單的74系列的電路邏輯設(shè)計(jì),而且可以作為具有高性能的CPU,來(lái)控制總系統(tǒng)運(yùn)行。本設(shè)計(jì)采用EP1K10TC100-1芯片作為控制CPU,整個(gè)系統(tǒng)采用VHDL語(yǔ)言,50MHZ的晶振產(chǎn)生時(shí)鐘脈沖,用VHDL語(yǔ)言設(shè)計(jì)分頻器獲得秒信號(hào)及其他時(shí)鐘信號(hào),經(jīng)過計(jì)數(shù)器分別對(duì)年、月、日、時(shí)、分、秒的控制邏輯累加形成計(jì)數(shù)模塊,并通過獨(dú)立鍵盤對(duì)計(jì)數(shù)模塊進(jìn)行調(diào)整以達(dá)到調(diào)時(shí)間的目的,系統(tǒng)通過1602液晶顯示輸出。系統(tǒng)利用Quartus II軟件進(jìn)行程序軟件的編譯、仿真、引腳設(shè)置、總線接口及配置、下載來(lái)完成整個(gè)設(shè)計(jì)。關(guān)鍵詞:數(shù)字時(shí)鐘;FPGA;VHDL語(yǔ)言Design of Digi

6、tal Clock Based on FPGAAbstractUsing FPGA component to design digital circuit not only may simplify the clock hardware circuit and the design process, moreover may reduce this design systems cost and the volume to enhance systems reliability. FPGA can not only achieve the 74 series circuit logic, an

7、d can be used as high-performance CPU to control the total system operation.ThisdesignusestheEP1K10TC100-1chiptocontrolCPU.TheoverallsystemusestheVHDLlanguage.The50MHZcrystaloscillatorproducestheclockpulse.TheVHDLlanguageobtainsasecondsignalandotherclocksignal.Designfrequencydividerpassesthroughthec

8、ounterseparatelytotheyear,themonth,Japan,divides,thesecondcontrollogicaccumulationtoformthecountingmodule,andmakestheadjustmentthroughtheindependentkeyboardtothecountingmoduletoachievethegoalofadjustingthetime,andthesystemdisplayoutputthrough1602liquidcrystal.Thesystemcarriesontheproceduresoftwarest

9、ranslation,thesimulation,thepinestablishment,thebusinterfaceandthedisposition,downloadingusingtheQuartusIIsoftwaretocompletetheentiredesign. Keywords:digital clock; FPGA; VHDL language1 緒 論1.1研究問題背景和現(xiàn)狀隨著生活節(jié)奏的加快,我的生活、工作、學(xué)習(xí)都離不開時(shí)間這個(gè)概念。從開始機(jī)械式的鐘表,到現(xiàn)在數(shù)字式時(shí)鐘,時(shí)鐘的發(fā)展并沒有停下腳步。數(shù)字時(shí)鐘的發(fā)展是伴隨著數(shù)字電路的發(fā)展,傳統(tǒng)的數(shù)字時(shí)鐘主要由多個(gè)的數(shù)字集成

10、電路(觸發(fā)器和計(jì)數(shù)器)組成,開始只用作科研或者軍事用途,改革開放之后,民用數(shù)字時(shí)鐘才開始發(fā)展,廣泛用于機(jī)場(chǎng)、汽車、火車站、醫(yī)院等公共場(chǎng)合,主要是通過發(fā)光二級(jí)管作為數(shù)字時(shí)鐘的顯示器。由于需要的集成器件較多,當(dāng)時(shí)的數(shù)字時(shí)鐘的體積較大,而且邏輯性較差。后來(lái)可編程邏輯器件的出現(xiàn)簡(jiǎn)化了數(shù)字時(shí)鐘的外圍電路,降低了成本。隨著LCD液晶顯示器的出現(xiàn),數(shù)字時(shí)鐘的顯示在部分場(chǎng)合取代了以往的數(shù)碼管顯示。傳統(tǒng)的數(shù)字時(shí)鐘發(fā)展這么多年,在部分場(chǎng)合依然應(yīng)用,可見其有自己獨(dú)特的地方。不需要軟件控制,基本固定的電路原理圖,技術(shù)含量要求較低,對(duì)于很多生產(chǎn)廠家來(lái)說(shuō),方便投產(chǎn)。但是,在比較精密的場(chǎng)合,不考慮成本的情況下,在功耗、穩(wěn)定

11、性上要求提高。由于傳統(tǒng)數(shù)字時(shí)鐘器件較多,電路功耗就會(huì)提高,芯片容易發(fā)熱,導(dǎo)致整個(gè)電路的壽命降低。1.2研究目的及意義隨著產(chǎn)品設(shè)計(jì)研發(fā)成本越來(lái)越高,設(shè)計(jì)周期要求越來(lái)越快,電子工程師不得不選擇更加方便、快捷、高性能、低功耗的芯片來(lái)滿足市場(chǎng)的需求,F(xiàn)PGA器件以絕對(duì)的優(yōu)勢(shì)脫穎而出。近年來(lái)綠色、環(huán)保、低功耗越來(lái)越得到大家的認(rèn)可,然而應(yīng)科技而生的電子垃圾、高功耗、低效率成了環(huán)保新病。因此如何通過降低功率損耗來(lái)減少電源系統(tǒng)的元件和電路板的面積,提高系統(tǒng)的可靠性,延長(zhǎng)器件的壽命成為現(xiàn)在電子研發(fā)的首要考慮問題??梢姡瑢?duì)用FPGA芯片系統(tǒng)的研究意義深遠(yuǎn)。FPGA進(jìn)入到第三個(gè)階段:向傳統(tǒng)的ASIC領(lǐng)域大刀闊斧地進(jìn)

12、軍,最新工藝鏟平了FPGA和ASIC之間的鴻溝。1用FPGA設(shè)計(jì)數(shù)字時(shí)鐘,利用其超大規(guī)模的集成邏輯電路,可以減少外圍電路的元器件,從而減小整個(gè)系統(tǒng)的體積,很大的節(jié)約成本;FPGA芯片功耗低,減少了熱量的產(chǎn)生,降低溫結(jié),提高了系統(tǒng)的可靠性,而且延長(zhǎng)器件的使用壽,對(duì)系統(tǒng)有著非常大的促進(jìn)作用。程序利用VHDL語(yǔ)言設(shè)計(jì),VHDL支持硬件的設(shè)計(jì)、驗(yàn)證、綜合和測(cè)試,以及硬件設(shè)計(jì)數(shù)據(jù)的交換、維護(hù)、修改和硬件的實(shí)現(xiàn),具有描述能力強(qiáng)、生命周期長(zhǎng)、支持大規(guī)模的分解和已有設(shè)計(jì)的再利用的特點(diǎn)。2采用了“自頂向下”(Top-Down)的全新設(shè)計(jì)方法,是設(shè)計(jì)師們擺脫了大量的輔助設(shè)計(jì)工作,而把精力集中于創(chuàng)造性的方案與概念構(gòu)

13、思上,用新的思路來(lái)發(fā)掘硬件設(shè)備的潛力,從而極大地提高了設(shè)計(jì)效率,縮短了產(chǎn)品的研制周期31.3設(shè)計(jì)內(nèi)容及目標(biāo)1.3.1研究?jī)?nèi)容(1)硬件電路方案和總體設(shè)計(jì)(2)利用Quartus II完成系統(tǒng)分頻、計(jì)數(shù)、按鍵控制、液晶顯示的內(nèi)部邏輯1.3.2研究目標(biāo)(1)掌握并利用Protel DXP搭建所需要的硬件電路。(2)在Quartus II軟件上用Vhdl語(yǔ)言編寫相關(guān)應(yīng)用程序。(3)利用FPGA芯片完成數(shù)字時(shí)鐘。2 系統(tǒng)設(shè)計(jì)方案2.1控制方案的選擇方案一:整個(gè)系統(tǒng)采用數(shù)字集成電路控制。采用555電路產(chǎn)生1HZ時(shí)鐘脈沖,秒信號(hào)送給計(jì)數(shù)器,經(jīng)過多級(jí)計(jì)數(shù),然后將數(shù)據(jù)送給譯碼電路,最后通過數(shù)碼管顯示時(shí)間。由于

14、本設(shè)計(jì)需顯示年、月、日、時(shí)、分、秒,因此需要的計(jì)數(shù)器、譯碼器、數(shù)碼管會(huì)比較多,從而會(huì)增加設(shè)計(jì)難度,系統(tǒng)的體積也會(huì)增大,穩(wěn)定性變差,功耗較大。方案二:采用FPGA芯片作為控制芯片,用VHDL語(yǔ)言編程實(shí)現(xiàn)內(nèi)部邏輯;將必要電路電路、下載電路、控制電路、顯示電路、晶振等集成放在一塊板子上,完成時(shí)間顯示。集成器件大大的減少,硬件電路得到簡(jiǎn)化,從而減少了干擾,提高了穩(wěn)定性,減小了功率損耗,延長(zhǎng)了系統(tǒng)的壽命。比較以上方案,選擇方案二。2.2時(shí)鐘電路的選擇方案一:采用555電路產(chǎn)生1HZ的秒信號(hào)作為時(shí)鐘信號(hào)。但是由于FPGA芯片屬于高速芯片,而且用555產(chǎn)生的秒信號(hào)不穩(wěn)定,還會(huì)引起功耗增加的問題,所以不選此電

15、路,但可作為備用時(shí)鐘電路考慮。方案二:采用有源晶振產(chǎn)生高頻率高質(zhì)量的時(shí)鐘脈沖,用VHDL語(yǔ)言設(shè)計(jì)分頻電路,得到需要的秒信號(hào)時(shí)鐘。有源晶振是無(wú)源晶振和邏輯電路的組合體,能夠穩(wěn)定的產(chǎn)生需要的時(shí)鐘脈沖,而且可以通過VHDL語(yǔ)言進(jìn)行分頻,獲得所需的時(shí)鐘脈沖。綜上所述,由于系統(tǒng)軟件部分需要高精度的多個(gè)時(shí)鐘脈沖,因此選擇方案二。2.3校時(shí)控制電路的選擇方案一:采用獨(dú)立鍵盤接口方式,每個(gè)按鍵都過上拉電阻接到一個(gè)I/O口,每個(gè)按鍵就會(huì)獨(dú)自占用一條I/O數(shù)據(jù)線,控制方便,編程簡(jiǎn)單,但是I/O的利用率會(huì)降低,因此適用于按鍵較少,簡(jiǎn)化程序的系統(tǒng)中。方案二:采用矩陣鍵盤的接口方式,如4*4矩陣鍵盤,僅需要8個(gè)I/O口

16、,提高了I/O口的利用率,適用于按鍵較多、I/O不足的系統(tǒng)中,但是編程比較復(fù)雜,邏輯性較強(qiáng)。本設(shè)計(jì)僅需要7個(gè)按鍵,且由于FPGA芯片I/O較多,很多處于閑置狀態(tài),因此選擇方案一。2.4顯示電路的選擇方案一:采用LED數(shù)碼管顯示時(shí)間。數(shù)碼管方便,編程簡(jiǎn)單,數(shù)字顯示較大,顯示效果好,而且價(jià)格便宜。但是顯示內(nèi)容少,多字符顯示時(shí)會(huì)增加數(shù)碼管的數(shù)量,而且外圍硬件電路較為繁瑣復(fù)雜,增加了系統(tǒng)的體積和系統(tǒng)的功耗。方案二:采用1602液晶顯示時(shí)間。顯示兩行32位字符,用戶方便讀寫,內(nèi)部CGRAM中已有較多字符,方便取用,外圍電路簡(jiǎn)單,適用于顯示內(nèi)容較少,且對(duì)圖像漢字沒有太大要求的系統(tǒng)中。方案三:采用12864

17、液晶顯示時(shí)間。屏幕較大,可以顯示多行,顯示各種字符、漢字、圖像等,用戶很方便讀寫,外圍電路也很簡(jiǎn)單,占用I/O口較少,節(jié)約系統(tǒng)資源。適用于顯示內(nèi)容較多的場(chǎng)合。本設(shè)計(jì)只需顯示兩行就可以,而且對(duì)漢字、圖像沒有要求,在充分考慮成本和系統(tǒng)資源的情況下,選擇方案一。3 系統(tǒng)電路總體設(shè)計(jì)3.1系統(tǒng)設(shè)計(jì)總體框圖系統(tǒng)硬件主要為滿足FPGA芯片工作的最小系統(tǒng)及其外圍電路組成。FPGA芯片選用EP1K10TC100-1,最小系統(tǒng)包括晶振電路、下載電路、電源電路、復(fù)位電路組成;外圍電路主要包括按鍵控制、液晶顯示電路和電源指示電路等等基于人機(jī)界面設(shè)計(jì)的電路整個(gè)系統(tǒng)工作總體框圖如下:FPGA電源模塊分頻模塊時(shí)鐘脈沖計(jì)數(shù)

18、模塊校時(shí)模塊譯碼顯示模塊鍵盤模塊LCD顯示下載電路圖3-1系統(tǒng)工作總體框圖3.2電源供電電路設(shè)計(jì)3.2.1外圍電路電源設(shè)計(jì)由于系統(tǒng)采用LCD1602液晶顯示,通常使用5V直流電源作為工作電壓,因此需要設(shè)計(jì)一個(gè)將市電轉(zhuǎn)換到5V的降壓整流電路。先將220V交流電經(jīng)過變壓器降壓9V,然后整流,LM7805內(nèi)部是三端穩(wěn)壓電源電路,可以將8V到25V的電源穩(wěn)壓到5V直流電源,最后經(jīng)過電容多級(jí)濾波平滑輸出波形。主體電路圖如下:圖3-25V直流電源設(shè)計(jì)3.2.2芯片電源電路設(shè)計(jì)FPGA芯片所需電壓主要有核心電壓和I/O口電壓,另外還有輔助電壓作為部分外圍電路的控制電壓。EP1K10TC100-1的核心電壓為

19、DC1.5V,I/O口電壓為DC3.3V??紤]FLSH芯片擦寫電流較大,5V轉(zhuǎn)3.3V采用AMS 1085-3.3穩(wěn)壓芯片,然后用AMS 1085-1.5將3.3V穩(wěn)壓到1.5V的核心電壓,由于1085系列芯片輸出電流在10mA到3A區(qū)間范圍內(nèi),可以滿足電流要求。在5V輸入側(cè)加上穩(wěn)壓二極管增加電源系統(tǒng)的穩(wěn)定性,芯片電源電路圖如下:圖3-3EP1K10TC100-1最小系統(tǒng)電源及電源接口電路3.2.3電源濾波電路為保證FPGA芯片能夠正常工作,供電電源電壓不允許有波動(dòng),尤其是核心電壓。穩(wěn)定的電源電壓才能保證FPGA正常啟動(dòng)并能正常運(yùn)行,因此需要在電源電路中加入濾波電路,以保證芯片有著穩(wěn)定的輸入電

20、壓,提高系統(tǒng)的穩(wěn)定性,濾波電路圖如下:圖3-4電源濾波電路圖主要針對(duì)FPGA芯片的3.3V和1.5V電源與地之間做了濾波的處理,相對(duì)于布線緊密的PCB來(lái)說(shuō),減小了線與線之間的信號(hào)干擾,提高了穩(wěn)定性。3.3 FPGA芯片及其引腳圖3-5EP1K10TC100-1芯片及引腳系統(tǒng)采用EP1K10TC100-1作為核心控制芯片,芯片為貼片式的,有100個(gè)引腳。核心電源采用1.5V直流電源,I/O口電源采用3.3V電源。芯片及引腳圖如圖3-5。3.4 JTAG下載配置電路設(shè)計(jì)JTAG是一種標(biāo)準(zhǔn)的國(guó)際測(cè)試協(xié)議,本系統(tǒng)的下載線路主要用于對(duì)FLSH存儲(chǔ)器件EPCS1的在線編程,可以用于對(duì)FPGA的內(nèi)部測(cè)試。在

21、FPGA芯片上有四個(gè)關(guān)于JTAG下載電路的功能引腳,TMS、TDI、TDO、TCK分別為測(cè)試時(shí)鐘輸入、測(cè)試數(shù)據(jù)輸入、測(cè)試數(shù)據(jù)輸出、測(cè)試模式選擇接口。電路圖如下:圖3-6下載配置電路模塊FLSH電路的設(shè)置是將FLSH的地址線、數(shù)據(jù)線和控制線與FPGA的數(shù)據(jù)線、地址線和控制線相連接,將FPGA設(shè)置在EXTEST模式下,利用電腦的并口,將程序?qū)懭隖LSH,并在燒寫完程序后進(jìn)行校驗(yàn)測(cè)試。為防止其他信號(hào)的干擾,電腦與JTAG下載線的盡量短,盡量少于15cm。此部分加入了下載指示燈LED1可以監(jiān)控下載狀態(tài),當(dāng)指示燈亮?xí)r表明正在進(jìn)行信息傳輸,文件進(jìn)行下載。還設(shè)置了RE按鍵,可以在不斷電的情況下重新對(duì)FPGA

22、進(jìn)行配置。3.5 時(shí)鐘信號(hào)電路設(shè)計(jì)由于FPGA屬于高速芯片,因此對(duì)輸入時(shí)鐘的頻率及其穩(wěn)定性都有較高的要求。本系統(tǒng)采用50MHZ的有源晶振作為時(shí)鐘的產(chǎn)生電路,不需要內(nèi)部處理器的振蕩器,信號(hào)穩(wěn)定。有源晶振有4只引腳,有點(diǎn)的為1腳,逆時(shí)針依次為2、3、4腳,引腳接法如圖3-7。1腳懸空,2腳接地,3腳輸出,4腳接3.3V電壓。有源晶振不能直接接電源,需要做好電源的濾波,保證產(chǎn)生信號(hào)的質(zhì)量,接法如下圖使用一個(gè)電容和電感構(gòu)成PI型濾波網(wǎng)絡(luò)。在輸出端用一個(gè)47的電阻來(lái)過濾信號(hào)。圖3-7系統(tǒng)時(shí)鐘信號(hào)電路555電路作為系統(tǒng)的備用秒信號(hào)產(chǎn)生脈沖電路,當(dāng)有源晶振電路出現(xiàn)故障,手動(dòng)切換之備用電路。Ttw1tw2,t

23、w10.7(R13R14)C5,tw20.7R13C5,系統(tǒng)中選取R13為62K,R14為20K,獲得的周期為1.008S的秒信號(hào)。3.6 復(fù)位電路系統(tǒng)采用簡(jiǎn)單地高電平進(jìn)行復(fù)位,將電源通過電容與電阻串聯(lián)后接地,RESET松開時(shí),CLK為低電平,系統(tǒng)正常工作;RESET按下后電源直接通過電阻接地,CLK端為高電平,系統(tǒng)復(fù)位。復(fù)位電路圖如下:圖3-8復(fù)位電路設(shè)計(jì)3.7 鍵盤電路設(shè)計(jì)在人機(jī)交互界面中,鍵盤模塊作為輸入模塊作用重要。對(duì)于系統(tǒng)的時(shí)鐘的復(fù)位,年、月、日、時(shí)、分、秒的校時(shí)控制就是通過鍵盤來(lái)實(shí)現(xiàn)的。由于FPGA的I/O口較多,而且控制按鍵又不很多,本系統(tǒng)采用獨(dú)立鍵盤的作為輸入控制電路,如圖3-

24、9所示。STW0到STW6分別接到芯片選好的I/O接口上。每按下一次STW0,時(shí)鐘的分個(gè)位加1,滿10進(jìn)1,依次STW1、STW2、STW3、STW4分別為時(shí)、日、月、年的控制按鍵,STW5為秒信號(hào)的復(fù)位按鍵,每按下一次,秒復(fù)位為0,STW6為L(zhǎng)CD1602液晶復(fù)位按鍵。圖3-9獨(dú)立鍵盤的設(shè)計(jì)電路3.8人機(jī)顯示電路系統(tǒng)設(shè)計(jì)要顯示年、月、日、時(shí)、分、秒,不需要其他的內(nèi)容顯示,因此選用LCD1602作為顯示模塊,可以顯示實(shí)時(shí)時(shí)間,還可以看到現(xiàn)在正在更改設(shè)定的時(shí)間,使操作人性化。LCD1602帶有基本的數(shù)字、24個(gè)英文字母的大小寫及其部分字符,能夠滿足設(shè)計(jì)要求,顯示兩行,每行顯示16個(gè)字符,設(shè)計(jì)第一

25、行顯示內(nèi)容為“ 2012y6m10d ZHAO”,第二行顯示內(nèi)容為“ 17:30:00 FPGA ”,共32個(gè)字符。引腳接線圖如圖3-10所示。LCD1602有16個(gè)引腳,1、2分別為電源地、電源,3引腳為對(duì)比度調(diào)節(jié),電路中接入10K的電位器,來(lái)調(diào)節(jié)對(duì)比度。15、16分別為背光電源地、背光電源正極。6引腳為使能端,4引腳為數(shù)據(jù)/命令選擇端,5引腳為讀/寫選擇端。7到14為雙向數(shù)據(jù)口,本設(shè)計(jì)采用并口工作方式對(duì)LCD1602進(jìn)行讀寫控制。電源采用5V直流電源,功耗較低。圖3-10LCD1602外圍設(shè)計(jì)電路3.9 整點(diǎn)報(bào)時(shí)電路設(shè)計(jì)系統(tǒng)采用有源蜂鳴器作為整點(diǎn)報(bào)時(shí)器件,整點(diǎn)時(shí)分,TOUT置為高電平,蜂鳴

26、器發(fā)出“嘀-”的聲音,經(jīng)過延時(shí)30S后,TOUT置為低電平,蜂鳴器關(guān)閉。為減小芯片負(fù)載輸出,利用5V電源通過三極管驅(qū)動(dòng)蜂鳴器報(bào)時(shí)。設(shè)計(jì)電路圖如下:圖3-11整點(diǎn)報(bào)時(shí)電路設(shè)計(jì)4 FPGA內(nèi)部程序設(shè)計(jì)本設(shè)計(jì)采用頂層文件設(shè)計(jì)方法,設(shè)計(jì)順序?yàn)樽韵露系?,利用頂層文件將各個(gè)子模塊系統(tǒng)聯(lián)系起來(lái),方便隨時(shí)調(diào)用。首先設(shè)計(jì)各個(gè)子模塊,然后根據(jù)子模塊的輸入輸出,設(shè)計(jì)出頂層文件,利用頂層文件將連接各個(gè)子模塊,是各個(gè)模塊組成一個(gè)整體,完成軟件設(shè)計(jì)。EDA最大的優(yōu)勢(shì)就是能將所有設(shè)計(jì)環(huán)節(jié)納入統(tǒng)一的自頂向下的設(shè)計(jì)方案中。44.1 分頻器的程序設(shè)計(jì)系統(tǒng)時(shí)鐘采用50MHZ時(shí)鐘脈沖信號(hào),經(jīng)過分頻,然后取反,輸出clk1HZ,得到

27、秒信號(hào);同理經(jīng)過50000分頻,取反,得到clk500HZ的信號(hào)。秒信號(hào)用來(lái)產(chǎn)生秒的時(shí)鐘計(jì)數(shù)脈沖,作為計(jì)數(shù)器的初始脈沖,500HZ信號(hào)用作鍵盤控制模塊的按鍵消抖和LCD顯示模塊的時(shí)鐘信號(hào)。51HZ分頻器的程序設(shè)計(jì)流程圖如下:Ncount=0clk1hz=not clk1hzcount=count+1輸入50MHZ脈沖count=0clk1hz=0count=輸出clk1hz1HZ分頻結(jié)束Y分頻開始圖4-11HZ時(shí)鐘信號(hào)設(shè)計(jì)流程圖500HZ分頻器程序框圖和1HZ原理相同,只是將判斷語(yǔ)句換成count=49999。利用Quartus II軟件進(jìn)行對(duì)程序進(jìn)行編譯,編譯成功后生成原理圖,以方便在頂層文

28、件中取用。軟件成功編譯顯示示例圖如下:圖4-2程序編譯成功分頻器有一個(gè)輸入,兩個(gè)輸出,原理圖如下:圖4-3分頻器原理圖原理圖繪制成功后對(duì)分頻器進(jìn)行功能仿真,clk50MHZ輸入50MHZ的時(shí)鐘信號(hào),由于需要觀察秒信號(hào),需設(shè)置end time為2s,觀察2個(gè)周期的秒信號(hào),測(cè)試仿真結(jié)果,根據(jù)程序設(shè)計(jì)觀察時(shí)序結(jié)果,功能仿真如圖4-4、4-5所示。根據(jù)仿真結(jié)果可以看出,高電平結(jié)束為一個(gè)周期的結(jié)束,clk1HZ的周期剛好為1s,clk500HZ的周期為2ms。圖4-41HZ功能仿真結(jié)果圖4-5500HZ功能仿真結(jié)果4.2 秒計(jì)數(shù)器程序設(shè)計(jì)由分頻器得到的秒信號(hào)送給秒時(shí)鐘計(jì)數(shù)器,輸出分進(jìn)位信號(hào)和秒顯示的BC

29、D碼信號(hào),秒計(jì)數(shù)器原理圖如下:圖4-6秒計(jì)數(shù)器原理圖原理圖中,clk1HZ為分頻器輸出的1HZ的時(shí)鐘脈沖;secset為鍵盤SWT5按下的秒復(fù)位輸入信號(hào),高電平有效;min_set為鍵盤SWT0按下時(shí)的分個(gè)位加一輸入信號(hào)。enmin為分鐘進(jìn)位信號(hào),作為下一級(jí)的分計(jì)數(shù)器的輸入信號(hào);sout6.0的高3位為秒信號(hào)的十位輸出信號(hào),低4位為秒信號(hào)個(gè)位輸出信號(hào)。秒信號(hào)計(jì)數(shù)器主要是將輸入秒信號(hào)分別作10進(jìn)制和6進(jìn)制計(jì)數(shù)。程序設(shè)計(jì)框圖如下:秒計(jì)數(shù)開始輸入1HZ脈沖secset,min_setcount=”secset=1count3.0=”1001”count=count+1sout6.0=count6.0

30、count6.4=”101”count=count+7enmin=1;輸出sout6.0計(jì)數(shù)結(jié)束NYYNNYmin_set=1YN圖4-7秒計(jì)數(shù)器程序設(shè)計(jì)流程圖由設(shè)計(jì)程序流程圖可知,當(dāng)secset=1時(shí),sout6.0=”,秒顯示“00”;當(dāng)count3.0=”1001”計(jì)數(shù)器向十位進(jìn)1,否則count=count+1;當(dāng)count6.4=”101”時(shí),count清零,minset=1,發(fā)出分時(shí)鐘信號(hào),否則count=count+7,即十位進(jìn)1。秒計(jì)數(shù)器功能仿真波形如圖4-8所示。由于需要觀察60s后向分進(jìn)位時(shí)序波形,設(shè)置end time為100s,輸入clk1HZ為1s時(shí)鐘信號(hào),假設(shè)secs

31、et和min_set均為0的情況下,測(cè)試仿真情況。由仿真波形可知,60s時(shí),enmin置1,維持1s后再回到低電平;當(dāng)59s時(shí),sout6.0=”,將高3位與低4位分別轉(zhuǎn)換成對(duì)應(yīng)的秒信號(hào)的十位與個(gè)位的十進(jìn)制為剛好是59。圖4-8秒計(jì)數(shù)器功能仿真波形4.3 分計(jì)數(shù)器程序設(shè)計(jì)由于分鐘也是60進(jìn)制,因此本設(shè)計(jì)的分鐘計(jì)數(shù)器同秒計(jì)數(shù)器的原理相同,只是將輸入和輸出稍作修改,原理圖如下:圖4-9分計(jì)數(shù)器原理圖enmin為秒信號(hào)產(chǎn)生的分鐘進(jìn)位脈沖,周期為1min;clk1HZ為秒信號(hào)脈沖,用作信號(hào)脈沖調(diào)制;hour_set為鍵盤的SWT1,即小時(shí)的輸入控制信號(hào);enhour為小時(shí)進(jìn)位脈沖輸出;minout6.

32、0為分鐘顯示的二進(jìn)制數(shù),同sout6.0相同,高3位為十位,低4位為個(gè)位;spk為整點(diǎn)報(bào)時(shí)信號(hào),當(dāng)計(jì)數(shù)器向時(shí)計(jì)數(shù)器進(jìn)位時(shí)說(shuō)明整點(diǎn),給spk高電平,蜂鳴器響。程序設(shè)計(jì)流程圖參考秒計(jì)數(shù)器程序設(shè)計(jì)流程圖,仿真波形圖如下:圖4-10分計(jì)數(shù)器仿真波形由于Quartus II軟件仿真最大時(shí)間為s,設(shè)定enmin周期1s時(shí)鐘脈沖,來(lái)假定分鐘信號(hào)enmin=1min,clk1HZ依次為0.1s,設(shè)置end time為100s。60s時(shí),enhour=1,表示產(chǎn)生小時(shí)信號(hào),觀察59s時(shí)的minout6.0波形,minout6.0=,正好為59.4.4 小時(shí)計(jì)數(shù)器程序設(shè)計(jì)小時(shí)計(jì)數(shù)器的設(shè)計(jì)主要是利用十六進(jìn)制的高二位

33、與低四位設(shè)計(jì)的,設(shè)計(jì)原理同秒計(jì)數(shù)器。Enhour為時(shí)進(jìn)位時(shí)鐘信號(hào);clk1HZ為1HZ的時(shí)鐘脈沖,day_set為鍵盤控制日進(jìn)位設(shè)置,每來(lái)一個(gè)脈沖enday加1則向日計(jì)數(shù)器輸入一個(gè)進(jìn)位脈沖,表示日加一;hout5.0控制時(shí)顯示的BCD碼。設(shè)計(jì)原理圖如下:圖4-20時(shí)計(jì)數(shù)器原理圖4.5 日計(jì)數(shù)器程序設(shè)計(jì)日計(jì)數(shù)器總體思路與秒計(jì)數(shù)器一致。但是考慮到一年中的不同月份的的天數(shù)長(zhǎng)短不一樣,而且閏年與平年的二月份的天數(shù)又不相同,因此日計(jì)數(shù)器需要由年、月來(lái)共同決定日的長(zhǎng)短。通過sel2.0對(duì)日的長(zhǎng)短時(shí)間控制,如表4-1所示。Sel0為年的輸出控制量,0表示閏年,1表示平年;sel1為月的輸出控制量,0表示1、

34、2、3、5、7、8、10、12月份(每月有31天),1表示其他月份,包括二月和其他30的月份;sel2月的輸出控制中的二月,1表示2月,0為其他月份。表4-1日長(zhǎng)短邏輯控制表日年 sel0月 sel1二月 sel200031100010301102900128101011111日計(jì)數(shù)器模塊原理圖如圖4-21所示,生成day例化元件,方便在頂層文件中取用,用以整體原理圖的設(shè)計(jì)。輸入取自上一層的例化元件,輸出給下一級(jí)的例化元件。圖4-21日計(jì)數(shù)器原理圖程序設(shè)計(jì)需要首先利用sel2.0對(duì)日長(zhǎng)短的設(shè)置,然后設(shè)計(jì)原理同其他計(jì)數(shù)器,高2位控制日的十位,低四位控制日的個(gè)位。原理圖中sel0來(lái)自年計(jì)數(shù)模塊輸入

35、,sel2.1由月計(jì)數(shù)模塊輸入。4.6 月計(jì)數(shù)器程序設(shè)計(jì)由于陽(yáng)歷的月份固定,每年只有12個(gè)月,月計(jì)數(shù)器設(shè)計(jì)比較簡(jiǎn)單,即為12進(jìn)制的計(jì)數(shù)器,程序設(shè)計(jì)原理圖如圖4-22所示。但是需要用月來(lái)設(shè)置日的長(zhǎng)短,因此在程序中加入另一個(gè)進(jìn)程,用case語(yǔ)句來(lái)判斷月份的具體值,以此來(lái)給sel賦值,然后輸出sel的值來(lái)作為日長(zhǎng)短的設(shè)置信號(hào)。圖4-22月計(jì)數(shù)器程序原理圖其仿真波形圖如圖4-23所示,mout高一位控制月的十位,即0和1,低四位控制個(gè)位,0到9;sel2和sel1為設(shè)置日輸出信號(hào)。從仿真波形可以看出,輸出時(shí)序邏輯正確,但是出現(xiàn)了競(jìng)爭(zhēng)冒險(xiǎn)現(xiàn)象,經(jīng)分析sel1的尖峰脈沖不會(huì)影響程序運(yùn)行,因此可以忽略不考慮

36、。圖4-23月計(jì)數(shù)器仿真波形4.7 年計(jì)數(shù)器程序設(shè)計(jì)年計(jì)數(shù)器的范圍從2000到2099,前面的20都沒有變化,因此只要設(shè)計(jì)出00到99的計(jì)數(shù)器就可實(shí)現(xiàn)年的計(jì)數(shù)器的設(shè)計(jì)。由于閏年時(shí)二月天數(shù)需要其控制,因此需要選出其中的閏年,輸出信號(hào)給日計(jì)數(shù)器。閏年表見表4-2,通過表可以發(fā)現(xiàn)以下規(guī)律:當(dāng)十位是偶數(shù),轉(zhuǎn)化成BCD碼為XXX0,且個(gè)位是0、4、8,轉(zhuǎn)化成BCD碼為XX00,或者十位是基數(shù),轉(zhuǎn)化成BCD碼為XXX1,且個(gè)位是2、6,轉(zhuǎn)化成BCD碼為XX10時(shí),當(dāng)年是閏年,否則是平年。表4-2閏年表00040812162024283236404448525660646872768084889296設(shè)計(jì)原

37、理圖如圖如圖4-24所示,sel為閏年輸出脈沖,用以設(shè)置日計(jì)數(shù)器的長(zhǎng)短。圖4-24年計(jì)數(shù)器原理圖4.8 鍵盤控制程序設(shè)計(jì)本設(shè)計(jì)對(duì)I/O口的要求不是很高,而且FPGA芯片有豐富的I/O接口,因此采用獨(dú)立鍵盤設(shè)計(jì),簡(jiǎn)化設(shè)計(jì)程序。鍵盤需要隨時(shí)掃描,因此用50MHZ脈沖作為鍵盤的掃描信號(hào),用500HZ的脈沖做按鍵消抖處理,key6.0為鍵盤按下的輸入信號(hào),keyout6.0為鍵盤輸出信號(hào),分別送給年、月、日、時(shí)、分、秒計(jì)數(shù)器。設(shè)計(jì)原理圖如下:圖4-25鍵盤設(shè)計(jì)原理圖鍵盤掃描程序設(shè)計(jì)流程框圖如圖4-26所示,由于按下鍵盤和松開鍵盤時(shí)會(huì)出現(xiàn)抖動(dòng)現(xiàn)象,為避免系統(tǒng)程序動(dòng)作錯(cuò)誤,出現(xiàn)誤動(dòng)作,需要進(jìn)行按鍵消抖處理

38、。消抖采用500hz的信號(hào),如果經(jīng)過消抖后仍然有按鍵信號(hào),別表示鍵盤按下,將鍵盤信號(hào)給出賦值。根據(jù)鍵盤結(jié)構(gòu)的不同,采用不同的編碼方法,但無(wú)論有無(wú)編碼以及采用什么樣的編碼,最后都要轉(zhuǎn)換成為相應(yīng)的鍵值,以實(shí)現(xiàn)按鍵功能程序的轉(zhuǎn)移。6Keyout=key輸入50MHZ脈沖輸入500HZ脈沖采集按鍵信號(hào)key按鍵消抖有鍵按下輸出keyout鍵掃結(jié)束Y鍵掃開始N圖4-26鍵盤掃描程序流程圖4.9 LCD1602程序設(shè)計(jì)本設(shè)計(jì)采用LCD1602作為顯示部分,其引腳定義如下表:表4-31602引腳功能表引腳號(hào)引腳名電平輸入/輸出作用1Vss電源地2Vcc電源(+5V)3Vee對(duì)比調(diào)整電壓4RS0/1輸入0=輸

39、入指令1=輸入數(shù)據(jù)5R/W0/1輸入0=向LCD寫指令或數(shù)據(jù)1=從LCD讀取信息6E1,10輸入使能信號(hào),1時(shí)讀取信息,10(下降沿)執(zhí)行命令7DB00/1輸入/輸出數(shù)據(jù)總線Line0(最低位)8DB10/1輸入/輸出數(shù)據(jù)總線Line19DB20/1輸入/輸出數(shù)據(jù)總線Line210DB30/1輸入/輸出數(shù)據(jù)總線Line311DB40/1輸入/輸出數(shù)據(jù)總線Line412DB50/1輸入/輸出數(shù)據(jù)總線Line513DB60/1輸入/輸出數(shù)據(jù)總線Line614DB70/1輸入/輸出數(shù)據(jù)總線Line715A+VccLCD背光電源正極16K接地LCD背光電源負(fù)極首先將各個(gè)計(jì)數(shù)器產(chǎn)生的BCD碼數(shù)值轉(zhuǎn)換成A

40、SCII碼,然后將顯示數(shù)值放入1602中去。設(shè)計(jì)一個(gè)子程序,進(jìn)行碼制轉(zhuǎn)換,得到需要的ASCII碼。當(dāng)RW=0,RS=0時(shí),向1602輸入指令,包括清屏指令、光標(biāo)移位指令、進(jìn)入模式設(shè)置指令、顯示開關(guān)設(shè)置指令、功能設(shè)置指令、CGRAM指令、DDRAM指令等等,控制1602工作狀態(tài);當(dāng)RW=0,RS=1時(shí),向1602輸入數(shù)據(jù),輸出顯示內(nèi)容。先假定輸入固定時(shí)鐘,測(cè)試仿真結(jié)果,以觀察時(shí)序邏輯。程序原理圖如圖4-27所示,程序中編譯1602用用的是500hz的時(shí)鐘脈沖,sin1,minin1,hin1,din1,monin1,yin1分別為要顯示時(shí)間的BCD碼,rs、rw、en為1602的控制信號(hào)端,lc

41、d_data為1602的數(shù)據(jù)輸入端。圖4-271602程序原理圖4.10 頂層文件設(shè)置及編譯下載演示頂層文件采用原理圖編譯的方法,將所有的模塊加載到頂層文件中來(lái),生成.bsf文件。然后新建原理圖top文件,生成.bdf文件,將所有模塊的原理圖放到top文件中來(lái),連接后生成頂層文件,進(jìn)行引腳設(shè)置。然后進(jìn)行編譯一遍,生成.sof文件,選用JTAG的下載方式,進(jìn)行在線編譯調(diào)試,頂層原理圖及引腳設(shè)置見附錄4。采用JTAG下載方式,只能在線編譯,程序下載后,時(shí)鐘顯示全部為0,通過鍵盤對(duì)時(shí)間進(jìn)行調(diào)時(shí),顯示正常時(shí)間,實(shí)物顯示如圖4-28.圖4-28 數(shù)字時(shí)鐘顯示5 總 結(jié)5.1 結(jié)論本文以FPGA的數(shù)字時(shí)鐘

42、為選題依據(jù),通過VHDL語(yǔ)言編程,利用Qurartus II設(shè)計(jì)軟件完成仿真測(cè)試。設(shè)計(jì)分別由分頻模塊,年、月、日、時(shí)、分、秒計(jì)數(shù)器,鍵盤控制模塊,譯碼器,LCD1602液晶模塊五部分組成。利用Qurartus II設(shè)計(jì)軟件自頂向下依次完成各個(gè)模塊的設(shè)計(jì)及其仿真,最后利用頂層文件將各個(gè)模塊連接起來(lái),逐步實(shí)現(xiàn)數(shù)字時(shí)鐘的設(shè)計(jì)、綜合、仿真,最終實(shí)現(xiàn)數(shù)字時(shí)鐘整個(gè)系統(tǒng)的設(shè)計(jì),能夠用1602正常顯示所要內(nèi)容,通過鍵盤正常調(diào)時(shí)、計(jì)數(shù)。5.2 設(shè)計(jì)中遇到的問題(1)在設(shè)計(jì)分頻器過程中,在程序設(shè)計(jì)成功的前提下,進(jìn)行功能仿真,設(shè)置輸入脈沖后沒有仿真結(jié)果,經(jīng)過查閱資料及老師的講解,合理設(shè)置end time的時(shí)間及其周

43、期,完成了仿真測(cè)試。(2)月計(jì)數(shù)器設(shè)計(jì)中,由于輸入的時(shí)鐘脈沖存在“競(jìng)爭(zhēng)”現(xiàn)象,在仿真結(jié)果的分析的時(shí)候,出現(xiàn)了尖峰脈沖。經(jīng)過分析,月計(jì)數(shù)器的時(shí)間較長(zhǎng),而很短時(shí)間的尖峰脈沖不會(huì)影響設(shè)計(jì)輸出。(3)在日計(jì)數(shù)器的設(shè)計(jì)中,由于不同月份及閏年中二月的天數(shù)不同,因此,需要充分分析邏輯設(shè)計(jì),是年、月的輸出控制設(shè)置日的長(zhǎng)短。(4)在設(shè)計(jì)LCD1602模塊中,功能仿真波形正常出現(xiàn),然而硬件電路沒有響應(yīng),因此先用數(shù)碼管進(jìn)行程序邏輯演示,以得到準(zhǔn)確的時(shí)鐘脈沖。經(jīng)過LCD1602的時(shí)序調(diào)試,在時(shí)鐘脈沖準(zhǔn)確的情況下顯示內(nèi)容正確。參考文獻(xiàn)1王瑩. FPGA是金融海嘯的一顆救命草J.電子產(chǎn)品世界,20092萬(wàn)春迎.基于VHD

44、L的數(shù)字時(shí)鐘設(shè)計(jì)A.科技信息,2008(27):723劉竹林,李晶驊.用VHDL實(shí)現(xiàn)數(shù)字時(shí)鐘的設(shè)計(jì)A.山西電子技術(shù),2008(1):47-544潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程M.北京:科學(xué)出版社,2006:10-115李雪梅.基于FPGA的分頻器設(shè)計(jì)研究A.教育科研,2008(4)6王紫婷,吳蓉 ,張彩珍.EDA技術(shù)與應(yīng)用M.蘭州:蘭州大學(xué)出版社,20036 (英)渥倫斯基.Digital System Design with VHDL,Second Edition.M工業(yè)出版社,20047鄭友泉.現(xiàn)場(chǎng)可編程門陣列第一講現(xiàn)場(chǎng)可編程門陣列FPGA概述J.世界電子元器件,20058崔葛.基于FP

45、GA的數(shù)字電路系統(tǒng)設(shè)計(jì)D.西安:西安電子科技大學(xué)出版社,20089劉韜,樓興華.FPGA數(shù)字電子系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例導(dǎo)航M.北京:人民郵電出版社,200510 (英)Jone Wulenskl .VHDL Digtal System DesignM.電子工業(yè)出版社,2004 11樂怡.數(shù)字電路與數(shù)字電子技術(shù)M.西安:西北工業(yè)大學(xué)出版社,200312黃任.VHDL入門解惑經(jīng)典實(shí)例經(jīng)驗(yàn)總結(jié)M.北京:北京航天航空大學(xué)出版社,200513樊國(guó)梁.VHDL語(yǔ)言設(shè)計(jì)數(shù)字電路J.國(guó)外電子測(cè)量技術(shù),2005(2)14劉麗華.專用集成電路設(shè)計(jì)方法M.北京:北京郵電大學(xué)出版社,2000致 謝經(jīng)過這一學(xué)期的學(xué)習(xí)和努力

46、,我的畢業(yè)論文基于FPGA的數(shù)字時(shí)鐘設(shè)計(jì)終于完成了。這是對(duì)我四年大學(xué)學(xué)習(xí)一個(gè)總結(jié),是四年來(lái)對(duì)專業(yè)知識(shí)、理論實(shí)踐、動(dòng)手能力的的完美的結(jié)合與升級(jí)。在論文設(shè)計(jì)階段,我的理論學(xué)習(xí)和設(shè)計(jì)經(jīng)驗(yàn)都有很大提升,這與各位老師、同學(xué)以及通過網(wǎng)絡(luò)給我意見的網(wǎng)友的關(guān)心和支持是分不開的。在這里感謝我的指導(dǎo)老師趙艷華老師的悉心指導(dǎo),從開始選題到最后的設(shè)計(jì)完成都有老師的指導(dǎo)身影。在設(shè)計(jì)開始初期,趙老師為我的設(shè)計(jì)指明了方向及思路,讓我在很短的時(shí)間就能理清設(shè)計(jì)整體框架及思路;設(shè)計(jì)過程中,遇到的各種問題,趙老師總能提出可行性的意見和建議,較多的專業(yè)性的問題,都是在趙老師的指導(dǎo)下解決的,使我的專業(yè)知識(shí)得到進(jìn)一步的提升;在論文格式修

47、改過程中,趙老師不厭其煩的幫我檢查論文格式,以達(dá)到論文格式的要求。在趙老師的指導(dǎo)和關(guān)懷下,我的專業(yè)知識(shí)有了很大進(jìn)步,學(xué)會(huì)了解決問題的方法,為以后的工作和學(xué)習(xí)有很大的幫助,再次向趙老師表示我的謝意。感謝四年來(lái)所有教導(dǎo)我的老師,是你們讓我的大學(xué)學(xué)習(xí)生活過的豐富多彩。感謝學(xué)院及學(xué)校的領(lǐng)導(dǎo),為我提供了良好的學(xué)習(xí)環(huán)境。感謝大學(xué)同學(xué),以及在我遇到困難的時(shí)候,向我提供解決方法及思路的各位網(wǎng)友。是你們呢讓我的學(xué)習(xí)和設(shè)計(jì)變得豐富。附錄:附錄1 最小系統(tǒng)及配置電路圖附錄2 系統(tǒng)外圍電路圖附錄3 系統(tǒng)設(shè)計(jì)程序分頻器設(shè)計(jì)程序:library ieee;use ieee.std_logic_1164.all;use I

48、EEE.STD_LOGIC_ARITH.ALL;use ieee.std_logic_unsigned.all;entity fenpin isport(clk50MHZ:in std_logic;-50MHZ clk1HZ:out std_logic;-1HZ clK500HZ:out std_logic);-500HZend;architecture art of fenpin issignal a1:std_logic;signal a2:std_logic;beginclk1HZ=a1;clK500HZ=a2;process(clk50MHZ)variable n1:integer r

49、ange 0 to ;beginif rising_edge(clk50MHZ) thenif n1 then n1:=n1+1;else n1:=0;a1=not a1;end if;end if;end process;process(clk50MHZ)variable n2:integer range 0 to 49999;beginif rising_edge(clk50MHZ) thenif n249999 then n2:=n2+1;else n2:=0;a2=not a2;end if;end if;end process;end ;秒計(jì)數(shù)器設(shè)計(jì)程序:library ieee;u

50、se ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity sec isport(clk1HZ,secset,min_set:in std_logic;-clk is 1HZ,reset is the signal of the second reset,-min_set is min+1 enmin:out std_logic;-分時(shí)鐘信號(hào)脈沖,由秒計(jì)數(shù)器產(chǎn)生并送給分計(jì)數(shù)器; sout:out std_logic_vector(6 downto 0);秒信號(hào)十位、個(gè)位的實(shí)時(shí)BCD碼;end entity;architec

51、ture behave of sec issignal count:std_logic_vector(6 downto 0);signal enmin1,enmin2:std_logic;beginsout=count;enmin2=(min_set and clk1HZ);-分設(shè)置按鍵按下時(shí)的脈沖,用來(lái)作分時(shí)鐘脈沖enmin=(enmin1 or enmin2);process(clk1HZ,secset,min_set)beginif secset=1 then count=; elsif(clk1HZevent and clk1HZ=1) then if count(3 downto 0

52、)=1001 then if count(6 downto 4)=101 thenenmin1=1;count=; else count=count+7; end if;elsecount=count+1;enmin1=0;end if;end if;end process;end;分計(jì)數(shù)器設(shè)計(jì)程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity min isport(enmin,clk1HZ,hour_set:in std_logic;enhour:out std_logic;minout:out std_logic_vector(6 downto 0);end entity;architecture behave of min issignal count:std_logic_vector(6 downto 0);signal enhour1,enhour2:std_logic;beginminout=count;enhour2=(hour_

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論