最专业的FPGA ZYNQ论坛--黑金动力社区

 找回密码
 注册
查看: 581|回复: 2

基于FPGA的贪吃蛇游戏

[复制链接]
乘风alan 发表于 2018-12-29 12:31:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 乘风alan 于 2018-12-29 12:32 编辑

软件环境:Quartus Prime 17.1 ,notepad++,gvim,modelsim-SE,TimeGen3
硬件环境:DE2-115(Intel FPGA Cyclone IV,EP4CE115F29C7N)

(板子不一样的童鞋,要注意修改芯片型号和绑定引脚,修改完后,先别急着修改程序,先重新编译并**,看看有没有效果,不出意外的话是可以直接跑出游戏的,看到实验现象了,再自己去优化修改)

废话不多说,先放一段录好的视频!!!

https://v.qq.com/x/page/d0820licrv0.html

本项目代码较多,所以就从大的方向上说一下,具体的看我的源码,然后自己跑一下就可以,移植还是比较简单的。

在顶层模块中一共例化了7个模块,他们功能分别如下:

    apple_generate.v  主要是用来产生贪吃蛇食物,以及判断小蛇有没有吃到苹果,其中苹果的随机产生是利用加法计数器实现的,利用了每次吃苹果的时间不同,从而会得到不同的苹果坐标。

    game_ctrl.v这个主要是控制游戏的状态(START,PLAY,END),每种状态都有他们自己的一套vga显示,处在什么状态,就把相应的vga输出到物理的vga控制端口。

    ir_decoder.v 这个是用来红外解码的,可以看我的另外一篇博客,自己找一下。

    pll_clk.v这个是pll ip核,用来产生25MHz时钟。

    smg.v 这个是控制数码管的,显示蛇的长度。

    snake_ctrl.v 这个是用来控制蛇的运动,以及产生判断是否撞墙,撞身体的标志信号,以及扫描蛇身,产生object信号,给vga_play.v模块用于显示蛇身。

    vga_play.v 这个是用来显示处在PLAY状态时的图像  (vga的可以参考我另外一篇博客,自己找一下,还有就是程序里出现的clk_25m,clk_50m,其中的m是MHz的意思,不是ms.)


福利:

(有部分同学没有红外遥控器,现更新了key版本的咯,还有单独vga显示的程序,后面都会一起打包发给你们咯!!!)

     为了能及时回复大家,现在获取源码方式如下:

微信扫描下面的二维码关注【春哥笔记】公众号,回复“贪吃蛇”即可Get源码的获取方式:


 楼主| 乘风alan 发表于 2019-1-18 15:18:46 | 显示全部楼层

关注微信公众号【春哥笔记】,在公众号里回复“贪吃蛇”就可以获取源码了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|@2009-2019 芯驿电子科技(上海)有限公司|小黑屋|手机版|Archiver|黑金动力社区 ( 沪ICP备11013590沪公网安备 31011702000003号 举报投诉电话:15300558155

GMT+8, 2019-8-19 06:09 , Processed in 0.065786 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表