




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、EDA設(shè)計基礎(chǔ)實驗課程論文題 目 基于Verilog語言的簡單自動售貨機 學 院 通信學院 專業(yè)班級 通信111班 學生姓名 大彬哥 指導教師 大力會 2013年 6月 12日摘 要本設(shè)計是以現(xiàn)場可編程邏輯器件(FPGA)為核心的自動售貨機,利用Quartus軟件編寫Verilog HDL硬件描述語言程序以實現(xiàn)自動售貨功能。本設(shè)計主要以程序為主,硬件方面則使用實驗箱,將程序各變量端口與實驗箱管腳進行相應(yīng)的配置,用八個開關(guān)分別代表商品價格、所投錢幣價格及確認付款找零操作。當選擇好商品并投幣后,數(shù)碼管顯示所選商品價格及投入錢幣價格;按下確認付款開關(guān),數(shù)碼管顯示應(yīng)該找多少錢,蜂鳴器響,對應(yīng)商品LED
2、燈亮。若所投錢幣不足所選商品價格,對應(yīng)警告錢幣不足的LED燈亮。關(guān)鍵字:現(xiàn)場可編程邏輯器件 Verilog HDL 自動售貨機 Quartus AbstractThis design is an auto-vending machine based on field programmable logic devices (FPGA) . We use Quartusto write procedure in verilog HDL which is a language to describe hardware. The procedure will realize the function
3、of auto-vending machine.This design is mainly about procedure. For the hardware, we use experimental box. We allocate all variable quantities in the procedure to the feet in experimental box. We use eight switch respectively represent commodity prices and throw money price and confirm payment change
4、 operation. When choosing good commodities and coin, digital pipe display selected commodity prices and money price. When pressing confirm payment switch, digital pipe display should find how much money, buzzer sounded, corresponding commodity LED lights. If throw money shortage selected commodity p
5、rices, corresponding warning money shortage of LED lights.Keywords: FPGA Verilog HDL auto-vending machine Quartus目 錄摘 要IAbstractII第1章 緒論11.1 概述11.2 課題的背景、目的11.3 課題設(shè)計環(huán)境2 1.3.1 EDA的應(yīng)用及發(fā)展趨勢2 1.3.2 Quartus II簡介31.3.3 FPGA介紹4第2章 系統(tǒng)設(shè)計52.1 系統(tǒng)設(shè)計52.2 系統(tǒng)設(shè)計方案比較52.2.1 總體設(shè)計52.2.2 設(shè)計方案比較5第3章 詳細設(shè)計73.1 自動售貨機狀態(tài)描述73.
6、2 設(shè)計思路及原理73.2.1 模塊描述與實現(xiàn)73.2.2 電路原理圖93.3 自動售貨機狀態(tài)描述1134 詳細狀態(tài)描述113.4.1 初始狀態(tài)113.4.2 選商品狀態(tài)113.4.3 投幣狀態(tài)113.4.4 找零狀態(tài)11第4章 軟件設(shè)計134.1 分析與設(shè)計思路134.2 框圖144.3 程序總流程圖154.4 程序15第5章 結(jié)果與討論225.1 實驗調(diào)試225.1.1 調(diào)試步驟225.1.2 實驗現(xiàn)象235.2 結(jié)果與分析23結(jié)論24參考文獻25附錄26致謝27第1章 緒論1.1 概述隨著電子技術(shù)的發(fā)展,現(xiàn)場可編程門陣列FPGA和復雜可編程邏輯器件CPLD的出現(xiàn),使得電子系統(tǒng)的設(shè)計者利用
7、與器件相應(yīng)的電子CAD軟件,在實驗室里就可以設(shè)計自己的專用集成電路ASIC器件。這種可編程ASIC不僅使設(shè)計的產(chǎn)品達到小型化、集成化和高可靠性,而且器件具有用戶可編程特性,大大縮短了設(shè)計周期,減少了設(shè)計費用,降低了設(shè)計風險。目前數(shù)字系統(tǒng)的設(shè)計可以直接面向用戶需求,根據(jù)系統(tǒng)的行為和功能要求,自上至下地逐層完成相應(yīng)的描述綜合優(yōu)化仿真與驗證,直到生成器件,實現(xiàn)電子設(shè)計自動化。其中電子設(shè)計自動化(EDA)的關(guān)鍵技術(shù)之一就是可以用硬件描述語言(HDL)來描述硬件電路。EDA是電子設(shè)計自動化(Electronic Design Automation)的縮寫,在20世紀60年代中期從計算機輔助設(shè)計(CAD)
8、、計算機輔助制造(CAM)、計算機輔助測試(CAT)和計算機輔助工程(CAE)的概念發(fā)展而來的。Verilog HDL是眾多EDA軟件中的一個,結(jié)合我們這學期所學課程,本次設(shè)計采用的是Verilog公司推出的Verilog硬件描述語言,目的是為了將我們所學應(yīng)用到實際生活中,同時加深我們對Verilog硬件描述語言,F(xiàn)PGA芯片等等的認識與掌握。1.2 課題的背景、目的二十一世紀是信息化高速發(fā)展的世紀,因此在二十一世紀掌握前沿技術(shù)是十分有必要的。本次課題是計算機組成原理的課程設(shè)計,這次課題旨在通過自己對所需功能芯片的設(shè)計與實現(xiàn)來鞏固以前所學的計算機硬件基礎(chǔ)知識,同時也提高動手實踐的能力,還有為將
9、來進行更大規(guī)模更復雜的開發(fā)積累經(jīng)驗。自動售貨是20世紀70年代在日本、歐美發(fā)展起來的一種全新的消費方式,自動售貨機(Vending Machines)商業(yè)起源于本世紀的六十年代,由美國的Mars家族發(fā)明。自動售貨機又被稱為24小時營業(yè)的微型自助超市,它的售貨領(lǐng)域非常廣泛,是發(fā)達國家商品零售的一種主要方式。自動售貨機作為一種先進的消費方式,已經(jīng)成為城市現(xiàn)代文明發(fā)達程度的重要標志,其新穎、時尚的購物方式,24小時營業(yè)的特點給人們生活帶來了便利,美化了城市環(huán)境,受到消費者的歡迎。但是在我國自動售貨機的普及還不及發(fā)達國家,主要原因是我國EDA技術(shù)的應(yīng)用水平長期落后于發(fā)達國家。1.3 課題設(shè)計環(huán)境1.3
10、.1 EDA的應(yīng)用及發(fā)展趨勢EDA在教學、科研、產(chǎn)品設(shè)計與制造等各方面都發(fā)揮著巨大的作用。在教學方面,幾乎所有理工科(特別是電子信息)類的高校都開設(shè)了EDA課程。主要是讓學生了解EDA的基本概念和基本原理、掌握用HDL語言編寫規(guī)范、掌握邏輯綜合的理論和算法、使用EDA工具進行電子電路課程的實驗并從事簡單系統(tǒng)的設(shè)計。一般學習電路仿真工具(如EWB、PSPICE)和PLD開發(fā)工具(如Altera/Xilinx的器件結(jié)構(gòu)及開發(fā)系統(tǒng)),為今后工作打下基礎(chǔ)??蒲蟹矫嬷饕秒娐贩抡婀ぞ撸‥WB或PSPICE)進行電路設(shè)計與仿真;利用虛擬儀器進行產(chǎn)品測試;將CPLD/FPGA器件實際應(yīng)用到儀器設(shè)備中;從事
11、PCB設(shè)計和ASIC設(shè)計等。從目前的EDA技術(shù)來看,其發(fā)展趨勢是政府重視、使用普及、應(yīng)用文泛、工具多樣、軟件功能強大。中國EDA市場已漸趨成熟,不過大部分設(shè)計工程師面向的是PC主板和小型ASIC領(lǐng)域,僅有小部分(約11%)的設(shè)計人員研發(fā)復雜的片上系統(tǒng)器件。為了與臺灣和美國的設(shè)計工程師形成更有力的競爭,中國的設(shè)計隊伍有必要購入一些最新的EDA技術(shù)。在信息通信領(lǐng)域,要優(yōu)先發(fā)展高速寬帶信息網(wǎng)、深亞微米集成電路、新型元器件、計算機及軟件技術(shù)、第三代移動通信技術(shù)、信息管理、信息安全技術(shù),積極開拓以數(shù)字技術(shù)、網(wǎng)絡(luò)技術(shù)為基礎(chǔ)的新一代信息產(chǎn)品,發(fā)展新興產(chǎn)業(yè),培育新的經(jīng)濟增長點。要大力推進制造業(yè)信息化,積極開展
12、計算機輔助設(shè)計(CAD)、計算機輔助工程(CAE)、計算機輔助工藝(CAPP)、計算機機輔助制造(CAM)、產(chǎn)品數(shù)據(jù)管理(PDM)、制造資源計劃(MRPII)及企業(yè)資源管理(ERP)等。有條件的企業(yè)可開展“網(wǎng)絡(luò)制造”,便于合作設(shè)計、合作制造,參與國內(nèi)和國際競爭。開展“數(shù)控化”工程和“數(shù)字化”工程。自動化儀表的技術(shù)發(fā)展趨勢的測試技術(shù)、控制技術(shù)與計算機技術(shù)、通信技術(shù)進一步融合,形成測量、控制、通信與計算機(M3C)結(jié)構(gòu)。在ASIC和PLD設(shè)計方面,向超高速、高密度、低功耗、低電壓方向發(fā)展。在EDA軟件開發(fā)方面,目前主要集中在美國。但各國也正在努力開發(fā)相應(yīng)的工具。日本、韓國都有ASIC設(shè)計工具,但不
13、對外開放。中國華大集成電路設(shè)計中心,也提供IC設(shè)計軟件,但性能不是很強。相信在不久的將來會有更多更好的設(shè)計工具有各地開花并結(jié)果。據(jù)最新統(tǒng)計顯示,中國和印度正在成為電子設(shè)計自動化領(lǐng)域發(fā)展最快的兩個市場,年復合增長率分別達到了50%和30%。EDA技術(shù)發(fā)展迅猛,完全可以用日新月異來描述。EDA技術(shù)的應(yīng)用廣泛,現(xiàn)在已涉及到各行各業(yè)。EDA水平不斷提高,設(shè)計工具趨于完美的地步。EDA市場日趨成熟,但我國的研發(fā)水平很有限,需迎頭趕上。1.3.2 Quartus簡介本次課題設(shè)計方案要用到的開發(fā)環(huán)境是Altera公司的綜合性PLD/FPGA開發(fā)軟件Quartus II,支持原理圖、VHDL、Verilog
14、HDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計輸入到硬件配置的完整PLD設(shè)計流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計流程外,提供了完善的用戶圖形界面設(shè)計方式。具有運行速度快,界面統(tǒng)一,功能集中,易學易用等特點。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫,使用戶可以充分利用成熟的模塊,簡化了設(shè)計的復雜性、加快了設(shè)計速度。對第三方EDA工具的良好支持也使用戶可以在設(shè)計流程的各個階
15、段使用熟悉的第三方EDA工具。此外,Quartus II 通過和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實現(xiàn)各種DSP應(yīng)用系統(tǒng);支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級設(shè)計、嵌入式軟件開發(fā)、可編程邏輯設(shè)計于一體,是一種綜合性的開發(fā)平臺。Maxplus II 作為Altera的上一代PLD設(shè)計軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。目前Altera已經(jīng)停止了對Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera在Quartus II 中包含了許多諸如SignalTap I
16、I、Chip Editor和RTL Viewer的設(shè)計輔助工具,集成了SOPC和HardCopy設(shè)計流程,并且繼承了Maxplus II 友好的圖形界面及簡便的使用方法。Altera Quartus II 作為一種可編程邏輯的設(shè)計環(huán)境, 由于其強大的設(shè)計能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計者的歡迎。Quartus II提供了完全集成且與電路結(jié)構(gòu)無關(guān)的開發(fā)包環(huán)境,具有數(shù)字邏輯設(shè)計的全部特性,包括:可利用原理圖、結(jié)構(gòu)框圖、Verilog HDL、AHDL和VHDL完成電路描述,并將其保存為設(shè)計實體文件;芯片(電路)平面布局連線編輯;LogicLock增量設(shè)計方法,用戶可建立并優(yōu)化系統(tǒng),然后
17、添加對原始系統(tǒng)的性能影響較小或無影響的后續(xù)模塊;功能強大的邏輯綜合工具;完備的電路功能仿真與時序邏輯仿真工具;定時/時序分析與關(guān)鍵路徑延時分析;可使用SignalTap II邏輯分析工具進行嵌入式的邏輯分析;支持軟件源文件的添加和創(chuàng)建,并將它們鏈接起來生成編程文件;使用組合編譯方式可一次完成整體設(shè)計流程;自動定位編譯錯誤;高效的期間編程與驗證工具;可讀入標準的EDIF網(wǎng)表文件、VHDL網(wǎng)表文件和Verilog網(wǎng)表文件;能生成第三方EDA軟件使用的VHDL網(wǎng)表文件和Verilog網(wǎng)表文件。1.3.3 FPGA介紹FPGA是英文Field Programmable Gate Array的縮寫,即現(xiàn)
18、場可編程門陣列,它是在PAL、GAL、FPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路有限的缺點。FPGA采用了邏輯單元陣列LCA這樣一個新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個部分。FPGA的基本特點主要有以下幾點:一、FPGA設(shè)計ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。二、FPGA可做其它全定制或半定制ASIC電路中
19、的試樣片。三、FPGA內(nèi)部有豐富的觸發(fā)器和I / O引腳。四、FPGA是ASIC電路中設(shè)計周期最短、開發(fā)費用最低、風險最小的器件??梢哉f,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。目前FPGA的品種很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。FPGA是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,因此,工作時需要對片內(nèi)的RAM進行編程。用戶可以根據(jù)不同的配置模式,采用不同的編程方式。加電時,F(xiàn)PGA芯片將EPROM中的數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進入工作狀態(tài)。掉電后,F(xiàn)PGA恢復成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)
20、PGA能夠反復使用。FPGA的編程無須專用的FPGA編程器,只須用通用的EPROM、PROM編程即可。當需要修改FPGA功能時,只須換一塊EPROM第8頁即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。FPGA的配置模式非常靈活,它可以有多種配置方式:平行主模式為一片F(xiàn)PGA加一片EPROM的方式;主從模式為多片F(xiàn)PGA加一片PROM;串行模式可以采用串行PROM 編程FPGA外設(shè)模式可以將FPGA作為微處理器的外設(shè),由微處理器對其編程。第2章 系統(tǒng)設(shè)計2.1 系統(tǒng)設(shè)計 (1)用四個發(fā)光二極管分別模擬售出價值為5角、1元、1.5元和2元的小商品
21、,購買者可以通過開關(guān)選擇任意一種標價中的小商品。(2)燈亮時表示該小商品售出。(3)用開關(guān)分別模擬5角、1元硬幣和5元紙幣投入,可以用幾只發(fā)光二極管(或數(shù)碼管)分別代表找回剩余的硬幣。(4)每次只能售出一種小商品,當所投硬幣達到或超過購買者所選面值時,售出貨物并找回剩余的硬幣,回到初始狀態(tài);(5)當所投硬幣值不足面值時,可通過一個復位鍵退回所投硬幣,回到初始狀態(tài)。2.2 系統(tǒng)設(shè)計方案比較2.2.1 總體設(shè)計總體設(shè)計采用FPGA來設(shè)計的原理圖如圖1-1所示它由控制輸入電路、FPGA顯示電路和電機驅(qū)動組成。圖1-1 采用FPGA設(shè)計的自動售貨機原理方框圖控制輸入電路主要是為用戶設(shè)計的,起到一個輸入
22、控制的作用。FPGA是現(xiàn)場可編程邏輯器件,也是本設(shè)計方案的核心內(nèi)容,它是實現(xiàn)自動售貨機運作的主要控制模塊。將編寫好的HDL程序燒制到現(xiàn)場可編程邏輯器件FPGA中,然后通過控制輸入電路把信號輸入到FPGA,由八個開關(guān)控制輸入信號即消費者選擇商品和消費者投幣及確認消費,動態(tài)數(shù)碼管顯示輸出信號即找零環(huán)節(jié)和所選擇的商品、消費者投幣。2.2.2 總體設(shè)計設(shè)計方案比較本設(shè)計可以通過多種方案來實現(xiàn),下面就主要的三種方案進行闡述和比較。方案一:采用數(shù)字邏輯電路制作,用IC 器件連接焊接外圍電路實現(xiàn),這種電路很直觀,簡單方便。但應(yīng)用數(shù)字邏輯電路制作,使用的器件較多,連接復雜,體積大,功耗大。電路中焊點和線路較多
23、會,使成品的穩(wěn)定度和精度大大降低。方案二:使用現(xiàn)場可編程邏輯器件(FPGA)制作,利用Verilog HDL硬件描述語言編程進行控制,然后燒寫實現(xiàn)。方案三: 單片機現(xiàn)在已經(jīng)達到很成熟的階段了,它的應(yīng)用也十分廣泛。采用單片機來實現(xiàn)自動售貨機,它的原理方框圖與用FPGA來實現(xiàn)的原理方框圖類似,如圖1.2所示。圖1-2 采用單片機實現(xiàn)自動售貨機的原理方框圖圖1-1和圖1-2的基本原理都相同,唯一不同的是一個是用FPGA來制作,一個是用單片機來實現(xiàn)。采用單片機來實現(xiàn)自動售貨機,主要的核心是單片機程序的設(shè)計。方案比較:對于自動售貨機的設(shè)計,三個方案均可以實現(xiàn),但是第一個方案中采用的是數(shù)字邏輯電路來制作,
24、該電路硬件所需的器材多,體積龐大,比較復雜,而且精度和穩(wěn)定度都不是很高。第二個方案采用的是現(xiàn)場可編程邏輯器件來實現(xiàn), 它的優(yōu)點是所有電路集成在一塊芯片上,此方案所需的外圍電路簡單,這樣它的體積就減少了,同時還提高了系統(tǒng)的穩(wěn)定度。還可以用軟件Quartus軟件進行仿真和調(diào)試等。可以充分利用HDL硬件描述語言方便的編程,提高開發(fā)效率,縮短研發(fā)周期,降低研發(fā)成本;而且易于進行功能的擴展,實現(xiàn)方法靈活調(diào)試方便,修改容易.方案三也有它的優(yōu)點,但同時也存在缺點。它對設(shè)計者的要求比較高,設(shè)計者對軟硬件必須十分熟悉。和方案二來比它的實驗仿真沒有方案二簡單直觀,調(diào)試也有一定的難度。在外界環(huán)境相同的條件下,方案三
25、設(shè)計出來的產(chǎn)品精度和穩(wěn)定度要比方案二稍微差一些。因此,自動售貨機的設(shè)計我們選擇方案二來實現(xiàn)。第3章 詳細設(shè)計3.1 自動售貨機主要功能自動售貨機控制要求對機內(nèi)商品信息進行識別,對投入的貨幣進行運算,并根據(jù)所投入的貨幣數(shù)值判斷是否能夠購買某種商品,并做出相應(yīng)的反應(yīng)。本文設(shè)計的自動售貨機控制系統(tǒng)主要可以實現(xiàn)投幣處理、計算投幣總額、輸出商品,輸出找零等功能,系統(tǒng)工作流程如圖3-1 所示圖3-1 自動售貨機系統(tǒng)工作流程圖3.2 設(shè)計思路及原理3.2.1 模塊描述與實現(xiàn)自動售貨機的問題實際上就是狀態(tài)轉(zhuǎn)換的問題,不同的狀態(tài)對應(yīng)不同的輸出,具體的來說就是輸入不同幣值的錢后對應(yīng)著不同的作用結(jié)果。因此將此問題分
26、為兩部分來考慮,即輸入和輸出。 輸入部分包括時鐘信號、投幣信號、商品選擇信號、貨物信號、確定信號、復位信號。因為幣值只考慮5角、1元和5元的情況,因此可以分別用三個輸入端代替。同樣對于四種商品的選擇也可用四個輸入端代替。 輸出部分包括幣值顯示信號、輸出貨物信號、警告信號以及找零信號。綜上,給出如下輸入輸出變量:輸入變量:時鐘信號(clk):每個時鐘的上升沿觸發(fā)系統(tǒng)的狀態(tài)轉(zhuǎn)換。復位信號(reset):上升沿觸發(fā),按下后自動回到初始狀態(tài)。投幣信號(btn_mon):有5角、1元、5元高電平有效。貨物信號(btn_sell):有四種,高電平有效確定信號(ok):高電平有效。輸出變量:顯示信號(dis
27、_mony):顯示投入的幣額。貨物信號(led):對應(yīng)賣出的貨物。顯示信號(dis_price):貨物對應(yīng)的價錢。警告信號(led_warn):錢不足時發(fā)出警告信號。3.2.2 電路原理圖 圖3-2-2 電路仿真圖3.3 自動售貨機狀態(tài)描述判斷開關(guān)被按下的個數(shù)N。若N=2表示所選本次選擇無效,返回初始狀態(tài);若N=1則顯示所選商品,并繼續(xù)執(zhí)行下面的流程。4個開關(guān)分別代表四種商品。3個開關(guān)分別代表投入0.5元,1元,5元,統(tǒng)計投入總額。投入總額與商品價格做比較,如果總額=商品價格,則繼續(xù)執(zhí)行下面的程序。找零=總額-商品價格,數(shù)碼管顯示找零金額。狀態(tài)如圖3-2所示:圖3-1 自動售貨機狀態(tài)圖3.4
28、詳細狀態(tài)描述自動售貨機控制系統(tǒng)的工作過程中,可分為四個狀態(tài):初始狀態(tài)、選商品狀態(tài)、投幣狀態(tài)和找零狀態(tài)。在每一個狀態(tài)中完成特定的功能。3.4.1 初始狀態(tài)在初始狀態(tài)下,自動售貨機通電,初始化機內(nèi)商品信息(包括商品種類、每種商品的數(shù)量以及價格)。3.4.2 選商品狀態(tài) 分別有價格為0.5元、1元、1.5元和2元的商品,每次選擇商品前,設(shè)置一個標志位btn_sell表示選擇商品狀態(tài)。此自動售貨機每一次售貨時只能一次選擇一種商品,當同時選擇兩種以上時,選擇商品無效,數(shù)碼管顯示清零,重新進行商品選擇。選擇商品后,數(shù)碼管顯示所選商品價格。3.4.3 投幣狀態(tài)當選好商品后,開始投幣。同樣有一標志位btn_p
29、rice表示投幣金額。投幣口只接受三種面值的錢幣0.5元、2元和5元,可以同時投入多種面值錢幣。投完幣后,先有一個確認買商品的過程,若投了幣但又不購買商品了,就將全部投幣金額退回;若確認購買商品,則進入下一狀態(tài)找零狀態(tài)。3.4.4 找零狀態(tài)投完幣,并確認購買商品后,進入找零狀態(tài)。首先要將所投的金額與所選商品的價格做比較,若所投金額小于商品價格,則退回所投錢幣;若大于等于商品價格,則兩者做差,得到需要找零的錢。第4章 軟件設(shè)計4.1 分析與設(shè)計思路自動售貨機控制系統(tǒng)的功能模塊邏輯上劃分為商品信息存儲模塊、商品選擇模塊、投幣處理模塊,找零模塊和顯示模塊。1 商品信息存儲模塊該模塊的功能是將商品的單
30、價、數(shù)量存儲到自動售貨機中,price、quantity 分別表示商品的單價與數(shù)量數(shù)據(jù)信號,item 為商品的種類。2 商品選擇模塊該模塊功能是對商品進行選擇與購買。當對四種商品進行選擇時,由sel 的選擇信號的個數(shù)來表示所選擇的商品類型。get 為對商品進行確認購買的信號。3 投幣處理模塊該模塊是對投入的硬幣進行處理的過程,輸出參數(shù)coin 為投幣數(shù)值計數(shù)器,以0.5 元為單位進行計算。整個模塊功能類似于計錢器,可準確計算投入的硬幣數(shù),記錄并保存投入的總幣值。4 找零模塊該模塊主要完成找零操作。通過計錢器coin 計算余額,然后輸出找零的控制信號act5、act10。5 顯示模塊該模塊用來顯
31、示錢數(shù)和商品數(shù)量。用于錢數(shù)顯示時,將計錢器coin轉(zhuǎn)換成BCD 碼,然后經(jīng)譯碼器譯碼并顯示。用于商品數(shù)量顯示時,將計算得出的最終商品數(shù)量quantity 先轉(zhuǎn)換成BCD 碼,然后經(jīng)譯碼器譯碼并顯示。程序可分為以下模塊1)分頻模塊。2)計時模塊。用于控制確認鍵后到恢復初始化的3秒計時。3)識別模塊。將每種硬幣、貨品的撥碼開關(guān)信號轉(zhuǎn)變?yōu)榫幋a。4)清零模塊。用于銷售總額的清零。5)初始化模塊6)控制模塊。用于數(shù)據(jù)讀入、投幣不足、交易成功狀態(tài)的控制及轉(zhuǎn)化。7)顯示模塊4.2 框圖4.3 程序總流程圖4.4 程序module auto_seller(clk,rst,dis_mony,dis_price,
32、btn_ok,btn_mon,btn_sell,led_warn,led,beep);input clk,rst,btn_ok;input 2:0 btn_mon;/選擇放入的錢input 3:0 btn_sell;/選擇商品bbt_5,gz_10,kqs_15,kl_20output 3:0 led;/led_5,led_10,led_15,led_20output led_warn;/錢不足,指示燈output 11:0 dis_mony;/數(shù)碼管顯示投入面值,dia_mony10:7=com位選,dis_mony7:0=段碼output 11:0 dis_price;/數(shù)碼管顯示價錢ou
33、tput beep;reg clk_500Hz;reg 3:0 led;/led_5,led_10,led_15,led_20reg led_warn;/警告放入錢不足reg 11:0 dis_mony;reg 11:0 dis_price; reg 31:0 counter;reg 9:0 price,price_all;reg 1:0 flag = 2b00;/數(shù)碼管顯示標志位reg beep=0;parameter COUNT1 = 25d10000;/*分頻使數(shù)碼管顯示穩(wěn)定*/always (posedge clk)beginif(counter= 0)begin counter =
34、COUNT1;clk_500Hz = clk_500Hz;endelsecounter = counter-1;endalways (negedge rst or posedge clk)beginif(!rst)beginled = 4b0000;/LED滅price_all = 0;/價格清零led_warn = 0;price = 0;beep = 0;endelsebegin/*三種面值共8種組合*/case(btn_mon)3b001:begin price_all = 5;end3b010:begin price_all = 10;end3b100:begin price_all
35、= 50;end3b011:begin price_all = 15;end3b101:begin price_all = 55;end3b110:begin price_all = 60;end3b111:begin price_all = 65;enddefault:begin price_all = 0;endendcasecase(btn_sell)4b0001:begin price = 5;end 4b0010:begin price = 10;end4b0100:begin price = 15;end4b1000:begin price = 20;enddefault:begi
36、n price = 0;endendcaseif(btn_ok = 1)beginif(price_all price) /放入錢不足beginled_warn = 1;price = 0;endelsebegin /金錢足夠price_all = price_all-price;beep = 1;case(price) /LED燈顯示貨物賣出5: begin led = 4b0001;end10:begin led = 4b0010;end15:begin led = 4b0100;end20:begin led = 4b1000;endendcaseendendelsebeep = 0;e
37、ndend/*分頻后將時鐘給數(shù)碼管,數(shù)碼管分別顯示放入錢的多少、商品價格*/always (posedge clk_500Hz)begincase(flag)2b00:begindis_mony = 4b1110,led7(price_all%10),1b1;dis_price = 4b1110,led7(price%10),1b1;flag = 2b01;end2b01:begindis_mony = 4b1101,led7(price_all/10),1b0;dis_price = 4b1101,led7(price/10),1b0;flag = 2b00;endendcaseend/*數(shù)
38、碼管段碼表*/function 6:0 led7; input 3:0 dis_input;begincase (dis_input)0 : led7 = 7b111_1110;1 : led7 = 7b011_0000;2 : led7 = 7b110_1101;3 : led7 = 7b111_1001;4 : led7 = 7b011_0011;5 : led7 = 7b101_1011;6 : led7 = 7b101_1111;7 : led7 = 7b111_0000;8 : led7 = 7b111_1111;9 : led7 = 7b111_0011;default : led
39、7 = 7b111_1111;endcaseendendfunctionendmodule第5章 標題5.1 實驗調(diào)試5.1.1 調(diào)試步驟軟件調(diào)試:運行Quartus II軟件,觀看仿真波形,仿真波形如下: 圖5-1-1 波形圖硬件調(diào)試:運行Quartus II軟件,新建工程。建立文本文件Verilog HDL File。在文件中寫入程序。保存,編譯。分配管腳。保存,編譯。將生成的.sof文件寫入FPGA試驗箱中。根據(jù)要求選擇幾種買東西的可能情況,在實驗箱上實驗,觀察記錄結(jié)果。 5.1.2 實驗現(xiàn)象1.選擇買0.5元的商品,投5元的金額,調(diào)試現(xiàn)象如下: 選擇0.5元商品數(shù)碼管顯示0.5再選擇一種商品,數(shù)碼管顯示清零,重新進行商品選擇。按下5元投幣鍵,對應(yīng)數(shù)碼管顯示5.0。按下確認購買開關(guān),找零時,對應(yīng)數(shù)碼管顯示4.5,蜂鳴器響,對應(yīng)0.5元商品的LED燈亮。2.選擇1.5元的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學三個課堂管理制度
- 吉林動畫學院管理制度
- 單位工作安全管理制度
- 凈化車間供暖管理制度
- 攪拌設(shè)備清洗方案(3篇)
- 招商方案策劃(3篇)
- 商場擺攤預算方案(3篇)
- 工程安全論證方案(3篇)
- DB62T 4396-2021 高壓天然氣儲氣井定期檢驗規(guī)范
- 商場燈籠采購方案(3篇)
- 《潔凈工程項目定額》(征求意見稿)
- JJG 151-2006 金屬維氏硬度計檢定規(guī)程-(高清現(xiàn)行)
- 眼科學教學課件淚器病
- 張雙樓煤礦安全評價報告(出版稿10.14)
- 關(guān)于贛州市登革熱病例疫情的初步調(diào)查報告
- 網(wǎng)絡(luò)輿論監(jiān)督存在的問題及對策分析研究行政管理專業(yè)
- (蘇教版)二年級科學(下冊)第四單元課件全套
- 深圳實驗學校小學畢業(yè)班數(shù)學試卷
- 工業(yè)產(chǎn)品質(zhì)量監(jiān)督抽查復查復檢樣品確認書(模板)
- 掛牌上鎖及維修管理程序文件
- 上海初中地理會考知識點匯總(上海鄉(xiāng)土地理
評論
0/150
提交評論