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