基于 ws2812b 贪吃蛇游戏设计
第 1 页 共 41 页
英特尔 FPGA 二十四期中级证书考试程序题设计
基于 ws2812b 的贪吃蛇游戏设计
作者:谢小林
基于 ws2812b 贪吃蛇游戏设计
第 2 页 共 41 页
项目摘要
本设计时使用 C4MB 板卡,设计的一套基于 ws2812b 的贪吃蛇游戏系统设计,
贪吃蛇游戏系统是基于 Verilog HDL 设计语言的数字电路设计项目,通过硬件
实现经典手机游戏贪吃蛇。该项目主要包括以下几个模块:
游戏总控控制器:该模块是整个贪吃蛇游戏的核心,用于控制游戏的节奏和
流程。在该模块中,需要实现游戏逻辑、键盘输入检测以及显示屏输出等功能。
ws2812b 显示模块:该模块用于将游戏画面显示在 ws2812b 点阵上。在该模
块中,需要实现对于 ws2812 接口模块的设计,通过接口模块接收产生的 24bit
的游戏数据,24bit 游戏数据可以通过 ws2812b 8x8 点阵模块,显示贪蛇运行的
画面。
按键消抖模块:该模块用于检测玩家的按键输入,并将按键信号进行消抖处
理,传送给贪吃蛇模块,贪吃蛇模块通过按键的输入,控制蛇的正常移动和对于
游戏的控制。
基于 ws2812b 贪吃蛇游戏设计
第 3 页 共 41 页
目录
英特尔 FPGA 二十四期中级证书考试程序题设计 ........................................................................1
基于 ws2812b 的贪吃蛇游戏设计 .................................................................................................... 1
第一章实验目的 ................................................................................................................................ 4
1.1 题目概述 .............................................................................................................................. 4
1.2 题目要求 .............................................................................................................................. 4
1.3 实验目的 .............................................................................................................................. 5
第二章实验原理 ................................................................................................................................ 6
2.1ws2812 ................................................................................................................................... 6
2.1.1ws2812 理论原理......................................................................................................6
2.1.2ws2812 硬件原理..................................................................................................... 7
2.2 按键消抖理论原理 .............................................................................................................. 9
第三章系统架构设计 ...................................................................................................................... 11
3.1 系统架构图 ........................................................................................................................ 11
3.2 系统划分 ............................................................................................................................ 11
3.2.1 按键消抖模块 ......................................................................................................... 11
3.2.2 游戏控制模块 ......................................................................................................... 12
3.2.3ws2812b 接口模块 .................................................................................................. 16
第四章系统框图及代码设计 .......................................................................................................... 18
4.1 系统模块框图 .................................................................................................................... 18
4.2 代码设计 ............................................................................................................................ 18
4.2.1 按键消抖代码设计 ................................................................................................. 18
4.2.2 游戏总控代码设计 ................................................................................................. 20
4.2.3ws2812b 接口模块设计 .......................................................................................... 31
第五章系统测试与仿真 .................................................................................................................. 34
5.1 按键消抖模块仿真 ............................................................................................................ 34
5.2 游戏总控模块仿真 ............................................................................................................ 35
5.3ws2812b 接口仿真..............................................................................................................39
总结 ...................................................................................................................................................41
基于 ws2812b 贪吃蛇游戏设计
第 4 页 共 41 页
第一章实验目的
1.1 题目概述
在 ws2812 的矩阵灯阵列上,取一个作为蛇的初始位置和长度,另取一个点
作为食物的初始位置,在此设计中,蛇头用蓝色的点表示,蛇的身体采用红色的
点表示,食物则采用绿色的点进行表示,并且在此设计中还加入了障碍物,障碍
物用黄色的点表示,
游戏开始后,玩家可通过方向键来决定蛇的移动方向,若没有方向键按下,
蛇依然能够朝着原有方向前进,前进速率自拟。移动过程中,如果蛇吃到食物,
蛇的长度增加,并随机生成新的食物。
整个游戏至少能够显示以下几个游戏界面:游戏开始画面(静态显示动态显
示均可)、游戏玩耍界面以及游戏成功或失败界面
当蛇的长度超过设定值以后判定游戏成功(win),撞到自身判定游戏失败
(lose)。
1.2 题目要求
1.开始设计前,建议先仔细阅读 WS2812 芯片手册,搞清楚芯片工作原理(温
馨提示:在 WS2812 的亮度较高情况下会对眼睛造成一定损伤,可以在设计时将
WS2812 显示的亮度调低或使用纸张进行遮挡,降低对眼睛的伤害)。
2.需要详细说明设计思路以及算法实现思路,如贪吃蛇食物如何实现随机生
成的等。
3.需要画出完整且详细的模块结构图、模块之间的接口信号,建议遵循模块
化设计原则划分模块与接口,需要画出必要的时序图与状态转移图,如接口的时
序图、控制模块的状态转移图等。
4.完成各模块的代码设计与仿真,需要提供必要的 testbench 测试文件以
及仿真测试结果,完成工程板级验证,确认各项功能正确无误。
基于 ws2812b 贪吃蛇游戏设计
第 5 页 共 41 页
5.设计完成后,需要撰写并提交工程设计文档,以文件夹的形式提供命名为
“xx 期+姓名+工程名”,内容包括但不限于:提交完整详细的工程设计方案报
告,包括:系统结构图、时序图、状态图等需要提供完整的仿真测试报告,包括:
仿真截图、测试结果,以及结论分析。提交完整的 FPGA 工程代码,包括工程源
代码、testbench 代码,录制 2 分钟小视频,展示上板测试效果,可以进行必要
的解说。
1.3 实验目的
1.完成游戏开始界面、玩耍界面、结束界面能正常切换,且达到预期显示效
果。
2.WS2812 能够正常显示蛇和随机食物的位置,且按键能够正常控制蛇的方向。
蛇吃到食物时,长度能正常增加,且新的食物能正常生成,蛇缠绕会判定失败,
达到指定长度会判定成功。
3.在完成上述 1 和 2 的基础上,可以增加游戏障碍,蛇在接触到障碍后会判
定失败。