![畢業(yè)論文-基于FPGA的投幣式多功能充電器控制電路設(shè)計與實現(xiàn)_第1頁](http://file4.renrendoc.com/view/4948fe7521fbfe920c64d4b8e128eba0/4948fe7521fbfe920c64d4b8e128eba01.gif)
![畢業(yè)論文-基于FPGA的投幣式多功能充電器控制電路設(shè)計與實現(xiàn)_第2頁](http://file4.renrendoc.com/view/4948fe7521fbfe920c64d4b8e128eba0/4948fe7521fbfe920c64d4b8e128eba02.gif)
![畢業(yè)論文-基于FPGA的投幣式多功能充電器控制電路設(shè)計與實現(xiàn)_第3頁](http://file4.renrendoc.com/view/4948fe7521fbfe920c64d4b8e128eba0/4948fe7521fbfe920c64d4b8e128eba03.gif)
![畢業(yè)論文-基于FPGA的投幣式多功能充電器控制電路設(shè)計與實現(xiàn)_第4頁](http://file4.renrendoc.com/view/4948fe7521fbfe920c64d4b8e128eba0/4948fe7521fbfe920c64d4b8e128eba04.gif)
![畢業(yè)論文-基于FPGA的投幣式多功能充電器控制電路設(shè)計與實現(xiàn)_第5頁](http://file4.renrendoc.com/view/4948fe7521fbfe920c64d4b8e128eba0/4948fe7521fbfe920c64d4b8e128eba05.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、大連東軟信息學(xué)院畢業(yè)設(shè)計(論文) 摘要大連東軟信息學(xué)院本科畢業(yè)設(shè)計(論文)論文題目論文題目:基于FPGA的投幣式多功能充電器控制電路設(shè)計與實現(xiàn)系 所: 電子工程系 專 業(yè):電子信息工程(集成電路設(shè)計與系統(tǒng)方向) 學(xué)生姓名: 學(xué)生學(xué)號: 指導(dǎo)教師: 導(dǎo)師職稱: 講 師 完成日期: 2014年 4月 28日 大連東軟信息學(xué)院Dalian Neusoft University of Information大連東軟信息學(xué)院畢業(yè)設(shè)計(論文) Abstract I基于FPGA的投幣式多功能充電器控制電路設(shè)計與實現(xiàn)摘 要隨著科學(xué)技術(shù)的發(fā)展,大量使用電池供電的便攜式電子產(chǎn)品進(jìn)入人們的日常生活中,如手機(jī)、數(shù)碼相
2、機(jī)、MP3等。這些電子產(chǎn)品給我們帶來了各種娛樂方式。但這些設(shè)備維持其功能性的關(guān)鍵在于自身電量的充足。充電器恰好能夠提高用電設(shè)備的續(xù)航能力。因此,設(shè)計一款投幣式多功能充電器顯的尤為重要。本文介紹的就是基于FPGA的投幣式多功能充電器控制電路設(shè)計,功能是對投幣器檢測到的錢幣信息進(jìn)行計數(shù),并通過金額情況進(jìn)行對外充電電路的控制。主要模塊包括:投幣金額計數(shù)模塊、信息顯示控制模塊、充電計時控制模塊等。采用兩位數(shù)碼管顯示投幣數(shù)和倒計時的相關(guān)信息。該系統(tǒng)的控制電路基于FPGA,利用verilog HDL硬件描述語言實現(xiàn)。使用Quartus 軟件進(jìn)行設(shè)計,運(yùn)用ModelSim就行仿真驗證看是否達(dá)到預(yù)期功能。最終
3、借助開發(fā)板就行功能演示。關(guān)鍵詞:FPGA,投幣式,充電器Design of Coin Multi-function Charger Control Circuit Based on FPGAAbstractWith the science and technology developing, battery-powered portable electronic products come out, such as cell phone, digital camera, mp3 etc .We have colorful life because of using electronic pro
4、ducts .But we must ensure have good batteries in our portable electronic products. Using chargers can solve the problem. Therefore ,Its important that to design Coin multi-function charger .The paper is mainly about the design of coin multi-function charger control circuit. It contains with some mod
5、ules like Amount of coin counting module, Information display control module, charging controlling, charging timing control module, etc .Using nixietubes to displays relevantinformation.The design is based on FPGA and used verilog language. Using Quartus software to carry on the design .Using ModelS
6、im simulation to test the desired function .Finally Demofunctionality with the help of development board.Key words: FPGA,Coin,Charger大連東軟信息學(xué)院畢業(yè)設(shè)計(論文) 目錄目 錄 TOC o 1-3 u 摘 要 PAGEREF _Toc387691814 h IIAbstract PAGEREF _Toc387691815 h III第1章 緒論 PAGEREF _Toc387691816 h 11.1 背景和意義 PAGEREF _Toc387691817 h
7、11.2 目前蓄電池的現(xiàn)狀 PAGEREF _Toc387691818 h 11.3 電池發(fā)展趨勢 PAGEREF _Toc387691819 h 1第2章關(guān)鍵技術(shù)介紹 PAGEREF _Toc387691820 h 32.1關(guān)鍵性開發(fā)技術(shù)的介紹 PAGEREF _Toc387691821 h 32.1.1FPGA技術(shù) PAGEREF _Toc387691822 h 32.1.2Verilog HDL語言 PAGEREF _Toc387691823 h 32.1.3按鍵消抖技術(shù) PAGEREF _Toc387691824 h 32.1.4時鐘分頻技術(shù) PAGEREF _Toc387691825
8、 h 52.1.5數(shù)碼管顯示原理 PAGEREF _Toc387691826 h 52.2 開發(fā)軟件 PAGEREF _Toc387691827 h 62.2.1 QuartusII PAGEREF _Toc387691828 h 72.2.2ModelSim PAGEREF _Toc387691829 h 72.2.3 Microsoft Office Visio PAGEREF _Toc387691830 h 8第3章系統(tǒng)需求分析 PAGEREF _Toc387691831 h 93.1 構(gòu)架概述 PAGEREF _Toc387691832 h 93.2系統(tǒng)工作流程 PAGEREF _To
9、c387691833 h 103.3 系統(tǒng)設(shè)計方法 PAGEREF _Toc387691834 h 113.4系統(tǒng)設(shè)計的技術(shù)可行性分析 PAGEREF _Toc387691835 h 11第4章系統(tǒng)設(shè)計 PAGEREF _Toc387691836 h 134.1 設(shè)計指導(dǎo)思想和原則 PAGEREF _Toc387691837 h 134.2 系統(tǒng)設(shè)計流程 PAGEREF _Toc387691838 h 134.3數(shù)據(jù)通道的設(shè)計 PAGEREF _Toc387691839 h 144.4狀態(tài)轉(zhuǎn)換圖 PAGEREF _Toc387691840 h 154.5系統(tǒng)結(jié)構(gòu)圖 PAGEREF _Toc38
10、7691841 h 16第5章系統(tǒng)實現(xiàn) PAGEREF _Toc387691842 h 175.1 主要模塊的實現(xiàn) PAGEREF _Toc387691843 h 175.1.1時鐘分頻模塊 PAGEREF _Toc387691844 h 175.1.2控制充電電路模塊 PAGEREF _Toc387691845 h 175.1.3顯示模塊 PAGEREF _Toc387691846 h 185.1.4系統(tǒng)整體實現(xiàn) PAGEREF _Toc387691847 h 195.2 系統(tǒng)的代碼實現(xiàn) PAGEREF _Toc387691848 h 205.2.1時鐘模塊代碼實現(xiàn) PAGEREF _Toc
11、387691849 h 205.2.2控制模塊代碼實現(xiàn) PAGEREF _Toc387691850 h 205.2.3信息顯示控制模塊 PAGEREF _Toc387691851 h 23第6章系統(tǒng)測試 PAGEREF _Toc387691852 h 246.1 模塊仿真測試 PAGEREF _Toc387691853 h 246.1.1時鐘分頻模塊測試 PAGEREF _Toc387691854 h 246.1.2控制模塊測試 PAGEREF _Toc387691855 h 246.1.3顯示模塊測試 PAGEREF _Toc387691856 h 256.1.4系統(tǒng)整體測試 PAGEREF
12、 _Toc387691857 h 25第7章結(jié)論 PAGEREF _Toc387691858 h 27參考文獻(xiàn) PAGEREF _Toc387691861 h 28致 謝 PAGEREF _Toc387691862 h 30大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)- 第1章 緒論1.1 背景和意義隨著越來越多的便攜式電器的出現(xiàn),對電池的續(xù)航能力要求也越來越高,為了解決這個問題各大電子公司都采取了各種方法,例如:優(yōu)化系統(tǒng)軟件,加強(qiáng)對新型電池的開發(fā)研究等。但如今電池的發(fā)展遠(yuǎn)達(dá)不到用戶的需求。在以快節(jié)奏生活為主的今天,在某些特殊的場合,人們總是被突如其來的電池沒電的問題帶來了很大的困擾,因此,在一些公共場合
13、投幣式多功能充電器的出現(xiàn)就顯的很有必要。本文論述的基于FPGA的投幣式多功能充電器控制電路設(shè)計正是基于以上社會背景。利用FPGA的優(yōu)越性設(shè)計一款方便、實用的充電器控制電路。該款充電器可適用于各種公共場合,通過投幣充電的方式解決手機(jī)等電子設(shè)備在急需使用的過程中出現(xiàn)了電池沒電的現(xiàn)象。1.2 目前蓄電池的現(xiàn)狀HYPERLINK /SEARCH/ART/%BB%AF%D1%A7%B5%E7%D4%B4.HTM化學(xué)電源是人類目前可以利用的HYPERLINK /SEARCH/ART/%B8%DF%D0%A7%C4%DC%D4%B4.HTM高效能源之一。HYPERLINK /SEARCH/ART/%D0%E
14、E%B5%E7%B3%D8.HTM蓄電池也稱作二次電源,它是一種把化學(xué)反應(yīng)所釋放出來的能量直接轉(zhuǎn)變成直流電能的裝置。近幾十年來,由于交通、通訊、計算機(jī)產(chǎn)業(yè)的高速發(fā)展,其產(chǎn)品系列、產(chǎn)品種類、產(chǎn)品性能發(fā)生了巨大變化,以此滿足不同用途的需要。目前,蓄電池主要應(yīng)用于各種車輛、船舶、飛機(jī)等內(nèi)燃機(jī)的起動以及照明、蓄能、不間斷電源、移動通訊、便攜式電動工具、電動玩具當(dāng)中。常用的蓄電池有鉛酸蓄電池、鎘鎳蓄電池、鐵鎳蓄電池、金屬氧化物蓄電池、鋅銀蓄電池、鋅鎳蓄電池、氫鎳蓄電池、鋰離子蓄電池等?,F(xiàn)在市場上的電池主要有鎳鎘電池、鎳氫電池和鋰電池。便攜式電子產(chǎn)品目前主要采用鎳鎘電池和鎳氫電池。鎳鎘電池價格低廉,但其體
15、積較大,而且受記憶效應(yīng)影響;鎳氫電池的性能比較好,但是壽命較短,價格也較高。鋰離子電池的性能最好,價格昂貴。所以就目前看來電池的更新遠(yuǎn)遠(yuǎn)達(dá)不到人類的需求,所以充電器的普及就變的很有必要了。1.3 電池發(fā)展趨勢盡管在相比其它種類的電池,鋰電池的性能最好,但是隨著電子產(chǎn)品的高度集成化,便攜式電子產(chǎn)品成為市場主流,人們?nèi)找孀非蠊δ軓?qiáng)大體積輕便的電子設(shè)備,這對電池的續(xù)航能力提出了更高的要求。顯然,鋰電池的續(xù)航能力并不能滿足人們的要求。隨著科學(xué)的社會的發(fā)展,科學(xué)的進(jìn)步,電池的發(fā)展也在不斷的進(jìn)步,目前微型固體分子燃料電池的研發(fā)進(jìn)行的如火如荼。大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)第2章關(guān)鍵技術(shù)介紹2.1關(guān)鍵性開
16、發(fā)技術(shù)的介紹在本次設(shè)計的過程中,運(yùn)用到了許多專業(yè)知識,也用到了較多的專業(yè)軟件,下面就對本次設(shè)計中涉及到的一些關(guān)鍵技術(shù)及相關(guān)軟件進(jìn)行簡要介紹。2.1.1FPGA技術(shù)FPGA(Field Programmable Gate Array)中文名稱現(xiàn)場可編程門陣列,它的主要組成部分為:可配置邏輯模塊HYPERLINK /wiki/CLB o CLBCLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(HYPERLINK /wiki/interconnect t _blank o interconnectinterconnect
17、)三個部分。一個FPGA中包含著許多的邏輯門、HYPERLINK /view/6159.htm t _blank寄存器和I/O接口資源。一片F(xiàn)PGAHYPERLINK /view/26651.htm t _blank芯片所能設(shè)計實現(xiàn)的系統(tǒng)可堪比數(shù)百片甚至更多標(biāo)準(zhǔn)的數(shù)字集成電路所實現(xiàn)的系統(tǒng)。FPGA的結(jié)構(gòu)十分靈活,用戶可通過對HYPERLINK /view/1520672.htm t _blank邏輯單元的編程、內(nèi)部連線的編程和I/O單元的編程,實現(xiàn)使用者所需要的邏輯功能,達(dá)到設(shè)計者的各種預(yù)期設(shè)計目標(biāo)。其主要的優(yōu)點有:運(yùn)行的速度快,功能消耗低,有極強(qiáng)的通用性,因而在復(fù)雜系統(tǒng)的設(shè)計中很受設(shè)計者的歡
18、迎。其次, 現(xiàn)場可編程門陣列還可以進(jìn)行動態(tài)配置、在線系統(tǒng)重新組構(gòu)(可以在系統(tǒng)工作運(yùn)行的各個不同時間段,按設(shè)計者的需要對電路的功能就行重新修改,使系統(tǒng)具備多種與空間或時間相關(guān)的任務(wù))和硬件軟化、軟件硬化等功能。于此同時,F(xiàn)PGA還可以使硬件的功能都用軟件來代替,也可以用軟件來實現(xiàn)硬件才能實現(xiàn)的功能。總的來說它是一款半定制的電路,在專用集成電路(ASIC)領(lǐng)域中得到了廣泛的應(yīng)用,既有效的解決了定制電路的一些缺點,又克服了原有可編程邏輯器件門電路數(shù)量有限的缺點。在本次設(shè)計中就是基于FPGA進(jìn)行設(shè)計的。2.1.2Verilog HDL語言Verilog HDL是HYPERLINK /view/2527
19、8.htm t _blank硬件描述語言的一種硬件描述語音(HDL:Hardware Description Language),它以HYPERLINK /view/5777152.htm t _blank文本形式來描述HYPERLINK /view/987445.htm t _blank數(shù)字系統(tǒng)硬件的結(jié)構(gòu)和行為,用它可以表示邏輯電路圖、HYPERLINK /view/3524173.htm t _blank邏輯表達(dá)式,還可以表示HYPERLINK /view/494470.htm t _blank數(shù)字邏輯系統(tǒng)所完成的邏輯功能。使用Verilog描述硬件的基本設(shè)計單元是模塊(module)。設(shè)
20、計功能復(fù)雜的電子電路時,主要是通過模塊的相互連接調(diào)用來實現(xiàn)的。模塊被包含在關(guān)鍵字module、endmodule之內(nèi)。Verilog語音中的模塊與C語言中的函數(shù)類似,它夠提供輸入、輸出端口,通過實例化調(diào)用其他模塊,也可以被其他模塊實例調(diào)用。設(shè)計模塊中可以包括組合邏輯部分、過程時序部分。2.1.3按鍵消抖技術(shù) 通常的按鍵大多數(shù)使用的是機(jī)械彈性開關(guān),其工作原理是機(jī)械觸點具有彈性作用,讓機(jī)械觸點打開、關(guān)閉。但是按鍵開關(guān)在關(guān)閉的時候不可能馬上就穩(wěn)定地接通,當(dāng)然在斷開時也不可能馬上實現(xiàn)斷開。所以在開關(guān)在打開和關(guān)閉的那一瞬間都會有一連串的抖動的現(xiàn)象出現(xiàn),為了不產(chǎn)生這種現(xiàn)象而采取的措施就是按鍵消抖。如圖2.
21、1所示消抖是為了避免在按鍵按下或是抬起時電平劇烈抖動帶來的影響。按鍵如果不消除抖動,那么檢測到的低電平的次數(shù)就不止一次,那我們按鍵一次,會檢測到多次,這是我們不希望看到的。在按鍵閉合達(dá)到穩(wěn)定的狀態(tài)時再讀取按鍵這是的狀態(tài),而且必須判別到安鍵釋放達(dá)到穩(wěn)定之后再進(jìn)行處理。 圖2.1按鍵示意圖按鍵的消抖方法,可以分為硬件或軟件兩種方法。在按鍵數(shù)較少情況下可采用硬件方法消除鍵抖動。如圖2.2所示,是采用RS觸發(fā)器常用的硬件去抖方法。眾所周知,RS觸發(fā)器是由兩個與非門電路構(gòu)成的。當(dāng)按鍵沒有按下時,電路輸出的結(jié)果是0;當(dāng)鍵按下的時候,其輸出的結(jié)果是1。這時按鍵的機(jī)械性能就發(fā)揮了作用,讓按鍵因彈性抖動而產(chǎn)生瞬
22、間的斷開(抖動跳開B),但是要確保按鍵不能回到A的原始狀態(tài),從而使得雙穩(wěn)態(tài)電路的狀態(tài)不發(fā)生改變,保持輸出為0,因此產(chǎn)生的波形不可能帶抖動。換句話來說,即使在B點產(chǎn)生了抖動的電壓波形,但經(jīng)過雙穩(wěn)態(tài)電路處理之后,其輸出的矩形波是正規(guī)的。 圖2.2硬件消抖示意圖如果按鍵的數(shù)量相對較多,那么經(jīng)常采用軟件的方法去實現(xiàn)消抖,具體方法是檢測到按鍵閉合信號后執(zhí)行一個延時程序,一般為5ms10ms的延時,讓前沿抖動消失后再一次檢測按鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認(rèn)為真正有鍵按下。當(dāng)檢測到按鍵釋放后,也要給5ms10ms的延時,待后沿抖動消失后才能轉(zhuǎn)入該鍵的處理程序。一般來說,軟件消抖的方法是不斷檢測按鍵
23、值,直到按鍵值穩(wěn)定。實現(xiàn)方法:假設(shè)未按鍵時輸入1,按鍵后輸入為0,抖動時不定??梢宰鲆韵聶z測:檢測到按鍵輸入為0之后,延時5ms10ms,再次檢測,如果按鍵還為0,那么就認(rèn)為有按鍵輸入。延時的5ms10ms恰好避開了抖動期。在本次設(shè)計中,本文采用的是Verilog HDL語言實現(xiàn)按鍵消抖。2.1.4時鐘分頻技術(shù)傳統(tǒng)頻率源一般只提供單一頻率,而且是由HYPERLINK /search?word=%E7%9F%B3%E8%8B%B1%E6%99%B6%E6%8C%AF&fr=qb_search_exp&ie=utf8 t _blank石英晶振器(Quartz Crystal OSC)通過振蕩產(chǎn)生,
24、體積大成本高不方便并且只能產(chǎn)生單一頻率;但是目前大多數(shù)HYPERLINK /search?word=%E7%94%B5%E5%AD%90%E7%B3%BB%E7%BB%9F&fr=qb_search_exp&ie=utf8 t _blank電子電路系統(tǒng)都要求有多種不同的頻率,以滿足設(shè)計中的不各種不同要求,并且很多器件或者是電路對頻率都一定的要求,它們只能在規(guī)定范圍的頻率信號下正常工作,這時就需要用HYPERLINK /search?word=%E5%88%86%E9%A2%91&fr=qb_search_exp&ie=utf8 t _blank分頻的技術(shù)對HYPERLINK /search?w
25、ord=%E6%97%B6%E9%92%9F%E9%A2%91%E7%8E%87&fr=qb_search_exp&ie=utf8 t _blank時鐘頻率進(jìn)行多樣的化分HYPERLINK /search?word=%E5%88%86%E9%A2%91&fr=qb_search_exp&ie=utf8 t _blank了,以滿足各種器件和電路正常工作的需求。一個數(shù)字系統(tǒng)中往往需要多種頻率的時鐘脈沖作為驅(qū)動源,所以在FPGA中FPGA時鐘分頻使用的比較頻繁,在設(shè)計中,設(shè)計者通過分析在設(shè)計中所需要的時鐘頻率對FPGA的系統(tǒng)時鐘進(jìn)行頻率處理,使之達(dá)到原來的1/N倍頻率,以滿足設(shè)計的需要。分頻器主要的
26、類型可分為偶數(shù)分頻、奇數(shù)分頻、半整數(shù)分頻和小數(shù)分頻,如果在設(shè)計過程中采用參數(shù)化設(shè)計,就可以隨時改變參量以得到不同的分頻需要。在對時鐘要求不是很嚴(yán)格的FPGA系統(tǒng)中,分頻通常都是通過計數(shù)器的循環(huán)計數(shù)來實現(xiàn)的。2.1.5數(shù)碼管顯示原理在FPGA開發(fā)板中,我們最常用的是顯示器件就是七段式或八段式LED數(shù)碼顯示管,它們兩者之間的區(qū)別就是八段比七段多了一個小數(shù)點,其它的基本相同。所謂的八段就是指在數(shù)碼管里有八個發(fā)光的LED二極管,用戶通過定義控制不同的LED的亮和滅將所需的字形顯示出來。除此之外,數(shù)碼管又分為共陰極和共陽極兩種類型,其實共陰極就是將八個LED的陰極連在一起,讓它們接地,這樣給任何一個LE
27、D的另一端高電平,它便能點亮。而共陽極就是將八個LED的陽極連在一起。其原理圖如圖2.3所示。圖2.3數(shù)碼管原理示意圖其中引腳圖的兩個COM端連在一起,是公共端,共陰極數(shù)碼管要將其接地,共陽極數(shù)碼管將其接正5伏的電源。一個八段數(shù)碼管稱為一位,多個數(shù)碼管并列在一起可構(gòu)成多位數(shù)碼管,它們的段選線(即a,b,c,d,e,f,g,dp)連在一起,而各自的公共端稱為位選線。顯示時,都從段選線送入字符編碼,而選中哪個位選線,那個數(shù)碼管便會被點亮。數(shù)碼管的8段,對應(yīng)一個字節(jié)的8位,a對應(yīng)最低位,dp對應(yīng)最高位。所以如果想讓數(shù)碼管顯示數(shù)字0,那么共陰數(shù)碼管的字符編碼為00111111,即0 x3f;共陽數(shù)碼管
28、的字符編碼為11000000,即0 xc0??梢钥闯鰞蓚€編碼的各位正好相反。如圖2.4所示。圖2.4數(shù)碼管示意圖2.2 開發(fā)軟件在本次設(shè)計中,我們運(yùn)用到了幾款專業(yè)的設(shè)計、仿真及畫圖軟件,它們的運(yùn)用給本次設(shè)計提供了極大的方便,對設(shè)計的成功完成起著關(guān)鍵性的作用。下面便對本次設(shè)計中,運(yùn)用到的相關(guān)開發(fā)軟件進(jìn)行簡要描述。2.2.1 QuartusIIQuartus II軟件是由Altera公司開發(fā)的一款軟件,該軟件功能強(qiáng)大,支持多種形式的設(shè)計輸入,例如VHDL、Verilog HDL以及AHDL(Altera Hardware Description Language)等,內(nèi)嵌綜合器以及仿真器,可以完成
29、從設(shè)計輸入到硬件配置的完整PLD設(shè)計流程。其次,它的兼容性是極強(qiáng)的,可以在多種操作系統(tǒng)下工作,例如windowXP、window7、Linux以及Unix等,在設(shè)計流程中,不僅可以使用TelHYPERLINK /view/54.htm t _blank腳本完成,而且還提供了完善的用戶圖形界面設(shè)計方式。最為重要的是它的運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用。QuartusII支持器件的數(shù)量也是極為可觀的,它支持Altera公司的一系列器件。用戶可以充分利用成熟的模塊,簡化設(shè)計的復(fù)雜程度、加快設(shè)計速度。Altera Quartus II作為一種可編程邏輯的設(shè)計環(huán)境,由于其強(qiáng)大的設(shè)計功能,受到數(shù)字
30、系統(tǒng)設(shè)計者廣泛的歡迎。作為一款廣受好評的可編程邏輯設(shè)計軟件,它主要功能及特點如下:首先它提供了完全集成的且與電路結(jié)構(gòu)無關(guān)的開發(fā)包環(huán)境,包括了數(shù)字邏輯設(shè)計中的全部,其中包括:可利用原理圖、結(jié)構(gòu)圖、VerilogHDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)計實體文件。對電路芯片平面布局連線的編輯,并且內(nèi)置了強(qiáng)大的邏輯綜合工具。其次,它的仿真功能也不可忽略,它能對電路功能與時序邏輯進(jìn)行仿真。再者,軟件還具有一定的分析能力,可以對定時/時序與關(guān)鍵路徑延時進(jìn)行分析;使用組合編譯方式可以一次性完成整體設(shè)計流程,是一種高效的器件編程與驗證工具;除此之外,QuartusII也可以支持第三方EDA工具
31、,對第三方EDA工具的良好支持也使用戶可以在設(shè)計流程的各個階段使用熟悉的第三放EDA工具。例如,生成EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。2.2.2ModelSimModelSim是由HYPERLINK /view/1667387.htm t _blankMentor公司推出的一款HYPERLINK /view/561380.htm t _blank仿真軟件,目前在業(yè)界被稱為最優(yōu)秀的硬件語言HYPERLINK /view/561380.htm t _blank仿真軟件,它能提供良好的仿真環(huán)境, 它支持HYPERLINK /view/2375980.htm t _blank單
32、內(nèi)核的VHDL和Verilog混合仿真的HYPERLINK /view/557623.htm t _blank仿真軟件,這點在業(yè)界來說是唯一的。它采用直接優(yōu)化的HYPERLINK /view/553519.htm t _blank編譯技術(shù)、Tcl/Tk技術(shù)、和單一內(nèi)核仿真技術(shù),具有編譯仿真速度快的特點,其次,它與編譯的代碼和平臺無關(guān),這便于保護(hù)IP核。軟件具有個性化的圖形界面和HYPERLINK /view/1309799.htm t _blank用戶接口,為用戶加快調(diào)錯提供強(qiáng)有力的手段,是FPGA/HYPERLINK /view/3080633.htm t _blankASIC設(shè)計的首選HY
33、PERLINK /view/561380.htm t _blank仿真軟件。作為一款優(yōu)秀的語言仿真軟件,它可以對RTL和門級進(jìn)行優(yōu)化,可以HYPERLINK /view/5708679.htm t _blank本地編譯結(jié)構(gòu),也可以跨平臺跨版本仿真,而且編譯仿真速度快。在軟件中還可以對HYPERLINK /view/60376.htm t _blank源代碼模版進(jìn)行管理及修改其次,軟件集成了眾多調(diào)試功能,其中包括:HYPERLINK /view/2466792.htm t _blank性能的分析、波形的比較、代碼覆蓋、數(shù)據(jù)流ChaseX、Signal Spy、虛擬對象Virtual Object
34、、Memory窗口、Assertion窗口、源碼窗口顯示信號值、信號條件HYPERLINK /view/278359.htm t _blank斷點等;除此之外,軟件對System C的直接支持,和HDL任意混合,支持HYPERLINK /view/842700.htm t _blankSystemVerilog的設(shè)計,對系統(tǒng)級描述語言有最全面的支持,可以單獨或同時進(jìn)行行為(behavioral)、RTL級、和門級(gate-level)的代碼都是Modelsim顯著的優(yōu)點。在本次設(shè)計中,就是運(yùn)用該款軟件對設(shè)計進(jìn)行仿真,以驗證功能的正確性。2.2.3 Microsoft Office Visio
35、Office Visio是一款功能強(qiáng)大的繪圖軟件,主要針對于IT和商務(wù)人員對復(fù)雜的信息、系統(tǒng)和流程進(jìn)行可視化處理、分析和交流。Microsoft Office Visio能創(chuàng)建具有專業(yè)外觀圖表,能記錄分析信息、數(shù)據(jù)、系統(tǒng)和過程。Visio與其他圖形軟件相比具有更高的可視性與直觀性,并且操作簡單對使用者無技能基礎(chǔ)要求。應(yīng)用此軟件,可以繪制多種圖表,例如組織結(jié)構(gòu)圖、日程表、狀態(tài)圖、流程圖等。在本次項目設(shè)計過程中,通過Visio可以方便快捷的繪制完成了系統(tǒng)流程圖、數(shù)據(jù)通道圖和狀態(tài)機(jī)等各種圖形的繪制工作。第3章系統(tǒng)需求分析3.1 構(gòu)架概述投幣式多功能充電器控制電路可以基于FPGA技術(shù)利用verilog
36、語言在Quartus開發(fā)環(huán)境中設(shè)計實現(xiàn)。該控制電路可以通過對投幣數(shù)量的多少的控制對充電時間進(jìn)行控制,并顯示相關(guān)信息。主要模塊包括:投幣金額計數(shù)模塊、信息顯示控制模塊、充電計時控制模塊、控制模塊,如圖3.1所示。 圖3.1功能模塊示意圖投幣金額計數(shù)模塊主要實現(xiàn)的功能是記錄使用者投放的硬幣數(shù)量,來確定充電模塊對充電電池進(jìn)行相應(yīng)時間的充電。信息顯示控制模塊主要實現(xiàn)的功能是利用數(shù)碼管來顯示投幣的數(shù)量、充電時間等信息,給使用者傳達(dá)一系列反饋信息,以達(dá)到人機(jī)互動的目的。充電計時控制模塊主要功能是通過對使用者投幣數(shù)量的多少確定并控制充電時間。控制模塊主要功能是收集各模塊的信息,進(jìn)行處理,再根據(jù)處理結(jié)果給對應(yīng)
37、模塊下達(dá)下一步指示。特殊情況下,當(dāng)按下確認(rèn)健時,即充電已經(jīng)開始,硬幣不能再投入,即便再投入,系統(tǒng)不累計金額,數(shù)碼管不再顯示投幣金額的增加,而顯示充電時間。3.2系統(tǒng)工作流程在設(shè)計的前期明確系統(tǒng)工作的流程至關(guān)重要,系統(tǒng)流程圖能表現(xiàn)出系統(tǒng)的工作流程,表達(dá)系統(tǒng)的流動情況,是在對整個系統(tǒng)有一定的認(rèn)識后做出的。通過該圖能看出系統(tǒng)的合理性,明確設(shè)計目標(biāo),是設(shè)計前期的必要步驟。下圖便是本次設(shè)計的系統(tǒng)工作流程圖。 圖3.2系統(tǒng)流程圖如圖3.2所示,當(dāng)系統(tǒng)正常工作時,首先進(jìn)入等待狀態(tài),等待用戶進(jìn)行投幣。在用戶進(jìn)行投幣行為后,系統(tǒng)判斷所投硬幣金額,當(dāng)確定為五角時,系統(tǒng)計數(shù)加一,當(dāng)判斷所投硬幣為一元時,計數(shù)加二。然
38、后進(jìn)入下一狀態(tài),用戶確定是否投幣結(jié)束,如果用戶未按確定鍵,則系統(tǒng)跳回等待投幣狀態(tài),表示可以繼續(xù)投幣,用戶可以繼續(xù)投幣,系統(tǒng)將繼續(xù)記錄投幣金額,如果用戶按下確定鍵,則表示投幣結(jié)束,進(jìn)入下一狀態(tài)及開始充電。此時,用戶將無法繼續(xù)投幣。當(dāng)充電開始后,通過數(shù)碼顯示管顯示充電時間,以判斷是否充電結(jié)束,當(dāng)充電結(jié)束后,清除本次充電所記錄數(shù)據(jù),返回等待狀態(tài)。3.3 系統(tǒng)設(shè)計方法 數(shù)字系統(tǒng)的設(shè)計方法通常分為兩大類,分別是:自上而下設(shè)計和自下而上設(shè)計。一般自上而下的設(shè)計是從系統(tǒng)級開始設(shè)計的,首先,將系統(tǒng)劃分為若干個基本單元,然后每個在對基本單元進(jìn)行劃分為下一層次的若干基本單元,以此類推。從某種意義上來講,自下而上的
39、設(shè)計過程可以看作是自上而下設(shè)計的逆過程。同樣自下而上設(shè)計也是從系統(tǒng)級開始的,就是從設(shè)計的最底層開始對整個設(shè)計進(jìn)行逐次劃分,但是值得注意的是設(shè)計必須從已經(jīng)存在的基本單元出發(fā),所以在劃分的同時首先要考慮的是基本單元是否存在。最終我們要實現(xiàn)設(shè)計最底層的單元是已經(jīng)制造出來的單元,或者是已開發(fā)好的單元再或者是可以通過外購得到的基本單元。自下而上設(shè)計的基本流程:首先在劃分完模塊之后,獨立設(shè)計每個子模塊,設(shè)計完成后,在對設(shè)計好的模塊進(jìn)行優(yōu)化處理。然后在頂層的設(shè)計中集成所有已經(jīng)優(yōu)化好的子模塊,最后進(jìn)行總體設(shè)計的驗證。在綜合和優(yōu)化之后將每個子模塊具有的單獨的網(wǎng)表整合在頂層的設(shè)計中。這樣在頂層模塊設(shè)計中,各個子模
40、塊之間的性能都不會相互影響。與此同時,由于在高層次進(jìn)行設(shè)計的主要仿真和調(diào)試過程,所以能夠及時的發(fā)現(xiàn)結(jié)構(gòu)設(shè)計上的錯誤,減少了設(shè)計工作的浪費(fèi),同時又減少了模塊邏輯仿真的工作量。本次設(shè)計使用的就是自上而下的設(shè)計方法。 3.4系統(tǒng)設(shè)計的技術(shù)可行性分析本文采用的設(shè)計思想是自上而下的設(shè)計思路,從系統(tǒng)級設(shè)計入手。首先對頂層進(jìn)行功能劃分和結(jié)構(gòu)模塊的設(shè)計。在完成對整個系統(tǒng)有一定的認(rèn)識后,開始著手整體流程圖的設(shè)計。首先明確系統(tǒng)的工作流程,畫出工作流程圖。然后,通過對工作流程圖的提煉和分析設(shè)計出相應(yīng)的數(shù)據(jù)通道和控制單元。數(shù)據(jù)通道的各個模塊包括:數(shù)據(jù)選擇模塊、累加器模塊、譯碼器模塊、寄存器模塊、計數(shù)器模塊、比較器模塊
41、、減法器模塊等??刂茊卧糠滞ㄟ^有限狀態(tài)機(jī)來設(shè)計實現(xiàn),合理設(shè)計各個狀態(tài)的控制及轉(zhuǎn)移??刂茊卧l(fā)送數(shù)據(jù)通道所需的控制信號,接收來自數(shù)據(jù)通道的狀態(tài)信號,監(jiān)控整個系統(tǒng)的運(yùn)行;數(shù)據(jù)通道接受并處理來自控制單元的控制信號,并把處理的結(jié)果反饋給控制單元。此外,利用Altera公司開發(fā)的Quartus軟件,對每個模塊進(jìn)行設(shè)計。然后通過仿真軟件ModelSim對設(shè)計的各個模塊進(jìn)行仿真測試,確保整個設(shè)計的順利進(jìn)行。最后利用FPGA開發(fā)板進(jìn)行功能測試,并且不斷地進(jìn)行優(yōu)化。第4章系統(tǒng)設(shè)計4.1 設(shè)計指導(dǎo)思想和原則 本課題是基于FPGA的投幣式多功能充電器控制電路設(shè)計。該電路的設(shè)計基于FPGA利用verilog硬件描述
42、語音實現(xiàn),系統(tǒng)根據(jù)數(shù)字系統(tǒng)設(shè)計和實現(xiàn)的基本流程及基本規(guī)則采用由上而下的設(shè)計方法進(jìn)行設(shè)計,主要流程包括對整體流程圖的設(shè)計、數(shù)據(jù)通道和控制單元的設(shè)計、利用硬件描述語音及Verilog語言描述實現(xiàn)、最后通過ModelSim仿真軟件對各個模塊和整體系統(tǒng)進(jìn)行功能仿真,并在設(shè)計過程中不斷的進(jìn)行優(yōu)化。4.2 系統(tǒng)設(shè)計流程本次設(shè)計基本按照以下流程進(jìn)行,如圖4.1所示圖4.1 項目設(shè)計流程(1)規(guī)劃與設(shè)計階段充分合理的規(guī)劃設(shè)計對一個項目及時如質(zhì)如量完成具有不可忽視的作用,設(shè)計者必須做好前期各項準(zhǔn)備,包括了解該設(shè)計的背景環(huán)境、開發(fā)軟硬件等。明確設(shè)計所需實現(xiàn)的功能。對設(shè)計所需用到的方法及各項知識做出歸納。(2)數(shù)據(jù)
43、通道及狀態(tài)機(jī)的設(shè)計數(shù)據(jù)通道與狀態(tài)機(jī)的設(shè)計能很好的體現(xiàn)出設(shè)計的思路,能初步看出設(shè)計的可行性。(3)模塊劃分在對設(shè)計整體有了深入的了解后對系統(tǒng)結(jié)構(gòu)進(jìn)行優(yōu)化,決定系統(tǒng)模塊組成部分并且確定各個模塊已經(jīng)具備的各種功能。(4)代碼編寫根據(jù)前期的設(shè)計與優(yōu)化后,利用verilog硬件描述語言對各個模塊就行描述。(5)功能仿真在完成代碼的編寫過程后,就進(jìn)入到測試仿真階段,利用ModelSim工具進(jìn)行邏輯測試與仿真,確保設(shè)計正確性,功能的完整性。(6)開發(fā)板驗證 基于FPGA特點,利用開發(fā)板模擬實現(xiàn)設(shè)計,驗證預(yù)期目標(biāo)是否實現(xiàn)。4.3數(shù)據(jù)通道的設(shè)計數(shù)據(jù)通道大致能表現(xiàn)出系統(tǒng)的實現(xiàn)思路,是設(shè)計環(huán)節(jié)中最為重要的步驟之一。
44、下圖便是本次設(shè)計中的數(shù)據(jù)通道。通過該圖可以基本看出,本次設(shè)計的設(shè)計思路。 圖4.2數(shù)據(jù)通道圖如圖4.2所示,首先當(dāng)有投幣信號進(jìn)入時,通過一個選擇器input_m判斷硬幣金額,然后在確定投幣金額后通過譯碼器decoder將所投幣的金額轉(zhuǎn)換為時間,這個時間就是充電時間,將時間信號分別送給一個寄存器Reg_time和減法器Sub,然后減法器通過周期為1S的時鐘對所等數(shù)據(jù)進(jìn)行逐一遞減,然后通過數(shù)碼顯示管顯示充電信息。其次,循環(huán)計數(shù)器Time_counter與Reg_time中的時間進(jìn)行比對,通過比較器Time_equal比對,當(dāng)兩者數(shù)值相等是,則表示充電完成,然后輸出充電完成信號,反之充電未完成。模塊
45、圖詳細(xì)端口說明見表4.1表4.1 端口說明表信號名稱I/O功能描述Input_1I輸入一元按鍵Input_5I輸入五角按鍵OutO輸出投幣金額Charge_timeI充電時間Data_timeO/I充電時間ClkI時鐘RstI復(fù)位En2I使能Clear2I清除Data_counterO/I充電計數(shù)EqualityO比較En2I使能Led_inI數(shù)碼管輸入Led_outO數(shù)碼管輸出4.4狀態(tài)轉(zhuǎn)換圖狀態(tài)轉(zhuǎn)換圖,它表現(xiàn)的是系統(tǒng)中各個狀態(tài)的互相轉(zhuǎn)換及轉(zhuǎn)換所需要的條件??刂茊卧l(fā)送數(shù)據(jù)通道所需的控制信號,接收來自數(shù)據(jù)通道的狀態(tài)信號,對整個系統(tǒng)的運(yùn)行進(jìn)行監(jiān)控,以保證系統(tǒng)的正常運(yùn)行。這是設(shè)計環(huán)節(jié)中極為重要和
46、關(guān)鍵的步驟。下圖便是本次設(shè)計中的狀態(tài)轉(zhuǎn)換圖。圖4.3狀態(tài)轉(zhuǎn)換圖如圖4.3所示,idel狀態(tài):準(zhǔn)備狀態(tài)。投幣狀態(tài):等待投幣信號,通過sum數(shù)值是否發(fā)生改變,判斷是否投幣以便進(jìn)入下一個狀態(tài)。在這個狀態(tài)中,首先有2個信號add1,add2。分別表示投入的是5角還是1元硬幣。當(dāng)檢測完所投硬幣的類型后,在將信號送給下一狀態(tài)。同時,這個狀態(tài)中還要接收下一狀態(tài)傳來的信號,已確定不投幣無效,即已經(jīng)開始充電,不在接受投幣。這一狀態(tài)當(dāng)接收到上以狀態(tài)發(fā)出的add1和add2后分別做出sum+1,sum+2的處理,然后還有一個確定投幣結(jié)束信號,當(dāng)該信號有效時,則跳轉(zhuǎn)到下一狀態(tài),并且將信號給予wait狀態(tài),然后進(jìn)入下一
47、狀態(tài)。充電狀態(tài):接受投幣結(jié)束信號后,開始充電。并通過計數(shù)器進(jìn)行充電計時。完成狀態(tài):當(dāng)充電時間結(jié)束后,發(fā)出結(jié)束信號給下一狀態(tài)。接受到充電完成信號后,數(shù)據(jù)清零,回到idle狀態(tài)。4.5系統(tǒng)結(jié)構(gòu)圖通過對設(shè)計的深入研究,對系統(tǒng)進(jìn)行一些列的優(yōu)化,最終確定系統(tǒng)的各個模塊及模塊功能?;緲?gòu)架分為三部分:計時鐘分頻模塊,充電控制模塊,最后是充電顯示模塊。詳細(xì)系統(tǒng)結(jié)構(gòu)框圖如圖4.4所示。圖4.4系統(tǒng)結(jié)構(gòu)框第5章系統(tǒng)實現(xiàn)5.1 主要模塊的實現(xiàn)在投幣式多功能充電器控制電路設(shè)計過程中,系統(tǒng)主要由三大模塊組成,分別為時鐘分頻模塊、控制充電電路模塊、顯示模塊。下面分別介紹一下這三大模塊。5.1.1時鐘分頻模塊如圖5.1所
48、示,根據(jù)設(shè)計所需,將原時鐘分成三種時鐘頻率,分別是1HZ、1000HZ、50HZ。1HZ的時鐘周期為1S的時鐘主要,用于倒計時。1000HZ的時鐘周期為1ms用于數(shù)碼管的顯示所需。50HZ的時鐘周期為20ms,用于控制電路充電模塊。時鐘分頻的本質(zhì)就是計數(shù)器記到一定的數(shù)值進(jìn)行一次反轉(zhuǎn)。所以一般用計數(shù)器實現(xiàn)分頻。在時鐘分頻模塊中,各個端口說明表見表5.1。圖5.1時鐘分頻模塊表5.1時鐘分頻模塊端口說明表端口I/O功能描述ClkI原始時鐘RstnI復(fù)位功能Clk 1O1HZ時鐘分頻Clk 1000O1000HZ時鐘分頻Clk 50O50HZ時鐘分頻5.1.2控制充電電路模塊控制充電模塊,是本次設(shè)計
49、中的核心模塊之一,由該模塊控制統(tǒng)計投幣數(shù)量的多少,及確定是否投幣完成,并由金額確定充電時間。在設(shè)計實現(xiàn)的該模塊的過程中,考慮到現(xiàn)實和實驗之間的差別,特將1S看成1min,進(jìn)行設(shè)計。下這個模塊中,由于設(shè)計的需要,要使用到撥動開關(guān),所以這里需要使用按鍵防抖技術(shù)。以確保按鍵功能的實現(xiàn)。各個端口的詳細(xì)說明見表5.2。圖5.2控制充電電路模塊表5.2控制充電電路模塊端口說明表端口I/O功能描述clkI原始時鐘rstnI復(fù)位信號Key in1I投幣五角按鍵Key in2I投幣一元按鍵Key in3I確定投幣按鍵Clk 50I50HZ時鐘Clk 1I1HZ時鐘Second 1O輸出秒的個位Second 2O
50、輸出秒的十位Cnt 1O統(tǒng)計五角投幣數(shù)量Cnt 22O統(tǒng)計一元投幣數(shù)量5.1.3顯示模塊顯示模塊是顯示投幣金額數(shù)量、充電時間的模塊,是本次設(shè)計的重要模塊之一。在顯示模塊中,使用數(shù)碼管顯示相關(guān)信息。各個端口的詳細(xì)說明見表5.3。圖5.3顯示模塊表5.3顯示模塊端口說明表端口名稱I/O功能說明ClkI原始時鐘Clk 1000I1000HZ時鐘rstnI復(fù)位信號Key in4I顯示切換Second 1I輸入秒的十位Second 2I輸入秒的十位Cnt1I統(tǒng)計投幣數(shù)量Cnt22I統(tǒng)計投幣數(shù)量rten_smg_dataO數(shù)碼管輸出sm_bit_rO數(shù)碼管輸出5.1.4系統(tǒng)整體實現(xiàn)在Quartus II軟
51、件中,通過添加頂層文件與各模塊之間連接上,形成完整系統(tǒng)。系統(tǒng)整體實現(xiàn)如圖5.4所示。圖5.4項目整體RTL綜合5.2 系統(tǒng)的代碼實現(xiàn)5.2.1時鐘模塊代碼實現(xiàn)時鐘分頻的本質(zhì)就是計數(shù)器記到一定的數(shù)值就進(jìn)行一次翻轉(zhuǎn),所以在verilog語音中用計數(shù)器實現(xiàn)時鐘分頻。具體代碼如下。always ( posedge clk or negedge rstn )if( !rstn )count1 = 26d0;else if( count1 = HZ_1 )count1 = 26d0;elsecount1 = count1 + 1b1;always ( posedge clk or negedge rstn
52、 )if( !rstn )count2 = 20d0;else if( count2 = HZ_50 )count2 = 20d0;elsecount2 = count2 + 1b1;always ( posedge clk or negedge rstn )if( !rstn )count3 = 16d0;else if( count3 = HZ_1000 )count3 = 16d0;elsecount3 = count3 + 1b1;5.2.2控制模塊代碼實現(xiàn)在控制模塊中,由于系統(tǒng)后期利用FPGA開發(fā)板驗證功能,用到了機(jī)械開關(guān),所以在這個模塊中運(yùn)用到了防抖技術(shù)。消抖是為了避免在按鍵按下或
53、是抬起時 HYPERLINK /search?word=%E7%94%B5%E5%B9%B3&fr=qb_search_exp&ie=utf8 t _blank 電平劇烈抖動帶來的影響。一般來說,軟件消抖的方法是不斷檢測按鍵值,直到按鍵值穩(wěn)定。實現(xiàn)方法:假設(shè)未按鍵時輸入1,按鍵后輸入為0,抖動時不定??梢宰鲆韵聶z測:檢測到按鍵輸入為0之后,延時20ms,再次檢測,如果按鍵還為0,那么就認(rèn)為有按鍵輸入。在本次設(shè)計中,通過寄存器,將按鍵信號延時一個周期的方式,所用時鐘頻率為50HZ及20ms一個周期,延時的20ms恰好避開了抖動期。從而實現(xiàn)按鍵的消抖。具體代碼如下。always (posedge
54、clk or negedge rstn) if (!rstn) low_sw1 = 1b1; else if( clk_50 ) low_sw1 = key_in1;always (posedge clk or negedge rstn)if (!rstn) low_sw2 = 1b1; else if( clk_50 ) low_sw2 = key_in2; always (posedge clk or negedge rstn) if (!rstn) low_sw3= 1b1; else if( clk_50 ) low_sw3 = key_in3; reg low_sw_r1; reg
55、low_sw_r2; reg low_sw_r3; always ( posedge clk or negedge rstn ) if (!rstn) low_sw_r1 = 1b1; else low_sw_r1 = low_sw1; always ( posedge clk or negedge rstn ) if (!rstn) low_sw_r2 = 1b1; else low_sw_r2 = low_sw2;always ( posedge clk or negedge rstn ) if (!rstn) low_sw_r3 = 1b1;else low_sw_r3 = low_sw
56、3;用硬件描述語言對狀態(tài)機(jī)進(jìn)行描述,具有一定靈活性,通過一些規(guī)范的描述風(fēng)格,我們可以使描述更加安全、規(guī)范。分段式是最為常用的一種方法。根據(jù)狀態(tài)機(jī)的三要素,我們知道對狀態(tài)機(jī)的描述,需要描述清楚三點關(guān)鍵內(nèi)容:第一,各個狀態(tài)的轉(zhuǎn)移情況;第二,每個狀態(tài)的輸出是信號什么;第三,各個狀態(tài)之間轉(zhuǎn)移所需要的相關(guān)條件。由于受可綜合條件的限制,描述方法一般分成三種:一段式,二段式及三段式。所謂的一段式,就是將整個狀態(tài)機(jī)寫在一個always模塊里,該模塊既描述了狀態(tài)的轉(zhuǎn)移又描述狀態(tài)的輸入和輸出。但這種方法往往缺乏條理,不便閱讀,不利于維護(hù)和修改,還經(jīng)常受到不可綜合的問題,所以不建議使用這種方法,一般推薦使用二段式或
57、三段式。所謂二段式,這種方法就是在用硬件描述語言描述時用兩個always模塊進(jìn)行描述,一個always模塊主要描述狀態(tài)轉(zhuǎn)移,可以采取同步時序的方法。而另一個always模塊則描述狀態(tài)轉(zhuǎn)移條件和狀態(tài)轉(zhuǎn)移的規(guī)律,在這個always模塊中一般采用組合邏輯的方式。而三段式描述方法是在兩段式描述方法的基礎(chǔ)上發(fā)展而來的,顧名思義,這種寫法就是利用三個always模塊對狀態(tài)機(jī)進(jìn)行描述,其中一個always模塊采用同步時序的方式對狀態(tài)轉(zhuǎn)移進(jìn)行描述;另一個always模塊采用組合邏輯的方式判斷狀態(tài)轉(zhuǎn)移所要的條件和描述狀態(tài)轉(zhuǎn)移規(guī)律;還有一個always模塊則使用同步時許電路描述每個狀態(tài)的輸出。在本次設(shè)計中采用二段
58、式描述方法。在控制模塊中通過狀態(tài)機(jī)控制投幣的次數(shù)(即投幣的金額)和充電的時間。具體代碼如下。case( state ) s0 : begin if( led_ctrl3 = 1 )state = s1;else state = s0;ends1 : begin state = s1;flag= 1;case( cnt_3 ) 5d1 : begincharge_time7:4= 4d0;charge_time3:0= 4d5;end5d2 : begincharge_time7:4= 4d1;charge_time3:0= 4d0;end5d3 : begincharge_time7:4= 4
59、d1;charge_time3:0= 4d5;end5d4 : begincharge_time7:4= 4d2;charge_time3:0= 4d0;end default : begincharge_time7:4=4d0;charge_time3:0=4d0;end endcase end default : begincharge_time = 4d0;state = s0;endendcase endreg 2:0 state_time;parameter s2 = 3d1, s3 = 3d2;always ( posedge clk or negedge rstn ) if( !
60、rstn ) begin second_1 = 4d0;second_2 = 4d0;state_time = s2;led = 0;endelse begincase( state_time ) s2 : beginif( flag = 1 )beginsecond_1 = charge_time7:4;second_2 = charge_time3:0 ;state_time = s3;endend s3: beginstate_time = s3;if( clk_1 ) beginif( second_2 != 4h0 ) beginsecond_2 = second_2 - 1b1;l
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 林木采伐安全協(xié)議書范本
- 華東交通大學(xué)《生物器材》2023-2024學(xué)年第二學(xué)期期末試卷
- 訂車預(yù)購定金汽車銷售合同范本
- 河南應(yīng)用技術(shù)職業(yè)學(xué)院《現(xiàn)代冶金學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 甘肅有色冶金職業(yè)技術(shù)學(xué)院《教育技術(shù)前沿》2023-2024學(xué)年第二學(xué)期期末試卷
- 福建農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《信息系統(tǒng)安全》2023-2024學(xué)年第二學(xué)期期末試卷
- 文山職業(yè)技術(shù)學(xué)院《微機(jī)系統(tǒng)與接口實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東電力高等專科學(xué)?!禨ketchup(草圖大師)》2023-2024學(xué)年第二學(xué)期期末試卷
- 綿陽師范學(xué)院《中醫(yī)骨傷科學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林師范大學(xué)博達(dá)學(xué)院《建筑設(shè)計與構(gòu)造(1)》2023-2024學(xué)年第二學(xué)期期末試卷
- 社區(qū)獲得性肺炎教學(xué)查房
- 病例展示(皮膚科)
- GB/T 39750-2021光伏發(fā)電系統(tǒng)直流電弧保護(hù)技術(shù)要求
- DB31T 685-2019 養(yǎng)老機(jī)構(gòu)設(shè)施與服務(wù)要求
- 燕子山風(fēng)電場項目安全預(yù)評價報告
- 高一英語課本必修1各單元重點短語
- 糖尿病運(yùn)動指導(dǎo)課件
- 完整版金屬學(xué)與熱處理課件
- T∕CSTM 00640-2022 烤爐用耐高溫粉末涂料
- 心腦血管病的危害教學(xué)課件
- 民用機(jī)場不停航施工安全管理措施
評論
0/150
提交評論