跳青蛙-宋海龙
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
跳青蛙游戏设计报告
院系电子工程学院电子工程学院电子工程学院电子工程学院
班级电路0901 电路0901 电路0901 电路0901
姓名李映涛(组长)宋海龙廖驹韩玉清
摘要
跳青蛙是一款很简单智力游戏,玩家通过命令青蛙的跳跃将两边的青蛙位置对调。设计要求是使用verilog语言设计此游戏并将游戏应用到FPGA中,在FPGA中实现游戏。
目录
一、系统方案选择和论证 (4)
二、系统结构 (4)
1、顶层模块 (4)
2、跳青蛙模块 (5)
三、ASM流程图 (5)
四、系统详细设计与实现(包括时序图,仿真,RTL综合) (6)
1、程序仿真结果 (6)
2、时序图 (6)
3、综合结果图 (7)
五、系统设计总结 (7)
六、参考文献 (8)
一、系统方案选择和论证
实现跳青蛙游戏有很多种方法,我的设计是通过给六只青蛙和中间的石头赋值,使情况不出现重复,然后控制石头上是否有青蛙来改变青蛙的位置,青蛙的下一个状态是受当前状态限制,也就是青蛙的跳法有固定的路线。设计的方案就是将青蛙的所有可能状态全部列举出来,通过现态和次态的相互控制,使他们不会出现重复状态。
二、系统结构
1、顶层模块
顶层是由输入输出端口组成。输入为七位的石头控制信号in和复位信号en。输出为21位的青蛙位置显示out。
2、跳青蛙模块
程序从青蛙的最开始状态下手,定义了每个青蛙的值,改变石头的值让青蛙位置改变,次态的青蛙状态必须有上一个青蛙的位置和石头的值,只有这两个值同时成立,次态才会有效。将所有的正确的、错误的走法全部写出就可以了。
三、ASM流程图
程序开始执行,这时候会收到复位信号,如果复位信号为高电平,则青蛙不能移动。当复位信号变为低电平时,可以操控青蛙移动,如果玩家走的是错误路线,走到尽头是青蛙不能移动,需要玩家自己复位,
玩家只需拨动复位开关,使其产生高电平,就可以从新开始游戏。四、系统详细设计与实现(包括时序图,仿真,RTL综合)
1、程序仿真结果
2、时序图
3、综合结果图
五、系统设计总结
在写青蛙的转移状态时,经常漏掉部分状态。最开始设计时,给每个青蛙赋值只有两位,写完单向程序后发现会和另一边的状态重复,于是又将青蛙赋三位的值,因为总共需要给七个赋值,所以三位就不会出现重复现象。设计之前打算用发光二极管观察青蛙的跳变,但是设计完成后发现单就青蛙的跳变显示就需要21个发光二极管,而FPGA板子上只有8个发光二极管,无法观察。
六、参考文献
《基于FPGA的跳青蛙指导教程》西安邮电学院出版社宋海龙