基于FPGA的數字鐘設計說明_第1頁
基于FPGA的數字鐘設計說明_第2頁
基于FPGA的數字鐘設計說明_第3頁
基于FPGA的數字鐘設計說明_第4頁
基于FPGA的數字鐘設計說明_第5頁
已閱讀5頁,還剩13頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

大學本科畢業設計〔論文.17/18摘要伴隨著集成電路技術的發展,電子設計自動化<EDA>技術逐漸成為數字電路設計的重要手段。基于FPGA的EDA技術的發展和應用領域的擴大與深入,使得EDA技術在電子信息,通信,自動控制,計算機等領域的重要性日益突出。本設計給出了一種基于FPGA的多功能數字鐘方法,采用EDA作為開發工具,VHDL語言和圖形輸入為硬件描述語言,QuartusII作為運行程序的平臺,編寫的程序經過調試運行,波形仿真驗證,下載到EDA實驗箱的FPGA芯片,實現了設計目標。系統主芯片采用CycloneII系列EP2C35F672C8。采用自頂向下的設計思想,將系統分為五個模塊:分頻模塊、計時模塊、報時模塊、顯示模塊、頂層模塊。用VHDL語言實現各個功能模塊,圖形輸入法生成頂層模塊.最后用QuartusII軟件進行功能仿真,驗證數字鐘設計的正確性。測試結果表明本設計實現了一個多功能的數字鐘功能,具有時、分、秒計時顯示功能,以24小時循環計時;具有校正小時和分鐘的功能;以及清零,整點報時功能。關鍵詞:EDA技術;FPGA;數字鐘;VHDL語言;自頂向下AbstractAccompaniedbythedevelopmentofintegratedcircuittechnology,electronicdesignautomation<EDA>technologyisbecominganimportantmeansofdigitalcircuitdesign.FPGAEDAtechnologydevelopmentandexpansionofapplicationfieldsandin-depth,theimportanceofEDAtechnologyinthefieldofelectronicinformation,communication,automaticcontrol,computer,etc.havebecomeincreasinglyprominent.

ThisdesigngivesaFPGA-basedmultifunctionaldigitalclockusingEDAasadevelopmenttool,VHDLlanguageandgraphicalinputhardwaredescriptionlanguage,theQuartusIIasaplatformforrunningtheprogram,writtenproceduresdebuggingandrunning,thewaveformsimulationdownloadedtotheFPGAchiptoachievethedesigngoals.

ThemainsystemchipCycloneIIseriesEP2C35F672C8.Adoptedatopdwndesignideas,thesystemisdividedintofivemodules:frequencymodule,timingmodule,timermodule,displaymodule,thetop-levelmodule.WithVHDLvariousfunctionalmodules,graphicalinputmethodtogeneratethetop-levelmodule.LastQuartusIIundersimulation,toverifythecorrectnessofthedigitalclockdesign.

Thetestresultsshowthatthedesignofamultifunctionaldigitalclock,withsecondstimedisplay,24-hourcycletiming;hasaschool,cleared,andthewholepointtimekeepingfunctions.Keywords:EDAtechnology;FPGA;VHDLlanguage;top-down;digitalclock目錄TOC\o"1-3"\h\u230581緒論454111.1研究背景437661.2研究目的5100751.3研究方法和內容5318082本軟件開發環境5215752.1FPGA簡介5282852.1.1FPGA概述614512.1.2FPGA基本結構626791圖2-1CLB基本結構8307962.1.3FPGA系統設計流程8186822.1.4FPGA開發編程原理1071132.2QuartusII設計平臺10188842.2.1軟件開發環境及基本流程10117272.2.2軟件的具體設計流程11215463總體設計方案12215923.1數字鐘的硬件構成原理12312313.2軟件設計的功能框圖和流程框圖13221794軟件設計與功能實現15223634.1分頻模塊功能的軟件設計與實現15212374.2計時校時模塊功能的軟件設計與實現16250434.3整點報時模塊功能的軟件設計與實現17326194.4掃描譯碼顯示模塊功能的軟件設計與實現1767804.5頂層模塊功能的軟件設計與實現18139305系統功能調試及分析183026結論及展望19213526.1結論19231916.2展望2019236參考文獻2210267附錄23基于FPGA的數字鐘設計1緒論現代社會的標志之一就是信息產品的廣泛使用,而且是產品的性能越來越強,復雜程度越來越高,更新步伐越來越快。支撐信息電子產品高速發展的基礎就是微電子制造工藝水平的提高和電子產品設計開發技術的發展。前者以微細加工技術為代表,而后者的代表就是電子設計自動化〔electronicdesignautomatic,EDA技術。ASIC是專用的系統集成電路,是一種帶有邏輯處理的加速處理器。而FPGA是特殊的ASIC芯片,與其他的ASIC芯片相比,它具有設計開發周期短、設計制造成本低、開發工具先進、標準產品無需測試、質量穩定以及可實時在線檢測等優點。本設計采用的VHDL語言是一種全方位的硬件描述語言,具有極強的描述能力,能支持系統行為級、寄存器傳輸級和邏輯門級三個不同層次的設計;支持結構、數據流、行為三種描述形式的混合描述、覆蓋面廣、抽象能力強,因此在實際應用中越來越廣泛。數字化的鐘表給人們帶來了極大的方便。近些年,隨著科技的發展和社會的進步,人們對數字鐘的要求也越來越高,傳統的時鐘已不能滿足人們的需求。多功能數字鐘不管在性能還是在樣式上都發生了質的變化,有電子鬧鐘、數字鬧鐘等等。而基于FPGA的數字鐘設計能極大的擴展其功能。1.1研究背景當今電子產品正向功能多元化,體積最小化,功耗最低化的方向發展。它與傳統的電子產品在設計上的顯著區別是大量使用大規模可編程邏輯器件,使產品的性能提高,體積縮小,功耗降低。同時廣泛運用現代計算機技術,提高產品的自動化程度和競爭力,縮短研發周期。EDA技術正是為了適應現代電子技術的要求,吸收眾多學科最新科技成果而形成的一門新技術。EDA是電子設計自動化〔ElcctronicDesignAutomation的縮寫,是90年代初從CAD〔計算機輔助設備,CAM<計算機輔助制造>,CAT〔計算機輔助測試和CAE〔計算機輔助工程的概念發展而來的。EDA技術是以計算機為工具,根據硬件描述語言VHDL完成設計文件,自動的完成邏輯編譯,化簡,分割,綜合及優化,布局布線,仿真以及對特定目標芯片的適配編譯和編程下載等工作。典型的EDA工具中必須包含兩個特殊的軟件包,即綜合器和適配器,綜合器的功能就是將設計者在EDA平臺上完成的針對某個系統項目的VHDL原理圖或狀態圖形描述,針對給定的硬件系統組件,進行編譯,優化,轉換和綜合,最終獲得我們將實現的功能的描述文件。綜合器在工作前,必須給定要實現的硬件結構參數,它的功能就是將軟件描述與給定的硬件結構用一定的方式聯系起來,也就是說綜合器是軟件描述與硬件實現的一座橋梁。綜合過程就是將電路的高級語言描述轉換成低級的,可與目標器件CPLD相映射的網表文件。適配器的功能是將由綜合器產生的網表文件配置與指定的目標器件中,產生最終的下載文件。適配器所選的目標器件〔CPLD芯片必須包含于在綜合器中已指定的目標器件系列。本次數字鐘設計利用VHDL硬件描述語言和圖形輸入相結合的編程方式,并通過可編程邏輯器件FPGA進行硬件設計,用LED數碼管動態顯示計時結果。數字鐘可以由各種技術實現,如單片機等。利用可編程邏輯器件具有其他方式沒有的特點,它具有成功率高,理論與實踐結合緊密,體積小,容量大,I/O口豐富,易編程和加密等特點,并且它還具有開放的界面,豐富的設計庫,模塊化的工具等優良性能,應用非常方便。因此,本設計采用可編程邏輯器件FPGA來實現。1.2研究目的現在是一個知識爆炸的新時代。新產品、新技術層出不窮,電子技術的發展更是日新月異。可以說,電子技術的應用無處不在,電子技術正在不斷地改變我們的生活,改變著我們的世界。鐘表的數字化給人們生產生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、定時啟閉電路、定時開關烘箱、通斷動力設備,甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數字化為基礎的。因此,研究數字鐘及擴大其應用,有著非常現實的意義。1.3研究方法和內容本設計主要研究基于FPGA的數字鐘,采用EDA作為開發工具,VHDL語言和圖形輸入為硬件描述語言,采用自頂向下的設計思想,QuartusII軟件作為運行程序的平臺。設計的數字鐘時間以24小時為一個周期,用LED數碼管動態顯示時、分、秒。具有清零和整點報時功能,可以對小時,分鐘進行單獨校對,使其校正到標準時間。校對時間由按鍵進行控制,為了保證計時的穩定及準確,須由晶體振蕩器提供時間基準信號并經分頻得到。2本軟件開發環境2.1FPGA簡介2.1.1FPGA概述FPGA是現場可編程門陣列<FieldProgrammableGateArray>的簡稱,與之相應的CPLD是復雜可編程邏輯器件<ComplexProgrammableLogicDevice>的簡稱,兩者的功能基本相同,只是實現原理略有不同,有時可以忽略這兩者的區別,統稱為可編程邏輯器件CPLD/FPGA。CPLD/FPGA幾乎能完成任何數字器件的功能,上至高性能CPU,下至簡單的74電路。它如同一張白紙或是一堆積木,工程師可以通過傳統的原理圖輸入或硬件描述語言自由的設計一個數字系統。通過軟件仿真可以事先驗證設計的正確性,在PCB完成以后,利用CPLD/FPGA的在線修改功能,隨時修改設計而不必改動硬件電路。使用CPLD/FPGA開發數字電路,可以大大縮短設計時間,減少PCB面積,提高系統的可靠性。這些優點使得CPLD/FPGA技術在20世紀90年代以后得到飛速的發展,同時也大大推動了EDA軟件和硬件描述語言VHDL的進步。2.1.2FPGA基本結構FPGA具有掩膜可編程門陣列的通用結構,它由邏輯功能塊排成陣列,并由可編程的互連資源連接這些邏輯功能塊來實現不同的設計。FPGA一般由3種可編程電路和一個用于存放編程數據的靜態存儲器SRAM組成。這3種可編程電路是:可編程邏輯模塊〔CLB--ConfigurableLogicBlock、輸入/輸出模塊〔IOB--I/OBlock和互連資源〔IR—InterconnectResource。可編程邏輯模塊CLB是實現邏輯功能的基本單元,它們通常規則的排列成一個陣列,散布于整個芯片;可編程輸入/輸出模塊〔IOB主要完成芯片上的邏輯與外部封裝腳的接口,它通常排列在芯片的四周;可編程互連資源包括各種長度的連接線段和一些可編程連接開關,它們將各個CLB之間或CLB、IOB之間以及IOB之間連接起來,構成特定功能的電路。1.CLB是FPGA的主要組成部分。圖1是CLB基本結構框圖,它主要由邏輯函數發生器、觸發器、數據選擇器等電路組成。CLB中3個邏輯函數發生器分別是G、F和H,相應的輸出是G’、F’和H’。G有4個輸入變量G1、G2、G3和G4;F也有4個輸入變量F1、F2、F3和F4。這兩個函數發生器是完全獨立的,均可以實現4輸入變量的任意組合邏輯函數。邏輯函數發生器H有3個輸入信號;前兩個是函數發生器的輸出G’和F’,而另一個輸入信號是來自信號變換電路的輸出H1。這個函數發生器能實現3輸入變量的各種組合函數。這3個函數發生器結合起來,可實現多達9變量的邏輯函數。CLB中有許多不同規格的數據選擇器〔四選一、二選一等,通過對CLB內部數據選擇器的編程,邏輯函數發生器G、F和H的輸出可以連接到CLB輸出端X或Y,并用來選擇觸發器的激勵輸入信號、時鐘有效邊沿、時鐘使能信號以及輸出信號。這些數據選擇器的地址控制信號均由編程信息提供,從而實現所需的電路結構。CLB中的邏輯函數發生器F和G均為查找表結構,其工作原理類似于ROM。F和G的輸入等效于ROM的地址碼,通過查找ROM中的地址表可以得到相應的組合邏輯函數輸出。另外,邏輯函數發生器F和G還可以作為器件內高速RAM或小的可讀寫存儲器使用,它由信號變換電路控制。2.輸入/輸出模塊IOB。IOB提供了器件引腳和內部邏輯陣列之間的連接。它主要由輸入觸發器、輸入緩沖器和輸出觸發/鎖存器、輸出緩沖器組成。每個IOB控制一個引腳,它們可被配置為輸入、輸出或雙向I/O功能。當IOB控制的引腳被定義為輸入時,通過該引腳的輸入信號先送入輸入緩沖器。緩沖器的輸出分成兩路:一路可以直接送到MUX,另一路延時幾個納秒〔或者沒有延時后送到輸入通路D觸發器,再送到數據選擇器。通過編程給數據選擇器不同的控制信息,確定送至CLB陣列的I1和I2是來自輸入緩沖器,還是來自觸發器。當IOB控制的引腳被定義為輸出時,CLB陣列的輸出信號OUT也可以有兩條傳輸途徑:一條是直接經MUX送至輸出緩沖器,另一條是先存入輸出通路D觸發器,再送至輸出緩沖器。IOB輸出端配有兩只MOS管,它們的柵極均可編程,使MOS管導通或截止,分別經上拉電阻接通VCC、地線或者不接通,用以改善輸出波形和負載能力。3.可編程互連資源IR。可編程互連資源IR可以將FPGA內部的CLB和CLB之間、CLB和IOB之間連接起來,構成各種具有復雜功能的系統。IR主要由許多金屬線段構成,這些金屬線段帶有可編程開關,通過自動布線實現各種電路的連接。可編程開關矩CLCLBCLBCLBCLBCLBBCLBCLBCLBCLB矩CLBCLBCLB塊CLBCLBBCLBCLBCLBCLBCLBCLB輸入輸出模塊互連資源圖2-1CLB基本結構2.1.3FPGA系統設計流程一般說來,一個比較大的完整的項目應該采用層次化的描述方法:分為幾個較大的模塊,定義好各功能模塊之間的接口,然后各個模塊再細分去具體實現,這就是自頂向下的設計方法。目前這種高層次的設計方法已被廣泛采用。高層次設計只是定義系統的行為特征,可以不涉及實現工藝,因此還可以在廠家綜合庫的支持下,利用綜合優化工具將高層次描述轉換為針對某種工藝優化的網絡表,使工藝轉化變得輕而易舉。CPLD/FPGA系統設計的工作流程如圖2.2所示。流程說明:1.工程師按照"自頂向下"的設計方法進行系統劃分。2.輸入VHDL代碼,這是設計中最為普遍的輸入方式。此外,還可以采用圖形輸入方式,這種輸入方式具有直觀、容易理解的優點。3.將以上的設計輸入編譯成標準的VHDL文件。4.進行代碼級的功能仿真,主要是檢驗系統功能設計的正確性。這一步驟適用于大型設計,因為對于大型設計來說,在綜合前對源代碼仿真,就可以大大減少設計重復的次數和時間。一般情況下,這一仿真步驟可略去。5.利用綜合器對VHDL源代碼進行綜合優化處理,生成門級描述的網絡表文件,這是將高層次描述轉化為硬件電路的關鍵步驟。綜合優化是針對ASIC芯片供應商的某一產品系列進行的,所以綜合的過程要在相應的廠家綜合庫的支持下才能完成。6.利用產生的網絡表文件進行適配前的時序仿真,仿真過程不涉及具體器件的硬件特性,是較為粗略的。一般的設計,也可略去這一步驟。7.利用適配器將綜合后的網絡表文件針對某一具體的目標器件進行邏輯映射操作,包括底層器件配置、邏輯分割、邏輯優化和布局布線。8.在適配完成后,產生多項設計結果:a.適配報告,包括芯片內部資源利用情況,設計的布爾方程描述情況等;b.適配后的仿真模型;c.器件編程文件。根據適配后的仿真模型,可以進行適配后時序仿真,因為已經得到器件的實際硬件特性〔如時延特性,所以仿真結果能比較精確的預期未來芯片的實際性能。如果仿真結果達不到設計要求,就修改VHDL源代碼或選擇不同速度和品質的器件,直至滿足設計要求。最后將適配器產生的器件編程文件通過編程器或下載電纜載入到目標芯片CPLD/FPGA中。系統劃分系統劃分編譯器代碼級功能仿真綜合器適配前時序仿真適配器CPLD/FPGA實現適配后仿真模型適配后時序仿真適配報告ASIC實現VHDL代碼或圖形方式輸入仿真綜合庫器件編程文件圖2-2CPLD/FPGA系統設計流程2.1.4FPGA開發編程原理硬件設計需要根據各種性能指標、成本、開發周期等因素,確定最佳的實現方案,畫出系統框圖,選擇芯片,設計PCB并最終形成樣機。CPLD/FPGA軟件設計可分為兩大塊:編程語言和編程工具。編程語言主要是VHDL硬件描述語言;編程工具主要是兩大廠家Altera和Xilinx的集成綜合EDA軟件QuartusII以及第三方工具。具體的設計輸入方式有以下幾種:1.VHDL語言。VHDL既可以描述底層設計,也可以描述頂層的設計,但它不容易做到較高的工作速度和芯片利用率。用這種方式描述的項目最后所能達到的性能與設計人員的水平、經驗以及綜合軟件有很大的關系。2.圖形方式。可以分為電路原理圖描述,狀態機描述和波形描述3種形式。電路原理圖方式描述比較直觀和高效,對綜合軟件的要求不高。一般大都使用成熟的IP核和中小規模集成電路所搭成的現成電路,整體放到一片可編程邏輯器件的內部去,其硬件工作速度和芯片利用率很高,但是當項目很大時,該方法就顯得有些繁瑣;狀態機描述主要用來設計基于狀態機思想的時序電路。在圖形的方式下定義好各個工作狀態,然后在各個狀態上輸入轉換條件以及相應的輸入輸出,最后生成HDL語言描述,送去綜合軟件綜合到可編程邏輯器件的內部。由于狀態機到HDL語言有一種標準的對應描述方式,所以這種輸入方式最后所能達到的工作速度和芯片利用率主要取決于綜合軟件;波形描述方式是基于真值表的一種圖形輸入方式,直接描述輸入與輸出的波形關系。2.2QuartusII設計平臺2.2.1軟件開發環境及基本流程本設計所用軟件主要是QuartusII,在此對它做一些介紹。QuartusII是Altera提供的FPGA/CPLD開發集成環境,Altera是世界上最大的可編程邏輯器件供應商之一。QuartusII提供了一種與結構無關的設計環境,使設計者能方便地進行設計輸入、快速處理和器件編程。Altera公司的QuartusII開發工具人機界面友好、易于使用、性能優良,并自帶編譯、仿真功能。QuartusII軟件完全支持VHDL設計流程,其內部嵌有VHDL邏輯綜合器。QuartusII也可以利用第三方的綜合工具,如FPGACompilerII,并能直接調用這些工具。同樣,QuartusII具備仿真功能,同時也支持第三方的仿真工具。此外,QuartusII與MATLAB和DSPBuilder結合,可以進行基于FPGA的DSP系統開發,是DSP硬件系統實現的關鍵EDA技術。QuartusII包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器、適配器、裝配器、時序分析器、設計輔助模塊、EDA網表文件生成器、編輯數據接口等。可以通過選擇StartCompilation來運行所有的編譯器模塊,也可以通過選擇Start單獨運行各個模塊。在CompilerTool窗口中,可以打開該模塊的設置文件或報告文件,或者打開其它相關窗口。在設計輸入之后,QuartusII的編譯器將給出設計輸入的錯誤報告。QuartusII擁有性能良好的設計錯誤定位器,用于確定文本或圖形設計中的錯誤。在進行編譯后,可對設計進行時序仿真。在仿真前,需要利用波形編輯器編輯一個波形激勵文件。編譯和仿真檢測無誤后,便可將下載信息通過QuartusII提供的編程器下載入目標器件中了。2.2.2軟件的具體設計流程1.建立工作庫文件夾和編輯設計文件首先建立工作庫目錄,以便存儲工程項目設計文件。任何一項設計都是一項工程〔Project,都必須首先為此工程建立一個放置與此工程相關的所有設計文件的文件夾。此文件夾將被EDA軟件默認為工作庫。一般來說,不同的設計項目最好放在不同的文件夾中,而同一工程的所有文件都必須放在同一文件夾中。2.創建工程使用NewProjectWizard可以為工程指定工作目錄、分配工程名稱以及指定最高層設計實體的名稱,還可以指定要在工程中使用的設計文件、其它源文件、用戶庫和EDA工具,以及目標器件系列和具體器件等。3.編譯前設置在對工程進行編譯處理前,必須做好必要的設置。步驟如下:a.選擇FPGA目標芯片b.選擇配置器件的工作方式c.選擇配置器件和編程方式d.選擇輸出設置e.選擇目標器件閑置引腳的狀態4.全程編譯QuartusII編譯器是由一系列處理模塊構成的,這些模塊負責對設計項目的檢錯、邏輯綜合、結構綜合、輸出結果的編輯配置,以及時序分析。在這一過程中,將設計項目適配到FPGA目標器中,同時產生多種用途的輸出文件。編譯器首先檢查出工程設計文件中可能的錯誤信息,供設計者排除。然后產生一個結構化的以網表文件表達的電路原理圖文件。如果編譯成功,可以見到工程管理窗口左上角顯示了工程〔例如工程div的層次結構和其中結構模塊耗用的邏輯宏單元數;在此欄下是編譯處理流程,包括數據網表建立、邏輯綜合、適配、配置文件裝配和時序分析等;最下欄是編譯處理信息;中欄式編譯報告項目選擇菜單,單擊其中各項可以詳細了解編譯與分析結果。5.時序和功能仿真工程編譯通過后,必須建立VWF文件對其功能和時序性質進行仿真測試,以了解設計結果是否滿足原設計要求。可以自己設置輸入信號,再由功能仿真出輸出信號。這能在軟件上實現硬件的功能,大大提高了硬件電路調試成功率。編程下載編程下載指將編程數據放到具體的可編程器件中去。如果以上所有的過程都沒有發現問題,即滿足設計要求,就可以將適配器產生的配置/下載文件通過FPGA編程器或下載電纜載入目標芯片FPGA中。對FPGA來說就是將數據文件"配置"到FPGA中去。3總體設計方案3.1數字鐘的硬件構成原理數字鐘實際上是一個對標準頻率〔1HZ進行計數的計數電路。由于計數的起始時間不可能與標準時間一致,故需要在電路上加一個校時電路,同時標準的1HZ時間信號必須做到準確穩定。通常使用石英晶體振蕩器電路構成數字鐘。圖3-1所示為數字鐘的一般構成框圖。主要包括晶振電路、復位電路、按鍵電路、譯碼掃描和顯示電路、報時電路。LED數碼管譯碼電路FPGALED數碼管譯碼電路FPGA按鍵電路按鍵電路LED數碼管顯示電路LED數碼管顯示電路復位電路復位電路LED數碼管掃描電路LED數碼管掃描電路晶振電路晶振電路整點報時電路整點報時電路圖3-1數字鐘硬件構成框圖晶振電路產生穩定的10MHZ的高頻脈沖信號,作為數字鐘的時間基準,然后經過軟件分頻10000次輸出標準秒脈沖1HZ。秒計數器滿60后向分計數器進位,分計數器滿60后向小時計數器進位,小時計數器按照"24翻1"規律計數。計滿后各計數器清零,重新計數。計數器的輸出分別經譯碼器送數碼管顯示。計時出現誤差時,可以用校時電路校時、校分。在控制信號中除了一般的校時信號外,還有時鐘清零信號,可以使數字鐘復位清零。控制信號由3個按鍵S1、S2、S3輸入,分別實現校時、校分、復位清零功能。掃描譯碼顯示電路由七段譯碼器完成,顯示由8位數碼管構成。3.2軟件設計的功能框圖和流程框圖軟件設計采用模塊化思想和自頂向下的設計方法。用VHDL語言分別編寫分頻模塊,計時校時模塊,報時模塊和顯示模塊的程序。并將這些設計好的工程文件分別生成模塊符號文件作為自己的功能模塊符號在頂層調用。再用圖形輸入的方法設計頂層模塊,將模塊符號文件放置到工作區,進行模塊符號間的連線。編寫好頂層模塊后,進行編譯仿真,下載到FPGA芯片,就能在實驗箱上完成數字鐘的功能。FPGA功能模塊框圖和整個數字鐘系統的軟件流程框圖如下。頂層模塊頂層模塊譯碼掃描顯示模塊譯碼掃描顯示模塊報時模塊計時校時模塊分頻模塊圖3-2數字鐘功能模塊框圖開始開始初始化初始化Y是否有復位信號Y是否有復位信號NN數字鐘清零數字鐘計時數字鐘清零數字鐘計時YY是否有校時信號是否有校時信號NNN是否整點N是否整點YY整點報時整點報時LED掃描譯碼顯示LED掃描譯碼顯示結束結束3-3數字鐘軟件流程框圖4軟件設計與功能實現4.1分頻模塊功能的軟件設計與實現晶體振蕩器是構成數字式時鐘的核心,晶振的穩定度及頻率的精度決定了數字鐘計時的準確程度,它保證了時鐘的走時準確及穩定。石英晶體的選頻特性非常好,只有某一頻率點的信號可以通過它,其它頻率段的信號均會被它所衰減,而且,振蕩信號的頻率與振蕩電路中的R、C元件的數值無關。因此,這種振蕩電路輸出的是準確度極高的信號。然后再利用分頻電路,將其輸出信號轉變為秒信號,其組成框圖如圖4-1。秒信號分頻電路秒信號分頻電路石英晶體振蕩電路秒信號圖4-1秒信號產生電路框圖本系統使用的晶振電路給數字鐘提供一個頻率穩定準確的10MHz的方波信號,其輸出至分頻電路。分頻模塊的邏輯框圖如圖4-2所示。經分頻后輸出1HZ的標準秒信號CLK1HZ,用于秒信號,校時電路和報時電路。圖4-2分頻模塊的邏輯框圖4.2計時校時模塊功能的軟件設計與實現時間計數模塊由60進制的秒計數,60進制的分計數和24進制的小時計數分別實現。當數字鐘處于正常計數狀態時,秒計數器對1Hz的標準信號進行計數,在其進位輸出信號作為分計數器的使能端,而分計數器的進位輸出信號又作為時計數器的使能端。數字鐘除了正常計時外,通過兩個按鍵S1,S2分別實現對小時、分鐘的調整。這兩個按鍵的作用,就是用來產生時計數器、分計數器的另一路使能信號按鍵使能信號.由于它們的基準信號都是1Hz,故有按鍵使能信號時,它們會迅速增加,達到調整時間的目的。下面給出計時校時模塊的邏輯框圖如圖4-3。圖4-3計時校時模塊的邏輯框圖4.3整點報時模塊功能的軟件設計與實現整點報時模塊是根據秒、分的輸出數值,與程序設定的時間作比較,當時間為59分55秒、56秒、57秒、58秒、59秒時,整點報時模塊的LED燈控制信號有輸出,LED燈閃爍。下面給出整點報時模塊的邏輯框圖4-4。圖4-4整點報時模塊的邏輯框圖4.4掃描譯碼顯示模塊功能的軟件設計與實現動態掃描電路將計數器輸出的8421BCD碼轉換為數碼管需要的邏輯狀態,并且輸出數碼管的片選信號和位選信號。所謂動態掃描顯示方式是在顯示某一位LED顯示塊的數據的時候,讓其它位不顯示,然后在顯示下一位的數據,同時關閉其他顯示塊。這樣做可以使每一個顯示塊顯示與自己相對應的數據。只要保證每一位顯示的時間間隔不要太大,利用人眼的視覺暫留的現象,就可以造成各位數據同時顯示的假象。顯示譯碼電路,選擇八位七段數碼管作為顯示單元電路。計數器實現了對時間的累計并以8421BCD碼的形式輸送到動態掃描模塊,由譯碼電路將8421BCD碼轉換為七段碼,再由數碼管顯示出來。下面給出掃描譯碼顯示模塊的邏輯框圖4-5。圖4-5掃描譯碼顯示模塊的邏輯框圖4.5頂層模塊功能的軟件設計與實現將分頻模塊,計時校時模塊,報時模塊和顯示模塊創建的符號文件在新建的頂層模塊圖形編輯文件中調用,進行模塊符號間的連線,設置輸入,輸出引腳。編寫好頂層模塊后,進行編譯仿真,驗證程序的正確性。下面給出頂層模塊的邏輯框圖4-6。圖4-6頂層模塊的邏輯框圖5系統功能調試及分析本系統只含有FPGA自編程硬件設計電路,整個系統比較簡單。因此在系統調試中采用自低向上的調試方法,也就是先進行各個單元模塊的軟件編譯,在各個單元模塊調試好后再把各個單元模塊綜合起來進行系統的整體的編譯和功能仿真。數字鐘系統的整體功能仿真波形圖如下圖5。功能仿真無誤后,通過下載電纜將設計文件加載到目標器件——FPGA,通過控制按鍵觀察LED顯示是否達到數字鐘的設計要求。圖5數字鐘系統的整體功能仿真波形圖6結論及展望6.1結論本文提出了一種基于FPGA的數字鐘設計方案,從硬件和軟件兩個方面詳細地介紹了設計思想和過程,最終設計出了數字鐘,將設計程序加載到實驗箱上運行調試后,時、分、秒能夠正常計數,并能由控制鍵分別校正時、分的顯示,整點報時功能正常。最終結果與預期效果一致,完成了預期的設計任務。論文取得了如下結果:1.采用了FPGA芯片CycloneII系列EP2C35F672C8作為核心器件。設計的數字鐘系統的硬件電路,能夠完成數字鐘的校時,計時,報時,顯示等實時任務。2.運用自頂向下的思想。將整個系統分成幾個模塊分別設計,再用頂層模塊塊將它們聯系起來,實現數字鐘整體的功能,降低了系統設計的難度。3.采用了VHDL語言為主,圖形輸入為輔的編程方法。優點是編程方法靈活,而且編寫的程序具有很好的移植性,同樣適用于其他FPGA芯片的數字鐘設計。4.采用QuartusII軟件進行編譯和仿真,可以不管硬件而先進行軟件的仿真,并能根據仿真結果分析設計存在的問題和缺陷,從而進行程序的調試和完善,這大大的提高了編程的成功率。6.2展望雖然數字鐘的設計取得了一定的進展,但是在某些方面還存在著很多不足,比如數字鐘的功能還不夠強大,計時和校時的精度還有待提高等。今后需要進一步進行的研究工作和內容:實現數字鐘微秒位的計時顯示,擴展數字鐘的功能,實現時、分、秒和分、秒、微秒有選擇的分別顯示。并能實現秒位的校正。2.實現定時報時功能,可隨意設置報時時間,而不是在整點時報時,增加其實用性。3.提高計時精度。通過按鍵校正時間時,由于器件對信號的延時,會產生一定的誤差。可以進一步通過軟件實現按鍵消抖,提高整個數字鐘系統的計時精度。致謝經過長時間來的資料收集,文獻查找,材料的整理與學習,加上不斷的測試與調試,終于完成了設計任務。論文的撰寫花了大量的時間進行設計資料的整理,一次又一次的檢查與修改,終于完成了論文的撰寫。在論文完成之際,我首先要向指導老師賴欣老師表示最真摯的謝意。賴欣老師認真負責的工作態度,嚴謹的治學精神和深厚的理論水平都使我受益匪淺。無論在理論上還是在實踐中,都給與我很大的幫助。在理論上,老師耐心講解設計的編程方法和需要注意的地方;在實際操作中,從系統的設計到最終系統的調試再到畢業論文的寫作,老師都給予了諸多幫助,使我得到不少的提高,這是在這次設計中我所得到的最寶貴的財富。對于我以后的工作和學習都是一種巨大的幫助,感謝她耐心的輔導。在這次畢業設計中,我的專業知識水平也取得一定的進步。而這些進步都離不開老師和同學們的幫助。在此我向曾經幫助和關心我的老師和同學致以誠摯的感謝。此外,在完成設計和撰寫論文的過程中,我還參考了很多相關的書籍和文獻,在這里也向書籍的作者和文獻的撰寫者們表示深深的感謝。由于本人學識有限,加之時間倉促,文中不免有錯誤和待改進之處,真誠歡迎各位師長、同學提出寶貴意見。參考文獻[1]廖日坤,CPLD/FPGA嵌入式應用開發技術白金手冊,中國電力出版社,2003,212-218。[2]王開軍,姜宇柏,面向CPLD/FPGA的VHDL設計,機械工業出版社,2006,28-65。[3]趙保經,中國集成電路大全,國防工業出版社,1985。[4]高吉祥,電子技術基礎實驗與課程設計,電子工業出版社,2002。[5]呂思忠,數子電路實驗與課程設計,XX工業大學出版社,2001。[6]趙志杰,集成電路應用識圖方法,機械工業出版社,2003,35-40。[7]張慶雙,電子元器件的選用與檢測,機械工業出版社,2003。[8]譚會生,張昌凡,EDA技術及應用,XX電子科技大學出版社,2002。[9]李可,數字鐘電路及應用[M],北京:電子工業出版社,1996。附錄數字鐘子模塊程序1.分頻模塊libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityFPisport<clk:instd_logic;clk1HZ:outstd_logic>;endFP;architecturebehaveofFPissignalclk_count1:std_logic_vector<13downto0>;beginprocess<clk>beginif<clk'eventandclk='1'>thenif<clk_count1<10000>thenclk_count1<=clk_count1+1;elseclk_count1<="00000000000001";endif;endif;endprocess;clk1HZ<=clk_count1<13>;ENDBEHAVE;2.計時校時模塊libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityJSisport<clkHZ:instd_logic;clk:instd_logic;rst:instd_logic;s1,s2:instd_logic;sec1,sec10,min1,min10,hour1,hour10:BUFFERINTEGER>;endJS;architecturebehaveofJSisBEGINprocess<clkHZ,rst>beginif<rst='0'>thensec1<=0;sec10<=0;min1<=0;min10<=0;hour1<=0;hour10<=0;elsif<clkHZ'eventandclkHZ='1'>thenif<s1='0'>thenif<hour1=9>thenhour1<=0;hour10<=hour10+1;elsif<hour10=2andhour1=3>thenhour1<=0;hour10<=0;elsehour1<=hour1+1;endif;elsif<s2='0'>thenif<min1=9>thenmin1<=0;if<min10=5>thenmin10<=0;elsemin10<=min10+1;endif;elsemin1<=min1+1;endif;elsif<sec1=9>thensec1<=0;if<sec10=5>thensec10<=0;if<min1=9>thenmin1<=0;if<min10=5>thenmin10<=0;if<hour1=9>thenhour1<=0;hour10<=hour10+1;elsif<hour10=2andhour1=3>thenhour1<=0;hour10<=0;elsehour1<=hour1+1;endif;elsemin10<=min10+1;endif;elsemin1<=min1+1;endif;elsesec10<=sec10+1;endif;elsesec1<=sec1+1;endif;endif;endprocess;ENDBEHAVE;3.整點報時模塊libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityBAOSisport<clkHZ1:instd_logic;min1,min10,sec1,sec10:ininteger;led:outstd_logic_vector<3downto0>>;endBAOS;architecturebehaveofBAOSissignalled_count:std_logic_vector<2downto0>;signalled_display:std_logic_vector<3downto0>;BEGINprocess<clkHZ1>beginif<clkHZ1'eventandclkHZ1='1'>thenif<min10=5andmin1=9andsec10=5

溫馨提示

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

評論

0/150

提交評論