數字系統課程設計挑戰迷宮小游戲_第1頁
數字系統課程設計挑戰迷宮小游戲_第2頁
數字系統課程設計挑戰迷宮小游戲_第3頁
數字系統課程設計挑戰迷宮小游戲_第4頁
數字系統課程設計挑戰迷宮小游戲_第5頁
已閱讀5頁,還剩6頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、挑戰迷宮學號:61010xxx姓名:xx1、申請題目:挑戰迷宮n 題目,命題描述(5號宋體)這是一個基于fpga控制點陣板顯示的益智趣味類小游戲,游戲中玩家通過鍵盤鍵控制控制人物上下左右移動,從起始點出發,目的是走到迷宮的出口。游戲有著友好的用戶界面,而且有多種模式,多種地圖供玩家選擇。1.普通不計時模式:玩家可以看到整個迷宮地圖,游戲沒有時間限制;2.普通計時模式:玩家可以看到整個迷宮地圖,必須在20秒內找到出口,否則游戲失敗;3.高級不計時模式:玩家并不能看到整個迷宮的地圖,只能看到其周圍的2步以內部分路徑,其他路徑需要靠自己移動來探索,這樣就仿佛置身迷宮之中,更有可玩性,游戲沒有時間限制

2、;4.高級計時模式:同樣玩家:玩家并不能看到整個迷宮的地圖,只能看到其周圍的2步以內部分路徑;必須在20秒內找到出口,否則游戲失敗。2、課題背景:n 存在問題、應用背景走迷宮是大家所非常熟悉的一款小游戲,規則簡單,老少皆宜,可以段煉玩家的判斷力和觀察力;而且其不同于普通的走迷宮游戲,增加了一些趣味性玩法及創新點,可供人們平時娛樂所用。該游戲主要在led點陣板上實現,做成電腦軟件效果將更佳。3、項目規劃: n 功能、指標、規模功能:1. 游戲開始之前,玩家通過鍵盤選擇游戲模式和游戲地圖,然后啟動游戲,其中有相應的指示燈提示;2.點陣板顯示中,以黃色表示玩家,綠色表示迷宮出口,紅色表示迷宮墻壁;玩

3、家通過鍵盤上相應的鍵控制人物的上下左右移動。勝利或失敗后有相應的畫面出現,能夠通過按鍵重新啟動游戲。3.計時模式中,數碼管顯示倒計時;指標: 游戲中主要采用16x16點陣板顯示地圖,計時模塊中,時間限制為20秒比較合理。規模:由于涉及數據結構在硬件語言中的實現與優化,具有多種模式下點陣板的操作,本項目難度為中上。由于硬件語言中使用了大量矩陣,所有功能都實現后,占用的邏輯單元的總數在5000多左右。n 面板(顯示)、操作、規則顯示面板:數碼管:第一位表示關卡,后兩位表示倒計時時間。 led顯示燈:操作:游戲規則:本游戲的規則相對簡單。玩家使用鍵盤操縱一個人,在規定的時間內走到迷宮出口即可勝利。n

4、 輸入、輸出接口鍵盤輸入輸出接口;點陣板掃描、顯示接口。4、實現方案: n 核心問題1. 多種模式下的選擇和表示;2.對led點陣板中迷宮地圖的顯示和人物移動的顯示控制;3. 點陣中只顯示人物周圍的2步以內部分路徑。n 解決方案1. 對于多種模式,使用狀態機的不同狀態來表示,這樣就可以通過狀態來作為后面點陣顯示模塊的使能信號;2. 點陣板的顯示:點陣板的行采用掃描信號的形式掃描,16位行輸出信號依次為:”1111111111111110”,”1111111111111101”,”1111111111111011,1111111111110111,1111111111101111等(低電平使能)

5、;當相應的行選中時,輸入相應的紅燈16位列信號,綠燈16位列信號,這樣紅燈和綠燈的信號就有16x16個需要存儲; 分別用兩個16x16的矩陣存儲紅燈和綠燈的信號,當點陣板第一行選中時,輸出矩陣第一行的16位信號;當點陣板第二行選中時,輸出矩陣第二行的16位信號;以此類推。 采用一個16x16的矩陣顯示人物的位置,事先知道人物點的位置坐標,當上下左右鍵按下后,就修改該矩陣中的值,最后把該矩陣和紅燈信號的矩陣和綠燈信號的矩陣相與作為紅燈和綠燈的輸出。3. 定義一個初始化為全0的16x16的矩陣,當每次人物點移動時,把人物坐標周圍2步以內的點對應的矩陣中的值修改為1;輸出的紅燈信號的矩陣和綠燈信號的

6、矩陣與這個矩陣相與輸出。5、系統結構:n 系統框圖n 模塊功能描述分頻器模塊fenping:對輸入的2mhz信號進行不同的分頻,分別產生1khz、100hz、2hz、1hz的時鐘信號。鍵盤模塊keyboard: 外接鍵盤,當鍵盤按下鍵時,輸出按下的鍵值(用4位二進制數表示)和相應的按鍵脈沖。狀態機模塊statemachine: 輸入鍵盤按鍵信號,輸出4位二進制數來表示不同的狀態。 游戲關卡選擇模塊hard_setting: 當狀態為關卡選擇狀態時,初始輸出值為1,按下a鍵關卡加一,按下d鍵關卡減一。 倒計時模塊daojishi: 當選中計時模式并游戲開始后,倒計時開始,共20秒,倒計時最后3秒

7、時輸出2hz蜂鳴器信號,倒計時結束時輸出timeover信號為1. 點陣控制模塊maze: 存儲著不同關卡的地圖矩陣,游戲未開始時,用相應關卡的地圖矩陣初始化輸出矩陣;游戲開始后,檢測上下左右鍵,若有鍵按下,修改人物矩陣中相應的值,輸出紅色和綠色點陣的矩陣值,供掃描顯示模塊使用。 點陣掃描顯示模塊display: 把輸入的相應紅色和綠色矩陣值與點陣掃描信號關聯,產生16位紅色輸出信號和生16位綠色輸出信號,連接至點陣板。n 模塊接口標注(參數、協議)鍵盤行列輸入輸出信號:游戲關卡顯示數碼管:倒計時顯示數碼管: 點陣板行掃描信號:點陣板紅燈信號:點陣板綠燈信號:led顯示燈信號:時鐘輸入信號:6

8、、狀態流程圖:n 系統工作狀態流程7、各主要模塊仿真結果波形n 各模塊的仿真波形,詳細注釋輸入輸出功能端口1.鍵盤模塊波形圖:輸入輸出功能端口:clk:輸入2mhz時鐘信號key_down_:輸出按下鍵的脈沖col3.0:列掃描信號row3.0:行輸入信號q3.0:4位鍵盤碼信號波形意義:從波形可以看出,可以成功產生列掃描信號,而且按下f鍵,和4鍵后可以輸出相應的鍵值,且能產生按鍵脈沖。2. 狀態機模塊波形圖: 輸入輸出功能端口:clk:時鐘信號1、2、a、b、c、d、e、f:鍵盤按鍵信號x1:暫停信號state:輸出狀態信號波形意義:波形表示在初始狀態0000下,按下“f”鍵啟動控制器進入0

9、001狀態,通過按“1” 選擇,普通不計時模式0100,按下e鍵確認地圖,開始游戲進入1000狀態;在初始狀態0000下,按下“f”鍵啟動控制器進入0001狀態,通過按“2” 選擇普通計時模式0101,按下e鍵確認地圖,開始游戲進入1001狀態,按f鍵結束游戲回到初始狀態。可見狀態機功能可以實現。3.倒計時顯示模塊波形圖: 輸入輸出功能端口:a3.0: 4位鍵盤按鍵碼state:當前狀態clk1hz:1hz時鐘信號minh:分鐘高位minl:分鐘低位sech:秒高位scel:秒低位波形意義:可以看出在計時模式狀態中可以實現倒計時的功能。4.本系統仿真涉及兩個16*16自定義矩陣向量,超出qua

10、tus 提供的pin腳上限,故游戲控制模塊仿真無法實現,實際中采用直接燒進fpga中調試,此處模塊仿真略。8、課程設計總結n 預期的目標與當前實現功能的差異詳細注釋游戲結果基本實現了預期的全部主要功能,完全編譯已經需要5200多個門,考慮到fpga門數的限制(只有約6000個門),我省略了游戲中的雙人模式;而且由于時間和資源的有限,程序內部只預置了兩幅地圖。n 可以進一步發揮提高的部分1. 可以增加雙人模式,兩個玩家同時走迷宮,比較誰最先走出迷宮,增加游戲的趣味性和競爭性;2. 可以為游戲增加提示音樂,讓其更完美、更人性化。n 課程設計體會首先,這次的課程設計讓我學會了vhdl語言,讓我深深體會到語言設計的強大性和簡潔性,然而,雖然用語言編寫有很大的優勢,但這畢竟是一個相當大的系統,再加上vhdl語言的嚴謹性,要想讓整個系統的邏輯結構清晰明了,完全不出錯誤,也是一件煞費苦心的事情,由于用了許多矩陣,程序關編譯就需要好幾分鐘的時間,所以這毫無疑問花費了我大把的時間去調試。由于之前有用語言編寫健身自行車的基礎,前面模式選擇以及狀態機什么的都很快調試成功了;但點陣板卻完全不是輕而易舉就能成功的。首先,光其原理我就研究了好一陣子,理解了編寫出來也是錯誤

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論