网站大量收购独家精品文档,联系QQ:2885784924

基于XilinxFPGA健身游戏机设计.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于XilinxFPGA健身游戏机设计

课程设计实验报告 基于Xilinx的FPGA的 健身游戏机设计 院 系: 电子与信息工程 专 业: 电信 班 级: 姓 名: 学 号: 指导教师: 设计任务名称:基于Xilinx的FPGA的健身游戏机设计 设计内容及要求: 基本功能: 用8个灯作目标,与之对应有8个按键进行控制。每一次8个灯中随机出现一个灯处于“亮”的状态,在灯亮的时间内要求“踩”到对应的按键,若踩到则加1分,且灯熄灭;否则失败扣一分。 设定初始命数为9,连续成功五次加1条命,分数不清0,连续失败5次扣一条命,命数为0时游戏结束。 游戏分四个难度级别,每个级别灯闪亮的速度不同,级别越高,速度越快,灯亮的时间越短。连续加两条命则速度加1. 设有暂停/继续和开始/停止功能,能记录和更新历史最高分数。控制液晶显示器进行相应的显示。命数最多显示为99条,分数最多显示为999分。 扩展功能: 每个难度级别对应产生不同的音乐,与灯闪的频率节奏相当。 实验条件说明 Spartan-3E入门实验板 自己设计外围电路: 提供芯片有:译码器74LS138,编码器74LS148,其余有,LED灯8个,按键8个,1k电阻8个,510Ω电阻1个,排线两根,导线一组,排针一组,设计好的外围电路如下: 系统设计 系统框图与说明 说明: 外部按键输入:通过74LS148编码器实现8线—3线编码,实现对应按键输入,因为编码器特性,全部为高时输出为1111(其中最高位为状态为)而在其他状态下区间为(0000----0111),可以方便实现与随机数的比较从而实现分数计算。具体电路图及逻辑见外设部分。 分数计算模块:实现外部按键与内部随机数的匹配比较,若匹配则分数加1,同时为命数模块提供一个win脉冲用来计数;若不匹配则分数减1,同时为命数模块提供一个lose脉冲用来计数。要求保留最高分数。这里要求对按键与随机数的比较次数进行识别,一个随机数只能比较一次,详见详细设计部分。 命数计算:通过分数计算模块说提供的win和lose信号进行计数,累计到5,则实现命数加减1,要求当命数连续加2后输出一个speed信号,此信号给音乐模块和随机数模块,进行音乐的变化和速度的升级。同时在命数减为0后输出一个over信号,告诉系统游戏结束。 随机数生成模块:此模块主要实现伪随机数输出,并且根据speed信号进行生成速度的转换,同时要求在pause信号和over信号为1时停止随机数输出。随机数外接到外设部分,通过译码器控制LED灯的亮灭。 外接LED 灯:根据随机数,通过74LS138译码器控制对应LED灯的随机闪烁。 LCD显示模块:根据分数计算模块,命数模块所输入BCD码以及内部设定在LCD上显示控制信息和生命分数信息。 音乐模块:通过speed信号的输入,控制音乐乐谱的变化,同时当over信号为高时停止音乐输出。 状态转换图与说明 本实验涉及的状态转换较多,这里只详细介绍我所设计的模块的状态转换: 1:分数计算模块: 状态说明:这里S0状态下,将随机数random赋给一个中间变量random-temp, 然后比较按键信号和随机信号,若按键信号和随机信号相等,转入S1,否则转入S2;在S1状态下,若按键和随机数相等且随机信号和中间变量random-temp相等,意味着随机数没变化,则在S1处循环,直到随机数与中间变量不相等,意味着随机数发生变化,则分数加1;另外若在S1状态下,按键和随机数不等,则意味着按键已经抬起,但此时属于正确情况,则在随机数变化后,分数加1,状态转到S0;在S2状态下,若按键信号为“1111”,则意味着没有任何按键按下,则在随机信号变化之前,处于在S2状态循环,若随机信号变化,仍为“1111”,意味着没来的及按下,分数减1,转到S0,若在S2状态下,按键信号等于随机信号,意味着按键正确,则转入S1,若在S2状态下,按键信号不等于随机信号,同时也不等于“1111”,则判断按错,扣一分,转入S3;在S3状态下,一直处于循环,直到随机数变化转到S0。 完成完整的循环,上述状态变化,实现了判断按键与随机数的具体逻辑。后文有具体代码。 2:音乐模块:

您可能关注的文档

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档