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

 找回密码
 注册
查看: 14528|回复: 49

用黑金开发板做的贪吃蛇游戏

  [复制链接]
00d45 发表于 2011-8-17 22:27:48 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 00d45 于 2011-8-19 00:03 编辑

想想自己接触FPGA也一年多了,一直想搞点什么东西练练手。碰巧手头有块半年前买的CycloneⅡ的黑金开发板,假期又好好熟悉了下VGA的相关知识。由此决定将贪吃蛇这个在C语言中非常经典的应用实例放在FPGA中运行,然后再输出到VGA显示器上。

    说干就干,先Google了下,发现果然之前已经有人做过这方面的东西了,但是基本都是通过VHDL语言开发的,而我虽然一开始接触FPGA时学的是VHDL,但后来在Verilog强大的魅力之下,早已倒戈到Verilog这来了,这么长时间,VHDL早都忘得差不多了。所以虽然能参考到一些工程源码,但基本没从里面得到太多有用的东西。(再一次证明学好一门语言是多么重要。。。)

    既然找不到捷径,所以只好自力更生丰衣足食!经过经过半个多月地折腾总算是捣鼓出来了。下面是游戏在开发板上运行的情况。

游戏开始界面:

游戏开始界面

游戏开始界面


游戏运行界面1:

游戏运行界面1

游戏运行界面1


游戏运行界面2:

游戏运行界面2

游戏运行界面2


游戏失败画面:

游戏失败画面

游戏失败画面


snake_vga_test.part1.rar (2.86 MB, 下载次数: 81540)
akuei2 发表于 2011-8-18 09:54:33 | 显示全部楼层
walau的,请问一共消耗多少逻辑资源了 ...
你的游戏分辨率占了液晶的4/1 ,估计也不小 320 * 240。

比较感兴趣的,你是怎样安排你的建模的 .... ?
越复杂的设计,建模愈发重要 .... 很想知道,拜托了,告诉我吧 (<ゝω·)☆.KIRA
nannan 发表于 2011-8-18 10:21:38 | 显示全部楼层
不错,赞一个。
avic 发表于 2011-8-18 21:32:03 | 显示全部楼层
共享一下吧,希望可以把源码公开,供大家一起学习!
 楼主| 00d45 发表于 2011-8-19 00:10:59 | 显示全部楼层
回复 4# avic

刚上传了源码,嘿嘿,看到是avic大神,而且帖子还被加了精,所以还是负责任一点。
仔细想想,总结了几点不足:
1、蛇的移动理论上可以用寄存器数组来实现,但是由于之前调试总出现问题,于是就放弃了,以至于控制蛇移动的模块部分代码很冗长;
2、“食物”的位置是随机的,但是Verilog中没有随机函数,我采用的是时钟计数的办法,随机性并不是很好,而且偶尔会出现“食物”在“墙”里的状况,还需要修正。
希望坛子里的高手能多提意见。。。^_^
 楼主| 00d45 发表于 2011-8-19 00:15:44 | 显示全部楼层
回复 2# akuei2


    猜的不错,非常消耗资源,已经是极限了,嘿嘿。
资源.jpg
 楼主| 00d45 发表于 2011-8-19 00:26:15 | 显示全部楼层
回复 2# akuei2

其实说实话,我还只能算个新手,感觉真是没什么建模技巧,一直是读着《Verilog那些事儿》过来的,而且也一直在学习akuei2提到的那种建模思想,觉得离能熟练的运用建模技巧还很远啊。我已经上传源码了,希望能在建模方面提点意见。:)
PS:我是您的忠实粉啊~~~哈哈,我之前还在EDNChina上发过你站内呢。
avic 发表于 2011-8-19 14:15:53 | 显示全部楼层
大家一起学习,这样的学习才有乐趣,哈哈!
我建议大家围绕这个游戏,逐渐的去完善它,要让大家感受到学习verilog的乐趣
PS:一定要把相关的文档写好,akuei2可以加入到你的教程中哦,哈哈!
peterlinux2010 发表于 2011-8-19 21:54:00 | 显示全部楼层
楼主成为我第一阶段膜拜的对象
舞so布能 发表于 2011-8-21 14:42:52 | 显示全部楼层
我除了能膜拜还能干嘛。。。。T.T
刚接触FPGA  希望能在这里得到大家的帮助
d604051449 发表于 2011-9-18 13:03:39 | 显示全部楼层
膜拜之余,我憧憬着自个儿也能在FPGA领域划出自个儿的天空,哈哈,楼主你是个牛人,学习了
d604051449 发表于 2011-9-23 16:01:02 | 显示全部楼层
回复 6# 00d45


    你好,我下了你的代码,然后仿真,但是仿真时老是出现这个错误提示,能帮我看哈,错在那个地方吗?
Internal Error: Sub-system: AMERGE, File: /quartus/atm/amerge/amerge_kpt_op.cpp, Line: 220
cmp_merge_kpt_db
Stack Trace:
0x3D9B7   : amerge_mini_merge + 0x3A5D7 (atm_amerge)

End-trace

Quartus II Version 9.0 Build 132 02/25/2009 SJ Full Version
kingkoyan 发表于 2011-9-27 20:50:13 | 显示全部楼层
先膜拜了哈
 楼主| 00d45 发表于 2011-10-1 22:43:18 | 显示全部楼层
回复 12# d604051449


    我没有仿真过啊。。。话说你是怎么仿真的,可否贴上你的测试激励文件?
gonnavis 发表于 2011-10-7 00:21:31 | 显示全部楼层
本帖最后由 gonnavis 于 2011-10-8 02:55 编辑

为什么我在snake画面屏幕会多出很多一丝丝垂直的竖线?
但是实际运行游戏时就没了.

还有例程9.3里显示皮卡丘时也是这现象,一丝一丝的竖线.
elecmin 发表于 2011-11-1 22:29:01 | 显示全部楼层
回复 1# 00d45


    你的mif文件用什么软件生成的呀
whf715 发表于 2011-11-21 22:29:35 | 显示全部楼层
楼主太强了啊,看看了啊
yzh0912 发表于 2011-12-17 20:44:35 | 显示全部楼层
牛B
14730497 发表于 2012-3-2 12:41:21 | 显示全部楼层
威武,,,,学习
coldcoolfish 发表于 2012-9-21 22:00:16 | 显示全部楼层
贪吃蛇在12864上移植过 学习学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2017-11-19 03:09 , Processed in 0.089125 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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