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