1. 程式人生 > >6-2 Verilog Mealy狀態機之自動售貨機

6-2 Verilog Mealy狀態機之自動售貨機

使用工具:Xilinx ISE 14.7

問題描述:


分析:

這個系統使用3鍾投幣輸入:5美分,10美分, 25美分。一瓶汽水消耗25美分。所以有以下幾種情況:

5美分的狀態:當投幣25美分時找零5美分,其餘情況繼續投幣進入相應狀態

10美分的狀態:當投幣25美分時找零10美分,其餘情況繼續投幣進入相應狀態

15美分的狀態:當投幣25美分時找零15美分,當投幣10美分時找零0美分,其餘情況繼續投幣進入相應狀態

20美分的狀態:當投幣25美分時找零20美分,當投幣10美分時找零5美分,當投幣5美分時找零0美分

因此有以下狀態圖設計:


在這裡涉及到了投幣過程的模擬,有兩種方案一種是3種投幣每個投幣一個按鈕以此來控制,每次投幣時按下對應按鈕即可;另一種是1個按鈕加3個開關,每次投幣時撥動對應開關,再按下按鈕表示投幣。兩種方案的優缺點:第一種操作簡單但是硬體資源佔用較多,對於FlipFlop的資源佔用率較高,並且用時高於後者。

在這裡由於工程的程式碼量較大,就不貼出來了,下面給出相應工程下載的連結: