基于FPGA的數(shù)字電子時(shí)鐘設(shè)計(jì)_第1頁(yè)
基于FPGA的數(shù)字電子時(shí)鐘設(shè)計(jì)_第2頁(yè)
基于FPGA的數(shù)字電子時(shí)鐘設(shè)計(jì)_第3頁(yè)
基于FPGA的數(shù)字電子時(shí)鐘設(shè)計(jì)_第4頁(yè)
基于FPGA的數(shù)字電子時(shí)鐘設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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、目目 錄錄第一章 緒論 .11.1 選題背景.21.1.1 課題相關(guān)技術(shù)的發(fā)展.21.1.2 課題研究的必要性.21.2 課題研究的內(nèi)容.3第二章 FPGA 簡(jiǎn)介.42.1 FPGA 概述 .42.2 FPGA 基本結(jié)構(gòu) .42.3 FPGA 系統(tǒng)設(shè)計(jì)流程 .62.4 FPGA 開(kāi)發(fā)編程原理 .82.5 QUARTUSII 設(shè)計(jì)平臺(tái) .82.5.1 軟件開(kāi)發(fā)環(huán)境及基本流程.82.5.2 具體設(shè)計(jì)流程.10第三章 數(shù)字鐘總體設(shè)計(jì)方案 .133.1 數(shù)字鐘的構(gòu)成.133.2 數(shù)字鐘的工作原理.133.3 數(shù)字鐘硬件電路設(shè)計(jì).13第四章 單元電路設(shè)計(jì) .164.1 分頻模塊電路設(shè)計(jì).164.2 校時(shí)

2、控制模塊電路設(shè)計(jì).174.2.1 按鍵消抖.174.2.2 按鍵控制模塊.184.3 計(jì)數(shù)模塊.214.4 譯碼顯示模塊.274.5 譯碼顯示強(qiáng)制轉(zhuǎn)換模塊.294.6 整點(diǎn)報(bào)時(shí)模塊.29結(jié)果與展望 .31結(jié)果 .31展望 .31主要參考文獻(xiàn) .33第一章第一章 緒論緒論現(xiàn)代社會(huì)的標(biāo)志之一就是信息產(chǎn)品的廣泛使用,而且是產(chǎn)品的性能越來(lái)越強(qiáng),復(fù)雜程度越來(lái)越高,更新步伐越來(lái)越快。支撐信息電子產(chǎn)品高速發(fā)展的基礎(chǔ)就是微電子制造工藝水平的提高和電子產(chǎn)品設(shè)計(jì)開(kāi)發(fā)技術(shù)的發(fā)展。前者以微細(xì)加工技術(shù)為代表,而后者的代表就是電子設(shè)計(jì)自動(dòng)化(electronic design automatic, EDA)技術(shù)。本設(shè)計(jì)采

3、用的VHDL是一種全方位的硬件描述語(yǔ)言,具有極強(qiáng)的描述能力,能支持系統(tǒng)行為級(jí)、寄存器傳輸級(jí)和邏輯門(mén)級(jí)這三個(gè)不同層次的設(shè)計(jì);支持結(jié)構(gòu)、數(shù)據(jù)流、行為三種描述形式的混合描述,覆蓋面廣,抽象能力強(qiáng),因此在實(shí)際應(yīng)用中越來(lái)越廣泛。ASIC是專用的系統(tǒng)集成電路,是一種帶有邏輯處理的加速處理器;而FPGA是特殊的ASIC芯片,與其它的ASIC芯片相比,它具有設(shè)計(jì)開(kāi)發(fā)周期短、設(shè)計(jì)制造成本低、開(kāi)發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品無(wú)需測(cè)試、質(zhì)量穩(wěn)定以及可實(shí)時(shí)在線檢測(cè)等優(yōu)點(diǎn)。在控制系統(tǒng)中,鍵盤(pán)是常用的人機(jī)交換接口,當(dāng)所設(shè)置的功能鍵或數(shù)字鍵按下的時(shí)候,系統(tǒng)應(yīng)該完成該鍵所對(duì)應(yīng)的功能。因此,按鍵信息輸入是與軟件結(jié)構(gòu)密切相關(guān)的過(guò)程。根據(jù)鍵

4、盤(pán)結(jié)構(gòu)的不同,采用不同的編碼方法,但無(wú)論有無(wú)編碼以及采用什么樣的編碼,最后都要轉(zhuǎn)換成為相應(yīng)的鍵值,以實(shí)現(xiàn)按鍵功能程序的轉(zhuǎn)移。1鐘表的數(shù)字化給人們生產(chǎn)生活帶來(lái)了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、定時(shí)啟閉電路、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備,甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些都是以鐘表數(shù)字化為基礎(chǔ)的。因此研究數(shù)字鐘以及擴(kuò)大其應(yīng)用有著非?,F(xiàn)實(shí)的意義。1.11.1 選題背景選題背景本節(jié)將從 FPGA 嵌入式應(yīng)用開(kāi)發(fā)技術(shù)與數(shù)字鐘技術(shù)發(fā)展的客觀實(shí)際出發(fā),通過(guò)對(duì)該技術(shù)發(fā)展?fàn)顩r的了解及課題本身的需要,指出研究基于 FPGA 的芯片系統(tǒng)與設(shè)計(jì)數(shù)字鐘的設(shè)計(jì)與實(shí)現(xiàn)的必要性。1.1.1

5、1.1.1 課題相關(guān)技術(shù)的發(fā)展課題相關(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)化程度和競(jìng)爭(zhēng)力,縮短研發(fā)周期。EDA 技術(shù)正是為了適應(yīng)現(xiàn)代電子技術(shù)的要求,吸收眾多學(xué)科最新科技成果而形成的一門(mén)新技術(shù)。美國(guó) ALTERA 公司的可編程邏輯器件采用全新的結(jié)構(gòu)和先進(jìn)的技術(shù),加上Quartus 開(kāi)發(fā)環(huán)境,使得其更具有高性能,開(kāi)發(fā)周期短等特點(diǎn),十分方便進(jìn)行電子產(chǎn)品的開(kāi)發(fā)和設(shè)計(jì)。2EDA 技術(shù)以大規(guī)模可編程邏輯器件為設(shè)計(jì)載體,以硬件

6、描述語(yǔ)言為系統(tǒng)邏輯描述主要表達(dá)方式,以計(jì)算機(jī)和大規(guī)??删幊踢壿嬈骷拈_(kāi)發(fā)軟件及實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)為設(shè)計(jì)工具,自動(dòng)完成用軟件的方式設(shè)計(jì)的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯、邏輯化簡(jiǎn)、邏輯分割、邏輯映射、編程下載等工作,最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T(mén)新技術(shù)。本設(shè)計(jì)是利用 VHDL 硬件描述語(yǔ)言結(jié)合可編程邏輯器件進(jìn)行的,并通過(guò)數(shù)碼管靜態(tài)顯示走時(shí)結(jié)果。數(shù)字鐘可以由各種技術(shù)實(shí)現(xiàn),如單片機(jī)等。利用可編程邏輯器件具有其它方式?jīng)]有的特點(diǎn),它具有易學(xué)、方便、新穎、有趣、直觀,設(shè)計(jì)與實(shí)驗(yàn)成功率高、理論與實(shí)踐結(jié)合緊密、積小、量大、/O 口豐富、編程和加密等特點(diǎn),并且它還具有開(kāi)放的界面、豐富的設(shè)計(jì)庫(kù)、模塊化的工具以及L

7、PM 定制等優(yōu)良性能,應(yīng)用非常方便。因此,本設(shè)計(jì)采用可編程邏輯器件實(shí)現(xiàn)。1.1.21.1.2 課題研究的必要性課題研究的必要性現(xiàn)在是一個(gè)知識(shí)爆炸的新時(shí)代。新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月異??梢院敛豢鋸埖恼f(shuō),電子技術(shù)的應(yīng)用無(wú)處不在,電子技術(shù)正在不斷地改變著我們的生活,改變著我們的世界。在這快速發(fā)展的年代,時(shí)間對(duì)人們來(lái)說(shuō)是越來(lái)越寶貴,在快節(jié)奏的生活時(shí),人們往往忘記了時(shí)間,一旦遇到重要的事情而忘記了時(shí)間,這將會(huì)帶來(lái)很大的損失,因此我們需要一個(gè)定時(shí)系統(tǒng)來(lái)提醒這些忙碌的人。數(shù)字化的鐘表給人們帶來(lái)了極大的方便。近些年,隨著科技的發(fā)展和社會(huì)的進(jìn)步,人們對(duì)數(shù)字鐘的要求也越來(lái)越高,傳統(tǒng)的時(shí)鐘已

8、不能滿足人們的需求,多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,有電子鬧鐘、數(shù)字鬧鐘等等。1.21.2 課題研究的內(nèi)容課題研究的內(nèi)容本設(shè)計(jì)主要研究基于 FPGA 的數(shù)字鐘,要求時(shí)間以 24 小時(shí)為一個(gè)周期,顯示時(shí)、分。具有校時(shí)以及整點(diǎn)報(bào)時(shí)功能,可以對(duì)時(shí)、分進(jìn)行單獨(dú)校對(duì),使其校正到標(biāo)準(zhǔn)時(shí)間。校對(duì)時(shí)間由 15 矩形鍵盤(pán)進(jìn)行控制,為了保證計(jì)時(shí)的穩(wěn)定及準(zhǔn)確須由晶體振蕩器提供時(shí)間基準(zhǔn)信號(hào)。第二章第二章 FPGA 簡(jiǎn)介簡(jiǎn)介2.12.1 FPGA 概述概述FPGA是現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array)的簡(jiǎn)稱,與之相應(yīng)的CPLD是復(fù)雜可編程邏輯器件(Compl

9、ex Programmable Logic Device)的簡(jiǎn)稱,兩者的功能基本相同,只是實(shí)現(xiàn)原理略有不同,有時(shí)可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件或CPLD/PGFA。CPLD/PGFA幾乎能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡(jiǎn)單的74電路。它如同一張白紙或是一堆積木,工程師可以通過(guò)傳統(tǒng)的原理圖輸入或硬件描述語(yǔ)言自由的設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。通過(guò)軟件仿真可以事先驗(yàn)證設(shè)計(jì)的正確性,在PCB完成以后,利用CPLD/FPGA的在線修改功能,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。使用CPLD/FPGA開(kāi)發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積,提高系統(tǒng)的可靠性。這些優(yōu)點(diǎn)使得CPLD/F

10、PGA技術(shù)在20世紀(jì)90年代以后得到飛速的發(fā)展,同時(shí)也大大推動(dòng)了EDA軟件和硬件描述語(yǔ)言HDL的進(jìn)步。32.22.2 FPGA 基本結(jié)構(gòu)基本結(jié)構(gòu)FPGA具有掩膜可編程門(mén)陣列的通用結(jié)構(gòu),它由邏輯功能塊排成陣列,并由可編程的互連資源連接這些邏輯功能塊來(lái)實(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ī)則

11、的排列成一個(gè)陣列,散布于整個(gè)芯片;可編程輸入/輸出模塊(IOB)主要完成芯片上的邏輯與外部封裝腳的接口,它通常排列在芯片的四周;可編程互連資源包括各種長(zhǎng)度的連接線段和一些可編程連接開(kāi)關(guān),它們將各個(gè)CLB之間或CLB、IOB之間以及IOB之間連接起來(lái),構(gòu)成特定功能的電路。41.CLB是FPGA的主要組成部分。圖2.1是CLB基本結(jié)構(gòu)框圖,它主要由邏輯函數(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輸入變量的任意組

12、合邏輯函數(shù)。邏輯函數(shù)發(fā)生器H有3個(gè)輸入信號(hào);前兩個(gè)是函數(shù)發(fā)生器的輸出G和F,而另一個(gè)輸入信號(hào)是來(lái)自信號(hào)變換電路的輸出H1。這個(gè)函數(shù)發(fā)生器能實(shí)現(xiàn)3輸入變量的各種組合函數(shù)。這3個(gè)函數(shù)發(fā)生器結(jié)合起來(lái),可實(shí)現(xiàn)多達(dá)9變量的邏輯函數(shù)。CLB中有許多不同規(guī)格的數(shù)據(jù)選擇器(四選一、二選一等),通過(guò)對(duì)CLB內(nèi)部數(shù)據(jù)選擇器的編程,邏輯函數(shù)發(fā)生器G、F和H的輸出可以連接到CLB輸出端X或Y,并用來(lái)選擇觸發(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的輸入等效

13、于ROM的地址碼,通過(guò)查找ROM中的地址表可以得到相應(yīng)的組合邏輯函數(shù)輸出。另外,邏輯函數(shù)發(fā)生器F和G還可以作為器件內(nèi)高速RAM或小的可讀寫(xiě)存儲(chǔ)器使用,它由信號(hào)變換電路控制。2.輸入/輸出模塊IOB。IOB提供了器件引腳和內(nèi)部邏輯陣列之間的連接。它主要由輸入觸發(fā)器、輸入緩沖器和輸出觸發(fā)/鎖存器、輸出緩沖器組成。每個(gè)IOB控制一個(gè)引腳,它們可被配置為輸入、輸出或雙向I/O功能。當(dāng)IOB控制的引腳被定義為輸入時(shí),通過(guò)該引腳的輸入信號(hào)先送入輸入緩沖器。緩沖器的輸出分成兩路:一路可以直接送到MUX,另一路延時(shí)幾個(gè)納秒(或者沒(méi)有延時(shí))后送到輸入通路D觸發(fā)器,再送到數(shù)據(jù)選擇器。通過(guò)編程給數(shù)據(jù)選擇器不同的控制

14、信息,確定送至CLB陣列的I1和I2是來(lái)自輸入緩沖器,還是來(lái)自觸發(fā)器。當(dāng)IOB控制的引腳被定義為輸出時(shí),CLB陣列的輸出信號(hào)OUT也可以有兩條傳輸途徑:一條是直接經(jīng)MUX送至輸出緩沖器,另一條是先存入輸出通路D觸發(fā)器,再送至輸出緩沖器。IOB輸出端配有兩只MOS管,它們的柵極均可編程,使MOS管導(dǎo)通或截止,分別經(jīng)上拉電阻接通VCC、地線或者不接通,用以改善輸出波形和負(fù)載能力。3.可編程互連資源IR。可編程互連資源IR可以將FPGA內(nèi)部的CLB和CLB之間、CLB和IOB之間連接起來(lái),構(gòu)成各種具有復(fù)雜功能的系統(tǒng)。IR主要由許多金屬線段構(gòu)成,這些金屬線段帶有可編程開(kāi)關(guān),通過(guò)自動(dòng)布線實(shí)現(xiàn)各種電路的連

15、接。 圖2.1 CLB基本結(jié)構(gòu)2.32.3 FPGA 系統(tǒng)設(shè)計(jì)流程系統(tǒng)設(shè)計(jì)流程一般說(shuō)來(lái),一個(gè)比較大的完整的項(xiàng)目應(yīng)該采用層次化的描述方法:分為幾個(gè)較大的模塊,定義好各功能模塊之間的接口,然后各個(gè)模塊再細(xì)分去具體實(shí)現(xiàn),這就是自頂向下的設(shè)計(jì)方法。目前這種高層次的設(shè)計(jì)方法已被廣泛采用。高層次設(shè)計(jì)只是定義系統(tǒng)的行為特征,可以不涉及實(shí)現(xiàn)工藝,因此還可以在廠家綜合庫(kù)的支持下,利用綜合優(yōu)化工具將高層次描述轉(zhuǎn)換為針對(duì)某種工藝優(yōu)化的網(wǎng)絡(luò)表,使工藝轉(zhuǎn)化變得輕而易舉。CPLD/FPGA系統(tǒng)設(shè)計(jì)的工作流程如圖2.2所示。流程說(shuō)明:1.工程師按照“自頂向下”的設(shè)計(jì)方法進(jìn)行系統(tǒng)劃分。2.輸入VHDL代碼,這是設(shè)計(jì)中最為普遍

16、的輸入方式。此外,還可以采用圖形輸入方式,這種輸入方式具有直觀、容易理解的優(yōu)點(diǎn)。3.將以上的設(shè)計(jì)輸入編譯成標(biāo)準(zhǔn)的VHDL文件。4.進(jìn)行代碼級(jí)的功能仿真,主要是檢驗(yàn)系統(tǒng)功能設(shè)計(jì)的正確性。這一步驟適用于大型設(shè)計(jì),因?yàn)閷?duì)于大型設(shè)計(jì)來(lái)說(shuō),在綜合前對(duì)源代碼仿真,就可以大大減少設(shè)計(jì)重復(fù)的次數(shù)和時(shí)間。一般情況下,這一仿真步驟可略去。5.利用綜合器對(duì)VHDL源代碼進(jìn)行綜合優(yōu)化處理,生成門(mén)級(jí)描述的網(wǎng)絡(luò)表文件,這是將高層次描述轉(zhuǎn)化為硬件電路的關(guān)鍵步驟。綜合優(yōu)化是針對(duì)ASIC芯片供應(yīng)商的某一產(chǎn)品系列進(jìn)行的,所以綜合的過(guò)程要在相應(yīng)的廠家綜合庫(kù)的支持可編程開(kāi)關(guān)矩輸入輸出模塊互連資源CLBCLBCLBCLBCLB CLB

17、 BCLBCLBCLBCLB矩CLBCLBCLB塊CLBCLB CLB BCLBCLBCLBCLBCLBCLB下才能完成。6.利用產(chǎn)生的網(wǎng)絡(luò)表文件進(jìn)行適配前的時(shí)序仿真,仿真過(guò)程不涉及具體器件的硬件特性,是較為粗略的。一般的設(shè)計(jì),也可略去這一步驟。7.利用適配器將綜合后的網(wǎng)絡(luò)表文件針對(duì)某一具體的目標(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í)延特性)

18、,所以仿真結(jié)果能比較精確的預(yù)期未來(lái)芯片的實(shí)際性能。如果仿真結(jié)果達(dá)不到設(shè)計(jì)要求,就修改VHDL源代碼或選擇不同速度和品質(zhì)的器件,直至滿足設(shè)計(jì)要求。最后將適配器產(chǎn)生的器件編程文件通過(guò)編程器或下載電纜載入到目標(biāo)芯片CPLD/FPGA中。5 系統(tǒng)劃分編譯器代碼級(jí)功能仿真綜合器適配前時(shí)序仿真適配器CPLD/FPGA實(shí)現(xiàn)適配后仿真模型適配后時(shí)序仿真適配報(bào)告ASIC 實(shí)現(xiàn)VHDL 代碼或圖形方式輸入仿真綜合庫(kù)器件編程文件 圖2.2 CPLD/FPGA系統(tǒng)設(shè)計(jì)流程2.42.4 FPGA 開(kāi)發(fā)編程原理開(kāi)發(fā)編程原理硬件設(shè)計(jì)需要根據(jù)各種性能指標(biāo)、成本、開(kāi)發(fā)周期等因素,確定最佳的實(shí)現(xiàn)方案,畫(huà)出系統(tǒng)框圖,選擇芯片,設(shè)計(jì)

19、PCB并最終形成樣機(jī)。CPLD/FPGA軟件設(shè)計(jì)可分為兩大塊:編程語(yǔ)言和編程工具。編程語(yǔ)言主要有VHDL和Verilog兩種硬件描述語(yǔ)言;編程工具主要是兩大廠家Altera和Xilinx的集成綜合EDA軟件QuartusII以及第三方工具。具體的設(shè)計(jì)輸入方式有以下幾種:1.HDL語(yǔ)言方式。HDL既可以描述底層設(shè)計(jì),也可以描述頂層的設(shè)計(jì),但它不容易做到較高的工作速度和芯片利用率。用這種方式描述的項(xiàng)目最后所能達(dá)到的性能與設(shè)計(jì)人員的水平、經(jīng)驗(yàn)以及綜合軟件有很大的關(guān)系。2.圖形方式。可以分為電路原理圖描述,狀態(tài)機(jī)描述和波形描述3種形式。電路原理圖方式描述比較直觀和高效,對(duì)綜合軟件的要求不高。一般大都使

20、用成熟的IP核和中小規(guī)模集成電路所搭成的現(xiàn)成電路,整體放到一片可編程邏輯器件的內(nèi)部去,其硬件工作速度和芯片利用率很高,但是當(dāng)項(xiàng)目很大時(shí),該方法就顯得有些繁瑣;狀態(tài)機(jī)描述主要用來(lái)設(shè)計(jì)基于狀態(tài)機(jī)思想的時(shí)序電路。在圖形的方式下定義好各個(gè)工作狀態(tài),然后在各個(gè)狀態(tài)上輸入轉(zhuǎn)換條件以及相應(yīng)的輸入輸出,最后生成HDL語(yǔ)言描述,送去綜合軟件綜合到可編程邏輯器件的內(nèi)部。由于狀態(tài)機(jī)到HDL語(yǔ)言有一種標(biāo)準(zhǔn)的對(duì)應(yīng)描述方式,所以這種輸入方式最后所能達(dá)到的工作速度和芯片利用率主要取決于綜合軟件;波形描述方式是基于真值表的一種圖形輸入方式,直接描述輸入與輸出的波形關(guān)系。2.52.5 QuartusII 設(shè)計(jì)平臺(tái)設(shè)計(jì)平臺(tái)2.5

21、.12.5.1 軟件開(kāi)發(fā)環(huán)境及基本流程軟件開(kāi)發(fā)環(huán)境及基本流程本設(shè)計(jì)所用軟件主要是 QuartusII,在此對(duì)它做一些介紹。QuartusII 是 Altera 提供的 FPGA/CPLD 開(kāi)發(fā)集成環(huán)境,Altera 是世界上最大的可編程邏輯器件供應(yīng)商之一。QuartusII 提供了一種與結(jié)構(gòu)無(wú)關(guān)的設(shè)計(jì)環(huán)境,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。Altera 公司的 QuartusII 開(kāi)發(fā)工具人機(jī)界面友好、易于使用、性能優(yōu)良,并自帶編譯、仿真功能。QuartusII 軟件完全支持 VHDL 設(shè)計(jì)流程,其內(nèi)部嵌有VHDL 邏輯綜合器。QuartusII 也可以利用第三方的綜合工具,如

22、 FPGA Compiler II,并能直接調(diào)用這些工具。同樣,QuartusII 具備仿真功能,同時(shí)也支持第三方的仿真工具。此外,QuartusII 與 MATLAB 和 DSP Builder 結(jié)合,可以進(jìn)行基于 FPGA 的 DSP 系統(tǒng)開(kāi)發(fā),是 DSP 硬件系統(tǒng)實(shí)現(xiàn)的關(guān)鍵 EDA 技術(shù)。QuartusII 包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器、適配器、裝配器、時(shí)序分析器、設(shè)計(jì)輔助模塊、EDA 網(wǎng)表文件生成器、編輯數(shù)據(jù)接口等??梢酝ㄟ^(guò)選擇 Start Compilation 來(lái)運(yùn)行所有的編譯器模塊,也可以通過(guò)選擇 Start 單獨(dú)運(yùn)行各個(gè)模塊。在 Compiler To

23、ol 窗口中,可以打開(kāi)該模塊的設(shè)置文件或報(bào)告文件,或者打開(kāi)其它相關(guān)窗口。圖 2.3 上排所示的是 QuartusII 編譯設(shè)計(jì)主控界面,它顯示了 QuartusII 自動(dòng)設(shè)計(jì)的各主要處理環(huán)節(jié)和設(shè)計(jì)流程,包括設(shè)計(jì)輸入編輯、設(shè)計(jì)分析與綜合、適配、編程文件匯編、時(shí)序參數(shù)提取以及編程下載幾個(gè)步驟。圖 2.3 下排的流程框圖是與上面的 QuartusII 設(shè)計(jì)流程相對(duì)照的標(biāo)準(zhǔn)的 EDA 開(kāi)發(fā)流程。圖形或HDL編輯Analysis & Synthesis(分析與綜合)Filter(適配器)Assembler(編程文件匯編)編輯器Timing Analyzer(時(shí)序分析器)設(shè)計(jì)輸入綜合或編譯適配器件

24、下載仿真圖 2.3 QuartusII 設(shè)計(jì)流程在設(shè)計(jì)輸入之后,QuartusII 的編譯器將給出設(shè)計(jì)輸入的錯(cuò)誤報(bào)告。QuartusII 擁有性能良好的設(shè)計(jì)錯(cuò)誤定位器,用于確定文本或圖形設(shè)計(jì)中的錯(cuò)誤。在進(jìn)行編譯后,可對(duì)設(shè)計(jì)進(jìn)行時(shí)序仿真。在仿真前,需要利用波形編輯器編輯一個(gè)波形激勵(lì)文件。編譯和仿真檢測(cè)無(wú)誤后,便可將下載信息通過(guò) QuartusII 提供的編程器下載入目標(biāo)器件中了。6QuartusII 圖形用戶界面的基本設(shè)計(jì)流程如下:1.使用 New Project Wizard(File 菜單)建立新工程并指定目標(biāo)器件或器件系列。2.使用 Text Editor(文本編輯器)建立 Verilog

25、 HDL、VHDL 或 Altera 硬件描述語(yǔ)言(AHDL)設(shè)計(jì)。可以使用 Block Editor(原理圖編輯器)建立流程圖或原理圖。流程圖中可以包含代表其它設(shè)計(jì)文件的符號(hào);還可以使用MegaWizard Plug-In Manager 生成宏功能模塊和 IP 內(nèi)核的自定義變量,在設(shè)計(jì)中將它們實(shí)例化。3.(可選)使用 Assignment Editor、Settings 對(duì)話框(Assignments 菜單) 、Floorplan Editor 或 LogicLock 功能指定初始設(shè)計(jì)的約束條件。4.(可選)使用 SOPC Builder 或 DSP Builder 建立系統(tǒng)級(jí)設(shè)計(jì)。5.(

26、可選)使用 Software Builder 為 Excalibur 器件處理器或 Nios 嵌入式處理器建立軟件和編程文件。6.使用 Analysis & Synthesis 對(duì)設(shè)計(jì)進(jìn)行綜合。7.(可選)使用仿真器對(duì)設(shè)計(jì)執(zhí)行功能仿真。8.使用 Fitter 對(duì)設(shè)計(jì)執(zhí)行布局布線。在對(duì)源代碼進(jìn)行少量更改之后,還可以使用增量布局布線。9.使用 Timing Analyzer 對(duì)設(shè)計(jì)進(jìn)行時(shí)序分析。10.使用仿真器對(duì)設(shè)計(jì)進(jìn)行時(shí)序仿真。 11.(可選)使用物理綜合、時(shí)序底層布局圖、LogicLock 功能、Settings 對(duì)話框和 Assignment Editor 進(jìn)行設(shè)計(jì)優(yōu)化,實(shí)現(xiàn)時(shí)序關(guān)閉

27、。12.使用 Assembler 為設(shè)計(jì)建立編程文件。 13.使用編程文件、Programmer 和 Altera 硬件編程器對(duì)器件進(jìn)行編程;或?qū)⒕幊涛募D(zhuǎn)換為其它文件格式以供嵌入式處理器等其它系統(tǒng)使用。14.(可選)使用 SignalTap II Logic Analyzer、SignalProbe 功能或 Chip Editor 對(duì)設(shè)計(jì)進(jìn)行調(diào)試。15.(可選)使用 Chip Editor、Resource Property Editor 和 Change Manager進(jìn)行工程更改管理。2.5.22.5.2 具體設(shè)計(jì)流程具體設(shè)計(jì)流程1.建立工作庫(kù)文件夾和編輯設(shè)計(jì)文件首先建立工作庫(kù)目錄,以便

28、存儲(chǔ)工程項(xiàng)目設(shè)計(jì)文件。任何一項(xiàng)設(shè)計(jì)都是一項(xiàng)工程(Project) ,都必須首先為此工程建立一個(gè)放置與此工程相關(guān)的所有設(shè)計(jì)文件的文件夾。此文件夾將被 EDA 軟件默認(rèn)為工作庫(kù)。一般來(lái)說(shuō),不同的設(shè)計(jì)項(xiàng)目最好放在不同的文件夾中,而同一工程的所有文件都必須放在同一文件夾中。2.創(chuàng)建工程使用 New Project Wizard 可以為工程指定工作目錄、分配工程名稱以及指定最高層設(shè)計(jì)實(shí)體的名稱,還可以指定要在工程中使用的設(shè)計(jì)文件、其它源文件、用戶庫(kù)和 EDA 工具,以及目標(biāo)器件系列和具體器件等。3.編譯前設(shè)置在對(duì)工程進(jìn)行編譯處理前,必須做好必要的設(shè)置。步驟如下:a.選擇 FPGA 目標(biāo)芯片b.選擇配置器

29、件的工作方式c.選擇配置器件和編程方式d.選擇輸出設(shè)置e.選擇目標(biāo)器件閑置引腳的狀態(tài)4.全程編譯QuartusII 編譯器是由一系列處理模塊構(gòu)成的,這些模塊負(fù)責(zé)對(duì)設(shè)計(jì)項(xiàng)目的檢錯(cuò)、邏輯綜合、結(jié)構(gòu)綜合、輸出結(jié)果的編輯配置,以及時(shí)序分析。在這一過(guò)程中,將設(shè)計(jì)項(xiàng)目適配到 FPGA 目標(biāo)器中,同時(shí)產(chǎn)生多種用途的輸出文件。編譯器首先檢查出工程設(shè)計(jì)文件中可能的錯(cuò)誤信息,供設(shè)計(jì)者排除。然后產(chǎn)生一個(gè)結(jié)構(gòu)化的以網(wǎng)表文件表達(dá)的電路原理圖文件。圖 2.4 全編譯后出現(xiàn)報(bào)錯(cuò)信息如果編譯成功,可以見(jiàn)到如圖 2.4 所示的工程管理窗口左上角顯示了工程(例如工程 div)的層次結(jié)構(gòu)和其中結(jié)構(gòu)模塊耗用的邏輯宏單元數(shù);在此欄下是

30、編譯處理流程,包括數(shù)據(jù)網(wǎng)表建立、邏輯綜合、適配、配置文件裝配和時(shí)序分析等;最下欄是編譯處理信息;中欄式編譯報(bào)告項(xiàng)目選擇菜單,單擊其中各項(xiàng)可以詳細(xì)了解編譯與分析結(jié)果。5.時(shí)序仿真工程編譯通過(guò)后,必須建立 VWF 文件對(duì)其功能和時(shí)序性質(zhì)進(jìn)行仿真測(cè)試,以了解設(shè)計(jì)結(jié)果是否滿足原設(shè)計(jì)要求。7第三章第三章 數(shù)字鐘總體設(shè)計(jì)方案數(shù)字鐘總體設(shè)計(jì)方案3.13.1 數(shù)字鐘的構(gòu)成數(shù)字鐘的構(gòu)成數(shù)字鐘實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)頻率(1HZ)進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路。由于計(jì)數(shù)的起始時(shí)間不可能與標(biāo)準(zhǔn)時(shí)間(如北京時(shí)間)一致,故需要在電路上加一個(gè)校時(shí)電路,同時(shí)標(biāo)準(zhǔn)的 1HZ 時(shí)間信號(hào)必須做到準(zhǔn)確穩(wěn)定,通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘。本設(shè)

31、計(jì)總體框架見(jiàn)附圖。3.23.2 數(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ì)數(shù)器清零,重新計(jì)數(shù)。計(jì)數(shù)器的輸出分別經(jīng)譯碼器送數(shù)碼管顯示。計(jì)時(shí)出現(xiàn)誤差時(shí),可以用校時(shí)電路校時(shí)、校分??刂菩盘?hào)由15矩形鍵盤(pán)輸入。時(shí)基電路可以由石英晶體振蕩電路構(gòu)成,假設(shè)晶振頻率1MHz,經(jīng)過(guò)6次十分頻就可以得到秒脈沖信號(hào)。譯碼顯示電路由八段譯碼器完成。3.33.3 數(shù)字鐘硬件電路設(shè)計(jì)數(shù)字鐘硬件電路設(shè)計(jì)1.系統(tǒng)芯片的選取本系統(tǒng)擬采用 Alt

32、era 公司 Cyclone 系列的 EP1C3T144 芯片。選用該款芯片的原因是: Altera 公司的 Quartus II 開(kāi)發(fā)環(huán)境非常友好、直觀,為整個(gè)系統(tǒng)的開(kāi)發(fā)提供了極大的方便; 該 FPGA 片內(nèi)邏輯資源、IO 端口數(shù)和 RAM 容量都足夠用,并且價(jià)格相對(duì)來(lái)說(shuō)比較便宜,速度快,可以滿足要求,且有很大的升級(jí)空間。EP1C3T144 是 Altera 公司生產(chǎn)的 Cyclone I 代、基于 1.5V(內(nèi)核) ,3.3V(I/O) ,0.13um 和 SRAM 的 FPGA,容量為 2910 個(gè) LE,擁有 13 個(gè) M4KRAM(4K 位+奇偶校驗(yàn))塊;除此之外,還集成了許多復(fù)雜的

33、功能,提供了全功能的鎖相環(huán)(PLL) ,用于板級(jí)的時(shí)鐘網(wǎng)絡(luò)管理和專用 I/O 口,這些接口用于連接業(yè)界標(biāo)準(zhǔn)的外部存儲(chǔ)器器件,具有成本低和使用方便的特點(diǎn),具有以下特性: 新的可編程架構(gòu)通過(guò)設(shè)計(jì)實(shí)現(xiàn)低成本; 嵌入式存儲(chǔ)資源支持各種存儲(chǔ)器應(yīng)用和數(shù)字信號(hào)處理器(DSP) ; 采用新的串行置器件如 EPCS1 的低成本配置方案; 支持 LVTTL、LVCMOS、SSTL-2 以及 SSTL-3 I/O 標(biāo)準(zhǔn); 支持 66MHZ,32 位 PCI 標(biāo)準(zhǔn); 支持低速(311Mbps)LVDS I/O; 支持串行總線和網(wǎng)絡(luò)接口及各種通信協(xié)議; 使用 PLL 管理片內(nèi)和片外系統(tǒng)時(shí)序; 支持外部存儲(chǔ)器,包括 DD

34、R SDRAM(133MHZ) ,F(xiàn)CRAM 以及 SDR SDRAM; 支持多種 IP,包括 Altera 公司的 MegaCore 以及其合伙組織的 IP,支持最新推出的 Nios II 嵌入式處理器,具有超凡的性能、低成本和最完整的一套軟件開(kāi)發(fā)工具。7EP1C3T144 引腳圖如圖 3.1 所示。圖 3.1 EP1C3T144 引腳圖2.顯示電路設(shè)計(jì)顯示電路所選用 4 個(gè)數(shù)碼管以靜態(tài)顯示驅(qū)動(dòng)方式完成時(shí)、分顯示。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè) I/O 端口進(jìn)行驅(qū)動(dòng),其優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用 I/O 端口多。顯示電路原理圖如圖 3.2 所示。圖 3.2 LED 靜

35、態(tài)驅(qū)動(dòng)顯示原理圖第四章第四章 單元電路設(shè)計(jì)單元電路設(shè)計(jì)4.14.1 分頻模塊電路設(shè)計(jì)分頻模塊電路設(shè)計(jì)晶體振蕩器是構(gòu)成數(shù)字式時(shí)鐘的核心,振蕩器的穩(wěn)定度及頻率的精度決定了數(shù)字鐘計(jì)時(shí)的準(zhǔn)確程度,它保證了時(shí)鐘的走時(shí)準(zhǔn)確及穩(wěn)定。石英晶體的選頻特性非常好,只有某一頻率點(diǎn)的信號(hào)可以通過(guò)它,其它頻率段的信號(hào)均會(huì)被它所衰減,而且,振蕩信號(hào)的頻率與振蕩電路中的R、C組件的數(shù)值無(wú)關(guān)。因此這種振蕩電路輸出的是準(zhǔn)確度極高的信號(hào)。然后再利用分頻電路,將其輸出信號(hào)轉(zhuǎn)變?yōu)槊胄盘?hào),其組成框圖如圖4.1。圖 4.1 秒信號(hào)產(chǎn)生電路框圖本系統(tǒng)使用的晶體振蕩器電路給數(shù)字鐘提供了一個(gè)頻率穩(wěn)定準(zhǔn)確的 20MHZ的方波信號(hào),其輸出至分頻電

36、路。分頻電路的邏輯框圖如圖 4.2 所示。iclkoclk1soclk2msdivinst8圖 4.2 分頻電路模塊經(jīng)分頻后輸出 1HZ 的標(biāo)準(zhǔn)秒信號(hào) oclk1s、500HZ 的按鍵消去抖信號(hào)。該模塊的時(shí)序仿真圖如圖 4.3 所示,滿足設(shè)計(jì)要求。石英晶體振蕩電路分頻電路秒信號(hào)圖 4.3 分頻模塊仿真圖4.24.2 校時(shí)控制模塊電路設(shè)計(jì)校時(shí)控制模塊電路設(shè)計(jì)4.2.14.2.1 按鍵消抖按鍵消抖本模塊用于當(dāng)有按鍵按下時(shí),采用軟件的辦法去除按鍵抖動(dòng)。模塊的實(shí)現(xiàn)方法是先判斷是否有按鍵按下,如有按鍵按下則延時(shí)一段時(shí)間,待抖動(dòng)過(guò)去之后再讀行線狀態(tài),如果仍有低電平行線,則確定有按鍵按下,然后產(chǎn)生一個(gè)有按鍵

37、按下的信號(hào)。該模塊有一個(gè)時(shí)鐘輸入端口,輸入時(shí)鐘信號(hào)是分頻出來(lái)的500HZ 的時(shí)鐘;有一個(gè)輸入端口與行線相連,用于輸入行線狀態(tài);一個(gè)輸出端口,用于輸出有按鍵按下的信號(hào)。該模塊的邏輯框圖如圖 4.4 所示。圖 4.4 消抖邏輯框圖該模塊在這里實(shí)現(xiàn)的比較簡(jiǎn)單,原理是當(dāng)有按鍵按下的時(shí)候,inkey 會(huì)變成低電平,如果此時(shí) count 不為 30 時(shí),內(nèi)部計(jì)數(shù)器計(jì)數(shù),從 0 直到 30,當(dāng)計(jì)數(shù)到30 時(shí),okey 輸出底電平,同時(shí)給計(jì)數(shù)器賦值為 30。由于計(jì)數(shù)脈沖為 500HZ,故從有按鍵按下到輸入信號(hào)產(chǎn)生大概需要 60ms。而按鍵產(chǎn)生抖動(dòng)的時(shí)間大約2ms 到 10ms,所以一旦計(jì)數(shù)完成,抖動(dòng)已經(jīng)過(guò)去,

38、不會(huì)發(fā)生重鍵現(xiàn)象了,這樣就去除了抖動(dòng)。該模塊的仿真波形如圖 4.5 所示。圖 4.5 按鍵消抖模塊波形仿真4.2.24.2.2 按鍵控制模塊按鍵控制模塊按鍵控制模塊的框圖如圖 4.6 所示。 a b圖 4.6 按鍵控制模塊圖 4.6 中 a 圖是控制分的高位,低位以及小時(shí)的高位的模塊,b 圖是控制小時(shí)的低位的模塊。inkey 是由消抖模塊輸出的有鍵按下的信號(hào),這個(gè)信號(hào)引發(fā)按鍵控制模塊內(nèi)部信號(hào)的變化。oaddr3.0作為輸出信號(hào),用于控制時(shí)間的調(diào)整。b 圖中的 flag 是判斷小時(shí)高位是 1 還是 2 的信號(hào),若為 1,則 flag 信號(hào)為低電平;若為 2,則 flag 信號(hào)為高電平。1.分低位

39、按鍵控制核心程序如下:ENTITY addram ISPORT(inkey : IN STD_LOGIC;oaddr : OUT STD_LOGIC_VECTOR(3 downto 0);END addram;ARCHITECTURE addram_architecture OF addram ISsignal count:std_logic_vector(3 downto 0);BEGINoaddr=count;k1:process(inkey)beginif rising_edge(inkey) thencount=count+1;if count=9 thencount=0000;end

40、 if;end if;end process k1;END addram_architecture;說(shuō)明:每按鍵一次,即每當(dāng) inkey 的上升沿到來(lái)時(shí),count 加一,當(dāng) count 等于 9的時(shí)候,作為分的低位,將 0 賦值于 count,在此過(guò)程中,隨時(shí)將十進(jìn)制數(shù)的count 的值的 8421 碼作為 oaddr 的信號(hào)。對(duì)于分的高位,僅將程序中的 count=9 改成 count=5 即可;對(duì)于小時(shí)的高位,僅將程序中的 count=9 改成 count=2 即可。該模塊的仿真波形如圖 4.7 所示。圖 4.7 分低位按鍵控制模塊波形仿真2.小時(shí)低位按鍵控制核心程序如下:ENTITY

41、addram3 ISPORT(inkey : IN STD_LOGIC;flag : IN STD_LOGIC;oaddr : OUT STD_LOGIC_VECTOR(3 downto 0);END addram3;ARCHITECTURE addram3_architecture OF addram3 ISsignal count:std_logic_vector(3 downto 0);BEGINoaddr=count;k1:process(inkey,flag)beginif rising_edge(inkey) thenif flag=1 thenif count=3 thencou

42、nt=0000;elsecount=count+1;end if;elsecount=count+1;if count=9 thencount=0000;end if;end if;end if;end process k1;END addram3_architecture;說(shuō)明:當(dāng) flag 為高電平時(shí),即小時(shí)高位為 2,小時(shí)低位只能在 0 到 3 之間變動(dòng);當(dāng) flag 為低電平時(shí),即小時(shí)高位為 1,小時(shí)低位可以在 0 到 9 之間變動(dòng)。該模塊的仿真波形如圖 4.8 所示。圖 4.8 小時(shí)低位按鍵控制模塊波形仿真4.34.3 計(jì)數(shù)模塊計(jì)數(shù)模塊1.秒計(jì)數(shù)模塊該模塊框圖如圖 4.9 所示。模塊

43、主要完成秒向分的進(jìn)位,產(chǎn)生脈沖信號(hào)。圖 4.9 秒模塊邏輯框圖核心程序如下:ENTITY second ISPORT(clk_1s : IN STD_LOGIC;os : OUT STD_LOGIC);END second;ARCHITECTURE sec_architecture OF second ISBEGINk1:process(clk_1s)variable count:integer range 0 to 100:=0;beginif rising_edge(clk_1s) thenif count=59 thenos=1;count:=0;elseos=0;count:=coun

44、t+1;end if;end if;end process k1;該模塊的仿真波形如圖 4.10 所示。圖 4.10 秒計(jì)數(shù)模塊波形仿真2.分低位計(jì)數(shù)器該模塊框圖如圖 4.11 所示。主要完成分低位向高位的進(jìn)位,產(chǎn)生脈沖信號(hào)。圖 4.11 分低位邏輯框圖核心程序如下:ENTITY ml ISPORT(clk_1s : IN STD_LOGIC;iset : IN STD_LOGIC;iset_addr : IN STD_LOGIC_VECTOR(3 DOWNTO 0);addr_1s : OUT STD_LOGIC_vector(3 downto 0);os : OUT STD_LOGIC);

45、END ml;ARCHITECTURE ml_architecture OF ml ISBEGINk1:process(clk_1s,iset)variable count:integer range 0 to 10:=0;beginif iset=0 thencount:=CONV_INTEGER(iset_addr);addr_1s=iset_addr;elsif rising_edge(clk_1s) thenif count=9 thenos=1;count:=0;addr_1s=CONV_STD_LOGIC_VECTOR(count,4);elseos=0;count:=count+

46、1;addr_1s=CONV_STD_LOGIC_VECTOR(count,4);end if;end if;end process k1;END ml_architecture;說(shuō)明:對(duì)于分高位計(jì)數(shù)模塊的程序,只需將上面程序中的 count=9 改成count=6 即可。3.小時(shí)低位計(jì)數(shù)模塊該模塊框圖如圖 4.12 所示。主要完成小時(shí)低位向高位的進(jìn)位,產(chǎn)生脈沖信號(hào),同時(shí)根據(jù) flag 信號(hào)的不同判斷出小時(shí)高位時(shí) 1 還是 2。clk_1sisetflagiset_addr3.0addr_1s3.0oshlinst14圖 4.12 小時(shí)低位計(jì)數(shù)模塊組件圖核心程序如下:ENTITY hl ISP

47、ORT(clk_1s : IN STD_LOGIC;iset : IN STD_LOGIC;flag : IN STD_LOGIC;iset_addr : IN STD_LOGIC_VECTOR(3 DOWNTO 0);addr_1s : OUT STD_LOGIC_vector(3 downto 0);os : OUT STD_LOGIC);END hl;ARCHITECTURE hl_architecture OF hl ISBEGINk1:process(clk_1s,iset)variable count:integer range 0 to 10:=0;beginif iset=0

48、thencount:=CONV_INTEGER(iset_addr);addr_1s=iset_addr;elsif rising_edge(clk_1s) thenif flag=1 thenif count=3 thenos=1;count:=0;addr_1s=CONV_STD_LOGIC_VECTOR(count,4);elseos=0;count:=count+1;addr_1s=CONV_STD_LOGIC_VECTOR(count,4);end if;elseif count=9 thenos=1;count:=0;addr_1s=CONV_STD_LOGIC_VECTOR(co

49、unt,4);elseos=0;count:=count+1;addr_1s=CONV_STD_LOGIC_VECTOR(count,4);end if;end if;end if;end process k1;END hl_architecture;4.小時(shí)高位計(jì)數(shù)模塊該模塊框圖如圖 4.13 所示,主要完成小時(shí)高位 1 和 2 之間的變換,同時(shí)當(dāng)小時(shí)高位為 2 時(shí), flag 為高電平,當(dāng)為 1 時(shí),flag 為低電平。clk_1sisetiset_addr3.0addr_1s3.0flaghhinst13圖 4.13 小時(shí)高位計(jì)數(shù)模塊組件核心程序如下:ENTITY hh ISPORT(c

50、lk_1s : IN STD_LOGIC;iset : IN STD_LOGIC;iset_addr : IN STD_LOGIC_VECTOR(3 DOWNTO 0);addr_1s : OUT STD_LOGIC_vector(3 downto 0);flag: OUT STD_LOGIC);END hh;ARCHITECTURE hh_architecture OF hh ISBEGINk1:process(clk_1s,iset)variable count:integer range 0 to 2:=0;beginif iset=0 thencount:=CONV_INTEGER(i

51、set_addr);addr_1s=iset_addr;if count=2 thenflag=1;else flag=0;end if;elsif rising_edge(clk_1s) thenif count=2 thenflag=0;count:=0;addr_1s=CONV_STD_LOGIC_VECTOR(count,4);elsif count=1 thenflag=1;count:=count+1;addr_1s=CONV_STD_LOGIC_VECTOR(count,4);elseflag=0;count:=count+1;addr_1s=CONV_STD_LOGIC_VEC

52、TOR(count,4);end if;end if;end process k1;END hh_architecture;4.44.4 譯碼顯示模塊譯碼顯示模塊該模塊完成對(duì)計(jì)數(shù)器編碼信息的譯碼工作,驅(qū)動(dòng)數(shù)碼管則顯示相應(yīng)的數(shù)字。模塊組件如 4.14 所示。clkaddr3.0led7.0driveinst9圖 4.14 譯碼顯示模塊組件核心程序如下:ENTITY drive IS PORT (clk:in std_logic;addr : IN STD_LOGIC_vector(3 downto 0); led : OUT STD_LOGIC_vector(7 downto 0); END d

53、rive; ARCHITECTURE behave OF drive IS SIGNAL sel:STD_LOGIC_vector(3 downto 0); BEGIN process(clk)begin selledledledledledledledledledledled=10111111; end case; end process; end behave;該模塊的仿真波形如圖 4.15 所示。圖 4.15 譯碼顯示波形仿真4.54.5 譯碼顯示強(qiáng)制轉(zhuǎn)換模塊譯碼顯示強(qiáng)制轉(zhuǎn)換模塊由于系統(tǒng)只能顯示時(shí)、分,故在此將時(shí)低位的數(shù)碼管的“小數(shù)點(diǎn)”作為秒顯示,以 1HZ 的頻率閃爍。模塊組件如圖 4.16 所示。idata7.0odata6.0convinst18圖 4.16 譯碼顯示強(qiáng)制轉(zhuǎn)換模塊組件4

溫馨提示

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