版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、學(xué)校代碼 10126 學(xué)號(hào) 01161030 分 類 號(hào) tp 密級(jí) 公開 本科畢業(yè)論文(設(shè)計(jì))萬年歷的設(shè)計(jì)與實(shí)現(xiàn)學(xué)院、系 鄂爾多斯學(xué)院電子信息工程系 專業(yè)名稱 自 動(dòng) 化 年 級(jí) 2011 級(jí) 學(xué)生姓名 張 文 博 指導(dǎo)教師 王 俊 林 2013年 6月 8 日萬年歷的設(shè)計(jì)與實(shí)現(xiàn)摘要本設(shè)計(jì)為一個(gè)多功能的萬年歷,具有年、月、日、時(shí)、分、秒計(jì)數(shù)顯示功能,以24小時(shí)循環(huán)計(jì)數(shù),具有校對功能。本設(shè)計(jì)采用eda技術(shù),以硬件描述語言verilog hdl和vhdl為系統(tǒng)邏輯描述手段設(shè)計(jì)文件,在quartus ii工具軟件環(huán)境下,采用自頂向下的設(shè)計(jì)方法,由各個(gè)基本模塊共同構(gòu)建了一個(gè)基于kh-310開發(fā)工具的
2、萬年歷。系統(tǒng)主芯片采用ep1c12q240c8,由主程序和bcd模塊組成。經(jīng)編譯和仿真所設(shè)計(jì)的程序,在可編程邏輯器件上下載驗(yàn)證,本系統(tǒng)通過控制能夠完成年、月、日和時(shí)、分、秒的分別顯示,由按鍵輸入進(jìn)行數(shù)字鐘的校時(shí)、切換、掃描功能。關(guān)鍵字:vhdl verilog hdl eda 萬年歷 目錄1緒論.1 1.1選題背景.1 1.2課題相關(guān)技術(shù)的發(fā)展.1 1.3課題研究的必要性.2 1.4課題研究的內(nèi)容.32 eda技術(shù).4 2.1 eda概述.4 2.2什么是eda.4 2.3 eda的特點(diǎn).53 fpga簡介.7 3.1 fpga概述.7 3.2 fpga開發(fā)編程原理.7 3.3fpga基本結(jié)構(gòu)
3、.8 3.4 fpga系統(tǒng)設(shè)計(jì)流程.104萬年歷設(shè)計(jì)方案.14 4.1萬年歷的原理.14 4.2 實(shí)驗(yàn)程序.14 4.3 實(shí)驗(yàn)連接.34 4.4 實(shí)驗(yàn)仿真與實(shí)現(xiàn).365實(shí)驗(yàn)結(jié)論與研究展望.38 5.1實(shí)驗(yàn)結(jié)論.38 5.2研究展望.38致謝.39參考文獻(xiàn).401緒論1.1選題背景20世紀(jì)末,數(shù)字電子技術(shù)飛速發(fā)展,有力的推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化的提高。在其推動(dòng)下,數(shù)字技術(shù)的應(yīng)用已經(jīng)滲透到人類生活的各個(gè)方面。從計(jì)算機(jī)到手機(jī),從數(shù)字電話到數(shù)字電視,從家用電器到軍用設(shè)備,從工業(yè)自動(dòng)化到航天技術(shù),都盡可能的采用了數(shù)字電子技術(shù)。而現(xiàn)代電子設(shè)計(jì)技術(shù)的核心是eda技術(shù)。 本設(shè)計(jì)采用的vhdl和ver
4、ilog hdl是兩種應(yīng)用最為廣泛硬件描述語言。前者具有很強(qiáng)大的功能,覆蓋面廣,描述能力強(qiáng),支持門級(jí)電路的描述,也支持以寄存器、存儲(chǔ)器、總線及其運(yùn)算單元等構(gòu)成的寄存器傳輸級(jí)電路的描述,還支持以行為算法和結(jié)構(gòu)的混合描述為對象的系統(tǒng)級(jí)電路的描述。后者可以用來進(jìn)行各種層次的邏輯設(shè)計(jì),也可以進(jìn)行數(shù)字系統(tǒng)的邏輯綜合、仿真驗(yàn)證和時(shí)序分析。而采用verilog hdl進(jìn)行電路設(shè)計(jì)的最大優(yōu)點(diǎn)就是設(shè)計(jì)與工藝無關(guān)性。本設(shè)計(jì)將從eda中fpga嵌入式應(yīng)用開發(fā)技術(shù)與數(shù)字鐘技術(shù)發(fā)展的客觀實(shí)際出發(fā),通過對該技術(shù)發(fā)展?fàn)顩r的了解,以及課題本身的需要,指出研究基于fpga的芯片系統(tǒng)與設(shè)計(jì)萬年歷的設(shè)計(jì)與實(shí)現(xiàn)的必要性。1.2課題相
5、關(guān)技術(shù)的發(fā)展當(dāng)今電子產(chǎn)品正向功能多元化,體積最小化,功耗最低化的方向發(fā)展。它與傳統(tǒng)的電子產(chǎn)品在設(shè)計(jì)上的顯著區(qū)別師大量使用大規(guī)??删幊踢壿嬈骷巩a(chǎn)品的性能提高,體積縮小,功耗降低。同時(shí)廣泛運(yùn)用現(xiàn)代計(jì)算機(jī)技術(shù),提高產(chǎn)品的自動(dòng)化程度和競爭力,縮短研發(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è)計(jì)。eda技術(shù)以大規(guī)??删幊踢壿嬈骷樵O(shè)計(jì)載體,以硬件描述語言為系統(tǒng)邏輯描述主
6、要表達(dá)方式,以計(jì)算機(jī)、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實(shí)驗(yàn)開發(fā)系統(tǒng)為設(shè)計(jì)工具,通過有關(guān)的開發(fā)軟件,自動(dòng)完成用軟件的方式設(shè)計(jì)的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯,邏輯化簡,邏輯分割,邏輯映射,編程下載等工作。最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù)。1.3課題研究的必要性如今的時(shí)代是科技是第一生產(chǎn)力的時(shí)期。因此,新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月異。在這快速發(fā)展的年代,時(shí)間對人們來說是越來越寶貴,在快節(jié)奏的生活時(shí),人們往往忘記了時(shí)間,一旦遇到重要的事情而忘記了時(shí)間,這將會(huì)帶來很大的損失。因此我們需要一個(gè)定時(shí)系統(tǒng)來提醒這些忙碌的人。數(shù)字化的鐘表給人們帶來了極大的方便。近些年,隨著科技
7、的發(fā)展和社會(huì)的進(jìn)步,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求。多功能,樣式新穎已經(jīng)成為數(shù)字鐘的發(fā)展潮流。1.4 課題研究的內(nèi)容本設(shè)計(jì)主要研究基于fpga的數(shù)字鐘,要求時(shí)間以24小時(shí)為一個(gè)周期,顯示年、月、日、時(shí)、分、秒,可以對年、月、日、時(shí)、分及秒進(jìn)行單獨(dú)校對,使其校正到標(biāo)準(zhǔn)時(shí)間。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非常現(xiàn)實(shí)的意義。2 eda技術(shù)2.1 eda概述eda在通信行業(yè)(電信)里的另一個(gè)解釋是企業(yè)數(shù)據(jù)架構(gòu),eda給出了一個(gè)企業(yè)級(jí)的數(shù)據(jù)架構(gòu)的總體視圖,并按照電信企業(yè)的特征,進(jìn)行了框架和層級(jí)的劃分。 “eda是電子設(shè)計(jì)自動(dòng)化(electronic design auto
8、mation)的縮寫,在20世紀(jì)60年代中期從計(jì)算機(jī)輔助設(shè)計(jì)(cad)、計(jì)算機(jī)輔助制造(cam)、計(jì)算機(jī)輔助測試(cat)和計(jì)算機(jī)輔助工程(cae)的概念發(fā)展而來的1?!?.2 什么是eda20世紀(jì)90年代,國際上電子和計(jì)算機(jī)技術(shù)較先進(jìn)的國家,一直在積極探索新的電子電路設(shè)計(jì)方法,并在設(shè)計(jì)方法、工具等方面進(jìn)行了徹底的變革,取得了巨大成功。在電子技術(shù)設(shè)計(jì)領(lǐng)域,可編程邏輯器件(如cpld、fpga)的應(yīng)用,已得到廣泛的普及,這些器件為數(shù)字系統(tǒng)的設(shè)計(jì)帶來了極大的靈活性。這些器件可以通過軟件編程而對其硬件結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),從而使得硬件的設(shè)計(jì)可以如同軟件設(shè)計(jì)那樣方便快捷。這一切極大地改變了傳統(tǒng)的數(shù)字
9、系統(tǒng)設(shè)計(jì)方法、設(shè)計(jì)過程和設(shè)計(jì)觀念,促進(jìn)了eda技術(shù)的迅速發(fā)展。 eda技術(shù)就是依靠功能強(qiáng)大的電子計(jì)算機(jī),在eda工具軟件平臺(tái)上,對以硬件描述語言hdl(hardware description language)為系統(tǒng)邏輯描述手段完成設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡、分割、綜合、優(yōu)化、仿真,直至下載到可編程邏輯器件cpld/fpga或?qū)S眉呻娐穉sic(application specific integrated circuit)芯片中,實(shí)現(xiàn)既定的電子電路設(shè)計(jì)功能。eda技術(shù)使得電子電路設(shè)計(jì)者的工作僅限于利用硬件描述語言和eda軟件平臺(tái)來完成對系統(tǒng)硬件功能的實(shí)現(xiàn),極大地提高了設(shè)計(jì)效率,縮
10、短了設(shè)計(jì)周期,節(jié)省了設(shè)計(jì)成本。 今天,eda技術(shù)已經(jīng)成為電子設(shè)計(jì)的重要工具,無論是設(shè)計(jì)芯片還是設(shè)計(jì)系統(tǒng),如果沒有eda工具的支持,都將難以完成的。eda工具已經(jīng)成為現(xiàn)代電路設(shè)計(jì)師的重要武器,正在發(fā)揮著越來越重要的作用。 2.3 eda的特點(diǎn)(1) 高層綜合和優(yōu)化。為了能更好地支持自頂向下的設(shè)計(jì)方法,現(xiàn)代的eda工具能夠在系統(tǒng)進(jìn)行綜合和優(yōu)化,這樣就縮短了設(shè)計(jì)的周期,提高了設(shè)計(jì)效率。(2)采用硬件描述語言進(jìn)行設(shè)計(jì)。采用硬件描述語言進(jìn)行電路與系統(tǒng)的描述是當(dāng)前eda技術(shù)的另一個(gè)特征。與傳統(tǒng)的原理圖設(shè)計(jì)方法相比,hdl語言更適合描述規(guī)模大的數(shù)字系統(tǒng),它能夠使設(shè)計(jì)者在比較抽象的層次上對所設(shè)計(jì)系統(tǒng)的結(jié)構(gòu)和邏
11、輯功能進(jìn)行描述。采用hdl語言設(shè)計(jì)的突出優(yōu)點(diǎn)是:語言的公開性和利用性;設(shè)計(jì)與工藝的無關(guān)性;寬范圍的描述能力;便于組織大規(guī)模系統(tǒng)的設(shè)計(jì);便于設(shè)計(jì)的復(fù)用,交流,保存和修改等。目前最常用的硬件描述語言有vhdl和verilog hdl,它們都已經(jīng)成為ieee標(biāo)準(zhǔn)。(3)開放性和標(biāo)準(zhǔn)化?,F(xiàn)代eda工具普遍采用標(biāo)準(zhǔn)化和開放性框架結(jié)構(gòu),任何一個(gè)eda系統(tǒng)只要建立了一個(gè)符合標(biāo)準(zhǔn)的開放式框架結(jié)構(gòu),就可以接納其他廠商的eda工具儀器進(jìn)行設(shè)計(jì)工作。這樣就可以實(shí)現(xiàn)各種eda工具的優(yōu)化組合,并集成在一個(gè)易于管理的統(tǒng)一環(huán)境下,實(shí)現(xiàn)資源共享。3 fpga簡介3.1 fpga概述“fpga(fieldprogrammabl
12、e gate array),即現(xiàn)場可編程門陣列,它是在pal、gal、cpld等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(asic)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。2”3.2fpga開發(fā)編程原理 fpga采用了邏輯單元陣列l(wèi)ca(logic cell array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊clb(configurable logic block)、輸出輸入模塊iob(input output block)和內(nèi)部連線(interconnect)三個(gè)部分。 現(xiàn)場可編程門陣列(fpga)是可編程器件,與傳統(tǒng)邏
13、輯電路和門陣列(如pal,gal及cpld器件)相比,fpga具有不同的結(jié)構(gòu)。fpga利用小型查找表(161ram)來實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)d觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)i/o,由此構(gòu)成了既可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到i/o模塊?!癴pga的邏輯是通過向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與i/o間的聯(lián)接方式并最終決定了fpga所能實(shí)現(xiàn)的功能,fpga允許無限次的編程2?!?.3 fpga基本結(jié)構(gòu)fpga具有掩膜可編程門陣列的通
14、用結(jié)構(gòu),它由邏輯功能塊排成陣列,并由可編程的互連資源連接這些邏輯功能塊來實(shí)現(xiàn)不同的設(shè)計(jì)。fpga一般由3種可編程電路和一個(gè)用于存放編程數(shù)據(jù)的靜態(tài)存儲(chǔ)器sram組成。這3種可編程電路是:可編程邏輯模塊(clb-configurable logic block)、輸入/輸出模塊(iob-i/o block)和互連資源(irinterconnect resource)?!翱删幊踢壿嬆Kclb是實(shí)現(xiàn)邏輯功能的基本單元,它們通常規(guī)則的排列成一個(gè)陣列,散布于整個(gè)芯片;可編程輸入/輸出模塊(iob)主要完成芯片上的邏輯與外部封裝腳的接口,它通常排列在芯片的四周;可編程互連資源包括各種長度的連接線段和一些可編
15、程連接開關(guān),它們將各個(gè)clb之間或clb、iob之間以及iob之間連接起來,構(gòu)成特定功能的電路3?!?1) clb是fpga的主要組成部分。它主要由邏輯函數(shù)發(fā)生器、觸發(fā)器、數(shù)據(jù)選擇器等電路組成。clb中3個(gè)邏輯函數(shù)發(fā)生器分別是g、f和h,相應(yīng)的輸出是g 、f和h。g有4個(gè)輸入變量g1、g2、g3和g4;f也有4個(gè)輸入變量f1、f2、f3和f4。這兩個(gè)函數(shù)發(fā)生器是完全獨(dú)立的,均可以實(shí)現(xiàn)4輸入變量的任意組合邏輯函數(shù)。邏輯函數(shù)發(fā)生器h有3個(gè)輸入信號(hào);前兩個(gè)是函數(shù)發(fā)生器的輸出g和f,而另一個(gè)輸入信號(hào)是來自信號(hào)變換電路的輸出h1。這個(gè)函數(shù)發(fā)生器能實(shí)現(xiàn)3輸入變量的各種組合函數(shù)。這3個(gè)函數(shù)發(fā)生器結(jié)合起來,可
16、實(shí)現(xiàn)多達(dá)9變量的邏輯函數(shù)。clb中有許多不同規(guī)格的數(shù)據(jù)選擇器(四選一、二選一等),通過對clb內(nèi)部數(shù)據(jù)選擇器的編程,邏輯函數(shù)發(fā)生器g、f和h的輸出可以連接到clb輸出端x或y,并用來選擇觸發(fā)器的激勵(lì)輸入信號(hào)、時(shí)鐘有效邊沿、時(shí)鐘使能信號(hào)以及輸出信號(hào)。這些數(shù)據(jù)選擇器的地址控制信號(hào)均由編程信息提供,從而實(shí)現(xiàn)所需的電路結(jié)構(gòu)。 “clb中的邏輯函數(shù)發(fā)生器f和g均為查找表結(jié)構(gòu),其工作原理類似于rom。f和g的輸入等效于rom的地址碼,通過查找rom中的地址表可以得到相應(yīng)的組合邏輯函數(shù)輸出4?!绷硪环矫妫壿嫼瘮?shù)發(fā)生器f和g還可以作為器件內(nèi)高速ram或小的可讀寫存儲(chǔ)器使用,它由信號(hào)變換電路控制。(2) 輸入
17、/輸出模塊iob。iob提供了器件引腳和內(nèi)部邏輯陣列之間的連接。它主要由輸入觸發(fā)器、輸入緩沖器和輸出觸發(fā)/鎖存器、輸出緩沖器組成。每個(gè)iob控制一個(gè)引腳,它們可被配置為輸入、輸出或雙向i/o功能。當(dāng)iob控制的引腳被定義為輸入時(shí),通過該引腳的輸入信號(hào)先送入輸入緩沖器。緩沖器的輸出分成兩路:一路可以直接送到mux,另一路經(jīng)延時(shí)幾納秒(或者不延時(shí))送到輸入通路d觸發(fā)器,再送到數(shù)據(jù)選擇器。通過編程給數(shù)據(jù)選擇器不同的控制信息,確定送至clb陣列的i1和i2是來自輸入緩沖器,還是來自觸發(fā)器。當(dāng)iob控制的引腳被定義為輸出時(shí),clb陣列的輸出信號(hào)out也可以有兩條傳輸途徑:一條是直接經(jīng)mux送至輸出緩沖器
18、,另一條是先存入輸出通路d觸發(fā)器,再送至輸出緩沖器。iob輸出端配有兩只mos管,它們的柵極均可編程,使mos管導(dǎo)通或截止,分別經(jīng)上拉電阻接通vcc、地線或者不接通,用以改善輸出波形和負(fù)載能力。(3) 可編程互連資源ir??删幊袒ミB資源ir可以將fpga內(nèi)部的clb和clb之間、clb和iob之間連接起來,構(gòu)成各種具有復(fù)雜功能的系統(tǒng)。ir主要由許多金屬線段構(gòu)成,這些金屬線段帶有可編程開關(guān),通過自動(dòng)布線實(shí)現(xiàn)各種電路的連接。3.4fpga系統(tǒng)設(shè)計(jì)流程一般說來,一個(gè)比較大的完整的項(xiàng)目應(yīng)該采用層次化的描述方法:分為幾個(gè)較大的模塊,定義好各功能模塊之間的接口,然后各個(gè)模塊再細(xì)分去具體實(shí)現(xiàn),這就是top
19、down(自頂向下)的設(shè)計(jì)方法。目前這種高層次的設(shè)計(jì)方法已被廣泛采用。高層次設(shè)計(jì)只是定義系統(tǒng)的行為特征,可以不涉及實(shí)現(xiàn)工藝,因此還可以在廠家綜合庫的支持下,利用綜合優(yōu)化工具將高層次描述轉(zhuǎn)換成針對某種工藝優(yōu)化的網(wǎng)絡(luò)表,使工藝轉(zhuǎn)化變得輕而易舉。cpld/fpga系統(tǒng)設(shè)計(jì)的工作流程如圖2-2所示。圖3.1fpga系統(tǒng)設(shè)計(jì)流程設(shè)計(jì)準(zhǔn)備設(shè)計(jì)輸入原理圖硬件描述語言 波形圖設(shè)計(jì)處理優(yōu)化、綜合、適配、分割布局、布線設(shè)計(jì)完成器件編程功能仿真時(shí)序仿真器件測試 流程說明:1.工程師按照“自頂向下”的設(shè)計(jì)方法進(jìn)行系統(tǒng)劃分。2.輸入verilog hdl代碼,這是設(shè)計(jì)中最為普遍的輸入方式。此外,還可以采用圖形輸入方式(
20、框圖、狀態(tài)圖等),這種輸入方式具有直觀、容易理解的優(yōu)點(diǎn)。3.將以上的設(shè)計(jì)輸入編譯成標(biāo)準(zhǔn)的verilog hdl文件。4.進(jìn)行代碼級(jí)的功能仿真,主要是檢驗(yàn)系統(tǒng)功能設(shè)計(jì)的正確性。這一步驟適用于大型設(shè)計(jì),因?yàn)閷τ诖笮驮O(shè)計(jì)來說,在綜合前對源代碼仿真,就可以大大減少設(shè)計(jì)重復(fù)的次數(shù)和時(shí)間。一般情況下,這一仿真步驟可略去。5.利用綜合器對verilog hdl源代碼進(jìn)行綜合優(yōu)化處理,生成門級(jí)描述的網(wǎng)絡(luò)表文件,這是將高層次描述轉(zhuǎn)化為硬件電路的關(guān)鍵步驟。綜合優(yōu)化是針對asic芯片供應(yīng)商的某一產(chǎn)品系列進(jìn)行的,所以綜合的過程要在相應(yīng)的廠家綜合庫的支持下才能完成。6.利用產(chǎn)生的網(wǎng)絡(luò)表文件進(jìn)行適配前的時(shí)序仿真,仿真過程
21、不涉及具體器件的硬件特性,是較為粗略的。一般的設(shè)計(jì),也可略去這一步驟。7.利用適配器將綜合后的網(wǎng)絡(luò)表文件針對某一具體的目標(biāo)器件進(jìn)行邏輯映射操作,包括底層器件配置、邏輯分割、邏輯優(yōu)化和布局布線。8.在適配完成后,產(chǎn)生多項(xiàng)設(shè)計(jì)結(jié)果:(a)適配報(bào)告,包括芯片內(nèi)部資源利用情況,設(shè)計(jì)的布爾方程描述情況等;(b)適配后的仿真模型;(c)器件編程文件。根據(jù)適配后的仿真模型,可以進(jìn)行適配后時(shí)序仿真,因?yàn)橐呀?jīng)得到器件的實(shí)際硬件特性(如時(shí)延特性),所以仿真結(jié)果能比較精確的預(yù)期未來芯片的實(shí)際性能。如果仿真結(jié)果達(dá)不到設(shè)計(jì)要求,就修改verilog hdl源代碼或選擇不同速度和品質(zhì)的器件,直至滿足設(shè)計(jì)要求。最后將適配器
22、產(chǎn)生的器件編程文件通過編程器或下載電纜載入到目標(biāo)芯片cpld/fpga中。4 萬年歷總體設(shè)計(jì)方案4.1 萬年歷原理 設(shè)計(jì)原理如圖4.1所示:基準(zhǔn)時(shí)鐘置數(shù)按鍵控制按鍵顯示動(dòng)態(tài)顯示譯碼計(jì)數(shù)器 圖4.1 設(shè)計(jì)原理圖計(jì)數(shù)器在正常情況下是對1hz的頻率計(jì)數(shù),在調(diào)整時(shí)間狀況下是對需要調(diào)整的時(shí)間模塊進(jìn)行計(jì)數(shù);控制按鍵用來選擇是正常計(jì)數(shù)還是調(diào)整時(shí)間并決定調(diào)整時(shí)、分、秒;置數(shù)按鍵按下時(shí),表示相應(yīng)的調(diào)整塊要加一,如要對小時(shí)調(diào)整時(shí),顯示時(shí)間的led管將閃爍且當(dāng)置數(shù)按鍵按下時(shí),相應(yīng)的小時(shí)顯示要加一。動(dòng)態(tài)顯示模塊是對計(jì)數(shù)器的計(jì)數(shù)進(jìn)行譯碼,送到led顯示。4.2 實(shí)驗(yàn)程序(1) clock模塊library ieee;u
23、se ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clock is port( mode, set, clr, clk ,k:in std_logic; seg7, segctr :out std_logic_vector(7 downto 0) );end entity;architecture arch of clock issignal state: std_logic_vector(1 downto 0);signal hour, min, sec,year,mon,day,d: std_logic_ve
24、ctor(5 downto 0);signal bcdh, bcdm, bcds,bcdn,bcdy,bcdr: std_logic_vector(7 downto 0);signal segdat: std_logic_vector(3 downto 0);signal blink: std_logic_vector(2 downto 0);signal set_reg, blink_clk: std_logic; component bcd port(datain : in std_logic_vector(5 downto 0); bcdout : out std_logic_vecto
25、r(7 downto 0) ); end component;begin process(mode) begin if (clr=1) then state=00; else if (modeevent and mode=1) then state blink blinkblink_clk, others=0); when 10 = blinkblink_clk, others=0); when 11 = blinkblink_clk, others=0); end case; end process; process(mon, year,d)begin case mon is when 00
26、0001 = d case year is when 010000 = d d d d d d d d d d d d d d d d d d d d d d d d=011110; end case;end process;process(clk)variable blink_cnt: std_logic_vector(13 downto 0);begin if (clr=1) then blink_clk0); else if (clkevent and clk=1) then if (blink_cnt=11000011010011) then blink_cnt:=(others=0)
27、; blink_clk=not blink_clk; else blink_cnt:=blink_cnt+1; end if; end if; end if; end process;process(clk, state)variable clk_cnt: std_logic_vector(16 downto 0);begin if (clr=1) then hour=000000; min=000000; sec=000000; year=000000; mon=000000; day0);set_reg if (clk_cnt=11000011010011111) then clk_cnt
28、:=(others=0); if (sec=59) then sec0); if (min=59) then min0); if (hour=23) then hour0); if (day=d) then day=000001; if (mon=12) thenmon=000001;if (year=63) thenyear=000001; else year=year+1; end if; else mon=mon+1; end if; else day=day+1; end if; else hour=hour+1; end if; else min=min+1; end if; els
29、e sec if(k=1)then if (set=1) then if set_reg=0 then set_reg=1; if (year=63) then year=000001; else year=year+1; end if; end if; else set_reg=0; end if; else if (set=1) then if set_reg=0 then set_reg=1; if (hour=23) then hour0); else hour=hour+1; end if; end if; else set_reg if(k=1)then if (set=1) th
30、en if set_reg=0 then set_reg=1; if (mon=12) then mon=000001; else mon=mon+1; end if; end if; else set_reg=0; end if; else if (set=1) then if set_reg=0 then set_reg=1; if (min=59) then min0); else min=min+1; end if; end if; else set_reg if(k=1)then if (set=1) then if set_reg=0 then set_reg=1; if (day
31、=d) then day=000001; else day=day+1; end if; end if; else set_reg=0; end if; else if (set=1) then if set_reg=0 then set_reg=1; if (sec=59) then sec0); else sec=sec+1; end if; end if; else set_reg0); segctr0); else if (clkevent and clk=1) then cnt:=cnt+1; case cnt is when 000 = if(k=1)then segdat=bcd
32、n(7 downto 4) or (blink(2) &blink(2)&blink(2)& blink(2); segctr=10000000; else segdat=bcdh(7 downto 4) or (blink(2)&blink(2)&blink(2)&blink(2); segctr if(k=1)then segdat=bcdn(3 downto 0) or (blink(2)&blink(2)&blink(2)& blink(2); segctr=01000000; else segdat=bcdh(3 downto 0) or (blink(2)&blink(2) & b
33、link(2) & blink(2); segctr segdat=1010; segctr if(k=1)then segdat=bcdy(7 downto 4) or (blink(1)&blink(1)& blink(1) blink(1); segctr=00010000; else segdat=bcdm(7 downto 4) or (blink(1)&blink(1)&blink(1)&blink(1); segctr if(k=1)then segdat=bcdy(3 downto 0) or (blink(1)& blink(1)& blink(1)& blink(1); segctr=00001000; else segdat=bcdm(3 downto 0) or (blink(1)&blink(1)& link(1)& blink(1); segctr segdat=1010;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度寵物用品連鎖店承包經(jīng)營服務(wù)協(xié)議4篇
- 二零二五版明星代言合同合作方責(zé)任與義務(wù)協(xié)議4篇
- 建設(shè)工程設(shè)計(jì)合同(2篇)
- 聚氨酯管殼施工方案
- 二零二五版數(shù)碼產(chǎn)品典當(dāng)借款服務(wù)協(xié)議4篇
- 2025年度個(gè)人貸款還款計(jì)劃合同模板8篇
- 中央處理器GPU:性能躍遷與行業(yè)應(yīng)用的深度剖析 頭豹詞條報(bào)告系列
- 二零二五年度民間擔(dān)保機(jī)構(gòu)與企業(yè)合作協(xié)議4篇
- 鯨的自述200字5篇
- 2025年西瓜種植與環(huán)保節(jié)能技術(shù)合作合同3篇
- 刀模檢測、保養(yǎng)記錄
- 小學(xué)五年級(jí)脫式計(jì)算題300道-五年級(jí)上冊脫式計(jì)算題及答案
- 鋁礬土進(jìn)口合同中英文
- 最新臺(tái)灣藥事法
- 2022年金礦采選項(xiàng)目可行性研究報(bào)告
- 氧氣吸入法操作并發(fā)癥預(yù)防及處理規(guī)范草稿
- 2022版云南財(cái)經(jīng)大學(xué)推免管理辦法
- 門診特定病種待遇認(rèn)定申請表
- 混合離子交換器使用說明書正本
- 工傷保險(xiǎn)待遇及案例分析PPT課件
- 自控工程識(shí)圖
評(píng)論
0/150
提交評(píng)論