FPGA課程設(shè)計_第1頁
FPGA課程設(shè)計_第2頁
FPGA課程設(shè)計_第3頁
FPGA課程設(shè)計_第4頁
FPGA課程設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、鄭州輕工業(yè)學(xué)院課程設(shè)計說明書題目: 基于FPGA的電子鐘設(shè)計 姓 名: 事實上 院 (系): 電子信息工程學(xué)院 專業(yè)班級: 電子信息工程14-2 學(xué) 號: 指導(dǎo)教師: 蔡超峰 成 績: 時間: 2017 年 6 月 19 日至 2017 年 6 月 25 日鄭州輕工業(yè)學(xué)院課 程 設(shè) 計 任 務(wù) 書題目 基于FPGA的電子鐘設(shè)計 專業(yè)、班級 電子信息工程14-2 學(xué)號 541401056514 姓名 * 主要內(nèi)容、基本要求、主要參考資料等:主要內(nèi)容:要求學(xué)生使用VHDL語言設(shè)計一個顯示時(2位)、分(2位)、秒(2位)的6個數(shù)字的多功能電子鐘。該電子鐘既可以作為鬧鐘,也可以作為計時器。系統(tǒng)的時鐘

2、頻率為1024Hz,要求給出復(fù)位鍵、報警鍵、調(diào)整時鐘等按鍵設(shè)計?;疽螅?、 掌握FPGA的程序設(shè)計方法。 2、 掌握硬件描述語言語法。 3、給出設(shè)計思路與框圖4、程序設(shè)計完成后要求在軟件中實現(xiàn)功能仿真。主要參考資料:1、周潤景.基于Quartus的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計實例M.電子工業(yè)出版社.2007,82、林明權(quán) 馬維旻VHDL數(shù)字控制系統(tǒng)設(shè)計范例.電子工業(yè)出版社2003,13、褚振勇. FPGA設(shè)計及應(yīng)用(第三版)M.西安電子科技大學(xué)出版社.2012,4完 成 期 限: 指導(dǎo)教師簽名: 課程負責(zé)人簽名: 2017年 6月 18日摘 要伴隨著集成電路技術(shù)的發(fā)展, 電子設(shè)計自動化(

3、EDA)技術(shù)逐漸成為數(shù)字電路設(shè)計的重要手段。 基于FPGA的EDA技術(shù)的發(fā)展和應(yīng)用領(lǐng)域的擴大與深入,使得EDA技術(shù)在電子信息,通信,自動控制,計算機等領(lǐng)域的重要性日益突出。本設(shè)計給出了一種基于FPGA的多功能數(shù)字鐘方法,采用EDA作為開發(fā)工具,VHDL語言和圖形輸入為硬件描述語言,QuartusII作為運行程序的平臺,編寫的程序經(jīng)過調(diào)試運行,波形仿真驗證,下載到EDA實驗箱的FPGA芯片,實現(xiàn)了設(shè)計目標。系統(tǒng)主芯片采用CycloneII系列EP2C35F672C8。采用自頂向下的設(shè)計思想,將系統(tǒng)分為五個模塊:分頻模塊、計時模塊、報時模塊、顯示模塊、頂層模塊。用VHDL語言實現(xiàn)各個功能模塊, 圖

4、形輸入法生成頂層模塊. 最后用QuartusII軟件進行功能仿真, 驗證數(shù)字鐘設(shè)計的正確性。測試結(jié)果表明本設(shè)計實現(xiàn)了一個多功能的電子鐘功能,具有時、分、秒計時顯示功能,以24小時循環(huán)計時;具有校正小時和分鐘的功能;以及清零,整點報時功能。關(guān)鍵詞:EDA技術(shù);FPGA;數(shù)字鐘;VHDL語言;自頂向下目 錄 1 緒論51.1 研究背景51.2 研究目的61.3 研究方法和內(nèi)容62 本軟件開發(fā)環(huán)境72.1 FPGA簡介72.1.1 FPGA概述72.1.2 FPGA基本結(jié)構(gòu)72.1.3 FPGA系統(tǒng)設(shè)計流程82.1.4 FPGA開發(fā)編程原理92.2 QuartusII設(shè)計平臺92.2.1 軟件開發(fā)環(huán)

5、境及基本流程92.2.2 軟件的具體設(shè)計流程103 總體設(shè)計方案114 軟件設(shè)計與功能實現(xiàn)124.1 分頻模塊功能的軟件設(shè)計與實現(xiàn)124.2 計時校時模塊功能的軟件設(shè)計與實現(xiàn)134.3 整點報時模塊功能的軟件設(shè)計與實現(xiàn)134.4 掃描譯碼顯示模塊功能的軟件設(shè)計與實現(xiàn)134.5 頂層模塊功能的軟件設(shè)計與實現(xiàn)145 系統(tǒng)功能調(diào)試及分析146 結(jié)論15參考文獻161 緒論現(xiàn)代社會的標志之一就是信息產(chǎn)品的廣泛使用,而且是產(chǎn)品的性能越來越強,復(fù)雜程度越來越高,更新步伐越來越快。支撐信息電子產(chǎn)品高速發(fā)展的基礎(chǔ)就是微電子制造工藝水平的提高和電子產(chǎn)品設(shè)計開發(fā)技術(shù)的發(fā)展。前者以微細加工技術(shù)為代表,而后者的代表就

6、是電子設(shè)計自動化(electronic design automatic,EDA)技術(shù)。ASIC是專用的系統(tǒng)集成電路,是一種帶有邏輯處理的加速處理器。而FPGA是特殊的ASIC芯片,與其他的ASIC芯片相比,它具有設(shè)計開發(fā)周期短、設(shè)計制造成本低、開發(fā)工具先進、標準產(chǎn)品無需測試、質(zhì)量穩(wěn)定以及可實時在線檢測等優(yōu)點。本設(shè)計采用的VHDL語言是一種全方位的硬件描述語言,具有極強的描述能力,能支持系統(tǒng)行為級、寄存器傳輸級和邏輯門級三個不同層次的設(shè)計;支持結(jié)構(gòu)、數(shù)據(jù)流、行為三種描述形式的混合描述、覆蓋面廣、抽象能力強,因此在實際應(yīng)用中越來越廣泛。數(shù)字化的鐘表給人們帶來了極大的方便。近些年,隨著科技的發(fā)展和

7、社會的進步,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,有電子鬧鐘、數(shù)字鬧鐘等等。而基于FPGA的數(shù)字鐘設(shè)計能極大的擴展其功能。1.1 研究背景當(dāng)今電子產(chǎn)品正向功能多元化,體積最小化,功耗最低化的方向發(fā)展。它與傳統(tǒng)的電子產(chǎn)品在設(shè)計上的顯著區(qū)別是大量使用大規(guī)??删幊踢壿嬈骷?,使產(chǎn)品的性能提高,體積縮小,功耗降低。同時廣泛運用現(xiàn)代計算機技術(shù),提高產(chǎn)品的自動化程度和競爭力,縮短研發(fā)周期。EDA技術(shù)正是為了適應(yīng)現(xiàn)代電子技術(shù)的要求,吸收眾多學(xué)科最新科技成果而形成的一門新技術(shù)。EDA是電子設(shè)計自動化(Elcctronic Design

8、Automation)的縮寫,是90年代初從CAD(計算機輔助設(shè)備),CAM(計算機輔助制造),CAT(計算機輔助測試)和CAE(計算機輔助工程)的概念發(fā)展而來的。EDA技術(shù)是以計算機為工具,根據(jù)硬件描述語言VHDL完成設(shè)計文件,自動的完成邏輯編譯,化簡,分割,綜合及優(yōu)化,布局布線,仿真以及對特定目標芯片的適配編譯和編程下載等工作。典型的EDA工具中必須包含兩個特殊的軟件包,即綜合器和適配器。綜合器的功能就是將設(shè)計者在EDA平臺上完成的針對某個系統(tǒng)項目的VHDL原理圖或狀態(tài)圖形描述,針對給定的硬件系統(tǒng)組件,進行編譯,優(yōu)化,轉(zhuǎn)換和綜合,最終獲得我們將實現(xiàn)的功能的描述文件。綜合器在工作前,必須給定

9、要實現(xiàn)的硬件結(jié)構(gòu)參數(shù),它的功能就是將軟件描述與給定的硬件結(jié)構(gòu)用一定的方式聯(lián)系起來,也就是說綜合器是軟件描述與硬件實現(xiàn)的一座橋梁。綜合過程就是將電路的高級語言描述轉(zhuǎn)換成低級的,可與目標器件CPLD相映射的網(wǎng)表文件。適配器的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置與指定的目標器件中,產(chǎn)生最終的下載文件。適配器所選的目標器件(CPLD芯片)必須包含于在綜合器中已指定的目標器件系列。本次數(shù)字鐘設(shè)計利用VHDL硬件描述語言和圖形輸入相結(jié)合的編程方式,并通過可編程邏輯器件FPGA進行硬件設(shè)計,用LED數(shù)碼管動態(tài)顯示計時結(jié)果。數(shù)字鐘可以由各種技術(shù)實現(xiàn),如單片機等。利用可編程邏輯器件具有其他方式?jīng)]有的特點,它具有成

10、功率高,理論與實踐結(jié)合緊密,體積小,容量大,I/O口豐富,易編程和加密等特點,并且它還具有開放的界面,豐富的設(shè)計庫,模塊化的工具等優(yōu)良性能,應(yīng)用非常方便。因此,本設(shè)計采用可編程邏輯器件FPGA來實現(xiàn)。1.2 研究目的現(xiàn)在是一個知識爆炸的新時代。新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月異??梢哉f,電子技術(shù)的應(yīng)用無處不在,電子技術(shù)正在不斷地改變我們的生活,改變著我們的世界。鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、定時啟閉電路、定時開關(guān)烘箱、通斷動力設(shè)備,甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字

11、鐘及擴大其應(yīng)用,有著非?,F(xiàn)實的意義。1.3 研究方法和內(nèi)容本設(shè)計主要研究基于FPGA的數(shù)字鐘,采用EDA作為開發(fā)工具,VHDL語言和圖形輸入為硬件描述語言,采用自頂向下的設(shè)計思想,QuartusII軟件作為運行程序的平臺。設(shè)計的數(shù)字鐘時間以24小時為一個周期,用LED數(shù)碼管動態(tài)顯示時、分、秒。具有清零和整點報時功能,可以對小時,分鐘進行單獨校對,使其校正到標準時間。校對時間由按鍵進行控制,為了保證計時的穩(wěn)定及準確,須由晶體振蕩器提供時間基準信號并經(jīng)分頻得到。2 本軟件開發(fā)環(huán)境2.1 FPGA簡介2.1.1 FPGA概述FPGA是現(xiàn)場可編程門陣列(Field Programmable Gate

12、Array)的簡稱,與之相應(yīng)的CPLD是復(fù)雜可編程邏輯器件(Complex Programmable Logic Device)的簡稱,兩者的功能基本相同,只是實現(xiàn)原理略有不同,有時可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件CPLD/FPGA。CPLD/FPGA幾乎能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的74電路。它如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入或硬件描述語言自由的設(shè)計一個數(shù)字系統(tǒng)。通過軟件仿真可以事先驗證設(shè)計的正確性,在PCB完成以后,利用CPLD/FPGA的在線修改功能,隨時修改設(shè)計而不必改動硬件電路。使用CPLD/FPGA開發(fā)數(shù)字電路,可以大大縮短

13、設(shè)計時間,減少PCB面積,提高系統(tǒng)的可靠性。這些優(yōu)點使得CPLD/FPGA技術(shù)在20世紀90年代以后得到飛速的發(fā)展,同時也大大推動了EDA軟件和硬件描述語言VHDL的進步。2.1.2 FPGA基本結(jié)構(gòu)FPGA具有掩膜可編程門陣列的通用結(jié)構(gòu),它由邏輯功能塊排成陣列,并由可編程的互連資源連接這些邏輯功能塊來實現(xiàn)不同的設(shè)計。FPGA一般由3種可編程電路和一個用于存放編程數(shù)據(jù)的靜態(tài)存儲器SRAM組成。這3種可編程電路是:可編程邏輯模塊(CLB-Configurable Logic Block)、輸入/輸出模塊(IOB-I/O Block)和互連資源(IRInterconnect Resource)。可

14、編程邏輯模塊CLB是實現(xiàn)邏輯功能的基本單元,它們通常規(guī)則的排列成一個陣列,散布于整個芯片;可編程輸入/輸出模塊(IOB)主要完成芯片上的邏輯與外部封裝腳的接口,它通常排列在芯片的四周;可編程互連資源包括各種長度的連接線段和一些可編程連接開關(guān),它們將各個CLB之間或CLB、IOB之間以及IOB之間連接起來,構(gòu)成特定功能的電路。2.1.3 FPGA系統(tǒng)設(shè)計流程一般說來,一個比較大的完整的項目應(yīng)該采用層次化的描述方法:分為幾個較大的模塊,定義好各功能模塊之間的接口,然后各個模塊再細分去具體實現(xiàn),這就是自頂向下的設(shè)計方法。目前這種高層次的設(shè)計方法已被廣泛采用。高層次設(shè)計只是定義系統(tǒng)的行為特征,可以不涉

15、及實現(xiàn)工藝,因此還可以在廠家綜合庫的支持下,利用綜合優(yōu)化工具將高層次描述轉(zhuǎn)換為針對某種工藝優(yōu)化的網(wǎng)絡(luò)表,使工藝轉(zhuǎn)化變得輕而易舉。CPLD/FPGA系統(tǒng)設(shè)計的工作流程如圖1所示。系統(tǒng)劃分編譯器代碼級功能仿真綜合器適配前時序仿真適配器CPLD/FPGA實現(xiàn)適配后仿真模型適配后時序仿真適配報告ASIC實現(xiàn)VHDL代碼或圖形方式輸入仿真綜合庫器件編程文件圖1 CPLD/FPGA系統(tǒng)設(shè)計流程2.1.4 FPGA開發(fā)編程原理硬件設(shè)計需要根據(jù)各種性能指標、成本、開發(fā)周期等因素,確定最佳的實現(xiàn)方案,畫出系統(tǒng)框圖,選擇芯片,設(shè)計PCB并最終形成樣機。CPLD/FPGA軟件設(shè)計可分為兩大塊:編程語言和編程工具。編

16、程語言主要是VHDL硬件描述語言;編程工具主要是兩大廠家Altera和Xilinx的集成綜合EDA軟件QuartusII以及第三方工具。具體的設(shè)計輸入方式有以下幾種:1.VHDL語言。VHDL既可以描述底層設(shè)計,也可以描述頂層的設(shè)計,但它不容易做到較高的工作速度和芯片利用率。用這種方式描述的項目最后所能達到的性能與設(shè)計人員的水平、經(jīng)驗以及綜合軟件有很大的關(guān)系。2.圖形方式。可以分為電路原理圖描述,狀態(tài)機描述和波形描述3種形式。電路原理圖方式描述比較直觀和高效,對綜合軟件的要求不高。一般大都使用成熟的IP核和中小規(guī)模集成電路所搭成的現(xiàn)成電路,整體放到一片可編程邏輯器件的內(nèi)部去,其硬件工作速度和芯

17、片利用率很高,但是當(dāng)項目很大時,該方法就顯得有些繁瑣;狀態(tài)機描述主要用來設(shè)計基于狀態(tài)機思想的時序電路。在圖形的方式下定義好各個工作狀態(tài),然后在各個狀態(tài)上輸入轉(zhuǎn)換條件以及相應(yīng)的輸入輸出,最后生成HDL語言描述,送去綜合軟件綜合到可編程邏輯器件的內(nèi)部。由于狀態(tài)機到HDL語言有一種標準的對應(yīng)描述方式,所以這種輸入方式最后所能達到的工作速度和芯片利用率主要取決于綜合軟件;波形描述方式是基于真值表的一種圖形輸入方式,直接描述輸入與輸出的波形關(guān)系。2.2 QuartusII設(shè)計平臺2.2.1 軟件開發(fā)環(huán)境及基本流程本設(shè)計所用軟件主要是QuartusII,在此對它做一些介紹。QuartusII是Altera

18、提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界上最大的可編程邏輯器件供應(yīng)商之一。QuartusII提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,使設(shè)計者能方便地進行設(shè)計輸入、快速處理和器件編程。Altera公司的QuartusII 開發(fā)工具人機界面友好、易于使用、性能優(yōu)良,并自帶編譯、仿真功能。QuartusII軟件完全支持VHDL設(shè)計流程,其內(nèi)部嵌有VHDL邏輯綜合器。QuartusII 也可以利用第三方的綜合工具,如FPGA Compiler II,并能直接調(diào)用這些工具。同樣,QuartusII具備仿真功能,同時也支持第三方的仿真工具。此外,QuartusII與MATLAB和DSP Build

19、er結(jié)合,可以進行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實現(xiàn)的關(guān)鍵EDA技術(shù)。QuartusII包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器、適配器、裝配器、時序分析器、設(shè)計輔助模塊、EDA網(wǎng)表文件生成器、編輯數(shù)據(jù)接口等。可以通過選擇Start Compilation來運行所有的編譯器模塊,也可以通過選擇Start單獨運行各個模塊。在Compiler Tool窗口中,可以打開該模塊的設(shè)置文件或報告文件,或者打開其它相關(guān)窗口。在設(shè)計輸入之后,QuartusII的編譯器將給出設(shè)計輸入的錯誤報告。QuartusII擁有性能良好的設(shè)計錯誤定位器,用于確定文本或圖形設(shè)計中的錯誤。在進行

20、編譯后,可對設(shè)計進行時序仿真。在仿真前,需要利用波形編輯器編輯一個波形激勵文件。編譯和仿真檢測無誤后,便可將下載信息通過QuartusII提供的編程器下載入目標器件中了。2.2.2 軟件的具體設(shè)計流程1.建立工作庫文件夾和編輯設(shè)計文件首先建立工作庫目錄,以便存儲工程項目設(shè)計文件。任何一項設(shè)計都是一項工程(Project),都必須首先為此工程建立一個放置與此工程相關(guān)的所有設(shè)計文件的文件夾。此文件夾將被EDA軟件默認為工作庫。 一般來說,不同的設(shè)計項目最好放在不同的文件夾中,而同一工程的所有文件都必須放在同一文件夾中。2.創(chuàng)建工程使用New Project Wizard可以為工程指定工作目錄、分配

21、工程名稱以及指定最高層設(shè)計實體的名稱,還可以指定要在工程中使用的設(shè)計文件、其它源文件、用戶庫和EDA工具,以及目標器件系列和具體器件等。3.編譯前設(shè)置在對工程進行編譯處理前,必須做好必要的設(shè)置。步驟如下:a.選擇FPGA目標芯片b.選擇配置器件的工作方式c.選擇配置器件和編程方式d.選擇輸出設(shè)置e.選擇目標器件閑置引腳的狀態(tài)4.全程編譯QuartusII編譯器是由一系列處理模塊構(gòu)成的,這些模塊負責(zé)對設(shè)計項目的檢錯、邏輯綜合、結(jié)構(gòu)綜合、輸出結(jié)果的編輯配置,以及時序分析。在這一過程中,將設(shè)計項目適配到FPGA目標器中,同時產(chǎn)生多種用途的輸出文件。編譯器首先檢查出工程設(shè)計文件中可能的錯誤信息,供設(shè)計

22、者排除。然后產(chǎn)生一個結(jié)構(gòu)化的以網(wǎng)表文件表達的電路原理圖文件。如果編譯成功,可以見到工程管理窗口左上角顯示了工程(例如工程div)的層次結(jié)構(gòu)和其中結(jié)構(gòu)模塊耗用的邏輯宏單元數(shù);在此欄下是編譯處理流程,包括數(shù)據(jù)網(wǎng)表建立、邏輯綜合、適配、配置文件裝配和時序分析等;最下欄是編譯處理信息;中欄式編譯報告項目選擇菜單,單擊其中各項可以詳細了解編譯與分析結(jié)果。5.時序和功能仿真工程編譯通過后,必須建立VWF文件對其功能和時序性質(zhì)進行仿真測試,以了解設(shè)計結(jié)果是否滿足原設(shè)計要求。可以自己設(shè)置輸入信號,再由功能仿真出輸出信號。這能在軟件上實現(xiàn)硬件的功能,大大提高了硬件電路調(diào)試成功率。6.編程下載編程下載指將編程數(shù)據(jù)

23、放到具體的可編程器件中去。如果以上所有的過程都沒有發(fā)現(xiàn)問題,即滿足設(shè)計要求,就可以將適配器產(chǎn)生的配置/下載文件通過FPGA編程器或下載電纜載入目標芯片F(xiàn)PGA中。對FPGA來說就是將數(shù)據(jù)文件“配置”到FPGA中去。3 總體設(shè)計方案數(shù)字鐘實際上是一個對標準頻率(1HZ)進行計數(shù)的計數(shù)電路。由于計數(shù)的起始時間不可能與標準時間一致,故需要在電路上加一個校時電路,同時標準的1HZ時間信號必須做到準確穩(wěn)定。通常使用石英晶體振蕩器電路構(gòu)成數(shù)字鐘。圖2所示為數(shù)字鐘的一般構(gòu)成框圖。主要包括晶振電路、復(fù)位電路、按鍵電路、譯碼掃描和顯示電路、報時電路。FPGALED數(shù)碼管譯碼電路 按鍵電路LED數(shù)碼管顯示電路 復(fù)

24、位電路LED數(shù)碼管掃描電路 晶振電路整點報時電路 圖2 數(shù)字鐘硬件構(gòu)成框圖晶振電路產(chǎn)生穩(wěn)定的10MHZ的高頻脈沖信號,作為數(shù)字鐘的時間基準,然后經(jīng)過軟件分頻10000次輸出標準秒脈沖1HZ。秒計數(shù)器滿60后向分計數(shù)器進位,分計數(shù)器滿60后向小時計數(shù)器進位,小時計數(shù)器按照“24翻1”規(guī)律計數(shù)。計滿后各計數(shù)器清零,重新計數(shù)。計數(shù)器的輸出分別經(jīng)譯碼器送數(shù)碼管顯示。計時出現(xiàn)誤差時,可以用校時電路校時、校分。在控制信號中除了一般的校時信號外,還有時鐘清零信號,可以使數(shù)字鐘復(fù)位清零??刂菩盘栍?個按鍵S1、S2、S3輸入,分別實現(xiàn)校時、校分、復(fù)位清零功能。掃描譯碼顯示電路由七段譯碼器完成,顯示由8位數(shù)碼管

25、構(gòu)成。4 軟件設(shè)計與功能實現(xiàn)4.1 分頻模塊功能的軟件設(shè)計與實現(xiàn) 晶體振蕩器是構(gòu)成數(shù)字式時鐘的核心,晶振的穩(wěn)定度及頻率的精度決定了數(shù)字鐘計時的準確程度,它保證了時鐘的走時準確及穩(wěn)定。石英晶體的選頻特性非常好,只有某一頻率點的信號可以通過它,其它頻率段的信號均會被它所衰減,而且,振蕩信號的頻率與振蕩電路中的R、C元件的數(shù)值無關(guān)。因此,這種振蕩電路輸出的是準確度極高的信號。然后再利用分頻電路,將其輸出信號轉(zhuǎn)變?yōu)槊胄盘?,其組成框圖如圖3。秒信號分頻電路石英晶體振蕩電路秒信號圖3 秒信號產(chǎn)生電路框圖本系統(tǒng)使用的晶振電路給數(shù)字鐘提供一個頻率穩(wěn)定準確的10MHz的方波信號,其輸出至分頻電路。經(jīng)分頻后輸出1

26、HZ的標準秒信號CLK1HZ,用于秒信號,校時電路和報時電路。4.2 計時校時模塊功能的軟件設(shè)計與實現(xiàn)時間計數(shù)模塊由60進制的秒計數(shù),60進制的分計數(shù)和24進制的小時計數(shù)分別實現(xiàn)。當(dāng)數(shù)字鐘處于正常計數(shù)狀態(tài)時,秒計數(shù)器對1Hz 的標準信號進行計數(shù),在其進位輸出信號作為分計數(shù)器的使能端,而分計數(shù)器的進位輸出信號又作為時計數(shù)器的使能端。數(shù)字鐘除了正常計時外,通過兩個按鍵S1,S2分別實現(xiàn)對小時、分鐘的調(diào)整。這兩個按鍵的作用,就是用來產(chǎn)生時計數(shù)器、分計數(shù)器的另一路使能信號按鍵使能信號.由于它們的基準信號都是1Hz ,故有按鍵使能信號時,它們會迅速增加,達到調(diào)整時間的目的。4.3 整點報時模塊功能的軟件

27、設(shè)計與實現(xiàn)整點報時模塊是根據(jù)秒、分的輸出數(shù)值,與程序設(shè)定的時間作比較,當(dāng)時間為59 分55 秒、56 秒、57 秒、58 秒、59 秒時,整點報時模塊的LED燈控制信號有輸出,LED燈閃爍。4.4 掃描譯碼顯示模塊功能的軟件設(shè)計與實現(xiàn) 動態(tài)掃描電路將計數(shù)器輸出的8421BCD碼轉(zhuǎn)換為數(shù)碼管需要的邏輯狀態(tài),并且輸出數(shù)碼管的片選信號和位選信號。所謂動態(tài)掃描顯示方式是在顯示某一位LED顯示塊的數(shù)據(jù)的時候,讓其它位不顯示,然后在顯示下一位的數(shù)據(jù),同時關(guān)閉其他顯示塊。這樣做可以使每一個顯示塊顯示與自己相對應(yīng)的數(shù)據(jù)。只要保證每一位顯示的時間間隔不要太大,利用人眼的視覺暫留的現(xiàn)象,就可以造成各位數(shù)據(jù)同時顯示

28、的假象。 顯示譯碼電路,選擇八位七段數(shù)碼管作為顯示單元電路。計數(shù)器實現(xiàn)了對時間的累計并以8421BCD碼的形式輸送到動態(tài)掃描模塊,由譯碼電路將8421BCD碼轉(zhuǎn)換為七段碼,再由數(shù)碼管顯示出來。4.5 頂層模塊功能的軟件設(shè)計與實現(xiàn)將分頻模塊,計時校時模塊,報時模塊和顯示模塊創(chuàng)建的符號文件在新建的頂層模塊圖形編輯文件中調(diào)用,進行模塊符號間的連線,設(shè)置輸入,輸出引腳。編寫好頂層模塊后,進行編譯仿真,驗證程序的正確性。5 系統(tǒng)功能調(diào)試及分析本系統(tǒng)只含有FPGA自編程硬件設(shè)計電路,整個系統(tǒng)比較簡單。因此在系統(tǒng)調(diào)試中采用自低向上的調(diào)試方法,也就是先進行各個單元模塊的軟件編譯,在各個單元模塊調(diào)試好后再把各個

29、單元模塊綜合起來進行系統(tǒng)的整體的編譯和功能仿真。數(shù)字鐘系統(tǒng)的整體功能仿真波形圖如下圖4。功能仿真無誤后,通過下載電纜將設(shè)計文件加載到目標器件FPGA,通過控制按鍵觀察LED顯示是否達到數(shù)字鐘的設(shè)計要求。圖4 數(shù)字鐘系統(tǒng)的整體功能仿真波形圖6 結(jié)論本文提出了一種基于FPGA的數(shù)字鐘設(shè)計方案,從硬件和軟件兩個方面詳細地介紹了設(shè)計思想和過程,最終設(shè)計出了數(shù)字鐘,將設(shè)計程序加載到實驗箱上運行調(diào)試后,時、分、秒能夠正常計數(shù),并能由控制鍵分別校正時、分的顯示,整點報時功能正常。最終結(jié)果與預(yù)期效果一致,完成了預(yù)期的設(shè)計任務(wù)。論文取得了如下結(jié)果:1.采用了FPGA芯片CycloneII系列EP2C35F672

30、C8作為核心器件。設(shè)計的數(shù)字鐘系統(tǒng)的硬件電路,能夠完成數(shù)字鐘的校時,計時,報時,顯示等實時任務(wù)。2.運用自頂向下的思想。將整個系統(tǒng)分成幾個模塊分別設(shè)計,再用頂層模塊塊將它們聯(lián)系起來,實現(xiàn)數(shù)字鐘整體的功能,降低了系統(tǒng)設(shè)計的難度。3.采用了VHDL語言為主,圖形輸入為輔的編程方法。優(yōu)點是編程方法靈活,而且編寫的程序具有很好的移植性,同樣適用于其他FPGA芯片的數(shù)字鐘設(shè)計。4.采用QuartusII軟件進行編譯和仿真,可以不管硬件而先進行軟件的仿真,并能根據(jù)仿真結(jié)果分析設(shè)計存在的問題和缺陷,從而進行程序的調(diào)試和完善,這大大的提高了編程的成功率。參考文獻1 廖日坤,CPLD/FPGA嵌入式應(yīng)用開發(fā)技術(shù)

31、白金手冊,中國電力出版社,2003,212-218。2 王開軍,姜宇柏,面向CPLD/FPGA的VHDL設(shè)計,機械工業(yè)出版社,2006,28-65。3 趙保經(jīng),中國集成電路大全,國防工業(yè)出版社,1985。4 高吉祥,電子技術(shù)基礎(chǔ)實驗與課程設(shè)計,電子工業(yè)出版社,2002。5 呂思忠,數(shù)子電路實驗與課程設(shè)計,哈爾濱工業(yè)大學(xué)出版社,2001。6 趙志杰,集成電路應(yīng)用識圖方法,機械工業(yè)出版社,2003,35-40。7 張慶雙,電子元器件的選用與檢測,機械工業(yè)出版社,2003。8 譚會生,張昌凡,EDA技術(shù)及應(yīng)用,西安電子科技大學(xué)出版社,2002。9 李可,數(shù)字鐘電路及應(yīng)用M,北京:電子工業(yè)出版社,19

32、96。附 錄數(shù)字鐘子模塊程序1.分頻模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity FP isport(clk: in std_logic;clk1HZ: out std_logic);end FP;architecture behave of FP issignal clk_count1: std_logic_vector(13 downto 0);begin process(clk)begin if(clk'e

33、vent and clk='1')thenif(clk_count1<10000)then clk_count1<=clk_count1+1;else clk_count1<="00000000000001"end if;end if;end process;clk1HZ<=clk_count1(13);END BEHAVE;2.計時校時模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.

34、all;entity JS isport(clkHZ: in std_logic;clk: in std_logic;rst: in std_logic;s1, s2: in std_logic;sec1,sec10,min1,min10,hour1,hour10: BUFFER INTEGER);end JS;architecture behave of JS isBEGINprocess(clkHZ,rst)begin if(rst='0') thensec1<=0;sec10<=0;min1<=0;min10<=0;hour1<=0;hour10<=0;elsif(clkHZ'event and clkHZ='1')thenif(s1='0') thenif(hour1=9) thenhour1<=0; hour10<=hour10+1;elsif(hour10=2 and hour1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論