基于FPGA的贪吃蛇游戏

基于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控制端

  • 17
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 55
    评论
基于FPGA设计的贪吃游戏实验课程设计报告+quartus9.1工程源码,可以做为你的学习设计参考。 摘 要 本次电子技术基础课程设计了贪吃游戏,实现了用FPGA来驱动VGA显示贪吃游戏贪吃游戏规则是玩家使用PS2键盘操控一条上下左右移动不断吞下苹果,吃下一个苹果身增长一节,当头撞到身或障壁时游戏结束。本课程设计采用Verilog HDL语言编写,涉及到VGA显示,PS2键盘操控,状态机等相关知识。 关键词:FPGA;VGA;PS2;贪吃;Verilog HDL 2.1 游戏设计内容及要求 基本要求: ① 利用FPGA开发板、VGA显示器、PS2键盘实现贪吃游戏。 ② 一条可以看成由许多正方形的“小格子”拼凑成,称作节。节是身上最小的单位。的初始长度确定。 ③ 的初始位置及方向由FPGA开发板随机生成,每次游戏预送100分。 ④ 用户使用开发板键盘及PS2键盘可控制头的方向及速度。在屏幕中运动每安全度过1秒加1分,静止状态每过1秒减1分,当游戏达到200分时自动进入游戏下一关,当游戏分值自动减为0时游戏失败终止。 ⑤ 当贪吃触壁则失败。 ⑥ 实现游戏身变换及游戏积分的自动动态显示。 2.2 系统分析 贪吃是经典小游戏,本设计采用VGA显示的方式将游戏展现出来。游戏中玩家通过四个按键控制的身体上下左右移动来吃屏幕中出现的苹果,苹果是随机出现的。当吃的一个苹果时,身体变长一个单位同时会有另一个苹果出现。如果头撞墙或者撞到自己身体,则游戏失败。 所要设计的贪吃游戏基于Cyclone III系列EP3C5E114C8N的FPGA芯片为硬件,采用Verilog HDL语言编写程序。在本设计中,有个8按键,分别是上、下、左、右、复位和游戏开始,暂停与继续按键。它们都是输入信号,输出是VGA,在电脑屏幕实现VGA显示字符,游戏画面 第3章 贪吃游戏设计 3.1 VGA显示模块设计 显示器扫描方式分为逐行扫描和隔行扫描:逐行扫描是扫描从屏幕左上角一点开始,从左像右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。   完成一行扫描的时间称为水平扫描时间,其倒数称为行频率;完成一帧(整屏)扫描的时间称为垂直扫描时间,其倒数称为场频率,即刷新一屏的频率,常见的有60Hz,75Hz等等。标准的VGA显示的场频60Hz,行频31.5KHz。 行场消隐信号:是针对老式显像管的成像扫描电路而
评论 55
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值