基於FPGA的貪喫蛇遊戲
軟件環境:Quartus Prime 17.1 ,notepad++,gvim,modelsim-SE,TimeGen3
硬件環境:DE2-115(Intel FPGA Cyclone IV,EP4CE115F29C7N)
(板子不一樣的童鞋,要注意修改芯片型號和綁定引腳,修改完後,先別急着修改程序,先重新編譯並下載,看看有沒有效果,不出意外的話是可以直接跑出遊戲的,看到實驗現象了,再自己去優化修改)
本項目代碼較多,所以就從大的方向上說一下,具體的看我的源碼,然後自己跑一下就可以,移植還是比較簡單的。
圖1.系統的結構圖
在頂層模塊中一共例化了7個模塊,他們功能分別如下:
apple_generate.v 主要是用來產生貪喫蛇食物,以及判斷小蛇有沒有喫到蘋果,其中蘋果的隨機產生是利用加法計數器實現的,利用了每次喫蘋果的時間不同,從而會得到不同的蘋果座標。
game_ctrl.v這個主要是控制遊戲的狀態(START,PLAY,END),每種狀態都有他們自己的一套vga顯示,處在什麼狀態,就把相應的vga輸出到物理的vga控制端口。
ir_decoder.v 這個是用來紅外解碼的,可以看我的另外一篇博客,自己找一下。
pll_clk.v這個是pll ip核,用來產生25MHz時鐘。
smg.v 這個是控制數碼管的,顯示蛇的長度。
snake_ctrl.v 這個是用來控制蛇的運動,以及產生判斷是否撞牆,撞身體的標誌信號,以及掃描蛇身,產生object信號,給vga_play.v模塊用於顯示蛇身。
vga_play.v 這個是用來顯示處在PLAY狀態時的圖像 (vga的可以參考我另外一篇博客,自己找一下,還有就是程序裏出現的clk_25m,clk_50m,其中的m是MHz的意思,不是ms.)
貪喫蛇速度演示視頻如下:
福利:
由於最近有很多同學對基於FPGA的貪喫蛇遊戲很感興趣,趁着最近有時間,特將之前貪喫蛇遊戲重新設計一遍,並給出詳細的設計步驟,方便大家學習!一共分2期,本期教程主要解決VGA顯示圖片問題,主要教大家如何寫VGA驅動,如何用C語言生成mif文件。本教程還是需要有一定基礎的,至少會綁定引腳,會使用軟件產生pll、rom等常用的ip。
第一期免費教程鏈接:
第二期教程:
建議看完第一期的教程再考慮是否購買完整版的教程,可以保證的是,學會了第一期的教程後,再按照完整版教程就可以實現貪喫蛇所有功能,有問題加我QQ詢問,QQ號:1494640955。
微店還是有點麻煩,很多網友不習慣使用,還是使用“微信轉賬+加好友”的方式簡單點,遇到問題還能直接問我,這種小結的教程只收46元,就是收點辛苦費咯,畢竟編寫教程還是很費時費力的,同時也希望大家能夠珍惜本教程,購買方式如下:
(1)長按下面的二維碼進行付款
(2)付款後,掃描下面的二維碼加wenalan微信好友,併發送付款截圖,然後我就會把該教程的鏈接發送給你,遇到問題也可以隨時留言進行詢問(直接留言問題,不要問在不在哈,我看到就會回覆的!!!)。
微信掃描下面的二維碼關注[春哥筆記]公衆號,關注我的公衆號可以獲取更多FPGA的教程,也希望大家轉發支持哦~