版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 數(shù)字邏輯課程設計報告</p><p> 題 目 簡易售貨機的設計 </p><p> 姓 名 </p><p> 學 號 </p><p> 班
2、 號 </p><p> 指導老師 </p><p> 成 績 </p><p><b> 目 錄</b></p>&
3、lt;p> 1. 課程設計目的</p><p> 2. 開發(fā)工具選擇</p><p> 3. 設計方案 </p><p><b> 4. 模塊描述</b></p><p> 5. VHDL實現(xiàn)</p><p><b> 6. 調(diào)試仿真</b&g
4、t;</p><p> 7. 課程設計回顧總結 </p><p><b> 參 考 文 獻 </b></p><p><b> 附錄 </b></p><p><b> 1課程設計目的</b></p><p> ?。?)設計一個簡易售貨機
5、,可銷售巧克力(0.5元)、純凈水(1元)、牛奶(1.5元)、漢堡(2元)4種商品,數(shù)量無限。</p><p> ?。?)只能投入1元或5角硬幣,如果投的錢數(shù)等于或則大于所購買的商品單價,則自動售貨機會給出所購買的商品;如果投的錢數(shù)不夠,自動售貨機不做響應,繼續(xù)等待顧客的下次操作。兩個輸出口分別輸出購買的商品和找零,零幣無限。</p><p> ?。?)有兩個LED數(shù)碼管顯示已經(jīng)投入的幣值
6、或找零數(shù)。顧客一次只能購買一種商品的一個,若需要更多商品,需要重復操作。</p><p><b> 2開發(fā)工具選擇</b></p><p><b> ?。?)硬件描述語言</b></p><p> 簡易售貨機的設計采用了功能強大的VHDL語言,它具有很強的行為能力描述,設計方法靈活,可以支持庫和模塊設計方法。 &
7、lt;/p><p> ?。?)QuartusII軟件開發(fā)工具 </p><p> 本設計采用的軟件開發(fā)工具是美國的Altera公司的QuartusII,它支持多種設計輸入方法,包括原理圖輸入、文本輸入。 </p><p> ?。?)EDA實驗開發(fā)系統(tǒng) </p><p> 本設計采用的EDA實驗開發(fā)系統(tǒng),主要用于提供可編程邏
8、輯器件的下載電路及EDA實驗開發(fā)的外圍資源,供硬件驗證用。</p><p><b> 3設計方案</b></p><p><b> 4模塊描述</b></p><p><b> 模塊一:選擇商品 </b></p><p> 分別有價格為0.5元、1元、1.5元和2元的商
9、品,此自動售貨機每一次售貨時只能一次選擇一種商品,當同時選擇兩種以上時,選擇商品無效,重新進行商品選擇。選擇商品后,數(shù)碼管顯示所選商品價格。</p><p><b> 模塊二:投幣</b></p><p> 當選好商品后,開始投幣。投幣口只接受0.5元、1元,投完幣后,先有一個確認買商品的過程,若投了幣但又不購買商品了,進入退錢的模塊;若確認購買商品,則進入出貨找
10、零模塊。</p><p> 模塊三:退錢、出貨找零</p><p> 投幣后取消購買,退回投入的硬幣。</p><p> 投完幣,若大于等于商品價格,進入找零模塊,兩者做差,得到需要找零的錢。</p><p><b> 5 VHDL實現(xiàn)</b></p><p><b> 1.選
11、擇商品模塊</b></p><p> ?。?)選擇商品模塊的元件圖符</p><p> ?。?)選擇商品模塊的VHDL描述</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_1164.ALL;</p><p> USE ieee.std_logic_
12、unsigned.ALL;</p><p> ENTITY select_goods IS</p><p><b> PORT</b></p><p><b> (</b></p><p> reset,en,chocolate,water,milk,humberger: INSTD
13、_LOGIC;</p><p> price: OUTinteger range 0 to 20</p><p><b> );</b></p><p> END select_goods; </p><p> ARCHITECTURE arc1 OF select_goods IS</p>&
14、lt;p> signal goods:std_logic_vector(3 downto 0);</p><p><b> BEGIN</b></p><p> goods<=chocolate&water&milk&humberger;</p><p> process(reset,en)</
15、p><p><b> begin</b></p><p> IF reset='1' THEN</p><p> price<=0;</p><p> elsif en='1' then </p><p> case goods is</p&
16、gt;<p> when "1000"=>price<=5;</p><p> when "0100"=>price<=10;</p><p> when "0010"=>price<=15;</p><p> when "0001&quo
17、t;=>price<=20;</p><p> when others=>price<=0;</p><p> end case;</p><p><b> end if;</b></p><p> end process;</p><p><b>
18、END arc1;</b></p><p><b> 2.投幣模塊</b></p><p> (1)投幣模塊的元件圖符</p><p> ?。?)投幣模塊的VHDL描述</p><p> LIBRARY ieee;</p><p> USE ieee.std_logic_116
19、4.ALL;</p><p> USE ieee.std_logic_arith.ALL;</p><p> USE ieee.std_logic_unsigned.ALL;</p><p> ENTITY coin IS</p><p><b> PORT</b></p><p><
20、;b> (</b></p><p> reset,clk,en,coin5,coin10: INSTD_LOGIC;</p><p> total:bufferinteger range 0 to 30</p><p><b> );</b></p><p><b> END
21、 coin;</b></p><p> ARCHITECTURE arc1 OF coin IS</p><p><b> begin</b></p><p> process(clk,reset)</p><p><b> begin</b></p><p&
22、gt; if (reset='1' and en='0') then</p><p><b> total<=0;</b></p><p><b> else </b></p><p> if clk' event and clk='1' then&l
23、t;/p><p> if en='1' then</p><p> if coin5='1' then</p><p> total<=total+5;</p><p> elsif coin10='1' then</p><p> total<=to
24、tal+10;</p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p><b> end if;</b></p><p
25、> end process; </p><p><b> END arc1;</b></p><p> 3.退錢、出貨找零模塊</p><p> ?。?)退錢、出貨找零模塊的元件圖符</p><p> ?。?)退錢、出貨找零模塊的VHDL描述</p><p> LIBRARY
26、0;ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY control ISPORT(clk, start,ok_buy,cancle_buy : IN STD_LOGIC; prices,coins : IN in
27、teger range 0 to 30;engoods,encoin,clrcoin,outgoods : OUT STD_LOGIC;backcoins: OUT integer range 0 to 20);END control;ARCHITECTURE arc1 OF contro
28、l IStype state_type is(salesgoods,incoins,outgoods_coin,back_coin);signal state:state_type;BEGINprocess(start,clk) begin if start='1' then
29、60; state<=salesgoods; elsif</p><p><b> 6調(diào)試仿真</b></p><p><b> 1.選擇商品模塊</b></p><p> 說明:當en=1時,選擇humberger,此商品的價格為2元,prices=2
30、0。當en=0時,商品選擇模塊禁止工作, prices保持不變。</p><p><b> 2.投幣模塊</b></p><p> 說明:當en=1時,投入一枚5角、一枚1元、一枚5角硬幣,總幣值為20即2元。</p><p> 3.退錢、出貨找零模塊 </p><p> 說明:選擇商品的價格prices為10,
31、投入幣值coins為20,當取消購買cancel_buy=1時,outgoods=0表示未出貨,backcoins=20表示退回20?</p><p> 說明:選擇商品的價格prices為10,投入幣值coins為20,當確認購買ok_buy=1時,outgoods=1表示出貨,backcoins=10表示找零10?</p><p> 4. 自動售貨機整體結構圖及調(diào)試仿真:</p
32、><p> (1)自動售貨機整體結構</p><p> ?。?)仿真結果及說明:</p><p><b> 說明:</b></p><p> (1)選擇milk,price=15,投入一枚1元硬幣,coins=10,又投入一枚1元硬幣,coins=20,之后,選擇取消購買,cancel_buy=1,outgoods=0
33、表示未出貨,outcoins=20表示退回投入硬幣2元。</p><p> (2)選擇milk,price=15,投入一枚1元硬幣,coins=10,又投入一枚1元硬幣,coins=20,之后,選擇確認購買,ok_buy=1,outgoods=1表示出貨,outcoins=5表示找零5角。</p><p> (3)選擇milk,price=15,投入一枚1元硬幣,coins=10,又投
34、入一枚5角硬幣,coins=15,之后,選擇取消購買,cancel_buy=1,outgoods=0表示未出貨,outcoins=15表示退回投入硬幣1.5元。</p><p> ?。?)選擇milk,price=15,投入一枚1元硬幣,coins=10,又投入一枚5角硬幣,coins=15,之后,選擇確認購買,ok_buy=1,outgoods=1表示出貨,outcoins=0表示找零0元。</p>
35、<p><b> 7課程設計回顧總結</b></p><p> 通過這次數(shù)字邏輯課程設計,我收獲了很多:</p><p> 在選擇課題時,原以為并沒有那么難,但是當進行設計時,才知道遠遠沒有自己想象的那么簡單。在進行退錢、出貨找零模塊的時候出現(xiàn)了很多錯誤,仿真結果不正確。在經(jīng)過請教老師和同學討論后,才將問題一一解決,最后調(diào)試出了正確的結果。<
36、/p><p> 這次課程設計,使我對數(shù)字邏輯上課所學習的知識有了更深的鞏固,對VHDL語言有了更深刻的理解,對QuartusII軟件的使用更加熟練了,對VHDL語言的組成和一些基本語句的使用方法記得更加牢固。</p><p> 經(jīng)過這次課程設計,鍛煉了我綜合運用所學知識,發(fā)現(xiàn)問題,提出問題,分析問題,解決問題的能力, 將所學到的理論與實際相結合。從而提高了自己實際動手和獨立思考的能力,對以
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論