1、学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密 ,在年解密后适用
2、本授权书。2、不保密 。(请在以上相应方框内打“” )作者签名: 年 月 日 导师签名: 年 月 日 目录摘要 4前言 51 绪论 61.1 游戏的历史 .61.1.1 追根溯源 .61.1.2 图形硬件的革命 .61.2 游戏的意义与内涵 .71.3 游戏的组成因素 .72 游戏的可行性分析 82.1 设计目的 .82.2 可行性研究前提 .82.3 可行性分析 .82.4 结论意见 .93 需求分析 93.1 引言 .93.2 游戏需求 .94 设计分析 94.1 系统方案设计支持 .94.1.1 开发环境 .94.1.2 编程语言 104.1.3 硬件平台 104.2 系统实现框图 10
3、4.3 模块实现 124.3.1 实验电路图 124.3.2 随机产生模块 124.3.3 PS/2 键控模块 .164.3.4 VGA 显示模块 194.3.5 分频模块 244.3.6 键控模块 245 仿真分析 245.1 随机数产生序列仿真 245.2 VGA 显示模块仿真波形 255.3 实现运行结果仿真 256 总结与展望 296.1 本文完成的主要工作 296.2 未来研究展望 29致谢 31参考文献 32附录 33基于 FPGA 的俄罗斯方块游戏设计摘要:俄罗斯方块游戏是一款风靡全球的游戏,它的基本规则是旋转、移动、下落和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并
4、消除得分。本设计是用 FPGA 开发板实现俄罗斯方块,具体是在显示器上显示 1020的点阵以及外围方框。点阵表示方块,方框表示方块的活动范围。关键词:俄罗斯方块 VGA FPGA 串口通信Abstract:Tetris is a popular game around the world,its basic rule is to rotate,move and place all sorts of boxes which the game automatically output,making them arranged in complete one or more lines to get
5、 the relevant score.The design introduces a Tetris game through FPGA programming ,the 1020 dot matrix and external boxes are shown on the display.The dot matrix represent box,and the boxes represent the scope of activities of the box.Keywords:Tetris VGA FPGA Serial port前言:在现今电子信息高速发展的时代,电子游戏已经深入人们的日
6、常生活,成为老少皆宜的娱乐方式。但是游戏设计结合了日新月异的技术,在一个产品中整合了复杂的设计、艺术、声音和软件,所以并不是人人皆知。知道今天,在中国从事游戏设计的人任然很少,但是游戏行业的发展之快,远超家电、汽车等传统行业,也正因为如此,游戏人才的教育、培养远落后于产业的发展。俄罗斯方块是个老幼皆宜的小游戏,它实现由四块正方形的色块组成,然后存储在一个数组的四个元素中,随机产生不同的七种类型方块,根据时钟控制它在一定的时间不停的产生,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作。然后程序根据这七种方块对叠成各种不同的模型。俄罗斯方块游戏可以说是随计算机的发展而发展,并不断推陈出新演
7、变出各种类似游戏,深受广大玩家喜爱。这个游戏有的简单,有的复杂,但其根本原理是一样的,都是对运动的方块组合,来训练玩家的反应能力。谈到游戏软件,大多数人都认为其神妙莫测,高不莫及。而一般游戏软件也确实具有很高的技术难度,随着开发工具及软件开发方法学的不断发展,动手开发游戏也不是十分困难的。俄罗斯方块游戏是一种古老而有趣的游戏,游戏软件不计其数,网上就有关于实现的复杂算法和设计,其难度让一般初学者望而却步。本文利用 FPGA 硬件描述语言 VHDL 进行游戏的开发和实现。1 绪论1.1 游戏的历史游戏开发至今已经有 30 多年,在这个短暂的时期里,随着硬件水平的提高,游戏开发新技术层出不穷,经典
8、游戏比比皆是。1.1.1 追根溯源真正的电子游戏机产生于 20 世纪 70 年代。1971 年,麻省理工学院的学生Nolan Bushnell 设计了世界上的第一个业务用游戏机(俗名街机) ,叫做电脑空间 。这台游戏机用一台黑白电视机作为显示屏,用一个控制柄作为操纵器,不过由于市场因素这款游戏以失败告终。但是最后他在电子游戏的发展上取得了非凡的成就。上面介绍的是专用机游戏的历史,而最早的电脑游戏可以追溯到 1972 年,一个叫 Crowther 的工程师用当时最流行的主机DEC 公司的 PDP10 编写一段简单的 FORTRAN 程序。在这个程序里,Crowther 设计了一张地图,地图上不规
9、则的分布着陷阱,游戏者必须寻找路径避开陷阱。这个程序被公认为是最早的电脑游戏程序。1989 年,BroderBund 公司的设计师乔丹.麦克纳根据阿拉伯民族的古老传说一千零一夜在 Apple 平台上制作了一部动作冒险相结合的电脑游戏波斯王子。这个游戏获得了第一作,它代表了当时电脑技术的最高水平。1986 年,任天堂公司发售了一款真正的游戏巨作超级马里奥。20 世纪 80 年代 IBM PC 兼容机的出现打破了 Apple 公司的垄断地位。到了 20 世纪 90 年代,游戏业才真正成熟起来,成为了一种产业。由于 PC 机价格非常低而且硬件速度越来越快,游戏逐渐成为人们生活中不可缺少的一部分。游戏
10、产业也逐渐发展成熟。1.1.2 图形硬件的革命图形硬件的飞速发展是近些年来的事情,部分原因是来自工业方面的压力,例如在军事和医疗方面对于实时图形的需求很强烈,而交互娱乐产业也极大的推动了图形硬件的发展。技术上的因素同样也推动着图形硬件的发展,许多图形算法可以很容易地表达为并行方式,这样硬件执行的效率变得很高。摩乐定律也起了作用,越来越多的晶体管可以集成到一块单独的芯片上。在所谓的 GPU(图形处理器)概念出现以前,特殊的图形硬件只出现在诸如 SGI 和 Eelsif rising_edge (clk) thenif count=25000000 thencount0);else 行 计 数(
11、hcnt+1)hcnt=H_PIXELS+H_FRONT+H_SYNCTIME行 信 号 触 发( hsyncb=1) 场 计 数( vcnt+1)Vcnt(V_LINES+V_YNCTIME+V_FRONT场 信 号 触 发( vsyncb=1)行 触 发 信 号 的上 升 沿( hsyncb)count 0);elsif (clockevent and clock = 1) thenif (shift = 1) thenrecdata 0);elsif (clockevent and clock = 1) thenif (shift = 1) thencntval = cntval + 1
12、;end if;end if;end process;zero = not (cntval(0) or cntval(1) or cntval(2);PARITY_CHECK: process(clock, parset)beginif (parset = 1) thenparbit = 1;elsif (clockevent and clock = 1) thenif (shift = 1 and ps2_dta = 1) thenparbit = not parbit;end if;end if;end process;beginif (resetn = 0) thenc_state = IDLE;shift = 0;latch = 0;err = 0;parset = 1;elsif (clockevent and clock = 1) thenc_state = n_state;shift = n_shift;latch = n_latch;err = n_err;