码迷,mamicode.com
首页 > 其他好文 > 详细

基于FPGA的飞机的小游戏

时间:2016-05-06 20:30:23      阅读:395      评论:0      收藏:0      [点我收藏+]

标签:

基于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的飞机的小游戏

标签:

原文地址:http://www.cnblogs.com/logic3/p/5466882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!