一、設(shè)計任務(wù)要求
1、基本要求:
一個人將一只狗、一只貓和一只老鼠渡過河的經(jīng)典游戲用模塊實現(xiàn);
游戲要求:獨木舟1次只能裝載人和1只動物,且貓狗、貓鼠不能友好相處,設(shè)計過河方案,將三只動物安全渡過河,則游戲勝利結(jié)束。
2、設(shè)計方案
1、設(shè)計思路:
本課程設(shè)計我們采用了有限狀態(tài)機來實現(xiàn)本游戲。本設(shè)計硬件主要有5個按鍵10個LED燈以及2個數(shù)碼管;5個按鍵用來表示輸入以及復(fù)位按鍵,14個LED分別用來顯示河兩岸狀態(tài)與進行過河的狀態(tài)以及輸贏的情況;2個數(shù)碼管用來顯示所經(jīng)歷的過河次數(shù)。
具體步驟如下:
1. 首先拿到題目開始研究游戲可能出現(xiàn)的狀態(tài),畫出狀態(tài)轉(zhuǎn)換圖。
2. 根據(jù)狀態(tài)轉(zhuǎn)換圖,編寫出程序進行調(diào)試仿真。
3.調(diào)試仿真通過,開始設(shè)計需要的模塊,分頻,去抖,進制轉(zhuǎn)換等模塊。
4. 模塊設(shè)計完成后,連接原理圖。
5. 定義管腳,最終能在試驗箱上顯示結(jié)果
2、系統(tǒng)組成:
過河游戲電路主要由狀態(tài)控制模塊,時鐘分頻模塊,按鍵去抖模塊,計數(shù)模塊,十進制轉(zhuǎn)換模塊組成。如圖下圖所示
二、硬件電路設(shè)計
1、按鍵模塊
設(shè)有5個按鍵:一個復(fù)位鍵,四個過河狀態(tài)控制的按鍵,通過按相應(yīng)的鍵控制相應(yīng)的狀態(tài)轉(zhuǎn)換。
2、顯示模塊
?? 設(shè)有14個LED燈,2個數(shù)碼管。LED燈中分兩部分,LED0-LED3中四個表示河對岸的狀態(tài),LED6表示游戲錯誤,LED7表示游戲成功;LED8-LED11中四個表示另一岸的狀態(tài)。LED12-LED15表示正在運動的狀態(tài)。2個數(shù)碼管顯示游戲所用步數(shù)。
三、軟件設(shè)計
采用Quartus II作為開發(fā)工具對可編程邏輯器件FPGA的編程,底層由Verilog HDL語句實現(xiàn),頂層使用原理圖實現(xiàn)。軟件設(shè)計由狀態(tài)控制模塊,時鐘分頻模塊,按鍵去抖模塊,十進制轉(zhuǎn)換模塊四部分組成,由于輸入時鐘為50MHZ,因此使用分頻模塊輸出50HZ的方波,給控制模塊提供信號,控制模塊輸出的計數(shù)輸入給數(shù)碼管顯示譯碼模塊,按鍵消抖模塊的作用是為了消除按鍵抖動而設(shè)立的。
?借鑒于此紛傳