俄罗斯方块设计实验报告.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
——————数字电路与逻辑设计实验报告————— 基于VHDL的简易俄罗斯方块 实验名称 简易俄罗斯方块 姓名 班级 电信工程学院04107班 学号 辅导老师 高英 日期 2006年11月6日 摘要 俄罗斯方块游戏是我们熟知的经典小游戏之一,本实验通过硬件编成实现了简易的俄罗斯方块游戏机。VHDL是一种标准的,规范的硬件描述语言,在电子设计领域有着广泛的应用。它具有很强的电路描述和建模能力,能从多个层次多电路进行描述和建模,从而大大简化了硬件设计任务,提高了设计效率和可靠性。 本实验基于VHDL语言,利用电路中心开发的实验板,用一个4×4点阵做为基本显示屏,一个发光点表示一个图形,完成俄罗斯方块游戏的基本功能:下落、左右移动、消行和显示得分情况,当某一列到顶时游戏结束。 关键字 俄罗斯方块游戏 VHDL 点阵 设计任务 利用电路中心开发的实验板,用点阵做为显示屏,一个发光点表示一个方块,完成下落、左右移动、消行和显示得分情况,当某一列到顶时游戏结束,数码管显示的分数保持不变。 设计思路 由于实验中只用到了16个点来完成显示功能,所以选用一个16位的向量STATUS(0 TO 15)来存储各点状态,再用两个整型数分别控制当前点的坐标,但是这样控制会涉及到乘法运算,因此改为4个4位向量STAN(0 TO 3),每个向量代表一行点阵,这样做不仅使控制简单,而且在扫描显示的时候很方便,代码也很简洁。 设计包括2个大的元件,一个是RUSSIA,其功能是存储状态,分频,完成左右下移动以及计分等功能;另一个是RUSSIA_SCAN,主要完成点阵扫描和数码管译码。具体设计是这样的:4个向量STA0,STA1,STA2,STA3记录游戏状态,点的坐标由COL 和ROW来控制。设置两个指针FLAG和ROW4,如果四列中有一列都为1,表示游戏结束了,置FLAG为1,程序进入NULL;当最后一行及STA3=”1111”时,置ROW4=1,当ROW4=1时,表示要消行,加分,并且将上一行的值赋到下一行。游戏继续,如按下左键或右键,程序更根据下一状态决定是否左移或右移。(BTN1为复位RESET,BTN2为左,BTN3为右)若无键按下,则根据情况当前点是否需要自动下移。 源代码 底层文件1:russia.vhd ------ russia.vhd ------osom ------6/11/06 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_SIGNED.ALL; ENTITY RUSSIA IS PORT(CLK :IN STD_LOGIC; -------时钟频率,选用低频 RESET :IN STD_LOGIC; -------复位键 LEFT :IN STD_LOGIC; -------左移键 RIGHT :IN STD_LOGIC; -------右移键 SCORES :OUT INTEGER RANGE 0 TO 15; -------分数 STA0 : OUT STD_LOGIC_VECTOR(0 TO 3) ; -------以下为四行状态寄存 STA1 : OUT STD_LOGIC_VECTOR(0 TO 3) ; STA2 : OUT STD_LOGIC_VECTOR(0 TO 3) ; STA3 : OUT STD_LOGIC_VECTOR(0 TO 3) ); END RUSSIA; ARCHITECTURE MOVING OF RUSSIA IS SIGNAL STATU0 : STD_LOGIC_VECTOR(0 TO 3) ; SIGNAL STATU1 : STD_LOGIC_VECTOR(0 TO 3) ; SIGNAL STATU2 : STD_LOGIC_VECTOR(0 TO 3) ; SIGNAL STATU3 : STD_LOGIC_VECTOR(0 TO 3) ; SIGNAL FLAG : STD_LOGIC; -------game over 标志 SIGNAL FP :INTEGER RANGE 0 TO 499; -------1000分频 SIGNAL CLK1 :STD_LOGIC; SIGNAL SCOR_TEMP :INTEGER SIGNAL ROW4 :STD_LOGIC; -------消行标志 SIGNAL

文档评论(0)

134****4822 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档