EDA自動售貨機試驗報告_第1頁
EDA自動售貨機試驗報告_第2頁
EDA自動售貨機試驗報告_第3頁
EDA自動售貨機試驗報告_第4頁
EDA自動售貨機試驗報告_第5頁
已閱讀5頁,還剩21頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

EDA試驗報告自動售貨機學院:電子信息學院專業:10通信工程學號:1028401016姓名:費善健指導老師:黃旭目錄一、實驗名稱、內容與要求二、設計說明三、系統設計四、仿真及結果分析(仿真以5角為單位)五.應用RTL電路圖觀察器六.創建元件七.創建頂層文件八.編輯圖形文件九.引腳設置(選擇模式6)一、實驗名稱、內容與要求1.1項目名稱:自動售貨機。1.2內容摘要:基于VHDL的自動售貨機,芯片采用ALTERA公司的ACEX1K系列的EP1K30TC144-3,軟件編寫使用VHDL語言,采用模塊化單元構建系統,在VHDL編程環境QuartusII下編譯通過。文章對自動售貨機制作的軟件原理、軟件的運行流程進行了詳細地闡述,并給出了軟件流程、波形仿真等圖例。1.3關鍵詞:VHDL模塊化自動售貨機設計。1.4設計內容:自動售貨機。實驗任務及要求:本設計要求使用VHDL設計一個自動售貨機控制系統,該系統能夠自動完成對貨物信息的存取、進程控制、硬幣處理、余額計算與顯示等功能。1、自動售貨機可以出售兩種以上的商品,每種商品的數量和單價由設計者在初始化時輸入設定并存儲在存儲器中。2、可接收5角和1元硬幣,并通過按鍵進行商品選擇。3、系統可以根據用戶輸入的硬幣進行如下操作:①當所投硬幣總值等于購買者所選商品的售價總額時,則根據顧客的要求自動售貨且不找零,然后回到等待售貨狀態,并顯示商品當前的庫存信息;②當所投硬幣總值超過購買者所選商品的售價總額時,則根據顧客的要求自動售貨并找回剩余的硬幣,然后回到等待售貨狀態,并顯示商品當前的庫存信息;③當所投硬幣不夠時,給出相應提示,并可以通過一個按鍵退回所投硬幣,然后回到等待售貨狀態,并顯示商品當前的庫存信息。二、設計說明時鐘源處理模塊時鐘源處理模塊揚聲器警告處理預置貨物揚聲器警告處理預置貨物確認鍵確認鍵貨物處理貨物處理投幣投幣找零退錢處理找零退錢處理選擇貨物選擇貨物顯示信息確認鍵顯示信息確認鍵自動售貨機原理框圖設計流程:1、預先將自動售貨機里每種商品的數量和單價通過“SET”鍵置入到內部RAM里,并在數碼管上顯示出來。2、顧客通過“COIN0”和“COIN1”鍵模擬投入硬幣5角和1元。然后通過“SEL”鍵對所需購買的商品進行選擇,選中的商品的價格會在數碼管上顯示出來,選定后通過“GET”鍵進行購買,數碼管上會顯示找回零錢、單價和購買商品的數量,再按“FINISH3、按“GET”鍵時,如果投入的錢數等于或大于所要購買商品的售價總額,則自動售貨機會給出所購買的商品,并找回剩余錢幣;如果錢數不夠,自動售貨機給出警告,并繼續等待顧客的下一次操作。4、顧客的下一次操作可以繼續投幣,直到錢數總額到達所要購買商品的售價總額時繼續進行購買,也可直接按“FINISH”鍵退還所投硬幣,結束當前交易。三、系統設計3.1源程序:LIBRARYIEEE;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYFEIISPORT(CLK:INSTD_LOGIC;SET,GET,SEL,FINISH:INSTD_LOGIC;COIN0,COIN1:INSTD_LOGIC;PRICE,QUANTITY:INSTD_LOGIC_VECTOR(3DOWNTO0);--商品的單價和數量ACT:OUTSTD_LOGIC_VECTOR(3DOWNTO0);--成功購買商品的種類ITEMOUT:OUTSTD_LOGIC_VECTOR(1DOWNTO0);--選擇購買商品的種類Y0,Y1,Y2:OUTSTD_LOGIC_VECTOR(0TO6);WARN,ACT10,ACT5:OUTSTD_LOGIC);ENDFEI;ARCHITECTUREBEHAVOFFEIISTYPERAM_TYPEISARRAY(3DOWNTO0)OFSTD_LOGIC_VECTOR(7DOWNTO0);SIGNALRAM:RAM_TYPE;SIGNALITEM:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALITEM0:STD_LOGIC_VECTOR(1DOWNTO0);--貨個數SIGNALITEM1:STD_LOGIC_VECTOR(1DOWNTO0):="00";--商品種類SIGNALITEM2:STD_LOGIC_VECTOR(1DOWNTO0):="00";SIGNALCOIN:STD_LOGIC_VECTOR(3DOWNTO0):="0000";SIGNALITEM3,PRI,QUA:STD_LOGIC_VECTOR(3DOWNTO0);SIGNALCLK1:STD_LOGIC;BEGINCOM:PROCESS(SET,CLK1)BEGINIFCLK'EVENTANDCLK='1'THEN—上升沿ACT10<='0';ACT5<='0';--找回1,5角硬幣IFSET='1'THEN--貨物信息存儲信號--PRICEO<=PRICE;QUANTITYO<=QUANTITY;RAM(CONV_INTEGER(ITEM0))<=PRICE&QUANTITY;--預置商品的單價和數量ITEM<=ITEM0;--所選商品的個數IFITEM0="11"THENITEM0<="00";--商品的種類ELSEITEM0<=ITEM0+1;ENDIF;ELSIFCOIN0='1'THEN--代表投入5角硬幣IFCOIN<"1001"THENCOIN<=COIN+1;--投幣總數數小于九個,繼續對投幣總數加ELSECOIN<="0000";ENDIF;ELSIFCOIN1='1'THEN--代表投入1元硬幣IFCOIN<"1001"THENCOIN<=COIN+2;--投幣總數數小于九個,繼續對投幣總數加ELSECOIN<="0000";ENDIF;ELSIFSEL='1'THEN--貨物選擇信號FORIIN4TO7LOOPPRI(I-4)<=RAM(CONV_INTEGER(ITEM1))(I);--高四位賦給價錢ENDLOOP;FORJIN0TO3LOOPQUA(J)<=RAM(CONV_INTEGER(ITEM1))(J);--低四位賦給數量ENDLOOP;ITEM2<=ITEM1;IF ITEM1="11"THENITEM1<="00";--商品種類有四種ELSEITEM1<=ITEM1+1;ENDIF;ELSIFGET='1'THEN--購買信號IFQUA>"0000"THEN IFCOIN<PRITHENWARN<='1';ACT<="0000";--錢不夠,警告ELSEWARN<='0';COIN<=COIN-PRI;QUA<=QUA-1;RAM(CONV_INTEGER(ITEM2))<=PRI&QUA;ITEM3<=ITEM3+1;IFITEM2="00"THENACT<="0001";ELSIFITEM2="01"THENACT<="0010";ELSIFITEM2="10"THENACT<="0100";ELSIFITEM2="11"THENACT<="1000";--成功購買商品種類ENDIF;ENDIF;ENDIF;ELSIFFINISH='1'THEN--結束當前交易信號IFCOIN>"0001"THENACT10<='1';COIN<=COIN-2;--找回硬幣數量ELSIFCOIN>"0000"THENACT5<='1';COIN<=COIN-1;--找回硬幣數量ELSEACT5<='0';ACT10<='0';ENDIF;ENDIF;ENDIF;ITEMOUT<=ITEM2;--選擇商品種類ENDPROCESSCOM;CODE1:PROCESS(COIN)BEGINCASECOINISWHEN"0000"=>Y0<="1111110";WHEN"0001"=>Y0<="0110000";WHEN"0010"=>Y0<="1101101";WHEN"0011"=>Y0<="1111001";WHEN"0100"=>Y0<="0110011";WHEN"0101"=>Y0<="1011011";WHEN"0110"=>Y0<="1011111";WHEN"0111"=>Y0<="1110000";WHEN"1000"=>Y0<="1111111";WHEN"1001"=>Y0<="1111011";WHENOTHERS=>Y0<="0000000";ENDCASE;ENDPROCESS;CODE2:PROCESS(PRI)BEGINCASEPRIISWHEN"0000"=>Y2<="1111110";WHEN"0001"=>Y2<="0110000";WHEN"0010"=>Y2<="1101101";WHEN"0011"=>Y2<="1111001";WHEN"0100"=>Y2<="0110011";WHEN"0101"=>Y2<="1011011";WHEN"0110"=>Y2<="1011111";WHEN"0111"=>Y2<="1110000";WHEN"1000"=>Y2<="1111111";WHEN"1001"=>Y2<="1111011";WHENOTHERS=>Y2<="0000000";ENDCASE;ENDPROCESS;CODE3:PROCESS(ITEM3)BEGINCASEITEM3ISWHEN"0000"=>Y1<="1111110";WHEN"0001"=>Y1<="0110000";WHEN"0010"=>Y1<="1101101";WHEN"0011"=>Y1<="1111001";WHEN"0100"=>Y1<="0110011";WHEN"0101"=>Y1<="1011011";WHEN"0110"=>Y1<="1011111";WHEN"0111"=>Y1<="1110000";WHEN"1000"=>Y1<="1111111";WHEN"1001"=>Y1<="1111011";WHENOTHERS=>Y1<="0000000";ENDCASE;ENDPROCESS;ENDbehav;系統整體電路圖:其中:輸入端口為:CLK:輸入時鐘脈沖信號SET:貨物信息存儲信號GET:購買信號SEL:貨物選擇信號FINISH:結束當前交易信號COIN0:代表投入5角硬幣COIN1:代表投入1元硬幣PRICE[3..0]:商品的單價QUANTITY[3..0]:商品的數量輸出端口為:ITEMOUT[1..0]:所選商品的種類ACT[1..0]:成功購買商品的種類Y0[6..0]:投入硬幣的總數和找回硬幣總數Y1[6..0]:所購買商品的數量Y2[6..0]:所購買商品的單價WARN:錢數不足的提示信號ACT10:找回1元硬幣的數量ACT5:找回5角硬幣的數量四、仿真及結果分析(仿真以5角為單位)4.1新建工程:在菜單欄中選擇File→NewProjectWizard…,新建一個工程如下所示;圖4—1圖4—2圖4—3圖4—4圖4—1為新項目向導:intoduction;點擊next進入圖4—2,新建工程名和文件保存路徑(需要我們填寫相應信息);點擊next進入圖4—3,新項目向導:添加文件;點擊next進入圖4—4,選擇實驗芯片,我們實驗箱上的的芯片為:EP1K30TC144-3,選擇好后點擊finish完成新建工程。4.2程序的編譯和波形的仿真:項目創建完之后,接著就新建一個VHDL語言的文件,創建方法和項目的創建大同小異,File→New→VHDLfile。然后將自己的程序寫入。代碼寫入后保存到工程文件夾中,在進行語法編寫,語法編譯是檢查程序的正確性,若有錯誤,程序自動指出(編譯步驟:processing→startcompilation或者點擊’’)。波形的仿真,首先還是要新建一個波形文件,方法是new→FileVectorWaveFormFile,然后把程序中的輸入輸出端導入到這個波形中。再點擊NodeFinder…添加輸入、輸出引腳。然后設置各輸入量進行仿真。1.置入商品的單價和數量:結果分析:此時貨物的單價為2(代表兩個5角即一元),貨物的數量為4,當上升沿到來時,SET信號為高電平,將貨物的單價和數量置入RAM中。此程序最多能置入4種商品。2.投幣:結果分析:從仿真圖中可以看出5角投入兩個,1元投入2個,Y0顯示的最終結果為1011111即6(表示5角的個數),共投入了3元。3.投幣大于單價:結果分析:從仿真圖中可以看出投了3元,選擇了第1種商品單價為1元,成功購買了第1種商品,購買了1個商品,找回了2元。4.投幣等于單價結果分析:從仿真圖中可以看出選擇了第一種商品其單價為1元,投入硬幣也為1元,成功購買商品種類為第一種,購買商品數量為1,單價為1而找零則為0。5.投幣小于單價:結果分析:從仿真圖中可以看出選擇了第一種商品其單價為1元,投入硬幣也為5角,錢不夠,此時WARN為高電平報警,找回你投入的錢(5角),成功購買商品數量為0,成功購買商品種類為0,單價還是為1元沒變。購買不同種類的商品:(有四種商品可以選擇)結果分析:從仿真圖中可以看出選擇了第3種商品(ITEMOUT為10),單價2元,一共投入了4元,成功購買了第三種商品(ACT為0100第三位為1所以第三種商品),購買數量為1,實現找零2元。五.應用RTL電路圖觀察器選擇Tool->NetlistViewers命令,選擇RTLViewer可看到生成的RTL級圖形。RTL電路圖六.創建元件選擇File->Create/Update->createSymbleFilesforCurrentFile,把當前的FEI創建為一個符號元件創建元件七.創建頂層文件執行File->New…命令,選擇BlockDiagram/SchematicFile。在原理圖編輯窗中的任何一個位置上雙擊鼠標的左鍵或單擊右鍵選Insert->Symbol將跳出一個元件選擇窗。八.編輯圖形文件在Project庫中選擇元件CNT4、DECL7S,在Primitives庫中選擇input和output管腳,編輯圖形,另存。九.引腳設置(選擇模式6)1.確定下載驗證的電路圖和對應的管腳電路圖選擇電路圖No.6,LED7S的輸出顯示在數碼管8(代表找回硬幣數量),數碼管7(代表購買商品數量),數碼管6(貨物的單價),一到四LED燈對應成功購買商品種類,五到六LED燈對應選擇商品種類,第七個LED燈對應找回五角,第八個LED燈對應找回一元,CLK選擇CLK0,CLK0對應的管腳號為126,揚聲器對應的管腳為99,鍵1~8分別對應貨物單價,貨物數量,存儲貨物信號,投5角,投1元,選擇商品信號,購買商品信號,結束購買信號。GW48CK/GK/EK/PK2系統萬能接插口與結構圖信號/與芯片引腳對照表結構圖上的信號名GW48-CCP,GWAK100AEP1K100QC208GW48-SOC+/GW48-DSPEP20K200/300EQC240GWAK30/50EP1K30/50TQC144GWAC3EP1C3TC144引腳號引腳名稱引腳號引腳名稱引腳號引腳名稱引腳號引腳名稱PIO07I/O224I/O08I/O01I/O0PIO18I/O225I/O19I/O12I/O1PIO29I/O226I/O210I/O23I/O2PIO311I/O231I/O312I/O34I/O3PIO412I/O230I/O413I/O45I/O4PIO513I/O232I/O517I/O56I/O5PIO614I/O233I/O618I/O67I/O6PIO715I/O234I/O719I/O710I/O7PIO817I/O235I/O820I/O811DPCLK1PIO918I/O236I/O921I/O932VREF2B1PIO1024I/O237I/O1022I/O1033I/O10PIO1125I/O238I/O1123I/O1134I/O11PIO1226I/O239I/O1226I/O1235I/O12PIO1327I/O2I/O1327I/O1336I/O13PIO1428I/O3I/O1428I/O1437I/O14PIO1529I/O4I/O1529I/O1538I/O15PIO1630I/O7I/O1630I/O1639I/O16PIO1731I/O8I/O1731I/O1740I/O17PIO1836I/O9I/O1832I/O1841I/O18PIO1937I/O10I/O1933I/O1942I/O19PIO2038I/O11I/O2036I/O2047I/O20PIO2139I/O13I/O2137I/O2148I/O21PIO2240I/O16I/O2238I/O2249I/O22PIO2341I/O17I/O2339I/O2350I/O23PIO2444I/O18I/O2441I/O2451I/O24PIO2545I/O20I/O2542I/O2552I/O25PIO26113I/O131I/O2665I/O2667I/O26PIO27114I/O133I/O2767I/O2768I/O27PIO28115I/O134I/O2868I/O2869I/O28PIO29116I/O135I/O2969I/O2970I/O29PIO30119I/O136I/O3070I/O3071I/O30PIO31120I/O138I/O3172I/O3172I/O31PIO32121I/O143I/O3273I/O3273I/O32PIO33122I/O156I/O3378I/O3374I/O33PIO34125I/O157I/O3479I/O3475I/O34PIO35126I/O160I/O3580I/O3576I/O35PIO36127I/O161I/O3681I/O3677I/O36PIO37128I/O163I/O3782I/O3778I/O37PIO38131I/O164I/O3883I/O3883I/O38PIO39132I/O166I/O3986I/O3984I/O39PIO40133I/O169I/O4087I/O4085I/O40PIO41134I/O170I/O4188I/O4196I/O41PIO42135I/O171I/O4289I/O4297I/O42PIO43136I/O172I/O4390I/O4398I/O43PIO44139I/O173I/O4491I/O4499I/O44PIO45140I/O174I/O4592I/O45103I/O45PIO46141I/O178I/O4695I/O46105I/O46PIO47142I/O180I/O4796I/O47106I/O47PIO48143I/O182I/O4897I/O48107I/O48PIO49144I/O183I/O4998I/O49108I/O49PIO60202PIO60223PIO60137PIO60131PIO60PIO61203PIO61222PIO61138PIO61132PIO61PIO62204PIO62221PIO62140PIO62133PIO62PIO63205PIO63220PIO63141PIO63134PIO63PIO64206PIO64219PIO64142PIO64139PIO64PIO65207PIO65217PIO65143PIO65140PIO65PIO66208PIO66216PIO66144PIO66141PIO66PIO6710PIO67215PIO677PIO67142PIO67PIO6899PIO68197PIO68119PIO68122PIO68PIO69100PIO69198PIO69118PIO69121PIO69PIO70101PIO70200PIO70117PIO70120PIO70PIO71102PIO71201PIO71116PIO71119PIO71PIO72103PIO72202PIO72114PIO72114PIO72PIO73104PIO73203PIO73113PIO73113PIO73PIO74111PIO74204PIO74112PIO74112PIO74PIO75112PIO75205PIO75111PIO75111PIO75PIO7616PIO76212PIO7611PIO76143PIO76PIO7719PIO77209PIO7714PIO77144PIO77PIO78147PIO78206PIO78110PIO78110PIO78PIO79149PIO79207PIO79109PIO79109PI

溫馨提示

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

評論

0/150

提交評論