本资源包含基于FPGA实现的经典“贪吃蛇”游戏的设计报告与Quartus 9.1软件下的工程源代码,适用于学习数字逻辑设计和FPGA开发。
基于FPGA设计的贪吃蛇小游戏实验课程设计报告+quartus9.1工程源码可以作为学习参考。
**摘 要**
本次电子技术基础课程设计了贪吃蛇游戏,实现了用FPGA来驱动VGA显示贪吃蛇游戏。该游戏规则是玩家使用PS2键盘操控一条蛇上下左右移动不断吞下苹果,每吃下一个苹果蛇身增长一节;当蛇头撞到自身或障碍物时游戏结束。
本课程设计采用Verilog HDL语言编写,涉及到了VGA显示、PS2键盘控制和状态机等相关知识。关键词:FPGA;VGA;PS2;贪吃蛇;Verilog HDL
**2.1 游戏设计内容及要求**
基本要求:
① 利用FPGA开发板、VGA显示器以及PS2键盘实现贪吃蛇游戏。
② 蛇可以看成由许多正方形的“小格子”拼凑而成,称作节。每个节是构成蛇身的基本单位;初始时确定其长度。
③ 游戏开始时随机生成一条蛇的位置和方向,并预设100分作为起始分数。
④ 用户可通过PS2键盘控制蛇头的方向及速度。每安全度过一秒钟加一分,静止状态则减一分;当游戏得分达到200分自动进入下一关卡,降至零时结束游戏。
⑤ 蛇触壁或撞到自身即视为失败。
⑥ 设计实现动态显示贪吃蛇的长度变化及当前分数。
**2.2 系统分析**
本设计采用VGA显示方式呈现经典的小型电子游戏“贪吃蛇”。玩家通过四个按键控制蛇体在屏幕上的移动,以获取随机出现的食物。每当吃到一个食物时,蛇身会增长一节,并且会有新的食物出现在屏幕上;如果头部撞到墙壁或自己的身体,则视为失败。
所设计的系统基于Cyclone III系列EP3C5E114C8N FPGA芯片进行硬件实现,使用Verilog HDL语言编写程序。整个控制系统包括八个按键:上、下、左、右移动键以及复位和开始游戏等其他功能按钮;所有输入信号均通过PS2键盘接收,输出则连接到VGA显示器以显示字符与画面。
**3.1 VGA显示模块设计**
显示器的扫描方式主要分为逐行扫描和隔行扫描两种:逐行扫描是从屏幕左上角一点开始,向右逐一进行点的绘制,在完成一行后电子束回到起点下方准备下一行;每结束一个周期会使用水平同步信号来保持一致,并在整屏完成后通过垂直同步信号重新定位到起始位置。
每一帧的显示时间被称为“垂直扫描时间”,其频率称为场频,常见的有60Hz和75Hz等。标准VGA模式下的场频为60Hz、行频则为31.5KHz。对于老式显像管设备而言,还需要考虑水平与垂直消隐信号的处理来确保图像清晰稳定地显示在屏幕上。