基于FPGA的飞机的小游戏

基于FPGA的飞机的小游戏

实验原理

基于FPGA的飞机的小游戏

该实验主要分为4个模块,采用至上而下的设计方法进行设计。由50M的晶振电路提供时钟源,VGA显示控制模块、图形显示控制模块、移动模块的时钟为25M,由时钟分频电路产生获得。时钟分频模块采用PLL进行设计,由50M时钟进行2分频获得25M时钟。

移动模块,控制我方飞机和敌方飞机、子弹的移动,移动的速度可以通过时钟的频率进行控制,操作我方飞机的移动和子弹的发射由外部按键进行控制,控制的方式有发射子弹、左移、右移。

图像显示控制模块,用于控制我方飞机、敌方飞机、子弹、 "goal"字符的显示,由于我方飞机和敌方飞机、子弹是移动的,由此需要根据移动的坐标进行控制,通过获取移动的坐标,将坐标信息传入VGA显示模块,由VGA显示模块根据坐标值和扫描的行、场信号进行控制显示。

VGA显示控制模块,主要用于控制VGA时序信号的产生,即是行信号、场信号的产生。同时,根据扫描的行地址和列地址,对我方飞机、敌方飞机、子弹、 "goal"字符进行显示。

硬件原理图

基于FPGA的飞机的小游戏

基于FPGA的飞机的小游戏

实验代码

工程文件

基于FPGA的飞机的小游戏

顶层文件

文件名:

基于FPGA的飞机的小游戏

我方飞机模型

用于显示在显示器的飞机形状设置

基于FPGA的飞机的小游戏

敌方飞机模型

用于显示在显示器的飞机形状设置

基于FPGA的飞机的小游戏

子弹显示模型

基于FPGA的飞机的小游戏

字符显示模型

用于显示在显示器上的字符的调用,如:0~9,A~Z等字符,在显示分数和显示GAME OVER的时候要用到。

基于FPGA的飞机的小游戏

图形显示模块

用于控制我方飞机和敌方飞机,子弹,分数,GAME OVER等图形的显示,是关键模块,也是比较复杂的。

基于FPGA的飞机的小游戏

移动模块

用于控制敌方飞机、我方飞机、子弹的移动

基于FPGA的飞机的小游戏

分频模块

将50M的输入时钟分频成1M和1K的时钟信号

基于FPGA的飞机的小游戏

VGA显示模块

用于产生行扫描、场扫描、RBG颜色等3种信号,用于驱动VGA的显示。(相当于电脑的显卡)

基于FPGA的飞机的小游戏

实验操作

子弹

基于FPGA的飞机的小游戏

左移

基于FPGA的飞机的小游戏

右移

基于FPGA的飞机的小游戏

开始

基于FPGA的飞机的小游戏

复位

基于FPGA的飞机的小游戏

复位按键,按下,有回到刚上电的状态。

每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号“科乎”。

基于FPGA的飞机的小游戏

上一篇:(NO.00004)iOS实现打砖块游戏(一):素材的制作


下一篇:Numpy Study 2----* dot multiply区别