![基于FPGA的LED顯示控制器設(shè)計(jì)_第1頁](http://file4.renrendoc.com/view/ca9c2566bc2a8e1bb4b029b584baa0d5/ca9c2566bc2a8e1bb4b029b584baa0d51.gif)
![基于FPGA的LED顯示控制器設(shè)計(jì)_第2頁](http://file4.renrendoc.com/view/ca9c2566bc2a8e1bb4b029b584baa0d5/ca9c2566bc2a8e1bb4b029b584baa0d52.gif)
![基于FPGA的LED顯示控制器設(shè)計(jì)_第3頁](http://file4.renrendoc.com/view/ca9c2566bc2a8e1bb4b029b584baa0d5/ca9c2566bc2a8e1bb4b029b584baa0d53.gif)
![基于FPGA的LED顯示控制器設(shè)計(jì)_第4頁](http://file4.renrendoc.com/view/ca9c2566bc2a8e1bb4b029b584baa0d5/ca9c2566bc2a8e1bb4b029b584baa0d54.gif)
![基于FPGA的LED顯示控制器設(shè)計(jì)_第5頁](http://file4.renrendoc.com/view/ca9c2566bc2a8e1bb4b029b584baa0d5/ca9c2566bc2a8e1bb4b029b584baa0d55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE17基于FPGA的LED顯示控制器設(shè)計(jì)摘要本設(shè)計(jì)為一個(gè)滾動顯示的LED控制器,它具有按照需要的大小、形狀組合,定時(shí)循環(huán)自動播放的功能。由于LED顯示控制器廣泛應(yīng)用于醫(yī)院、銀行、機(jī)場等公共場所,所以本設(shè)計(jì)具有很強(qiáng)的現(xiàn)實(shí)應(yīng)用性。本設(shè)計(jì)采用了EDA技術(shù),以硬件描述語言VerilogHDL為系統(tǒng)邏輯描述手段設(shè)計(jì)文件,在QuartusⅡ可編程系統(tǒng)設(shè)計(jì)的綜合性開發(fā)環(huán)境下,采用自頂向下的設(shè)計(jì)方法,由各個(gè)基本模塊共同構(gòu)建了一個(gè)基于FPGA的LED顯示控制器。本文從LED的顯示原理入手,詳細(xì)闡述了LED動態(tài)顯示的過程。介紹了一種基于FPGA的LED滾動顯示的設(shè)計(jì)與實(shí)現(xiàn)方法,分析了FPGA內(nèi)部各功能模塊和其他電路模塊的作用及其工作過程。在計(jì)算機(jī)上通過軟件編程與仿真實(shí)現(xiàn)LED的滾動顯示,通過VerilogHDL語言實(shí)現(xiàn)其功能的仿真。關(guān)鍵詞:LED顯示控制器;QuartusⅡ;VerilogHDL;FPGA
AbstractThisdesignisatrundledemonstrationLEDbillboard,ithasaccordingtothesizewhich,theshapecombinationneeds,timingcycleautomaticbroadcastfunction.BecausetheLEDtrundlebillboardwidelyappliesinthehospital,thebank,theairportandsoonpublicplace,thereforethisdesignhastheverystrongrealisticutility.ThisdesignhasusedtheEDAtechnology,takehardwaredescriptionlanguageVHDLasthesystemlogicdescriptionmethoddesigndocument,inQuartusⅡUndertheprogrammablesystemdesign'scomprehensivenaturedevelopmentenvironment,usesthedesignmethodfromthetop,hasconstructedonetogetherbyeachbasicmodulebasedontheFPGALEDtrundlebillboard.ThisarticleobtainsfromtheLEDdisplayprinciple,elaboratedtheLEDdynamicdemonstrationprocessindetail.IntroducedonekindwithrealizesthemethodbasedontheFPGALEDtrundledemonstration'sdesign,hasanalyzedtheFPGAinteriorvariousfunctionalmoduleandotherelectriccircuitmodulefunctionandtheworkprocess.RealizestheLEDtrundleonthecomputerthroughthesoftwareprogrammingandthesimulationtodemonstratethatlanguagerealizesitsfunctionsimulationthroughVerilogtheHDL.keyWord:LEDtrundlebillboard;QuartusⅡ;VerilogHDL;FPGA
目錄前言 1一、緒論 2(一)選題背景 2(二)課題研究的意義與必要性 2(三)選題研究的內(nèi)容 2二、開發(fā)平臺及開發(fā)工具 4(一)FPGA概述 4(二)QuartusⅡ開發(fā)工具 4(三)VerilogHDL硬件描述語言介紹 4三LED顯示控制器的總體設(shè)計(jì)方案與分析 6(一)LED顯示的控制原理 61.LED點(diǎn)陣顯示模塊結(jié)構(gòu) 62.LED點(diǎn)陣的動態(tài)顯示原理 7(二)LED顯示控制器的構(gòu)成 7(三)LED顯示控制器的工作原理 8四單元電路設(shè)計(jì) 9(一)頂層模塊設(shè)計(jì)與實(shí)現(xiàn) 91.頂層設(shè)計(jì)模塊的實(shí)現(xiàn)原理 92.頂層模塊的程序 103.仿真結(jié)果 10(二)總循環(huán)控制模塊的設(shè)計(jì)與實(shí)現(xiàn) 101.總循環(huán)顯示控制模塊的原理 112.總循環(huán)顯示控制模塊的核心程序 11(三)顯示模塊設(shè)計(jì)與實(shí)現(xiàn) 121.各顯示子模塊的原理 122.顯示子模塊的核心程序 133.程序說明 144.仿真結(jié)果 14(四)分頻模塊電路設(shè)計(jì)與實(shí)現(xiàn) 141.分頻模塊的原理 142.分時(shí)模塊的核心程序分析 143.仿真結(jié)果 15(五)選擇控制按鍵狀態(tài) 15五實(shí)驗(yàn)結(jié)論與研究展望 17(一)實(shí)驗(yàn)結(jié)論與總結(jié) 17(二)研究與展望 18參考文獻(xiàn) 19致謝 19前言現(xiàn)代社會的標(biāo)志之一就是信息產(chǎn)品的廣泛使用,而且是產(chǎn)品的性能越來越強(qiáng),復(fù)雜程度越來越高,更新步伐越來越快。支撐信息電子產(chǎn)品高速發(fā)展的基礎(chǔ)就是微電子制造工藝水平的提高和電子產(chǎn)品設(shè)計(jì)開發(fā)技術(shù)的發(fā)展。前者以微細(xì)加工技術(shù)為代表,而后者的代表就是電子設(shè)計(jì)自動化技術(shù)。隨著LED技術(shù)領(lǐng)域的發(fā)展,LED顯示屏已經(jīng)得到了廣泛的應(yīng)用,如廣告媒體、樓宇裝飾、交通信息和體育場館。LED顯示控制器的發(fā)展前景極為廣闊,目前正朝著可靠性、實(shí)用性、方便性的方向發(fā)展。本設(shè)計(jì)采用的VerilogHDL是一種全方位的硬件描述語言,具有極強(qiáng)的描述能力,能支持系統(tǒng)行為級、寄存器傳輸級和邏輯門級三個(gè)不同層次的設(shè)計(jì);在支持結(jié)構(gòu)、數(shù)據(jù)流、行為三種描述應(yīng)用中越來越廣泛。而FPGA是特殊的開發(fā)芯片,它具有設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低、開發(fā)工具先進(jìn)、質(zhì)量穩(wěn)定以及可實(shí)時(shí)在線檢測等優(yōu)點(diǎn)。LED廣告牌的滾動顯示給人們的生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了LED廣告牌原先的顯示功能。諸如按照需要的大小、形狀顯示,能夠自動循環(huán)播放等,所有這些,都是以LED廣告牌數(shù)字化為基礎(chǔ)。因此,研究LED廣告牌的滾動顯示,有著非?,F(xiàn)實(shí)的意義。一、緒論(一)選題背景當(dāng)今電子產(chǎn)品正朝著功能多元化,體積最小化,功耗最低化發(fā)展。它與傳統(tǒng)的電子產(chǎn)品在設(shè)計(jì)上有著顯著區(qū)別是大量使用大規(guī)??删幊踢壿嬈骷?,使產(chǎn)品的性能提高,體積縮小,功耗降低。同時(shí)廣泛運(yùn)用現(xiàn)代計(jì)算機(jī)技術(shù),提高產(chǎn)品的自動化程度和競爭力,是一門新興技術(shù),研發(fā)周期短。EDA技術(shù)正是為了適應(yīng)現(xiàn)代電子技術(shù)的需要,吸收眾多學(xué)科最新科技成果而形成的[1]。美國ALTERA公司的可編程邏輯器件采用全新的結(jié)構(gòu)和先進(jìn)的技術(shù),加上最新的QuartusII開發(fā)環(huán)境,更具有高性能,開發(fā)周期短等特點(diǎn),十分方便進(jìn)行電子產(chǎn)品的開發(fā)和設(shè)計(jì)。EDA技術(shù)以大規(guī)??删幊踢壿嬈骷樵O(shè)計(jì)載體,以硬件描述語言為系統(tǒng)邏輯描述主要表達(dá)方式,以計(jì)算機(jī)、大規(guī)??删幊踢壿嬈骷拈_發(fā)軟件及實(shí)驗(yàn)開發(fā)系統(tǒng)為設(shè)計(jì)工具,通過有關(guān)的開發(fā)軟件,自動完成用軟件的方式設(shè)計(jì)的電子系統(tǒng)到硬件系統(tǒng)的邏輯編譯,邏輯化簡,邏輯分割,邏輯映射,編程下載等工作。最終形成集成電子系統(tǒng)或?qū)S眉尚酒囊婚T新技術(shù)[2]。(二)課題研究的意義與必要性微電子技術(shù)和計(jì)算機(jī)技術(shù)的飛速發(fā)展,使得現(xiàn)代電子系統(tǒng)的設(shè)計(jì)和應(yīng)用進(jìn)入了一個(gè)全新的時(shí)代。數(shù)字化是當(dāng)今社會的主要特征之一。高性能但結(jié)構(gòu)簡單的電子技術(shù)產(chǎn)品已經(jīng)成為了市場的主體。現(xiàn)在是一個(gè)知識爆炸的新時(shí)代,新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月異。可以毫不夸張的說,電子技術(shù)的應(yīng)用無處不在,電子技術(shù)正在不斷地改變我們的生活,改變著我們的世界。在這快速發(fā)展的年代,時(shí)間對人們來說越來越寶貴。因此,LED廣告牌的滾動顯示給人們帶來了極大的方便,能夠提高人們的工作效率,節(jié)約時(shí)間,同時(shí)LED顯示控制器能夠晝夜進(jìn)行動態(tài)畫面顯示,效果比靜止畫面廣告牌大幅提高。隨著社會文化的不斷發(fā)展,人們的消費(fèi)標(biāo)準(zhǔn)不斷改變,LED滾動廣告更是扮演著越來越重要的宣傳角色,不論是汽車站,火車站,股市交易市場,還是學(xué)校都離不開它,然而傳統(tǒng)的LED顯示廣告牌不論是在顯示效果、耗電量還是可修改性上都無法滿足當(dāng)前社會的需求,傳統(tǒng)的LED顯示廣告急待改進(jìn)。提出基于FPGA的LED顯示控制器設(shè)計(jì)的新方案能很好的解決這個(gè)問題,實(shí)現(xiàn)對廣告牌內(nèi)容及顯示方式的靈活改變,使用非常方便,,具有很好的現(xiàn)實(shí)必要性和較高的性能價(jià)格比[4]。(三)選題研究的內(nèi)容本設(shè)計(jì)主要研究基于FPGA的LED顯示控制器,要求能夠根據(jù)現(xiàn)實(shí)的需要自動循環(huán)播放廣告。因此,設(shè)計(jì)的主要任務(wù)就是完成一個(gè)可以設(shè)定數(shù)字的滾動顯示。任務(wù)要求:能顯示設(shè)定的數(shù)字;能實(shí)現(xiàn)設(shè)定數(shù)字在LED上的循環(huán)移動。利用VerilogHDL語言完成部分模塊的設(shè)計(jì),利用QuartusⅡ?qū)崿F(xiàn)輸入輸出波形的仿真,并驗(yàn)證設(shè)計(jì)的正確性。
二、開發(fā)平臺及開發(fā)工具(一)FPGA概述FPGA是現(xiàn)場可編程門陣列(FieldProgrammableGateArray)的簡稱,與之相對應(yīng)的CPLD是復(fù)雜可編程邏輯器件(ComplexProgrammableLogicDevice)的簡稱,兩者的基本功能相同,只是實(shí)現(xiàn)原理略有不同,所以有時(shí)可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件或CPLD/PGFA。CPLD/PGFA幾乎能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡單的74電路。它如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入或硬件描述語言自由的設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。通過軟件仿真可以事先驗(yàn)證設(shè)計(jì)的正確性,在PCB完成以后,利用CPLD/PGFA的在線修改功能,隨時(shí)修改設(shè)計(jì)而不必改動硬件電路。使用CPLD/PGFA開發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積,提高系統(tǒng)的可靠性。這些優(yōu)點(diǎn)使得CPLD/PGFA技術(shù)在20世紀(jì)90年代以后得到飛速的發(fā)展,同時(shí)也大大推動了EDA軟件和硬件描述語言VerilogHDL的進(jìn)步。FPGA的集成度一般都非常高,可以完成極其復(fù)雜的時(shí)序與組合邏輯電路功能,適應(yīng)高速、高密度的高端數(shù)字邏輯電路設(shè)計(jì)領(lǐng)域[5]。(二)QuartusⅡ開發(fā)工具從上面的FPGA開發(fā)流程介紹中可以知道,F(xiàn)PGA開發(fā)主要是電路設(shè)計(jì)與仿真的過程。電路的邏輯設(shè)計(jì)主要在QuartusⅡ集成開發(fā)工具上實(shí)現(xiàn)。QuartusⅡ是ALTERA公司在21世紀(jì)初推出的,它是一個(gè)集設(shè)計(jì)輸入工具、綜合工具、仿真工具、實(shí)現(xiàn)與優(yōu)化工具、后端輔助工具和驗(yàn)證調(diào)試工具于一身的系統(tǒng)集成開發(fā)環(huán)境。在這個(gè)平臺下,可以輕松地完成從系統(tǒng)設(shè)計(jì)電路構(gòu)思至加載配置、在線調(diào)試等一系列的工作。同時(shí),它還提供非常友好的與當(dāng)前主流第三方EDA軟件的接口。使用QuartusⅡ,設(shè)計(jì)者無需精通器件內(nèi)部的復(fù)雜結(jié)構(gòu),只需要運(yùn)用自己熟悉的輸入工具(如原理圖輸入或高級行為語言)進(jìn)行設(shè)計(jì),通過QuartusⅡ把這些設(shè)計(jì)轉(zhuǎn)換成最終結(jié)構(gòu)所需要的格式。由于有關(guān)結(jié)構(gòu)的詳細(xì)知識已裝入開發(fā)工具,因此設(shè)計(jì)速度非常快。設(shè)計(jì)人員在很短的時(shí)間內(nèi)就可以完成電路的輸入、編譯、優(yōu)化、仿真,直至最后芯片的制作。QuartusⅡ設(shè)計(jì)軟件具有先進(jìn)的功能,它可以提高系統(tǒng)性能,擴(kuò)展系統(tǒng)功能,輕松處理潛在的設(shè)計(jì)延時(shí),實(shí)現(xiàn)布局布線之后的設(shè)計(jì)改變等。它擁有現(xiàn)場可編程門陣列(FPGA)和復(fù)雜可編程邏輯器件(CPLD)設(shè)計(jì)的所有階段的解決方案[7]。(三)VerilogHDL硬件描述語言介紹VerilogHDL語言最初是于1983年由GatewayDesignAutomation公司為其模擬器產(chǎn)品開發(fā)的硬件建模語言,用于從算法級、門級到開關(guān)級的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對象的復(fù)雜性可以介于簡單的門和完整的數(shù)字電子系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述這種顯示進(jìn)行時(shí)序建模,是目前應(yīng)用最廣泛地一種硬件描述語言[9]。VerilogHDL語言不僅定義了語法,而且對每個(gè)語法結(jié)構(gòu)都定義了清晰的模擬、仿真語義,它還從C編程語言中繼承了多種操作符和結(jié)構(gòu);不僅可以作為ASIC和FPGA的綜合代碼,可以描述系統(tǒng)的結(jié)構(gòu),做高層次的仿真。語法/結(jié)構(gòu)比較嚴(yán)格,因而編寫出的模塊風(fēng)格比較清晰,比較適合有較多的設(shè)計(jì)人員完成的特大型項(xiàng)目[10]。VerilogHDL語言具有以下特點(diǎn):①能形式化地抽象表示電路的行為和結(jié)構(gòu),支持邏輯設(shè)計(jì)中層次與范圍描述;②可借用高級語言的精巧結(jié)構(gòu)來簡化電路行為的描述;③具有電路仿真與驗(yàn)證機(jī)制以保證設(shè)計(jì)的正確性;④支持電路描述有高層到底層的的綜合轉(zhuǎn)換硬件描述與實(shí)現(xiàn)工藝無關(guān);⑤便于文檔管理,易于理解和設(shè)計(jì)重用。
三LED顯示控制器的總體設(shè)計(jì)方案與分析(一)LED顯示的控制原理LED顯示的控制系統(tǒng)需要與其驅(qū)動電路相配合。LED的結(jié)構(gòu)、驅(qū)動電路的驅(qū)動方式,直接關(guān)系到FPGA內(nèi)部如何進(jìn)行數(shù)據(jù)轉(zhuǎn)換,因?yàn)閺腇PGA中送出來的驅(qū)動數(shù)據(jù)必須符合LED的驅(qū)動需求,才能正確地點(diǎn)亮LED。1.LED點(diǎn)陣顯示模塊結(jié)構(gòu)八十年代出現(xiàn)了組合型LED點(diǎn)陣顯示器模塊,以發(fā)光二極管為像素,它用高度發(fā)光二級管芯陣列組合后,環(huán)氧樹脂和塑模封裝而成。這種一體化封裝的點(diǎn)陣LED模塊,具有高亮度、引腳少、視角大、壽命長,耐濕、耐冷熱等特點(diǎn)。圖3-1為最常見的LED點(diǎn)陣顯示器的內(nèi)部電路結(jié)構(gòu)和外型:圖3-1LED點(diǎn)陣內(nèi)部電路結(jié)構(gòu)和外形LED顯示模塊根據(jù)驅(qū)動方式不同,可以分為共用陰極和共用陽極兩種。如果LED顯示模塊為共陰方式驅(qū)動,則模塊中的一行發(fā)光管在顯示時(shí)陰極都接低電平,此時(shí)若在某個(gè)發(fā)光管陽極上輸入一個(gè)高電平,則發(fā)光管導(dǎo)通發(fā)光;若在某個(gè)發(fā)光管陽極上輸入一個(gè)低電平,則發(fā)光管不導(dǎo)通,這樣通過在一行發(fā)光管陽極上的輸入電平就能控制該行LED的亮與滅。共陽驅(qū)動與共陰驅(qū)動相反,模塊中的一行發(fā)光管在顯示時(shí)陽極都接高電平,若陰極輸入低電平則發(fā)光管導(dǎo)通發(fā)光,輸入高電平在發(fā)光管不導(dǎo)通。實(shí)際應(yīng)用中,共陰驅(qū)動和共陽驅(qū)動都被廣泛的使用[11]。單個(gè)的LED的電路如下圖3-2所示:圖3-2單個(gè)LED電路由上圖可知,對于單個(gè)LED的電路圖當(dāng)Rn輸入一個(gè)高電平,同時(shí)Cn輸入一個(gè)低電平時(shí),電路形成一個(gè)回路,LED發(fā)光。也就是LED點(diǎn)陣對應(yīng)的這個(gè)點(diǎn)被點(diǎn)亮。信號傳輸、輸入輸出接口等各種電路和顯示單元共同安裝在一塊印刷電路板上,形成一塊獨(dú)立的、可級聯(lián)和互換的LED基本模塊,這就是一個(gè)LED小模塊。通過在LED顯示模塊各列上輸入不同電平的信號,來控制LED顯示模塊上各個(gè)像素點(diǎn)的點(diǎn)亮與否。一個(gè)大的LED屏是有若干個(gè)小的LED屏組合而成。LED點(diǎn)陣顯示器單塊使用時(shí),既可以代替數(shù)碼管顯示數(shù)字,也可顯示各種中西文字及符號,還可以用于簡單圖形顯示。用多塊點(diǎn)陣顯示器組合則可構(gòu)成大屏幕的廣告牌[12]。2.LED點(diǎn)陣的動態(tài)顯示原理LED點(diǎn)陣顯示系統(tǒng)中各模塊的顯示方式:有靜態(tài)和動態(tài)顯示兩種。靜態(tài)顯示原理簡單、控制方便,在實(shí)際應(yīng)用中一般采用動態(tài)顯示方式。動態(tài)顯示由峰值較大的窄脈沖電壓驅(qū)動,從上到下逐次不斷地對顯示屏的各行進(jìn)行選通,同時(shí)又向各列送出表示圖形或文字信息的列數(shù)據(jù)信號,反復(fù)循環(huán)以上操作,就可以顯示各種圖形或文字信息。在上述的LED點(diǎn)陣模塊中,若在某行線上施加高電平,在某列線上施加低電平,則行線和列線的交叉點(diǎn)處的LED就會有電流通過而發(fā)光。在實(shí)現(xiàn)LED點(diǎn)陣顯示的基礎(chǔ)上用循環(huán)控制信號進(jìn)行循環(huán)控制,從而實(shí)現(xiàn)LED的滾動顯示。本設(shè)計(jì)實(shí)現(xiàn)的是“畢業(yè)設(shè)計(jì)”四個(gè)漢字在LED點(diǎn)陣上的循環(huán)顯示,其中循環(huán)顯示部分原理圖如下圖3-3所示:圖3-3循環(huán)顯示部分原理圖(二)LED顯示控制器的構(gòu)成LED顯示控制器實(shí)際上是一個(gè)對LED點(diǎn)陣進(jìn)行循環(huán)顯示的電路。該電路主要包括控制電路和顯示電路。其中的控制邏輯電路是比較靈活多樣,不斷完善它可以增強(qiáng)LED顯示控制器的功能。本設(shè)計(jì)是在QuartusⅡ的開發(fā)環(huán)境下,用VHDL語言來對它進(jìn)行設(shè)計(jì),實(shí)現(xiàn)兩大功能模塊:①控制模塊,進(jìn)行對顯示部分的控制以及顯示部分的數(shù)據(jù)傳送,包含多個(gè)控制信號:循環(huán)控制信號和清屏信號,用來控制LED點(diǎn)陣的循環(huán)顯示。②顯示模塊,通過從控制部接受數(shù)據(jù)、控制LED點(diǎn)陣的輸出,用產(chǎn)生LED的片選信號,并實(shí)現(xiàn)LED點(diǎn)陣的輸出。(三)LED顯示控制器的工作原理通過按鍵控制LED點(diǎn)陣顯示的開始與停止。同時(shí)通過分頻器產(chǎn)生的高頻脈沖信號,作為LED廣告牌顯示的開始,然后經(jīng)過分頻器輸出標(biāo)準(zhǔn)時(shí)鐘脈沖信號。在循環(huán)模塊中能夠通過一個(gè)循環(huán)控制信號來控制四個(gè)顯示子模塊,該信號由一個(gè)計(jì)數(shù)器來實(shí)現(xiàn)。開始時(shí),計(jì)數(shù)器為0,每顯示一次計(jì)數(shù)器加1,到計(jì)數(shù)器為3時(shí)在清零,從而實(shí)現(xiàn)LED點(diǎn)陣的循環(huán)顯示。整個(gè)設(shè)計(jì)的程序流程圖如下圖3-4所示:圖3-4整體設(shè)計(jì)程序流程圖
四單元電路設(shè)計(jì)本設(shè)計(jì)的基本要求是控制8個(gè)LED進(jìn)行花式顯示,設(shè)計(jì)四種顯示模式:①在LED點(diǎn)陣上顯示漢字“畢”②在LED點(diǎn)陣上顯示漢字“業(yè)”③在LED點(diǎn)陣上顯示漢字“設(shè)”④在LED點(diǎn)陣上顯示漢字“計(jì)”四種模式循環(huán)切換,由復(fù)位鍵res控制系統(tǒng)的運(yùn)行與停止。本設(shè)計(jì)采用以下幾個(gè)基本模塊來實(shí)現(xiàn)所需要設(shè)計(jì)的要求。其圖如下圖4-1所示:顯示4linerow顯示3linerow顯示2顯示4linerow顯示3linerow顯示2linerow顯示1linerow分clk頻fs開關(guān)按鍵key循環(huán)顯示控制kzdisplay=b’00display=b’01display=b’11display=b’10clkres圖4-1設(shè)計(jì)模塊流程圖(一)頂層模塊設(shè)計(jì)與實(shí)現(xiàn)1.頂層設(shè)計(jì)模塊的實(shí)現(xiàn)原理該模塊是通過在一個(gè)主程序中調(diào)用幾個(gè)子模塊的程序來實(shí)現(xiàn)的。VerilogHDL的子程序是被主程序調(diào)用后處理結(jié)果返回給主程序的模塊,可以在結(jié)構(gòu)體或程序包的任何位置對子程序進(jìn)行調(diào)用。從硬件角度看,一個(gè)子程序的調(diào)用類似于一個(gè)元件模塊的例化,即VerilogHDL綜合器為子程序的每一次調(diào)用都生成一個(gè)電路邏輯模塊,不同的是元件的例化將產(chǎn)生一個(gè)新的設(shè)計(jì)層次,而子程序的調(diào)用只對應(yīng)當(dāng)前層次的一個(gè)部分。VerilogHDL中的子程序在每次調(diào)用時(shí)均重新進(jìn)行初始化,其內(nèi)部變量的值不能保持,執(zhí)行結(jié)束后子程序及終止,且之程序不可重入。VerilogHDL子程序具有可重載性,即允許有許多重名的子程序,但這些子程序的參數(shù)類型和返回值數(shù)據(jù)類型是不同的。2.頂層模塊的程序moduleverilog(clk,key,line,row);inputclk; inputkey; output[7:0]line,row; wirefs; wire[1:0]display; wirelinerow; fenpinfen(clk,clk_fp); xunhuankongzhi(kz,key,clk,display);print1(clk_fp,display,line,row); print2(clk_fp,display,line,row);print3(clk_fp,display,line,row);print4(clk_fp,display,line,row);endmodule3.仿真結(jié)果該模塊仿真結(jié)果如下圖4-2所示:圖4-2頂層模塊仿真波形圖(二)總循環(huán)控制模塊的設(shè)計(jì)與實(shí)現(xiàn)本設(shè)計(jì)中除了要實(shí)現(xiàn)四種模式的花式的單個(gè)顯示外,還要通過一個(gè)總的循環(huán)控制信號來實(shí)現(xiàn)四個(gè)顯示子模塊的切換,從而達(dá)到本次設(shè)計(jì)的最終目,LED廣告牌的滾動顯示。1.總循環(huán)顯示控制模塊的原理該模塊是通過一個(gè)循環(huán)控制計(jì)數(shù)器來選擇四個(gè)顯示子模塊的。當(dāng)按下按鍵時(shí),開始從第一漢字“畢”開始顯示,然后通過循環(huán)控制計(jì)數(shù)器自加,從而為下一個(gè)漢字的顯示輸出做準(zhǔn)備。當(dāng)控制計(jì)數(shù)器加到3時(shí),將計(jì)數(shù)器清零,回到第一個(gè)漢字的輸出;依此類推,不斷循環(huán)輸出“畢業(yè)設(shè)計(jì)”四個(gè)漢字,知道再次按下按鍵時(shí)停止[13]。2.總循環(huán)顯示控制模塊的核心程序modulexunhuankongzhi(key,clk,display);inputclk;inputkey;output[1:0]display;reg[1:0]display;regkz,kz1;always@(posedgeclk)begin if(key==0) begin if(kz1==0)beginif(kz>3)beginkz<=0;endelsebegincase(kz)2'b00:begindisplay<=2'b00;end 2'b01:begindisplay<=2'b01;end 2'b10:begindisplay<=2'b10;end 2'b11:begindisplay<=2'b11;enddefault:;endcase kz<=kz+1; end kz1<=1; endelsekz1<=0;endendmodule(三)顯示模塊設(shè)計(jì)與實(shí)現(xiàn)此模塊下有四個(gè)顯示模式:在LED點(diǎn)陣上顯示漢字畢,在LED點(diǎn)陣上顯示漢字業(yè),在LED點(diǎn)陣上顯示漢字設(shè),在LED點(diǎn)陣上顯示漢字計(jì)。當(dāng)從外界通過按鍵控制其開始顯示時(shí),這四種模式得循環(huán)顯示,直到遇到外界輸入的控制信號才停止[14]。在顯示模塊這個(gè)大模塊下又分出四個(gè)小的顯示模塊,分別控制四種不同的輸出模式。在四個(gè)子模塊中用到了wire類型變量。因?yàn)樵谶@部分的設(shè)計(jì)中,我們需要幾個(gè)模塊的并行以實(shí)現(xiàn)模塊與模塊之間的信號連接,所以定義為線型,這樣才能實(shí)現(xiàn)數(shù)據(jù)在寄存器之間的流動[15]。1.各顯示子模塊的原理在點(diǎn)陣上顯示一定有字符是根據(jù)其字符在點(diǎn)陣上的顯示的點(diǎn)的亮滅來表示的,只要將被漢字所覆蓋的區(qū)域的點(diǎn)點(diǎn)亮,則在點(diǎn)陣中就會顯示一個(gè)漢字。當(dāng)我們選中第一列后,根據(jù)要顯示漢字的第一列中所需要被點(diǎn)亮的點(diǎn)對應(yīng)的Rn置為高電平,則在第一列中需要被點(diǎn)亮的就會被點(diǎn)亮。依此類推,顯示第二列、第三列...第N列中需要被點(diǎn)亮的點(diǎn)。然后根據(jù)人眼的視覺原理,將每一列顯示的點(diǎn)的間隔時(shí)間設(shè)為一定的值,那么我們就會感覺顯示一個(gè)完整的不閃爍的漢字。同時(shí)也可以按照這個(gè)原理來顯示其他漢字。在此模塊下的各種模式輸出主要通過case語句來實(shí)現(xiàn),通過case語句中的選擇變量來確定各模式下需要顯示的點(diǎn)。與有限條件的列舉式IF語句不同的是:case語句不存在優(yōu)先級的問題,由于條件表達(dá)式的輸出值只有一種可能,而選擇值中不允許出現(xiàn)重復(fù),所以不會出現(xiàn)同時(shí)滿足多個(gè)選擇值的情況,case語句中when引導(dǎo)的語句的排列順序與程序運(yùn)行先后順序沒有任何關(guān)系。從這一點(diǎn)來看,case語句有一定的并行語句的特征。一般來講,同樣的邏輯功能,case語句綜合后,比IF語句消耗更多的芯片資源。因此,在本次設(shè)計(jì)中采用case語句能很方便的實(shí)現(xiàn)所需顯示的LED點(diǎn)陣上的點(diǎn),從而簡化了程序編寫的復(fù)雜性。在case語句塊中,通過循環(huán)控制變量,來逐個(gè)選擇所需要顯示的點(diǎn)的case語句,從而實(shí)現(xiàn)各個(gè)子模塊中的LED點(diǎn)陣漢字的顯示。當(dāng)總的循環(huán)控制信號變量的值為0,1,2,3時(shí),分別選擇輸出四個(gè)子模塊。當(dāng)變量display的值為3時(shí)將其清零,從而實(shí)現(xiàn)LED點(diǎn)陣的循環(huán)顯示。2.顯示子模塊的核心程序moduleprint1(clk_fp,display,line,row);inputclk_fp;input[1:0]display;output[7:0]line,row;reg [7:0]line,row;reg[3:0]r;always@(posedgeclk_fp)begin case(display) 2'b00:begin case(r) 4'b0000:beginline<=8'b00000001;row<=8'b10000001;end 4'b0001:beginline<=8'b00000010;row<=8'b01111110;end 4'b0010:beginline<=8'b00000100;row<=8'b01001010;end 4'b0011:beginline<=8'b00001000;row<=8'b00111110;end 4'b0100:beginline<=8'b00010000;row<=8'b00111110;end 4'b0101:beginline<=8'b00100000;row<=8'b01001010;end 4'b0110:beginline<=8'b01000000;row<=8'b01111110;end 4'b0111:beginline<=8'b10000000;row<=8'b10000001;end default:; endcase r<=r+4'b0001; if(r==4'b0111)r<=4'b0000; end default:beginline<=8'b00000000;row<=8'b00000000;end endcaseendendmodule3.程序說明上述程序是顯示子模塊中的一個(gè)模塊,其他三個(gè)模塊的實(shí)現(xiàn)與上述模塊很類似,這個(gè)模塊是本次設(shè)計(jì)的重點(diǎn)。在系統(tǒng)時(shí)鐘的作用下,首先選取其中的一列,將數(shù)據(jù)輸入讓這列的LED顯示數(shù)據(jù)(當(dāng)為高電平時(shí)LED發(fā)光,否則不發(fā)光)。然后選取下一列來顯示下一列的數(shù)據(jù)。在實(shí)際的運(yùn)用中,要顯示多個(gè)圖形時(shí),這些數(shù)據(jù)可以根據(jù)一定的規(guī)則存放到存儲器中,當(dāng)要顯示這些圖形時(shí)只要將這些數(shù)據(jù)取出顯示即可。本設(shè)計(jì)的示例程序所要顯示的是四種模式的循環(huán),數(shù)據(jù)不大,所以沒有放入存儲器中,而在程序中直接輸入對應(yīng)的數(shù)據(jù)。4.仿真結(jié)果該模塊仿真結(jié)果如下圖4-3所示:圖4-3顯示子模塊仿真波形圖(四)分頻模塊電路設(shè)計(jì)與實(shí)現(xiàn)1.分頻模塊的原理在數(shù)字電路設(shè)計(jì)中,分頻邏輯是最常用的邏輯之一。分頻器是FPGA設(shè)計(jì)中使用頻率非常高的基本設(shè)計(jì)之一,其設(shè)計(jì)方式有很多種。盡管在目前大部分設(shè)計(jì)中,廣泛使用芯片廠家集成的鎖相環(huán)資源來進(jìn)行時(shí)鐘的分頻,倍頻及相移。對于本設(shè)計(jì)而言,對時(shí)鐘精度要求并不高,因此采用通過語言進(jìn)行時(shí)鐘分頻相移。在時(shí)鐘的分頻設(shè)計(jì)上不需要太復(fù)雜的邏輯,只需要設(shè)計(jì)一個(gè)計(jì)數(shù)器。當(dāng)需要將系統(tǒng)時(shí)鐘分任意頻率時(shí),只需改變計(jì)數(shù)器就可以。clk為時(shí)鐘輸入信號,來源于全局時(shí)鐘信號10MHzd外部時(shí)鐘輸入,clk_fp時(shí)鐘輸出信號,經(jīng)過分頻后輸出1kHz的時(shí)鐘信號用于數(shù)碼管的動態(tài)顯示。2.分時(shí)模塊的核心程序分析modulefenpin(clk,clk_fp);inputclk;outputclk_fp;regclk_fp;integeri;always@(posedgeclk)begin if(i==9999999) begin clk_fp=~clk_fp; i=0; end else i=i+1; endendmodule3.仿真結(jié)果分時(shí)模塊仿真結(jié)果如下圖4-4所示:圖4-4分時(shí)模塊仿真波形圖(五)選擇控制按鍵狀態(tài)在輸出顯示模塊,通過按鍵,在高低電平之間切換,從而控制LED點(diǎn)陣的顯示與否。當(dāng)delay為低電平時(shí)才開始從預(yù)先設(shè)定好的模式開始顯示,知道再次按下按鍵時(shí),才停止輸出,顯示停止。但由于我們使用的按鍵開關(guān)為機(jī)械彈性開關(guān),由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合時(shí)不會馬上穩(wěn)定地接通,在斷開時(shí)也不會一下子斷開。因而在閉合及斷開的瞬間均伴隨有一連串的抖動。抖動時(shí)間的長短由按鍵的機(jī)械特性決定,一般為5ms-10ms。通常采用軟件延時(shí)的方法:在第一次檢測到有按鍵按下時(shí),執(zhí)行一段延時(shí)10ms的子程序,再確認(rèn)電平是否仍保持低電平,如果仍保持低電平,則確認(rèn)真正有按鍵按下,進(jìn)行相應(yīng)處理工作,消除了抖動的影響。消抖核心程序如下所示:if(key1==0)begin if(k1k==0) begin k1=k1+2'b01; end k1k=1; end else k1k=0;五實(shí)驗(yàn)結(jié)論與研究展望(一)實(shí)驗(yàn)結(jié)論與總結(jié)FPGA的出現(xiàn)和應(yīng)用,不僅大大地推動了微電子技術(shù)的發(fā)展,全面地提高了計(jì)算機(jī)等數(shù)字系統(tǒng)的性能,而且對電路器件用電路系統(tǒng)的構(gòu)成與設(shè)計(jì)方法也產(chǎn)生了越來越大的影響。它不僅可以代替?zhèn)鹘y(tǒng)的數(shù)字集成電路,而且還可以代替一般的PLD器件和半定制的ASIC,特別適用于復(fù)雜系統(tǒng)的設(shè)計(jì)。進(jìn)入20世紀(jì)90年代中后期,F(xiàn)PGA已成為半導(dǎo)體集成電路中銷售量增長最快的部分。將設(shè)計(jì)程序下載到實(shí)驗(yàn)箱上運(yùn)行調(diào)試后,最終仿真結(jié)果與預(yù)期效果基本一致,基本實(shí)現(xiàn)了LED點(diǎn)陣廣告牌的滾動顯示。在這次的LED顯示控制器的設(shè)計(jì)過程中,我更進(jìn)一步地熟悉了有關(guān)數(shù)字電路的知識和具體應(yīng)用,學(xué)會了利用QuartusⅡ軟件進(jìn)行原理圖的繪制,用硬件描述語言VerilogHDL語言編寫程序及其仿真工作。并能根據(jù)仿真結(jié)果分析設(shè)計(jì)中存在的問題和缺陷,從而進(jìn)行程序的調(diào)試和完善。在設(shè)計(jì)電路中,往往是先仿真后連接實(shí)物圖,但有時(shí)候仿真和電路連接并不是完全一致的,例如在對具體模塊的仿真的過程中,往往沒有考慮到整體設(shè)計(jì)的層面以及與上下模塊接口的設(shè)計(jì)。再加上器件對信號的延時(shí)等問題,實(shí)際上下載到試驗(yàn)箱上后會出現(xiàn)一系列的問題,因此仿真圖和電路連接圖還是有一定區(qū)別的。此次的LED廣告牌的滾動設(shè)計(jì)重在于LED顯示的循環(huán)控制和各個(gè)顯示模塊代碼的編寫,雖然能把各個(gè)模塊的代碼編寫出來,并能正常顯示,但對于各個(gè)模塊的優(yōu)化設(shè)計(jì)還有一定的缺陷和不足??偟膩碚f,通過這次的設(shè)計(jì)實(shí)驗(yàn)更進(jìn)一步地增強(qiáng)了實(shí)驗(yàn)的動手能力,對LED滾動顯示的工作原理也有了更加透徹的理解和認(rèn)識,并通過VerilogHDL語言實(shí)現(xiàn)功能仿真。具體研究如下:①了解FPGA的發(fā)展與其內(nèi)部的系統(tǒng)構(gòu)造,為順利使用FPGA打一基礎(chǔ)。②理解基于FPGA的LED顯示裝置控制板的系統(tǒng)結(jié)構(gòu),輸入輸出接口與信號,并畫出系統(tǒng)時(shí)序圖與模式圖。③在系統(tǒng)設(shè)計(jì)上,采用模塊化的設(shè)計(jì)思想,將LED顯示控制板分為多個(gè)模塊,用VerilogHDL語言進(jìn)行設(shè)計(jì),在每個(gè)模塊驗(yàn)證設(shè)計(jì)正確后,再綜合起來仿真驗(yàn)證。這樣做的好處是令設(shè)計(jì)思路更清晰,模塊功能分配更細(xì)致,更重要的是單獨(dú)的模塊設(shè)計(jì)出現(xiàn)問題時(shí),方便檢查修改。④在這次設(shè)計(jì)設(shè)計(jì)過程中,通過學(xué)習(xí)和實(shí)踐,基本掌握了VerilogHDL這門硬件描述語言,了解了EDA的設(shè)計(jì)流程,學(xué)會了常用EDA工具的使用,系統(tǒng)地學(xué)習(xí)了LED點(diǎn)陣顯示的設(shè)計(jì)與實(shí)現(xiàn)方法。在本設(shè)計(jì)調(diào)試過程中遇到的一些問題如下:①用編寫完的程序進(jìn)行仿真后,所得結(jié)果與預(yù)期結(jié)果不一致,計(jì)數(shù)器不工作,經(jīng)分析得知程序中的總的清零信號總保持有效狀態(tài),改動程序后計(jì)數(shù)器開始計(jì)數(shù)。②顯示模塊中的循環(huán)控制信號出現(xiàn)錯(cuò)誤,無法實(shí)現(xiàn)LED點(diǎn)陣的循環(huán)顯示,只能在LED點(diǎn)陣上顯示固定的點(diǎn)。經(jīng)檢查發(fā)現(xiàn)與循環(huán)控制有關(guān)的計(jì)數(shù)器到59時(shí)仍一直加計(jì)數(shù),這是由于循環(huán)控制信號在計(jì)數(shù)器為59時(shí)一直有效,改動程序后,該模塊運(yùn)行正常。③顯示模塊顯示出的結(jié)果不是自己想要的,檢查程序后發(fā)現(xiàn),顯示輸出的管腳配置部分出現(xiàn)錯(cuò)誤,在與LED點(diǎn)陣圖的管腳進(jìn)行
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度人工智能產(chǎn)業(yè)投資轉(zhuǎn)借款合作協(xié)議模板3篇
- 國防建設(shè)知識
- 二零二五年度個(gè)人知識產(chǎn)權(quán)侵權(quán)糾紛授權(quán)委托書3篇
- 二零二五年度商場消防安全責(zé)任協(xié)議書3篇
- 二零二五年度城市停車場信息化建設(shè)承包協(xié)議3篇
- 二零二五年辦公樓智能安防與保潔服務(wù)合同3篇
- 二零二五版海洋石油鉆井平臺外派海員聘用合同范本3篇
- 二零二五年度商品房團(tuán)購項(xiàng)目合作代理協(xié)議3篇
- 二零二五年度高校研究生學(xué)術(shù)交流活動合作協(xié)議3篇
- 藝術(shù)地坪施工方案
- 4.1中國特色社會主義進(jìn)入新時(shí)代+課件-2024-2025學(xué)年高中政治統(tǒng)編版必修一中國特色社會主義
- 班級建設(shè)方案中等職業(yè)學(xué)校班主任能力大賽
- T-TJSG 001-2024 天津市社會組織社會工作專業(yè)人員薪酬指導(dǎo)方案
- 人教版九上化學(xué)第二單元課題2氧氣課件
- 中頻治療儀的使用流程
- 梁湘潤《子平基礎(chǔ)概要》簡體版
- 圖形的位似課件
- 調(diào)料廠工作管理制度
- 人教版《道德與法治》四年級下冊教材簡要分析課件
- 2023年MRI技術(shù)操作規(guī)范
- 辦公用品、易耗品供貨服務(wù)方案
評論
0/150
提交評論