基於FPGA的飛機的小游戲
實驗原理

該實驗主要分為4個模塊,采用至上而下的設計方法進行設計。由50M的晶振電路提供時鍾源,VGA顯示控制模塊、圖形顯示控制模塊、移動模塊的時鍾為25M,由時鍾分頻電路產生獲得。時鍾分頻模塊采用PLL進行設計,由50M時鍾進行2分頻獲得25M時鍾。
移動模塊,控制我方飛機和敵方飛機、子彈的移動,移動的速度可以通過時鍾的頻率進行控制,操作我方飛機的移動和子彈的發射由外部按鍵進行控制,控制的方式有發射子彈、左移、右移。
圖像顯示控制模塊,用於控制我方飛機、敵方飛機、子彈、 "goal"字符的顯示,由於我方飛機和敵方飛機、子彈是移動的,由此需要根據移動的坐標進行控制,通過獲取移動的坐標,將坐標信息傳入VGA顯示模塊,由VGA顯示模塊根據坐標值和掃描的行、場信號進行控制顯示。
VGA顯示控制模塊,主要用於控制VGA時序信號的產生,即是行信號、場信號的產生。同時,根據掃描的行地址和列地址,對我方飛機、敵方飛機、子彈、 "goal"字符進行顯示。
硬件原理圖


實驗代碼
工程文件

頂層文件
文件名:

我方飛機模型
用於顯示在顯示器的飛機形狀設置

敵方飛機模型
用於顯示在顯示器的飛機形狀設置

子彈顯示模型

字符顯示模型
用於顯示在顯示器上的字符的調用,如:0~9,A~Z等字符,在顯示分數和顯示GAME OVER的時候要用到。

圖形顯示模塊
用於控制我方飛機和敵方飛機,子彈,分數,GAME OVER等圖形的顯示,是關鍵模塊,也是比較復雜的。

移動模塊
用於控制敵方飛機、我方飛機、子彈的移動

分頻模塊
將50M的輸入時鍾分頻成1M和1K的時鍾信號

VGA顯示模塊
用於產生行掃描、場掃描、RBG顏色等3種信號,用於驅動VGA的顯示。(相當於電腦的顯卡)

實驗操作
子彈

左移

右移

開始

復位

復位按鍵,按下,有回到剛上電的狀態。
大西瓜FPGA-->https://daxiguafpga.taobao.com
博客資料、代碼、圖片、文字等屬大西瓜FPGA所有,切勿用於商業! 若引用資料、代碼、圖片、文字等等請注明出處,謝謝!
每日推送不同科技解讀,原創深耕解讀當下科技,敬請關注微信公眾號“科乎”。

