您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 小球游戏verilog
小球游戏2010211083目录1系统综述........................................................................................................................................31.1功能描述.............................................................................................................................31.2结构框图.............................................................................................................................42场行控制器....................................................................................................................................52.1场时序................................................................................................................................52.2行时序................................................................................................................................63总控制器........................................................................................................................................63.1小球位置控制模块.............................................................................................................73.2挡板位置控制模块.............................................................................................................84颜色控制器....................................................................................................................................95代码...............................................................................................................................................95.1VGA架构.............................................................................................................................95.2行场频控制.......................................................................................................................105.3控制器..............................................................................................................................135.4颜色控制器.......................................................................................................................251系统综述1.1功能描述屏幕示意图如下图:需要输入时钟为50.35MHz屏幕分辨率:640X800球大小:13X13挡板大小:100X10障碍物个数:3障碍物大小:80X60球的形状:正方形01202002803604405206400120180460470480xy320370270435球碰到边界和障碍物时发生弹性碰撞按“开始”键后球从挡板所在位置向左上抛出用左右键控制挡板可以左右移动,球碰到挡板中部时发生弹性碰撞挡板未接住球时游戏结束1.2结构框图系统结构框图如下图所示:系统分为三部分:行场控制器,控制器和颜色控制器2场行控制器主要作用:输出对输入时钟clk0的分频信号clk作为系统的主时钟,产生行同步信号,场同步信号,以及当前扫面点的位置坐标x,y。x的范围是0到639,即每行640个像素。Y的范围是0到479,即每场480行。2.1场时序场同步信号VS,周期为16.683ms(640×480×60Hz)每场有525行,其中480行为有效显示行,45行为场消隐区VS每场有一个脉冲该脉冲的低电平宽度为63μs(2行)每一场,在扫描480有效显示行时,扫描纵坐标y计数0到479。下一场y归零,重新计数。2.2行时序行周期为31.78μs(31.469KHz),每显示行包括800点,其中640点为有效显示区,160点为行消隐区(非显示区)。HS每行有一个低电平脉冲,宽度为3.81μs(即96个像素,25.175MHz,0.04us)每一行,在扫描640有效像素点时,扫描横坐标x计数0到639。下一行x归零,重新计数。3总控制器控制器主要分为两个部分:小球位置控制模块和挡板位置控制模块。完成小球位置的自动转换和挡板位置手动控制。3.1小球位置控制模块下图为小球位置控制状态转换图。s2s1s4s3s0碰到边界左上角碰到上边界或者障碍物下面碰到左边界或者障碍物右面碰到边界右上角碰到上边界或者障碍物下面碰到右边界或者障碍物左面碰到右边界或者障碍物左面碰到障碍物上面或者被挡板接住s7没被挡板接住碰到左边界或者障碍物右面碰到障碍物上面或者被挡板接住没被挡板接住s0状态:初始状态,开始后进入s1状态。s1状态:小球向左上方跑(即小球位置坐标ball_position_x--,ball_position_y--)。碰到边界左上角进入s3状态;碰到上边界或者障碍物下面进入s4状态;碰到左边界或者障碍物右面进入s2状态。s2状态:小球向右上方跑(即小球位置坐标ball_position_x++,ball_position_y--)。碰到边界右上角进入s4状态;碰到上边界或者障碍物下面进入s3状态;碰到右边界或者障碍物左面进入s1状态。s3状态:小球向右下方跑(即小球位置坐标ball_position_x++,ball_position_y++)。碰到障碍物上面或者被挡板接住进入s2状态;碰到左边界或者障碍物右面进入状态s4;没被挡板接住进入状态s7。s4状态:小球向左下方跑(即小球位置坐标ball_position_x--,ball_position_y++)。碰到障碍物上面或者被挡板接住进入s1状态;碰到左边界或者障碍物右面进入状态s3;没被挡板接住进入状态s7。s7状态:结束状态,死循环。3.2挡板位置控制模块下图为挡板位置控制流程图。挡板是否在屏幕中间位置开始挡板是否到了屏幕最左边否否控制信号为向左还是向右是baffle_position减2lft=1baffle_position加2控制信号为向左还是向右是lft=1控制信号为向左还是向右挡板到了屏幕最右边baffle_position不变rgt=1rgt=1.lft=1...rgt=1首先判断挡板位置,当挡板在中间位置时,输入lft=1,则位置自减2,输入rgt=1,则位置自加2;当挡板在屏幕最左边位置时,输入lft=1,则位置不变,输入rgt=1,则位置自加2;当挡板在屏幕最右边位置时,输入lft=1,则位置自减2,输入rgt=1,则位置不变;4颜色控制器开机显示黑色小球位置显示红色障碍物位置显示绿色挡板位置显示蓝色屏幕其他位置显示青色5代码5.1VGA架构modulevga(rst,clk0,str,lft,rgt,vga_hs,vga_vs,vga_r,vga_g,vga_b);inputrst,clk0,str,lft,rgt;outputvga_hs,vga_vs,vga_r,vga_g,vga_b;wireclk;wire[9:0]baffle_position,x,y;wire[9:0]ball_position_x,ball_position_y;hvctrlm_hvctrl(.rst(rst),.clk0(clk0),.clk(clk),.vga_hs(vga_hs),.vga_vs(vga_vs),.x(x),.y(y));ctlm_ctl(.rst(rst),.clk(clk),.str(str),.lft(lft),.rgt(rgt),.x(x),.y(y),.baffle_position(baffle_position),.ball_position_x(ball_position_x),.ball_position_y(ball_position_y));rgbm_rgb(.rst(rst),.clk(clk),.x(x),.y(y),.baffle_position(baffle_position),.ball_position_x(ball_position_x),.ball_position_y(ball_position_y),.vga_r(vga_r),.vga_g(vga_g),.vga_b(vga_b));endmodule5.2行场频控制modulehvctrl(rst,clk0,clk,vga_hs,vga_vs,x,y);inputrst,clk0;outputclk,vga_hs,vga_vs,x,y;regclk,vga_hs,vga_vs;reg[9:0]coordsx,coordsy,x,y;/*bianhuanshizhong*/always@(posedgeclk0orposedgerst)beginif(rst)beginclk=0;endelsebeginclk=~clk;endend/*chanshenghanghechangjisuqi*/always@(posedgeclkorposedgerst)beginif(rst)begincoordsx=0;coordsy=0;endelsebeginif(coordsy524)beginif(coordsx799)begincoordsx=coordsx+1;endelsebegincoordsx=0;coordsy=coordsy+1;endendelsebeginif(coordsx799)begincoordsx=coordsx+1;endelsebegincoordsx=0;coor
本文标题:小球游戏verilog
链接地址:https://www.777doc.com/doc-5860214 .html