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

下載本文檔

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

文檔簡介

摘要本設課程設計是基于FPGA的數(shù)字跑表的設計,利用VerilogHDL語言和QuartusII軟件以及FPGA實驗操作平臺來實現(xiàn)的。本論文的重點是用硬件語言VerilogHDL來描述數(shù)字跑表,偏重于軟件設計。大致內容是首先簡單介紹了EDA的現(xiàn)狀和前景,VerilogHDL語言特點,應用平臺FPGA,之后闡述了數(shù)字跑表的設計思想和大體的設計流程,最后進入本設計的核心設計局部,用VerilogHDL語言設計數(shù)字跑表電路,著重對各個模塊進行了詳細的分析和說明?!娟P鍵詞】VerilogHDL語言;QuartusII軟件;數(shù)字秒表目錄1緒論21.1EDA的現(xiàn)狀和開展及FPGA簡介21.2VerilogHDL語言及QuartusⅡ軟件簡介21.3基于FPGA實現(xiàn)數(shù)字跑表運行的方案設計根本原那么31.4論文主要完成的工作32系統(tǒng)的硬件設計42.1數(shù)字跑表概述42.2整體方案設計和功能分割42.3各功能模塊的設計和實現(xiàn)62.4控制系統(tǒng)的實現(xiàn)83系統(tǒng)的軟件設計83.1軟件整體設計83.2主要模塊軟件設計〔主要模塊流程圖和仿真波形圖〕94總結12參考文獻131.緒論1.1EDA簡介及FPGA簡介EDA是電子設計自動化〔ElectronicDesignAutomation〕的縮寫,在20世紀60年代中期從計算機輔助設計〔CAD〕、計算機輔助制造〔CAM〕、計算機輔助測試〔CAT〕和計算機輔助工程〔CAE〕的概念開展而來的。伴隨著集成電路(IC)技術的開展,電子設計自動化(EDA)逐漸成為重要的設計手段,已經廣泛應用于模擬與數(shù)字電路系統(tǒng)等許多領域。而電子設計自動化〔EDA〕的實現(xiàn)是與CPLD/FPGA技術的迅速開展息息相關的,利用PLD/FPGA,電子系統(tǒng)設計工程師可以在實驗室中設計出專用IC,實現(xiàn)了系統(tǒng)的集成。此外,CPLD/FPGA還具有靜態(tài)可重復編程或在線動態(tài)重構特性,使硬件的功能可像軟件一樣通過編程來修改,不僅使設計修改和產品升級變得十分方便,而且極大地提高了電子系統(tǒng)的靈活性和通用能力。隨著計數(shù)的進步,自動化設計工具〔從CAD到EDA及ESDA:ElectronicSystemDesignAutomation〕已成為電子信息設計人員所必需熟悉和掌握的一門技術。FPGA〔Field-ProgrammableGateArray〕,即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的根底上進一步開展的產物。它是作為專用集成電路〔ASIC〕領域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的缺乏,又克服了原有可編程器件門電路數(shù)有限的缺點。自1985年Xilinx公司推出第一片現(xiàn)場可編程邏輯器件至今,F(xiàn)PGA已經歷了十幾年的歷史。在這十幾年的開展過程中,以FPGA為代表的數(shù)字系統(tǒng)現(xiàn)場集成取得了驚人的開展:現(xiàn)場可編程邏輯器件從最初的1200個可利用門,開展到數(shù)百萬門的單片F(xiàn)PGA芯片,將現(xiàn)場可編程器件的集成度提高到一個新的水平。它之所以具有巨大的市場吸引力,根本在于:FPGA不僅可以解決電子系統(tǒng)小型化、低功耗、高可靠性等問題,而且其開發(fā)周期短、開發(fā)軟件投入少、芯片價格不斷降低,促使FPGA越來越多地取代了ASIC的市場,特別是對小批量、多品種的產品需求,使FPGA成為首選。目前,F(xiàn)PGA的主要開展動向是:隨著大規(guī)?,F(xiàn)場可編程邏輯器件的開展,系統(tǒng)設計進入"片上可編程系統(tǒng)"〔SOPC〕的新紀元;芯片朝著高密度、低壓、低功耗方向挺進;國際各大公司都在積極擴充其IP庫,以優(yōu)化的資源更好的滿足用戶的需求,擴大市場;特別是引人注目的所謂FPGA動態(tài)可重構技術的開拓,將推動數(shù)字系統(tǒng)設計觀念的巨大轉變。VerilogHDL語言及QuartusⅡ軟件簡介VerilogHDL語言是1983年GDA公司的PhilMoorby首創(chuàng)的,之后Moorby有設計了Verilog-XL仿真器獲得很大成功,也使得VerilogHDL語言得到開展和推廣。VerilogHDL語言是在C語言的根底上開展而來的。從語法結構上看,VerilogHDL繼承和借鑒了C語言的很多語法,兩者有許多的相似之處,但VerilogHDL作為一種硬件描述語言,還是有本質的區(qū)別。即可適于可綜合的電路設計,也可勝任電路和系統(tǒng)的仿真;能在多層次上對所設計的系統(tǒng)加以描述,從開關級、門級,存放器傳輸級到行為級等都可以擔任,而且沒規(guī)模限制;靈活多變的電路描述風格,可進行行為描述,也可進行結構描述等;應用十分的廣泛。QuartusⅡ軟件是Atlera的CPLD/FPGA集成開發(fā)軟件,具有完善的可視化設計環(huán)境,并具有標準的EDA工具接口,基于QuartusⅡ進行EDA設計開發(fā)需要以下步驟:設計輸入、編譯、仿真、編程與驗證等。1.3基于FPGA實現(xiàn)數(shù)字跑表運行的方案設計根本原那么首先,要注意FPGA的邏輯設計所采用的硬件描述語言Veri-logHDL與軟件語言C和C++有本質區(qū)別,在使用硬件描述語言進行設計時,不應片面追求代碼的簡潔。其次,要采用正確的編碼方法對所需實現(xiàn)的硬件電路的結構和相互連接有清晰的理解和設想,然后再用適當?shù)腣eri-logHDL語言表達出來。實際上綜合軟件對所寫的代碼在進行推論的時候,得到的硬件結果會因編碼方式的不同而不同,直接影響硬件的現(xiàn)實。FPGA作為硬件系統(tǒng)設計,應該對設計全局進行宏觀上的合理安排,包括控制系統(tǒng)邏輯功能模塊劃分,時鐘域信號的產生和驅動,模塊復用,時序或引腳約束等。模塊化設計時系統(tǒng)原那么的一個很好表達,它是自頂向下模塊劃分,分工協(xié)作設計思路的集中表達,是大型復雜系統(tǒng)的推薦設計方法。在設計電路時,可以有異步電路和同步電路兩種方法。異步電路使用邏輯電路實現(xiàn),沒有統(tǒng)一的時鐘信號,容易產生毛刺和競爭冒險:同步時序電路使用組合邏輯和觸發(fā)器實現(xiàn)電路功能,主要信號和輸出信號由時鐘驅動觸發(fā)器產生,能夠防止毛刺,信號穩(wěn)定。基于FPGA實現(xiàn)數(shù)字跑表運行的方案設計如下列圖所示:電源系統(tǒng)電源系統(tǒng)數(shù)碼管顯示開關按鈕FPGA數(shù)碼管顯示開關按鈕FPGA1.4論文主要完成的工作闡述了數(shù)字跑表的設計思想和大體的設計流程;用VerilogHDL語言設計數(shù)字跑表電路,著重對各個模塊進行了詳細的分析和說明;功能仿真圖及程序流程圖;結論及心得體會。2.系統(tǒng)的硬件設計2.1數(shù)字跑表概述設計題目:數(shù)字跑表電路設計設計要求:數(shù)字跑表是生活中常見的一種電子產品,特別應用與體育比賽中。本數(shù)字跑表是通過按鍵來控制計時的起點和終點,一個是復位控制按鍵,用于設計跑表為初始零狀態(tài);另一個那么是開始/停止控制按鍵,在復位控制無效的情況下,按一下開始/停止鍵那么計時器開始計時,再按一下那么暫停計時,再按一下那么繼續(xù)計時。具體性能如下:跑表的計時范圍為0.01s~59min59.99s,計時精度為10ms;具有異步復位清零、啟動、計時和暫停功能;輸入時鐘頻率為100Hz;要求數(shù)字跑表的輸出能夠直接驅動共陰極7段數(shù)碼管顯示.設計工作:分析功能要求,劃分功能模塊;編寫各模塊的VerilogHDL語言的設計程序;在QuartusⅡ軟件上完成設計和仿真;根據實驗室FPGA芯片,將設計生成配置文件,然后將配置文件下載到實驗裝置上運行,操作設定的功能按鍵,驗證設計效果。2.2整體方案設計和功能分割根據設計要求,對數(shù)字跑表進行結構和功能的劃分。計數(shù)器局部設三個輸入端,分別為時鐘輸入〔CLK〕,復位〔CLR〕和啟動/暫?!睵AUSE〕按鍵。復位信號高電平有效,可對跑表異步清零;當啟動/暫停鍵為低電平時,跑表開始計時,高電平時暫停,變低后在原來的數(shù)值根底上繼續(xù)計數(shù)。然后計數(shù)器的每個位的值賦給六選一數(shù)據選擇器,數(shù)據選擇器選擇的位值再賦給七段數(shù)碼管譯碼器,這樣就可以實現(xiàn)顯示當前數(shù)字。按照自頂而下的設計方法數(shù)字跑表的功能分割,如下列圖:按鍵電路按鍵電路計時模塊顯示模塊七段譯碼器掃描電路時基電路計時器啟動/暫停鍵清零鍵數(shù)字跑表功能分割圖計時電路的作用是計時,計時的一般方法是對時鐘脈沖進行計數(shù)。本設計在外部提供了1kHzs時鐘,計時精度是1ms。根據精度要求,需要設計分頻器,對時鐘信號進行10分頻,產生周期為10ms的時基信號。時基信號由時基分頻器模塊產生。顯示電路的作用是將計時值顯示在數(shù)碼管上。計時電路產生的計時值通過BCD/七段譯碼后,驅動LED七段數(shù)碼管。計時顯示電路存在一個方案選擇的問題,即采用并行顯示還是掃描顯示,這關系到器件的資源利用。并行顯示同時驅動6個數(shù)碼管,它需要同時對6組BCD數(shù)據進行譯碼并輸出6組LED七段驅動信號,需要較多的內部邏輯和I/O資源。以ispLSI器件為例,驅動6個數(shù)碼管的7個顯示段,共需要42〔7*6〕個I/O引腳;另外還需要6個BCD/七段譯碼器,共需要12〔6*2〕個GLB。采用掃描顯示那么每次只驅動一位數(shù)據,各位數(shù)據輪流進行顯示;如果是掃描的速度足夠快,由于人眼存在視覺殘留現(xiàn)象,看不到閃爍。掃描顯示的資源少。設計中采用掃描顯示的方式,由于是掃描顯示每次只有一位視覺進行譯碼和輸出,所以可以共享BCD/七段譯碼器和七段驅動信號輸出引腳。同樣用ispLSI器件實現(xiàn),數(shù)碼管七段驅動信號需要7個輸出引腳,另外還要6個位驅動信號,共需要13個I/O引腳。掃描顯示電路可以繼續(xù)分割為BCD譯碼器和數(shù)據選擇器兩個子模塊。下面確定模塊之間的接口關系,各模塊的接口信號說明如下:計時控制器:計時控制器的輸入信號時啟動、暫停、和清零信號。為了方便,將啟動和暫停功能設置在同一個案件上;按一次是啟動,按第二次是暫停,按第三次那么是繼續(xù),以此類推。所以計時控制器共有兩個開關輸入信號,記啟動/暫停和清零。計時器的輸出信號為計數(shù)允許/保持信號和清零信號。計時電路:計時電路的輸入信號為1kHz時鐘、計時允許/保持信號和清零信號;輸出為10ms,100ms,s,min的計時數(shù)據。它的下一級模塊的接口信號如下:1、時基電路大的輸入信號頻率為1kHz,輸出時鐘周期為10ms。2、計數(shù)器的輸入信號為計數(shù)允許信號、清零信號和1kHz時鐘,輸出為10ms,100ms,s,min的計時數(shù)據。顯示電路:顯示電路的輸入信號為計時器的10ms,100ms,s,min計時數(shù)據。輸出為七段譯碼驅動信號和位選擇信號。2.3各功能模塊的設計和實現(xiàn)自頂而下完成各層次的設計描述,數(shù)字跑表可以劃分為5個功能模塊:頂層模塊、計時模塊、時基分頻器模塊、數(shù)據選擇模塊、數(shù)碼管顯示模塊。本設計中局部模塊都用原理圖和VerilogHDL語言兩種方法設計。以VerilogHDL語言設計為主。頂層模塊頂層模塊只說明功能的分配、內部功能塊和對外接口關系,功能模塊實際的邏輯功能和具體的實現(xiàn)由下一層模塊描述。計時器模塊PAUSE為低電平時開始計數(shù),百分秒低位自加一,加到九時歸零,百分秒高位自加一,加到九時歸零,且向秒位發(fā)出一個高電平,秒低位自加一,加到九時歸零,秒高位自加一,且向分位發(fā)出一個高電平,分低位自加一,加到九時清零,且向分高位發(fā)出一個高電平,分高位自加一,加到六時清零。PAUSE為低電平時暫停。電路圖如下:1.計數(shù)器表示2.基于QuartusⅡ的VerilogHDL語言電路圖表示分高位分低位秒高位秒低位百分秒高位百分秒低位MHMLSHSLMSHMSL時基分頻器模塊時基分頻器要求對1kHz的時鐘〔此設計的輸入時鐘信號〕分頻,產生100Hz〔10ms〕時基信號輸出,此時基信號即為計時器的輸入信號?;诸l器可由十進制計時器設計。電路圖如下所示:數(shù)據選擇模塊數(shù)據掃描器的作用是對10ms,100ms,s,min的59min59.99s和6個BCD數(shù)碼管進行掃描。6位掃描數(shù)碼顯示,將時間劃分為6個掃描周期:周期1—周期2—周期3—周期4—周期5—周期6。在周期1顯示第一個數(shù)字,周期2顯示第二個數(shù)字,以此類推;在掃描6個周期后重新從第1個開始循環(huán)。如果掃描的速度足夠快,人的感覺就好似6個數(shù)字在同時顯示。BCD/七段譯碼模塊數(shù)據選擇模塊:定義三位二進制數(shù)ss作為選擇數(shù)碼管的變量,ss自加一,當ss大于7時歸零,當ss為5、4、3、2、1時分別將MSL,MSH,SL,SH,ML,MH的值賦給dec_in,當ss為6、7時賦值為零。七段數(shù)碼管譯碼器模塊:根據數(shù)字的顯示形狀編制真值表,當上一模塊dec_in為0~9時,分別給decodeout賦以一組八位二進制數(shù),使數(shù)碼管顯示相應的數(shù)字。2.4控制系統(tǒng)的實現(xiàn)本設計是基于FPGA的數(shù)字跑表的設計,利用VerilogHDL語言和QuartusII平臺以及FPGA實驗操作箱來實現(xiàn)的?;赒uartusⅡ軟件平臺,在對各個功能局部設計和各模塊的VerilogHDL語言的設計程序,編譯、仿真。根據實驗室FPGA芯片,將設計生成配置文件,然后將配置文件下載到FPGA上運行,操作設定的功能按鍵,驗證設計效果。3.系統(tǒng)的軟件設計3.1軟件整體設計以上分析了數(shù)字跑表的功能和性能參數(shù)要求,確定了數(shù)字跑表的主要功能塊、內部連接關系及I/O關系,各模塊的連接如下列圖所示。時基分頻器時基分頻器模塊計時控制模塊計數(shù)模塊啟動/暫停計數(shù)允許計數(shù)值顯示段輸出顯示位輸出10ms清零1ms時鐘數(shù)字跑表模塊框圖設計掃描顯示模塊采用verilogHDL設計,各局部進行編輯,編譯,仿真。編譯,仿真正確后,將各局部進行封裝;然后,新建原理圖文件,將各局部的調出并進行連接;在進行編譯,管腳鎖定及硬件連線:變量管腳號硬件連線CLK86CLOCK15CLK189CLOCKH0CLR87SW15PAUSE88SW16decodeout094Adecodeout195Bdecodeout296Cdecodeout397Ddecodeout499Edecodeout5100Fdecodeout637Gdecodeout7160Hss090SS0ss192SS1ss293SS23.2主要模塊軟件設計〔主要模塊流程圖和仿真波形圖〕計數(shù)器模塊波形仿真圖數(shù)字跑表的RTL綜合視圖YYN開始CLR=1?MH=0清零顯示ML=9?YNML=0NMH=MH+1結束分鐘計數(shù)進程程序流程圖MH=5?YYYN開始CLR=1?MH=0,cn2=1清零顯示SL=9?YNSL=0NSH=SH+1秒計數(shù)進程程序流程圖SH=5?Y結束YYN開始CLR=1?MH=0清零顯示ML=9?YNML=0NMH=MH+1結束MH=5?Y分鐘計數(shù)進程程序流程圖4.總結寫到這里為期一周的EDA課程設計就要結束了,通過近段時間的學習實踐,我初步掌握了VerilogHDL這種目前應用最廣泛的硬件描述語言的編寫方法以及聯(lián)機驗證的整個流程,圓滿完成了期末設計。具體來講,我的思路時這樣的:1:復習、自學。復習課本《數(shù)字系統(tǒng)設計與VerilogHDL》以及老師的課件,重點掌握了VerilogHDL語言的程序設計;QuartusⅡ軟件的一些應用,比方原理圖的設計、波形仿真等;FPGA芯片的下載和運行等。2:設計。利用自己已有的知識認真分析數(shù)字跑表的功能,對整個流程有了初步了解;依照自己的思路在圖書館借閱書籍和網上的資料進行了深入分析;完成了此設計中最關鍵的編程工作,這是一個比擬艱難的過程,寫了又改,改了再改,循環(huán)好幾次后終于QuartusⅡ軟件編譯通過,仿真的波形到達了理想的結果。最后是下載到FPGA,連接硬件電路,驗證設計效果。3:撰寫論文。本以為這是最簡單的一個環(huán)節(jié),其實不然,要把自己想的東西和那些都是字母和數(shù)字的程序用語言表達出來,也是任重而道遠。根本格式是什么?要求又是什么?如何做到即簡潔又含金量高呢?根據老師的建議,帶著一個個

溫馨提示

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

評論

0/150

提交評論