![基于FPGA的數(shù)字鐘設計25637_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/17/89f40fc9-895c-458c-9ec6-d457c2f340d2/89f40fc9-895c-458c-9ec6-d457c2f340d21.gif)
![基于FPGA的數(shù)字鐘設計25637_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/17/89f40fc9-895c-458c-9ec6-d457c2f340d2/89f40fc9-895c-458c-9ec6-d457c2f340d22.gif)
![基于FPGA的數(shù)字鐘設計25637_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/17/89f40fc9-895c-458c-9ec6-d457c2f340d2/89f40fc9-895c-458c-9ec6-d457c2f340d23.gif)
![基于FPGA的數(shù)字鐘設計25637_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/17/89f40fc9-895c-458c-9ec6-d457c2f340d2/89f40fc9-895c-458c-9ec6-d457c2f340d24.gif)
![基于FPGA的數(shù)字鐘設計25637_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/17/89f40fc9-895c-458c-9ec6-d457c2f340d2/89f40fc9-895c-458c-9ec6-d457c2f340d25.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、于FPGA的數(shù)字鐘設計學院:電子信息工程學院專業(yè):電子設計自動化班級:1班姓名:XXX 學號:201210525XXX摘 要 伴隨著集成電路技術的發(fā)展, 電子設計自動化(EDA)技術逐漸成為數(shù)字電路設計的重要手段。基于FPGA的EDA技術的發(fā)展和應用領域的擴大與深入,使得EDA技術在電子信息,通信,自動控制,計算機等領域的重要性日益突出。 本設計給出了一種基于FPGA的多功能數(shù)字鐘方法,采用EDA作為開發(fā)工具,VHDL語言和圖形輸入為硬件描述語言,QuartusII作為運行程序的平臺,編寫的程序經(jīng)過調(diào)試運行,波形仿真驗證,下載到EDA實驗箱的FPGA芯片,實現(xiàn)了設計目標。系統(tǒng)主芯片采用Cycl
2、oneII系列EP2C35F672C8。采用自頂向下的設計思想,將系統(tǒng)分為五個模塊:分頻模塊、計時模塊、報時模塊、顯示模塊、頂層模塊。用VHDL語言實現(xiàn)各個功能模塊, 圖形輸入法生成頂層模塊. 最后用QuartusII軟件進行功能仿真, 驗證數(shù)字鐘設計的正確性。測試結果表明本設計實現(xiàn)了一個多功能的數(shù)字鐘功能,具有時、分、秒計時顯示功能,以24小時循環(huán)計時;具有校正小時和分鐘的功能;以及清零,整點報時功能。關鍵詞:EDA技術;FPGA;數(shù)字鐘;VHDL語言;自頂向下AbstractAccompanied by the development of integrated circuit techn
3、ology, electronic design automation (EDA) technology is becoming an important means of digital circuit design. FPGA EDA technology development and expansion of application fields and in-depth, the importance of EDA technology in the field ofelectronic information, communication, automatic control, c
4、omputer, etc. have become increasingly prominent.This design gives a FPGA-based multifunctional digital clock using EDA as a development tool, VHDL language and graphical input hardware description language, the QuartusII as a platform for running the program, written procedures debugging and runnin
5、g, the waveform simulation downloaded to the FPGA chip to achieve the design goals. The main system chip CycloneII series EP2C35F672C8. Adopted a topdwn design ideas, the system is divided into five modules: frequency module, timing module, timer module, display module, the top-level module. With VH
6、DL various functional modules, graphical input method to generate the top-levelmodule. Last QuartusII under simulation, to verify the correctness of the digital clock design.The test results show that the design of a multifunctional digital clock, with seconds time display, 24-hourcycle timing; has
7、a school, cleared, and the whole point timekeeping functions.Key words: EDA technology; FPGA; VHDL language; top-down; digital clock目錄1 緒論41.1 研究背景4研究目的51.3 研究方法和內(nèi)容52 本軟件開發(fā)環(huán)境52.1 FPGA簡介52.1 .1 FPGA概述62. FPGA基本結構6圖2-1 CLB基本結構82 FPGA系統(tǒng)設計流程82. FPGA開發(fā)編程原理102.2 QuartusII設計平臺102.2.1 軟件開發(fā)環(huán)境及基本流程102.2.2 軟件的
8、具體設計流程113總體設計方案12數(shù)字鐘的硬件構成原理123.2 軟件設計的功能框圖和流程框圖134 軟件設計與功能實現(xiàn)154.1 分頻模塊功能的軟件設計與實現(xiàn)154.2 計時校時模塊功能的軟件設計與實現(xiàn)164.3 整點報時模塊功能的軟件設計與實現(xiàn)174.4 掃描譯碼顯示模塊功能的軟件設計與實現(xiàn)174.5 頂層模塊功能的軟件設計與實現(xiàn)185 系統(tǒng)功能調(diào)試及分析186 結論及展望196.1 結論196.2 展望20參考文獻22附錄23基于FPGA的數(shù)字鐘設計1 緒論現(xiàn)代社會的標志之一就是信息產(chǎn)品的廣泛使用,而且是產(chǎn)品的性能越來越強,復雜程度越來越高,更新步伐越來越快。支撐信息電子產(chǎn)品高速發(fā)展的基
9、礎就是微電子制造工藝水平的提高和電子產(chǎn)品設計開發(fā)技術的發(fā)展。前者以微細加工技術為代表,而后者的代表就是電子設計自動化(electronic design automatic,EDA)技術。ASIC是專用的系統(tǒng)集成電路,是一種帶有邏輯處理的加速處理器。而FPGA是特殊的ASIC芯片,與其他的ASIC芯片相比,它具有設計開發(fā)周期短、設計制造成本低、開發(fā)工具先進、標準產(chǎn)品無需測試、質(zhì)量穩(wěn)定以及可實時在線檢測等優(yōu)點。本設計采用的VHDL語言是一種全方位的硬件描述語言,具有極強的描述能力,能支持系統(tǒng)行為級、寄存器傳輸級和邏輯門級三個不同層次的設計;支持結構、數(shù)據(jù)流、行為三種描述形式的混合描述、覆蓋面廣、
10、抽象能力強,因此在實際應用中越來越廣泛。數(shù)字化的鐘表給人們帶來了極大的方便。近些年,隨著科技的發(fā)展和社會的進步,人們對數(shù)字鐘的要求也越來越高,傳統(tǒng)的時鐘已不能滿足人們的需求。多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,有電子鬧鐘、數(shù)字鬧鐘等等。而基于FPGA的數(shù)字鐘設計能極大的擴展其功能。1.1 研究背景當今電子產(chǎn)品正向功能多元化,體積最小化,功耗最低化的方向發(fā)展。它與傳統(tǒng)的電子產(chǎn)品在設計上的顯著區(qū)別是大量使用大規(guī)??删幊踢壿嬈骷?,使產(chǎn)品的性能提高,體積縮小,功耗降低。同時廣泛運用現(xiàn)代計算機技術,提高產(chǎn)品的自動化程度和競爭力,縮短研發(fā)周期。EDA技術正是為了適應現(xiàn)代電子技術的要求,吸收
11、眾多學科最新科技成果而形成的一門新技術。 EDA是電子設計自動化(Elcctronic Design Automation)的縮寫,是90年代初從CAD(計算機輔助設備),CAM(計算機輔助制造),CAT(計算機輔助測試)和CAE(計算機輔助工程)的概念發(fā)展而來的。EDA技術是以計算機為工具,根據(jù)硬件描述語言VHDL完成設計文件,自動的完成邏輯編譯,化簡,分割,綜合及優(yōu)化,布局布線,仿真以及對特定目標芯片的適配編譯和編程下載等工作。典型的EDA工具中必須包含兩個特殊的軟件包,即綜合器和適配器, 綜合器的功能就是將設計者在EDA平臺上完成的針對某個系統(tǒng)項目的VHDL原理圖或狀態(tài)圖形描述,針對給定
12、的硬件系統(tǒng)組件,進行編譯,優(yōu)化,轉換和綜合,最終獲得我們將實現(xiàn)的功能的描述文件。綜合器在工作前,必須給定要實現(xiàn)的硬件結構參數(shù),它的功能就是將軟件描述與給定的硬件結構用一定的方式聯(lián)系起來,也就是說綜合器是軟件描述與硬件實現(xiàn)的一座橋梁。綜合過程就是將電路的高級語言描述轉換成低級的,可與目標器件CPLD相映射的網(wǎng)表文件。適配器的功能是將由綜合器產(chǎn)生的網(wǎng)表文件配置與指定的目標器件中,產(chǎn)生最終的下載文件。適配器所選的目標器件(CPLD芯片)必須包含于在綜合器中已指定的目標器件系列。本次數(shù)字鐘設計利用VHDL硬件描述語言和圖形輸入相結合的編程方式,并通過可編程邏輯器件FPGA進行硬件設計,用LED數(shù)碼管動
13、態(tài)顯示計時結果。數(shù)字鐘可以由各種技術實現(xiàn),如單片機等。利用可編程邏輯器件具有其他方式?jīng)]有的特點,它具有成功率高,理論與實踐結合緊密,體積小,容量大,I/O口豐富,易編程和加密等特點,并且它還具有開放的界面,豐富的設計庫,模塊化的工具等優(yōu)良性能,應用非常方便。因此,本設計采用可編程邏輯器件FPGA來實現(xiàn)。研究目的現(xiàn)在是一個知識爆炸的新時代。新產(chǎn)品、新技術層出不窮,電子技術的發(fā)展更是日新月異。可以說,電子技術的應用無處不在,電子技術正在不斷地改變我們的生活,改變著我們的世界。鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地擴展了鐘表原先的報時功能。諸如定時自動報警、定時啟閉電路、定時開關烘箱
14、、通斷動力設備,甚至各種定時電氣的自動啟用等,所有這些,都是以鐘表數(shù)字化為基礎的。因此,研究數(shù)字鐘及擴大其應用,有著非?,F(xiàn)實的意義。1.3 研究方法和內(nèi)容本設計主要研究基于FPGA的數(shù)字鐘,采用EDA作為開發(fā)工具,VHDL語言和圖形輸入為硬件描述語言,采用自頂向下的設計思想,QuartusII軟件作為運行程序的平臺。設計的數(shù)字鐘時間以24小時為一個周期,用LED數(shù)碼管動態(tài)顯示時、分、秒。具有清零和整點報時功能,可以對小時,分鐘進行單獨校對,使其校正到標準時間。校對時間由按鍵進行控制,為了保證計時的穩(wěn)定及準確,須由晶體振蕩器提供時間基準信號并經(jīng)分頻得到。2.本軟件開發(fā)環(huán)境 2.1 FPGA簡介
15、2.1.1 FPGA概述FPGA是現(xiàn)場可編程門陣列(Field Programmable Gate Array)的簡稱,與之相應的CPLD是復雜可編程邏輯器件(Complex Programmable Logic Device)的簡稱,兩者的功能基本相同,只是實現(xiàn)原理略有不同,有時可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件CPLD/FPGA。CPLD/FPGA幾乎能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的74電路。它如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入或硬件描述語言自由的設計一個數(shù)字系統(tǒng)。通過軟件仿真可以事先驗證設計的正確性,在PCB完成以后,利用CPLD/FP
16、GA的在線修改功能,隨時修改設計而不必改動硬件電路。使用CPLD/FPGA開發(fā)數(shù)字電路,可以大大縮短設計時間,減少PCB面積,提高系統(tǒng)的可靠性。這些優(yōu)點使得CPLD/FPGA技術在20世紀90年代以后得到飛速的發(fā)展,同時也大大推動了EDA軟件和硬件描述語言VHDL的進步。2. FPGA基本結構FPGA具有掩膜可編程門陣列的通用結構,它由邏輯功能塊排成陣列,并由可編程的互連資源連接這些邏輯功能塊來實現(xiàn)不同的設計。FPGA一般由3種可編程電路和一個用于存放編程數(shù)據(jù)的靜態(tài)存儲器SRAM組成。這3種可編程電路是:可編程邏輯模塊(CLB-Configurable Logic Block)、輸入/輸出模塊
17、(IOB-I/O Block)和互連資源(IRInterconnect Resource)??删幊踢壿嬆KCLB是實現(xiàn)邏輯功能的基本單元,它們通常規(guī)則的排列成一個陣列,散布于整個芯片;可編程輸入/輸出模塊(IOB)主要完成芯片上的邏輯與外部封裝腳的接口,它通常排列在芯片的四周;可編程互連資源包括各種長度的連接線段和一些可編程連接開關,它們將各個CLB之間或CLB、IOB之間以及IOB之間連接起來,構成特定功能的電路。1. CLB是FPGA的主要組成部分。圖1是CLB基本結構框圖,它主要由邏輯函數(shù)發(fā)生器、觸發(fā)器、數(shù)據(jù)選擇器等電路組成。CLB中3個邏輯函數(shù)發(fā)生器分別是G、F和H,相應的輸出是G、F
18、和H。G有4個輸入變量G1、G2、G3和G4;F也有4個輸入變量F1、F2、F3和F4。這兩個函數(shù)發(fā)生器是完全獨立的,均可以實現(xiàn)4輸入變量的任意組合邏輯函數(shù)。邏輯函數(shù)發(fā)生器H有3個輸入信號;前兩個是函數(shù)發(fā)生器的輸出G和F,而另一個輸入信號是來自信號變換電路的輸出H1。這個函數(shù)發(fā)生器能實現(xiàn)3輸入變量的各種組合函數(shù)。這3個函數(shù)發(fā)生器結合起來,可實現(xiàn)多達9變量的邏輯函數(shù)。CLB中有許多不同規(guī)格的數(shù)據(jù)選擇器(四選一、二選一等),通過對CLB內(nèi)部數(shù)據(jù)選擇器的編程,邏輯函數(shù)發(fā)生器G、F和H的輸出可以連接到CLB輸出端X或Y,并用來選擇觸發(fā)器的激勵輸入信號、時鐘有效邊沿、時鐘使能信號以及輸出信號。這些數(shù)據(jù)選
19、擇器的地址控制信號均由編程信息提供,從而實現(xiàn)所需的電路結構。CLB中的邏輯函數(shù)發(fā)生器F和G均為查找表結構,其工作原理類似于ROM。F和G的輸入等效于ROM的地址碼,通過查找ROM中的地址表可以得到相應的組合邏輯函數(shù)輸出。另外,邏輯函數(shù)發(fā)生器F和G還可以作為器件內(nèi)高速RAM或小的可讀寫存儲器使用,它由信號變換電路控制。2. 輸入/輸出模塊IOB。IOB提供了器件引腳和內(nèi)部邏輯陣列之間的連接。它主要由輸入觸發(fā)器、輸入緩沖器和輸出觸發(fā)/鎖存器、輸出緩沖器組成。每個IOB控制一個引腳,它們可被配置為輸入、輸出或雙向I/O功能。當IOB控制的引腳被定義為輸入時,通過該引腳的輸入信號先送入輸入緩沖器。緩沖
20、器的輸出分成兩路:一路可以直接送到MUX,另一路延時幾個納秒(或者沒有延時)后送到輸入通路D觸發(fā)器,再送到數(shù)據(jù)選擇器。通過編程給數(shù)據(jù)選擇器不同的控制信息,確定送至CLB陣列的I1和I2是來自輸入緩沖器,還是來自觸發(fā)器。當IOB控制的引腳被定義為輸出時,CLB陣列的輸出信號OUT也可以有兩條傳輸途徑:一條是直接經(jīng)MUX送至輸出緩沖器,另一條是先存入輸出通路D觸發(fā)器,再送至輸出緩沖器。IOB輸出端配有兩只MOS管,它們的柵極均可編程,使MOS管導通或截止,分別經(jīng)上拉電阻接通VCC、地線或者不接通,用以改善輸出波形和負載能力。3. 可編程互連資源IR??删幊袒ミB資源IR可以將FPGA內(nèi)部的CLB和C
21、LB之間、CLB和IOB之間連接起來,構成各種具有復雜功能的系統(tǒng)。IR主要由許多金屬線段構成,這些金屬線段帶有可編程開關,通過自動布線實現(xiàn)各種電路的連接。CLBCLBCLBCLBCLBBCLBCLBCLBCLB矩CLBCLBCLB塊CLBCLBBCLBCLBCLBCLBCLBCLB可編程開關矩輸入輸出模塊互連資源圖2-1 CLB基本結構2 FPGA系統(tǒng)設計流程一般說來,一個比較大的完整的項目應該采用層次化的描述方法:分為幾個較大的模塊,定義好各功能模塊之間的接口,然后各個模塊再細分去具體實現(xiàn),這就是自頂向下的設計方法。目前這種高層次的設計方法已被廣泛采用。高層次設計只是定義系統(tǒng)的行為特征,可以
22、不涉及實現(xiàn)工藝,因此還可以在廠家綜合庫的支持下,利用綜合優(yōu)化工具將高層次描述轉換為針對某種工藝優(yōu)化的網(wǎng)絡表,使工藝轉化變得輕而易舉。CPLD/FPGA系統(tǒng)設計的工作流程如圖所示。流程說明:1.工程師按照“自頂向下”的設計方法進行系統(tǒng)劃分。2.輸入VHDL代碼,這是設計中最為普遍的輸入方式。此外,還可以采用圖形輸入方式,這種輸入方式具有直觀、容易理解的優(yōu)點。3.將以上的設計輸入編譯成標準的VHDL文件。4.進行代碼級的功能仿真,主要是檢驗系統(tǒng)功能設計的正確性。這一步驟適用于大型設計,因為對于大型設計來說,在綜合前對源代碼仿真,就可以大大減少設計重復的次數(shù)和時間。一般情況下,這一仿真步驟可略去。5
23、.利用綜合器對VHDL源代碼進行綜合優(yōu)化處理,生成門級描述的網(wǎng)絡表文件,這是將高層次描述轉化為硬件電路的關鍵步驟。綜合優(yōu)化是針對ASIC芯片供應商的某一產(chǎn)品系列進行的,所以綜合的過程要在相應的廠家綜合庫的支持下才能完成。6.利用產(chǎn)生的網(wǎng)絡表文件進行適配前的時序仿真,仿真過程不涉及具體器件的硬件特性,是較為粗略的。一般的設計,也可略去這一步驟。7.利用適配器將綜合后的網(wǎng)絡表文件針對某一具體的目標器件進行邏輯映射操作,包括底層器件配置、邏輯分割、邏輯優(yōu)化和布局布線。8.在適配完成后,產(chǎn)生多項設計結果:a.適配報告,包括芯片內(nèi)部資源利用情況,設計的布爾方程描述情況等;b.適配后的仿真模型;c.器件編
24、程文件。根據(jù)適配后的仿真模型,可以進行適配后時序仿真,因為已經(jīng)得到器件的實際硬件特性(如時延特性),所以仿真結果能比較精確的預期未來芯片的實際性能。如果仿真結果達不到設計要求,就修改VHDL源代碼或選擇不同速度和品質(zhì)的器件,直至滿足設計要求。最后將適配器產(chǎn)生的器件編程文件通過編程器或下載電纜載入到目標芯片CPLD/FPGA中。圖2-2 CPLD/FPGA系統(tǒng)設計流程系統(tǒng)劃分編譯器代碼級功能仿真綜合器適配前時序仿真適配器CPLD/FPGA實現(xiàn)適配后仿真模型適配后時序仿真適配報告ASIC實現(xiàn)VHDL代碼或圖形方式輸入仿真綜合庫器件編程文件2. FPGA開發(fā)編程原理硬件設計需要根據(jù)各種性能指標、成本
25、、開發(fā)周期等因素,確定最佳的實現(xiàn)方案,畫出系統(tǒng)框圖,選擇芯片,設計PCB并最終形成樣機。CPLD/FPGA軟件設計可分為兩大塊:編程語言和編程工具。編程語言主要是VHDL硬件描述語言;編程工具主要是兩大廠家Altera和Xilinx的集成綜合EDA軟件QuartusII以及第三方工具。具體的設計輸入方式有以下幾種:1.VHDL語言。VHDL既可以描述底層設計,也可以描述頂層的設計,但它不容易做到較高的工作速度和芯片利用率。用這種方式描述的項目最后所能達到的性能與設計人員的水平、經(jīng)驗以及綜合軟件有很大的關系。2.圖形方式??梢苑譃殡娐吩韴D描述,狀態(tài)機描述和波形描述3種形式。電路原理圖方式描述比
26、較直觀和高效,對綜合軟件的要求不高。一般大都使用成熟的IP核和中小規(guī)模集成電路所搭成的現(xiàn)成電路,整體放到一片可編程邏輯器件的內(nèi)部去,其硬件工作速度和芯片利用率很高,但是當項目很大時,該方法就顯得有些繁瑣;狀態(tài)機描述主要用來設計基于狀態(tài)機思想的時序電路。在圖形的方式下定義好各個工作狀態(tài),然后在各個狀態(tài)上輸入轉換條件以及相應的輸入輸出,最后生成HDL語言描述,送去綜合軟件綜合到可編程邏輯器件的內(nèi)部。由于狀態(tài)機到HDL語言有一種標準的對應描述方式,所以這種輸入方式最后所能達到的工作速度和芯片利用率主要取決于綜合軟件;波形描述方式是基于真值表的一種圖形輸入方式,直接描述輸入與輸出的波形關系。2.2Qu
27、artusII設計平臺2.2.1 軟件開發(fā)環(huán)境及基本流程本設計所用軟件主要是QuartusII,在此對它做一些介紹。QuartusII是Altera提供的FPGA/CPLD開發(fā)集成環(huán)境,Altera是世界上最大的可編程邏輯器件供應商之一。QuartusII提供了一種與結構無關的設計環(huán)境,使設計者能方便地進行設計輸入、快速處理和器件編程。Altera公司的QuartusII開發(fā)工具人機界面友好、易于使用、性能優(yōu)良,并自帶編譯、仿真功能。QuartusII軟件完全支持VHDL設計流程,其內(nèi)部嵌有VHDL邏輯綜合器。QuartusII也可以利用第三方的綜合工具,如FPGA Compiler II,并
28、能直接調(diào)用這些工具。同樣,QuartusII具備仿真功能,同時也支持第三方的仿真工具。此外,QuartusII與MATLAB和DSP Builder結合,可以進行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實現(xiàn)的關鍵EDA技術。QuartusII包括模塊化的編譯器。編譯器包括的功能模塊有分析/綜合器、適配器、裝配器、時序分析器、設計輔助模塊、EDA網(wǎng)表文件生成器、編輯數(shù)據(jù)接口等??梢酝ㄟ^選擇Start Compilation來運行所有的編譯器模塊,也可以通過選擇Start單獨運行各個模塊。在Compiler Tool窗口中,可以打開該模塊的設置文件或報告文件,或者打開其它相關窗口。在設計輸入
29、之后,QuartusII的編譯器將給出設計輸入的錯誤報告。QuartusII擁有性能良好的設計錯誤定位器,用于確定文本或圖形設計中的錯誤。在進行編譯后,可對設計進行時序仿真。在仿真前,需要利用波形編輯器編輯一個波形激勵文件。編譯和仿真檢測無誤后,便可將下載信息通過QuartusII提供的編程器下載入目標器件中了。2.2.2 軟件的具體設計流程1.建立工作庫文件夾和編輯設計文件首先建立工作庫目錄,以便存儲工程項目設計文件。任何一項設計都是一項工程(Project),都必須首先為此工程建立一個放置與此工程相關的所有設計文件的文件夾。此文件夾將被EDA軟件默認為工作庫。一般來說,不同的設計項目最好放
30、在不同的文件夾中,而同一工程的所有文件都必須放在同一文件夾中。2.創(chuàng)建工程使用New Project Wizard可以為工程指定工作目錄、分配工程名稱以及指定最高層設計實體的名稱,還可以指定要在工程中使用的設計文件、其它源文件、用戶庫和EDA工具,以及目標器件系列和具體器件等。3.編譯前設置在對工程進行編譯處理前,必須做好必要的設置。步驟如下:a.選擇FPGA目標芯片b.選擇配置器件的工作方式c.選擇配置器件和編程方式d.選擇輸出設置e.選擇目標器件閑置引腳的狀態(tài)4.全程編譯QuartusII編譯器是由一系列處理模塊構成的,這些模塊負責對設計項目的檢錯、邏輯綜合、結構綜合、輸出結果的編輯配置,
31、以及時序分析。在這一過程中,將設計項目適配到FPGA目標器中,同時產(chǎn)生多種用途的輸出文件。編譯器首先檢查出工程設計文件中可能的錯誤信息,供設計者排除。然后產(chǎn)生一個結構化的以網(wǎng)表文件表達的電路原理圖文件。如果編譯成功,可以見到工程管理窗口左上角顯示了工程(例如工程div)的層次結構和其中結構模塊耗用的邏輯宏單元數(shù);在此欄下是編譯處理流程,包括數(shù)據(jù)網(wǎng)表建立、邏輯綜合、適配、配置文件裝配和時序分析等;最下欄是編譯處理信息;中欄式編譯報告項目選擇菜單,單擊其中各項可以詳細了解編譯與分析結果。5.時序和功能仿真工程編譯通過后,必須建立VWF文件對其功能和時序性質(zhì)進行仿真測試,以了解設計結果是否滿足原設計
32、要求??梢宰约涸O置輸入信號,再由功能仿真出輸出信號。這能在軟件上實現(xiàn)硬件的功能,大大提高了硬件電路調(diào)試成功率。6. 編程下載編程下載指將編程數(shù)據(jù)放到具體的可編程器件中去。如果以上所有的過程都沒有發(fā)現(xiàn)問題,即滿足設計要求,就可以將適配器產(chǎn)生的配置/下載文件通過FPGA編程器或下載電纜載入目標芯片F(xiàn)PGA中。對FPGA來說就是將數(shù)據(jù)文件“配置”到FPGA中去。3 總體設計方案3.1 數(shù)字鐘的硬件構成原理數(shù)字鐘實際上是一個對標準頻率(1HZ)進行計數(shù)的計數(shù)電路。由于計數(shù)的起始時間不可能與標準時間一致,故需要在電路上加一個校時電路,同時標準的1HZ時間信號必須做到準確穩(wěn)定。通常使用石英晶體振蕩器電路構
33、成數(shù)字鐘。圖3-1所示為數(shù)字鐘的一般構成框圖。主要包括晶振電路、復位電路、按鍵電路、譯碼掃描和顯示電路、報時電路。LED數(shù)碼管譯碼電路FPGA 按鍵電路LED數(shù)碼管顯示電路 復位電路LED數(shù)碼管掃描電路 晶振電路整點報時電路 圖3-1 數(shù)字鐘硬件構成框圖晶振電路產(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)誤差時,可以用校時電路校時、校分。在控制信號中除了一
34、般的校時信號外,還有時鐘清零信號,可以使數(shù)字鐘復位清零??刂菩盘栍?個按鍵S1、S2、S3輸入,分別實現(xiàn)校時、校分、復位清零功能。掃描譯碼顯示電路由七段譯碼器完成,顯示由8位數(shù)碼管構成。3.2 軟件設計的功能框圖和流程框圖 軟件設計采用模塊化思想和自頂向下的設計方法。用VHDL語言分別編寫分頻模塊,計時校時模塊,報時模塊和顯示模塊的程序。并將這些設計好的工程文件分別生成模塊符號文件作為自己的功能模塊符號在頂層調(diào)用。再用圖形輸入的方法設計頂層模塊,將模塊符號文件放置到工作區(qū),進行模塊符號間的連線。編寫好頂層模塊后,進行編譯仿真,下載到FPGA芯片,就能在實驗箱上完成數(shù)字鐘的功能。FPGA功能模塊
35、框圖和整個數(shù)字鐘系統(tǒng)的軟件流程框圖如下。頂層模塊 頂 層 模 塊 頂 層 模 塊 頂 層 模 塊譯碼掃描顯示模塊報時模塊計時校時模塊分頻模塊 圖3-2 數(shù)字鐘功能模塊框圖 開始 初始化Y是否有復位信號N 數(shù)字鐘清零 數(shù)字鐘計時Y 是否有校時信號NN 是否整點Y 整點報時 LED掃描譯碼顯示 結束3-3 數(shù)字鐘軟件流程框圖4 軟件設計與功能實現(xiàn)4.1 分頻模塊功能的軟件設計與實現(xiàn) 晶體振蕩器是構成數(shù)字式時鐘的核心,晶振的穩(wěn)定度及頻率的精度決定了數(shù)字鐘計時的準確程度,它保證了時鐘的走時準確及穩(wěn)定。石英晶體的選頻特性非常好,只有某一頻率點的信號可以通過它,其它頻率段的信號均會被它所衰減,而且,振蕩信
36、號的頻率與振蕩電路中的R、C元件的數(shù)值無關。因此,這種振蕩電路輸出的是準確度極高的信號。然后再利用分頻電路,將其輸出信號轉變?yōu)槊胄盘?,其組成框圖如圖4-1。秒信號分頻電路石英晶體振蕩電路秒信號圖4-1 秒信號產(chǎn)生電路框圖本系統(tǒng)使用的晶振電路給數(shù)字鐘提供一個頻率穩(wěn)定準確的10MHz的方波信號,其輸出至分頻電路。分頻模塊的邏輯框圖如圖4-2所示。經(jīng)分頻后輸出1HZ的標準秒信號CLK1HZ,用于秒信號,校時電路和報時電路。圖4-2分頻模塊的邏輯框圖4.2 計時校時模塊功能的軟件設計與實現(xiàn)時間計數(shù)模塊由60進制的秒計數(shù),60進制的分計數(shù)和24進制的小時計數(shù)分別實現(xiàn)。當數(shù)字鐘處于正常計數(shù)狀態(tài)時,秒計數(shù)器
37、對1Hz 的標準信號進行計數(shù),在其進位輸出信號作為分計數(shù)器的使能端,而分計數(shù)器的進位輸出信號又作為時計數(shù)器的使能端。數(shù)字鐘除了正常計時外,通過兩個按鍵S1,S2分別實現(xiàn)對小時、分鐘的調(diào)整。這兩個按鍵的作用,1Hz ,故有按鍵使能信號時,它們會迅速增加,達到調(diào)整時間的目的。下面給出計時校時模塊的邏輯框圖如圖4-3。 圖4-3 計時校時模塊的邏輯框圖4.3 整點報時模塊功能的軟件設計與實現(xiàn)整點報時模塊是根據(jù)秒、分的輸出數(shù)值,與程序設定的時間作比較,當時間為59 分55秒、56秒、57秒、58秒、59秒時,整點報時模塊的LED燈控制信號有輸出,LED燈閃爍。下面給出整點報時模塊的邏輯框圖4-4。 圖
38、4-4 整點報時模塊的邏輯框圖4.4 掃描譯碼顯示模塊功能的軟件設計與實現(xiàn) 動態(tài)掃描電路將計數(shù)器輸出的8421BCD碼轉換為數(shù)碼管需要的邏輯狀態(tài),并且輸出數(shù)碼管的片選信號和位選信號。所謂動態(tài)掃描顯示方式是在顯示某一位LED顯示塊的數(shù)據(jù)的時候,讓其它位不顯示,然后在顯示下一位的數(shù)據(jù),同時關閉其他顯示塊。這樣做可以使每一個顯示塊顯示與自己相對應的數(shù)據(jù)。只要保證每一位顯示的時間間隔不要太大,利用人眼的視覺暫留的現(xiàn)象,就可以造成各位數(shù)據(jù)同時顯示的假象。顯示譯碼電路,選擇八位七段數(shù)碼管作為顯示單元電路。計數(shù)器實現(xiàn)了對時間的累計并以8421BCD碼的形式輸送到動態(tài)掃描模塊,由譯碼電路將8421BCD碼轉換
39、為七段碼,再由數(shù)碼管顯示出來。下面給出掃描譯碼顯示模塊的邏輯框圖4-5。 圖4-5 掃描譯碼顯示模塊的邏輯框圖4.5 頂層模塊功能的軟件設計與實現(xiàn) 將分頻模塊,計時校時模塊,報時模塊和顯示模塊創(chuàng)建的符號文件在新建的頂層模塊圖形編輯文件中調(diào)用,進行模塊符號間的連線,設置輸入,輸出引腳。編寫好頂層模塊后,進行編譯仿真,驗證程序的正確性。下面給出頂層模塊的邏輯框圖4-6。 圖4-6 頂層模塊的邏輯框圖5 系統(tǒng)功能調(diào)試及分析本系統(tǒng)只含有FPGA自編程硬件設計電路,整個系統(tǒng)比較簡單。因此在系統(tǒng)調(diào)試中采用自低向上的調(diào)試方法,也就是先進行各個單元模塊的軟件編譯,在各個單元模塊調(diào)試好后再把各個單元模塊綜合起來
40、進行系統(tǒng)的整體的編譯和功能仿真。數(shù)字鐘系統(tǒng)的整體功能仿真波形圖如下圖5。功能仿真無誤后,通過下載電纜將設計文件加載到目標器件FPGA,通過控制按鍵觀察LED顯示是否達到數(shù)字鐘的設計要求。 圖5 數(shù)字鐘系統(tǒng)的整體功能仿真波形圖6 結論及展望6.1 結論本文提出了一種基于FPGA的數(shù)字鐘設計方案,從硬件和軟件兩個方面詳細地介紹了設計思想和過程,最終設計出了數(shù)字鐘,將設計程序加載到實驗箱上運行調(diào)試后,時、分、秒能夠正常計數(shù),并能由控制鍵分別校正時、分的顯示,整點報時功能正常。最終結果與預期效果一致,完成了預期的設計任務。論文取得了如下結果:1.采用了FPGA芯片CycloneII系列EP2C35F6
41、72C8作為核心器件。設計的數(shù)字鐘系統(tǒng)的硬件電路,能夠完成數(shù)字鐘的校時,計時,報時,顯示等實時任務。 2.運用自頂向下的思想。將整個系統(tǒng)分成幾個模塊分別設計,再用頂層模塊塊將它們聯(lián)系起來,實現(xiàn)數(shù)字鐘整體的功能,降低了系統(tǒng)設計的難度。 3.采用了VHDL語言為主,圖形輸入為輔的編程方法。優(yōu)點是編程方法靈活,而且編寫的程序具有很好的移植性,同樣適用于其他FPGA芯片的數(shù)字鐘設計。 4.采用QuartusII軟件進行編譯和仿真,可以不管硬件而先進行軟件的仿真,并能根據(jù)仿真結果分析設計存在的問題和缺陷,從而進行程序的調(diào)試和完善,這大大的提高了編程的成功率。6.2 展望雖然數(shù)字鐘的設計取得了一定的進展,
42、但是在某些方面還存在著很多不足,比如數(shù)字鐘的功能還不夠強大,計時和校時的精度還有待提高等。今后需要進一步進行的研究工作和內(nèi)容: 1. 實現(xiàn)數(shù)字鐘微秒位的計時顯示,擴展數(shù)字鐘的功能,實現(xiàn)時、分、秒和分、秒、微秒有選擇的分別顯示。并能實現(xiàn)秒位的校正。2.實現(xiàn)定時報時功能,可隨意設置報時時間,而不是在整點時報時,增加其實用性。3.提高計時精度。通過按鍵校正時間時,由于器件對信號的延時,會產(chǎn)生一定的誤差??梢赃M一步通過軟件實現(xiàn)按鍵消抖,提高整個數(shù)字鐘系統(tǒng)的計時精度。參考文獻1廖日坤,CPLD/FPGA嵌入式應用開發(fā)技術白金手冊,中國電力出版社,2003,212-218。2 王開軍,姜宇柏,面向CPLD
43、/FPGA的VHDL設計,機械工業(yè)出版社,2006,28-65。3趙保經(jīng),中國集成電路大全,國防工業(yè)出版社,1985。4高吉祥,電子技術基礎實驗與課程設計,電子工業(yè)出版社,2002。5 呂思忠,數(shù)子電路實驗與課程設計,哈爾濱工業(yè)大學出版社,2001。6趙志杰,集成電路應用識圖方法,機械工業(yè)出版社,2003,35-40。7張慶雙,電子元器件的選用與檢測,機械工業(yè)出版社,2003。8 譚會生,張昌凡,EDA技術及應用,西安電子科技大學出版社,2002。9李可,數(shù)字鐘電路及應用M,北京:電子工業(yè)出版社,1996。附錄數(shù)字鐘子模塊程序libraryieee;use ieee.std_logic_116
44、4.all;use;use;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'event and clk='1')thenif(clk_count1<10000)then clk_count1<=clk_count1+1;else clk_count1<=&q
45、uot;00000000000001"end if;end if;end process;clk1HZ<=clk_count1(13);END BEHAVE;libraryieee;use ieee.std_logic_1164.all;use;use;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
46、 behave of JS is BEGINprocess(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=3)thenhour1<
47、;=0;hour10<=0;else hour1<=hour1+1;end if;elsif(s2='0') then if( min1=9)thenmin1<=0;if(min10=5) then min10<=0;else min10<=min10+1;end if;else min1<=min1+1;end if;elsif(sec1=9) then sec1<=0;if (sec10=5)then sec10<=0;if(min1=9)then min1<=0;if(min10=5)then min10<=0;
48、if(hour1=9) then hour1<=0;hour10<=hour10+1;elsif(hour10=2 and hour1=3)then hour1<=0; hour10<=0;else hour1<=hour1+1;end if;else min10<=min10+1;end if;else min1<=min1+1;end if;else sec10<=sec10+1;end if;else sec1<=sec1+1;end if;end if;end process;END BEHAVE;libraryieee;use i
49、eee.std_logic_1164.all;use;use;entity BAOS isport(clkHZ1: in std_logic;min1,min10,sec1,sec10: in integer;led: out std_logic_vector(3 downto 0) );end BAOS;architecture behave of BAOS issignalled_count: std_logic_vector(2 downto 0);signalled_display: std_logic_vector(3 downto 0); BEGINprocess(clkHZ1)b
50、egin if(clkHZ1'event and clkHZ1='1') thenif (min10=5 and min1=9 and sec10=5 and sec1>3 )thenled_count<=led_count+1;elseled_count<="000"end if;end if;end process;process(led_count) begin case(led_count)iswhen"000"=>led_display<="0000"when"001"=>led_display<="1111"when"010"=>led_display<="0111"when"011"=>led_display<="0011"when"100"=>led_display<="0001"when"101"=>led_display<="1111"when ot
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市公廁改造工程設計與施工管理合同
- 2025年度城市地下管網(wǎng)清潔與維護承包合同范本
- 2025年度拱形骨架護坡施工勞務分包合同標準
- 二零二五年度拆除工程勞務分包合同范本8篇
- 2025年度海洋運輸貨物保險保險條款解釋與適用合同
- 2025年度能源顧問保密合同
- 2025年度溝渠工程環(huán)保驗收與咨詢服務合同
- 2025年度合同法第二十三章居間合同法律效力
- 2025年度農(nóng)業(yè)大數(shù)據(jù)化肥農(nóng)藥智能采購合同
- 2025年度企業(yè)年會現(xiàn)場直播與網(wǎng)絡會務服務合同
- (一模)蕪湖市2024-2025學年度第一學期中學教學質(zhì)量監(jiān)控 英語試卷(含答案)
- 完整版秸稈炭化成型綜合利用項目可行性研究報告
- 2025中國海油春季校園招聘1900人高頻重點提升(共500題)附帶答案詳解
- 膽汁淤積性肝硬化護理
- 《數(shù)據(jù)采集技術》課件-Scrapy 框架的基本操作
- (2024)河南省公務員考試《行測》真題及答案解析
- 醫(yī)療保險結算與審核制度
- 2024版房屋市政工程生產(chǎn)安全重大事故隱患判定標準內(nèi)容解讀
- 醫(yī)院投訴糾紛及處理記錄表
- YY/T 0698.5-2023最終滅菌醫(yī)療器械包裝材料第5部分:透氣材料與塑料膜組成的可密封組合袋和卷材要求和試驗方法
- 【深度教學研究國內(nèi)外文獻綜述2100字】
評論
0/150
提交評論