欢迎来到天天文库
浏览记录
ID:5273686
大小:214.65 KB
页数:8页
时间:2017-12-07
《基于de2开发板的打砖块课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于DE2开发板的打砖块课程设计一.实验小组成员组长:岳新翔组员:杨磊,陈龙,向宇二.系统概述(1)开发工具和环境AlteraCycloneⅡEP2C35F672C8芯片AlteraQuartusⅡVersion9.0开发软件VHDL硬件描述语言VGA接口,640x480分辨率,8色显示Ps2键盘(2)系统亮点1.四键操作,可复位,灵敏度高。2.计分功能,数字化分数显示3.有一次重玩的机会4.游戏结束画面具有特色。5.小球理论上能扫过屏幕上每个区域,排除了bug点6.砖块的2次击打三.分工合作我们四个人组成团队,进行了合理的分工与合作,每个人都参与到了细节中去,了解了系统设计的方方
2、面面,当然分工各有侧重,岳新翔同学主要负责了源文件解读,主控逻辑模块修改,最后截图部分;杨磊同学主要负责了显示部分,VGA与Transfer模块;陈龙同学主要负责了PS2接口设置,ppt制作。向宇同学各个模块的整合,接口的统一。我们四个合作共同完成了此份实验报告。四.系统结构1.结构框架系统由主控逻辑、运动控制、VGA、Transfer、Brick等模块以及多个Rom存储模块组成。具体模块结构见如下的框图:2.模块功能概述1)主控逻辑模块核心逻辑模块,接受控制端的输入信号做出相应处理,包括左右移动挡板的按键信号,开始、重置的开关信号。处理运行、重新开始、游戏结束等多个状态,并依据具
3、体条件,实现这些状态间的转化。完成计分、减生命值等任务。2)运动控制模块接受主控模块提供的小球位置信息,判断小球是否与上、左、右壁发生碰撞,或者与下面的挡板发生碰撞。综合从Brick模块传入的碰撞信息,实现了球的反弹。在小球没有碰撞到任何物体时,小球按照一定的步频与步幅进行运动,步频与步幅可以进行调节,保证了小球运动方向与速度的可变性。3)VGA模块接受Transfer模块传来的RGB信息,在50Mhz的时钟驱动下,产生VGA接口所需要的RGB与行、场同步脉冲周期。实现画面在显示屏上的显示。4)Transfer模块核心的显示模块,接受主控模块提供的小球与挡板的位置信息,从brick
4、模块获取砖块的位置信息,在50Mhz的时钟驱动下,在扫描合适的位置时,生成正确的RGB信息。在这个模块中,完成对ROM的读取,显示小球、砖块、边框、挡板、文字、数字、LOGO等等。5)Brick模块对砖块的设置,与砖块相关的运算都在这个模块中完成,根据扫描点的位置,计算出扫描点处在砖块内相对位置,判断小球与砖块的碰撞情况,并返回给主控模块碰撞的种类。由于球与砖块的作用是一个比较复杂的过程,且具有一定的独立性,因而自成一个模块。五.实验源代码部分展示1.主控模块always@(posedgeVGA_CTRL_CLK)beginif(divider1>=100000)begindivi
5、der1<=0;if(ball_state==0)begin//ifKEY1ispressedKEY1becomes0paddle_x_display<=320;paddle_y_display<=420;endelsebeginif((paddle_x_display-paddle_l_display>0)&&(paddle_x_display+paddle_l_display<640))beginif((ss==3'b010)&&(KEY[3]))beginpaddle_x_display<=paddle_x_display+1;endelseif((KEY[2])&&(ss=
6、=3'b001))beginpaddle_x_display<=paddle_x_display-1;endendelseif(paddle_x_display-paddle_l_display<=0)beginif((ss==3'b010)&&(KEY[3]))beginpaddle_x_display<=paddle_x_display+1;endendelsebeginif((KEY[2])&&(ss==3'b001))beginpaddle_x_display<=paddle_x_display-1;endendendendelsedivider1<=divider1+1;
7、end2.运动控制模块begincase(ball_state)0:beginif(ss==3'b100)beginball_state<=1;out_situation<=1;ball_situation<=0;endelsebeginball_state<=0;endend1://movingleft,updirectionbeginball_situation<=(ball_situation+1)%2;if(ball_x==5&&ball_y==5)ball_
此文档下载收益归作者所有