基于vga接口的移动方框设计验证
一 设计要求
以800*600为例进行设计,在屏幕显示范围内划分三个区域,一个区域(边框区域)其宽度为40,第二个区域为方块移动背景区域(720*520),第三区域为移动方块区域宽度为40,要求第三区域在第二区域范围内以10ms移动一次(移动一个像素点)。
第三区域颜色为黑色
第二区域颜色为白色
第一区域颜色为蓝色
如果第三区域在碰到左边框时,第一种情况,如果第三区域是从上方移动过来碰到的,其移动方向发生转变,由左下改变为右下。
如果第三区域碰到下边框时,其移动方向有右下变为右上
如果第三区域碰到右边框时,其移动方向有右上改为左上
如果第三区域碰到上边框时,其移动方向由左上改为左下
设计架构
模块move_ctrl设计分析
主要功能是实现第三区域移动方向控制以及显示区域的划分,像素点数据的赋值
边框宽度为40,frame_width,第三区域宽度为40,block_width
定义第三区域左上角像素点坐标为block_x[10:0],block_y[10:0]
第一区域:左边:pixel_x < frame_width,右边:pixel_x>800 - frame_width
上边:pixel_y < frame_width,下边:pixel_y>600 - frame_width
第三区域 左边:pixel_x>=block_x,右边 pixel_x < block_x + block_width
上边:pixel_y >= block_y,下边pixel_y < block_y + block_width
如何描述第三区域移动
首先需要产生一个10ms计数器
定义两个移动使能信号,move_x_en,move_y_en
规定向右移动使能信号move_x_en=1,向左则为move_x_en=0;
规定向下移动使能信号move_y_en=1,向上则为move_y_en=0;
|