15.基础实验(4)vga显示图像动态移动

本文介绍如何通过使用两个寄存器控制,实现在VGA屏幕上200x200方块的动态移动,并在碰到边缘时自动切换方向。设计中涉及时序逻辑、显示偏移量控制和图像替换,以实现类似屏保的效果。

vga显示图像动态移动

一、实验内容

实现vga显示中心200x200的方块动态移动。

二、系统框图

分辨率保持为640x480保持不变,200x200方块在屏幕上移动,总共有5个状态,将3个状态列出,绘制如下框图。

image-20210108203626444

state1:200x200的方块在显示屏上正常移动。

state2:200x200的方块到达显示屏的底部,下一步开始从下往上移动。

state3:200x200的方块到达显示屏的右部,下一步开始从右往左移动。

三、设计分析

简单来说,就是200x200的方块移动到显示屏的边缘时变换方向,可以设计如下的时序。

用两个寄存器作为上下、左右方向控制的变量,初始状态,200x200的方块是从左往右,从上往下移动的,碰到显示器的边沿后,方向改变。200x200的方块替换为相应的显示图像,就可以实现类似屏幕保护程序的功能。

image-20210108213014215.png

x和y为显示偏移量,设置为每一帧数据改变显示的方向,当显示图像触碰到显示屏的边沿位置时,改变显示的方向。

四、实验步骤

根据设计的时序图,编写实现的代码。

//h_add_flag
always @(posedge clk) 
begin
	if (rst == 1'b1) 
		h_add_flag <= 1'b0;
	else if (x == 'd1)	//state change  
		h_add_flag <= 1'b0;
	else if (x == H_ADDR_TIME - H_BASIC -</
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值