基于FPGA的飞机的小游戏

时间:2024-01-08 19:43:50

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