版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)目目 錄錄精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)第一章第一章 緒論緒論現(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ì)采用的VHDL是一種全方位的硬件描述語(yǔ)言,具有極強(qiáng)的描述能力,能支持系統(tǒng)行為級(jí)、寄存器傳輸級(jí)和邏輯門(mén)級(jí)這三個(gè)不同層次的設(shè)計(jì);支持結(jié)構(gòu)、數(shù)據(jù)流、行為三種描述形
2、式的混合描述,覆蓋面廣,抽象能力強(qiáng),因此在實(shí)際應(yīng)用中越來(lái)越廣泛。ASIC是專(zhuān)用的系統(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ù)鍵盤(pán)結(jié)構(gòu)的不同,采用不同的編碼方法,但無(wú)論有無(wú)編碼以及采用什么樣的編碼,最后都要轉(zhuǎn)換成為相應(yīng)的鍵值,以實(shí)現(xiàn)按鍵功能程序的轉(zhuǎn)移。1鐘表的數(shù)字化給人們生產(chǎn)生活帶
3、來(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í)的意義。精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)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.11.1.1 課題相關(guān)技術(shù)的發(fā)展課題相關(guān)技術(shù)的發(fā)展當(dāng)今電子產(chǎn)品正向功能多元化,體積最小化,功耗最低化的方向發(fā)展。它
4、與傳統(tǒng)的電子產(chǎn)品在設(shè)計(jì)上的顯著區(qū)別是大量使用大規(guī)模可編程邏輯器件,使產(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ī)??删幊踢壿嬈骷樵O(shè)計(jì)載體,以硬件描述語(yǔ)言為系統(tǒng)邏輯描述主要表達(dá)方式,以計(jì)算機(jī)和大規(guī)??删幊踢壿嬈骷拈_(kāi)發(fā)軟件及實(shí)驗(yàn)開(kāi)發(fā)系統(tǒng)為設(shè)計(jì)工具,自動(dòng)完成用
5、軟件的方式設(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ù)、模塊化的工具以及LPM 定制等優(yōu)良性能,應(yīng)用非常方便。因此,本設(shè)計(jì)采用可編程邏輯器件實(shí)現(xiàn)。1.1.21.1.2 課題研究的必要性課
6、題研究的必要性現(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í)精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)系統(tǒng)來(lái)提醒這些忙碌的人。數(shù)字化的鐘表給人們帶來(lái)了極大的方便。近些年,隨著科技的發(fā)展和社會(huì)的進(jìn)步,人們對(duì)數(shù)字鐘的要求也越來(lái)越高,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求,多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化
7、,有電子鬧鐘、數(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)。精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)第二章第二章 FPGA 簡(jiǎn)介簡(jiǎn)介2.12.1 FPGA 概述概述FPGA是現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array)的簡(jiǎn)稱(chēng),與之相應(yīng)的CPLD是復(fù)雜可編程邏輯器件(Complex Programmabl
8、e Logic Device)的簡(jiǎn)稱(chēng),兩者的功能基本相同,只是實(shí)現(xiàn)原理略有不同,有時(shí)可以忽略這兩者的區(qū)別,統(tǒng)稱(chē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/FPGA技術(shù)在20世紀(jì)90年代
9、以后得到飛速的發(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)。可編程邏輯模塊CLB是實(shí)現(xiàn)邏輯功能的基本單元,它們通常規(guī)則的排列成一個(gè)陣列,散布于整個(gè)
10、芯片;可編程輸入/輸出模塊(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輸入變量的任意組合邏輯函數(shù)。邏輯函數(shù)發(fā)生器H
11、有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é)合精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)起來(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),其工作原理類(lèi)似于ROM。F
12、和G的輸入等效于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ù)選
13、擇器不同的控制信息,確定送至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??删幊袒ミB資源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í)
14、現(xiàn)各種電路的連接。精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè) 圖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ì)方
15、法進(jìn)行系統(tǒng)劃分。2.輸入VHDL代碼,這是設(shè)計(jì)中最為普遍的輸入方式。此外,還可以采用圖形輸入方式,這種輸入方式具有直觀、容易理解的優(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)矩輸
16、入輸出模塊互連資源CLBCLBCLBCLBCLB CLB BCLBCLBCLBCLB矩CLBCLBCLB塊CLBCLB CLB BCLBCLBCLBCLBCLBCLB精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)下才能完成。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.器件編
17、程文件。根據(jù)適配后的仿真模型,可以進(jìn)行適配后時(shí)序仿真,因?yàn)橐呀?jīng)得到器件的實(shí)際硬件特性(如時(shí)延特性),所以仿真結(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ù)器件編程文件精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè) 圖2.2 CPLD/FPGA系統(tǒng)設(shè)計(jì)流程2.42
18、.4 FPGA 開(kāi)發(fā)編程原理開(kāi)發(fā)編程原理硬件設(shè)計(jì)需要根據(jù)各種性能指標(biāo)、成本、開(kāi)發(fā)周期等因素,確定最佳的實(shí)現(xiàn)方案,畫(huà)出系統(tǒng)框圖,選擇芯片,設(shè)計(jì)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)以及綜合軟件有很大的
19、關(guān)系。2.圖形方式??梢苑譃殡娐吩韴D描述,狀態(tài)機(jī)描述和波形描述3種形式。電路原理圖方式描述比較直觀和高效,對(duì)綜合軟件的要求不高。一般大都使用成熟的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á)到的工作速度和芯片利用率主要取決于
20、綜合軟件;波形描述方式是基于真值表的一種圖形輸入方式,直接描述輸入與輸出的波形關(guān)系。2.52.5 QuartusII 設(shè)計(jì)平臺(tái)設(shè)計(jì)平臺(tái)2.5.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)良,并自帶編譯、仿真功
21、能。QuartusII 軟件完全支持 VHDL 設(shè)計(jì)流程,其內(nèi)部嵌有VHDL 邏輯綜合器。QuartusII 也可以利用第三方的綜合工具,如 FPGA Compiler II,并能直接調(diào)用這些工具。同樣,QuartusII 具備仿真功能,同時(shí)也精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)支持第三方的仿真工具。此外,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ì)輔助模塊、ED
22、A 網(wǎng)表文件生成器、編輯數(shù)據(jù)接口等??梢酝ㄟ^(guò)選擇 Start Compilation 來(lái)運(yùn)行所有的編譯器模塊,也可以通過(guò)選擇 Start 單獨(dú)運(yùn)行各個(gè)模塊。在 Compiler Tool 窗口中,可以打開(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編輯Analys
23、is & Synthesis(分析與綜合)Filter(適配器)Assembler(編程文件匯編)編輯器Timing Analyzer(時(shí)序分析器)設(shè)計(jì)輸入綜合或編譯適配器件下載仿真圖 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 圖形用戶界面的基
24、本設(shè)計(jì)流程如下:1.使用 New Project Wizard(File 菜單)建立新工程并指定目標(biāo)器件或器件系列。2.使用 Text Editor(文本編輯器)建立 Verilog HDL、VHDL 或 Altera 硬件精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)描述語(yǔ)言(AHDL)設(shè)計(jì)。可以使用 Block Editor(原理圖編輯器)建立流程圖或原理圖。流程圖中可以包含代表其它設(shè)計(jì)文件的符號(hào);還可以使用MegaWizard Plug-In Manager 生成宏功能模塊和 IP 內(nèi)核的自定義變量,在設(shè)計(jì)中將它們實(shí)例化。3.(可選)使用 Assignment Editor、Settings
25、 對(duì)話框(Assignments 菜單) 、Floorplan Editor 或 LogicLock 功能指定初始設(shè)計(jì)的約束條件。4.(可選)使用 SOPC Builder 或 DSP Builder 建立系統(tǒng)級(jí)設(shè)計(jì)。5.(可選)使用 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 Analyz
26、er 對(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)閉。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.(可選)使用 Ch
27、ip Editor、Resource Property Editor 和 Change Manager進(jìn)行工程更改管理。2.5.22.5.2 具體設(shè)計(jì)流程具體設(shè)計(jì)流程1.建立工作庫(kù)文件夾和編輯設(shè)計(jì)文件首先建立工作庫(kù)目錄,以便存儲(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)目最好放在不同的文件夾中,而同一工程的所有文件都必須放在同一文件夾中。精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)2.創(chuàng)建工程使用 New Project Wizard 可以為工程指
28、定工作目錄、分配工程名稱(chēng)以及指定最高層設(shè)計(jì)實(shí)體的名稱(chēng),還可以指定要在工程中使用的設(shè)計(jì)文件、其它源文件、用戶庫(kù)和 EDA 工具,以及目標(biāo)器件系列和具體器件等。3.編譯前設(shè)置在對(duì)工程進(jìn)行編譯處理前,必須做好必要的設(shè)置。步驟如下:a.選擇 FPGA 目標(biāo)芯片b.選擇配置器件的工作方式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è)
29、計(jì)文件中可能的錯(cuò)誤信息,供設(shè)計(jì)者排除。然后產(chǎn)生一個(gè)結(jié)構(gòu)化的以網(wǎng)表文件表達(dá)的電路原理圖文件。精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)圖 2.4 全編譯后出現(xiàn)報(bào)錯(cuò)信息如果編譯成功,可以見(jiàn)到如圖 2.4 所示的工程管理窗口左上角顯示了工程(例如工程 div)的層次結(jié)構(gòu)和其中結(jié)構(gòu)模塊耗用的邏輯宏單元數(shù);在此欄下是編譯處理流程,包括數(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精選優(yōu)質(zhì)文
30、檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)第三章第三章 數(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è)計(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ì)
31、數(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)擬采用 Altera 公司 Cyclone 系列的 EP1C3T144 芯片。選用該款芯片的原因是: Altera 公司的 Quartus II 開(kāi)發(fā)環(huán)境非常友好、直觀,為整個(gè)系統(tǒng)的開(kāi)發(fā)提供了極大的方便; 該 FPGA 片內(nèi)邏輯資源、IO 端口數(shù)和 RAM 容量都
32、足夠用,并且價(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ù)雜的功能,提供了全功能的鎖相環(huán)(PLL) ,用于板級(jí)的時(shí)鐘網(wǎng)絡(luò)管理和專(zhuān)用 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)處理
33、器(DSP) ;精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè) 采用新的串行置器件如 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ǔ)器,包括 DDR SDRAM(133MHZ) ,F(xiàn)CRAM 以及 SDR SDRAM; 支持多種 IP,包括 Altera 公司的 MegaCore 以及其合伙組織的 IP,支持最新推出的 Nios II 嵌入式處理器,具
34、有超凡的性能、低成本和最完整的一套軟件開(kāi)發(fā)工具。7EP1C3T144 引腳圖如圖 3.1 所示。精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)圖 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 靜態(tài)驅(qū)動(dòng)顯示原理圖精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)第四章第四章 單元電路設(shè)計(jì)單元電路設(shè)計(jì)4.14.1 分頻模塊電路設(shè)計(jì)分頻模塊電路設(shè)計(jì)晶體振蕩器是構(gòu)成數(shù)字式時(shí)
35、鐘的核心,振蕩器的穩(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),其輸出至分頻電路。分頻電路的邏輯框圖如圖 4.2 所示。iclkoclk1soclk2msdivinst8圖 4.2 分頻電路模塊經(jīng)分頻后
36、輸出 1HZ 的標(biāo)準(zhǔn)秒信號(hào) oclk1s、500HZ 的按鍵消去抖信號(hào)。該模塊的時(shí)序仿真圖如圖 4.3 所示,滿足設(shè)計(jì)要求。石英晶體振蕩電路分頻電路秒信號(hào)精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)圖 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è)有按鍵按下的信號(hào)。該模塊有一個(gè)時(shí)鐘輸入端口,輸入時(shí)鐘信號(hào)是分頻出來(lái)的500HZ 的時(shí)鐘;
37、有一個(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ò)去,不會(huì)發(fā)生重鍵現(xiàn)象了,這樣精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)就去除了抖動(dòng)。該
38、模塊的仿真波形如圖 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.分低位按鍵控制核心程序如下:ENTITY ad
39、dram 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);BEGIN精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)oaddr=count;k1:process(inkey)beginif rising_edge(inkey) thencount=count+1;if count=9 thencount=0000;en
40、d 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;精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)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
42、thenif count=3 thencount=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 所示。精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)圖 4.8 小時(shí)低位按鍵控制模塊
43、波形仿真4.34.3 計(jì)數(shù)模塊計(jì)數(shù)模塊1.秒計(jì)數(shù)模塊該模塊框圖如圖 4.9 所示。模塊主要完成秒向分的進(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 IS精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)BEGINk1:process(clk_1s)variable count:integer range 0 to 100:=0;beginif rising_edg
44、e(clk_1s) thenif count=59 thenos=1;count:=0;elseos=0;count:=count+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 分低位邏輯框圖核心程序如下:精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)ENTITY ml ISPORT(clk_1s : IN STD_LOGIC;iset : IN STD_LOGIC;iset_addr : IN STD_LOG
45、IC_VECTOR(3 DOWNTO 0);addr_1s : OUT STD_LOGIC_vector(3 downto 0);os : OUT STD_LOGIC);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 co
46、unt=9 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;end if;end process k1;END ml_architecture;說(shuō)明:對(duì)于分高位計(jì)數(shù)模塊的程序,只需將上面程序中的 count=9 改成count=6 即可。精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)3.小時(shí)低位計(jì)數(shù)模塊該模塊框圖如圖 4.12 所示。主要完成小時(shí)低位向高位的進(jìn)位,產(chǎn)生脈沖信號(hào),同時(shí)根據(jù) flag
47、 信號(hào)的不同判斷出小時(shí)高位時(shí) 1 還是 2。clk_1sisetflagiset_addr3.0addr_1s3.0oshlinst14圖 4.12 小時(shí)低位計(jì)數(shù)模塊組件圖核心程序如下:ENTITY hl ISPORT(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 h
48、l_architecture OF hl 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 flag=1 thenif count=3 thenos=1;精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)count:=0;addr_1s=CONV_STD_LOGIC_VECTOR(count,4);elseos=0
49、;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(count,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 之間的變換,
50、同時(shí)當(dāng)小時(shí)高位為 2 時(shí), flag 為高電平,當(dāng)為 1 時(shí),flag 為低電平。clk_1sisetiset_addr3.0addr_1s3.0flaghhinst13圖 4.13 小時(shí)高位計(jì)數(shù)模塊組件精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)核心程序如下:ENTITY hh 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);flag: OUT STD_LOGIC);END
51、 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(iset_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
52、_VECTOR(count,4);elsif count=1 thenflag=1;count:=count+1;addr_1s=CONV_STD_LOGIC_VECTOR(count,4);精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)elseflag=0;count:=count+1;addr_1s=CONV_STD_LOGIC_VECTOR(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 所示。clk
53、addr3.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 drive; ARCHITECTURE behave OF drive IS SIGNAL sel:STD_LOGIC_vector(3 downto 0); BEGIN process(clk)begin selledledledledledledledledledledled=; 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 所示。精選優(yōu)質(zhì)文檔-傾情為你奉上專(zhuān)心-專(zhuān)注-專(zhuān)業(yè)idata7.0odata6.0convinst18圖 4.16 譯碼顯示強(qiáng)制轉(zhuǎn)換模塊組件4.64.6 整點(diǎn)報(bào)時(shí)模塊整點(diǎn)報(bào)時(shí)模塊該模塊能夠完成整點(diǎn)時(shí)的報(bào)時(shí)功能。即將至整
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖北武漢楓葉教育園區(qū)招聘教師參考題庫(kù)附答案
- 2026湖南常德煙草機(jī)械有限責(zé)任公司招聘24人備考題庫(kù)附答案
- 2026福建廈門(mén)市集美區(qū)上塘中學(xué)產(chǎn)假頂崗教師招聘2人參考題庫(kù)附答案
- 2026西安交通大學(xué)能動(dòng)學(xué)院管理輔助人員招聘參考題庫(kù)附答案
- 2026貴州畢節(jié)市納雍縣自然資源局面向社會(huì)招聘事業(yè)單位人員12人參考題庫(kù)附答案
- 2026陽(yáng)春農(nóng)商銀行校園招聘?jìng)淇碱}庫(kù)附答案
- 2026陜西西安交通大學(xué)能動(dòng)學(xué)院管理輔助工作人員招聘1人考試備考題庫(kù)附答案
- 中共南充市嘉陵區(qū)委社會(huì)工作部關(guān)于公開(kāi)招聘新興領(lǐng)域黨建工作專(zhuān)員的備考題庫(kù)附答案
- 樂(lè)山市公安局2025年第四批次警務(wù)輔助人員招聘(40人)考試備考題庫(kù)附答案
- 華貿(mào)物流2026屆秋季校園招聘考試備考題庫(kù)附答案
- 基層黨建知識(shí)測(cè)試題及答案
- DG-TJ08-2021-2025 干混砌筑砂漿抗壓強(qiáng)度現(xiàn)場(chǎng)檢測(cè)技術(shù)標(biāo)準(zhǔn)
- 鼻竇炎的護(hù)理講課課件
- 腸系膜脂膜炎CT診斷
- 體外膜肺氧合技術(shù)ECMO培訓(xùn)課件
- 老年醫(yī)院重點(diǎn)專(zhuān)科建設(shè)方案
- 銀行解封協(xié)議書(shū)模板
- 超星爾雅學(xué)習(xí)通《學(xué)術(shù)規(guī)范與學(xué)術(shù)倫理(華東師范大學(xué))》2025章節(jié)測(cè)試附答案
- GB 17440-2025糧食加工、儲(chǔ)運(yùn)系統(tǒng)粉塵防爆安全規(guī)范
- 《綠色農(nóng)產(chǎn)品認(rèn)證》課件
- 衛(wèi)生院、社區(qū)衛(wèi)生服務(wù)中心《死亡醫(yī)學(xué)證明書(shū)》領(lǐng)用、發(fā)放、管理制度
評(píng)論
0/150
提交評(píng)論