目录
第一部分、实现效果
第二部分、动态VGA显示的原理
1、将动态显示的区域提前进行赋值
2、图像块的移动是每张图片叠加后的效果
3、如何实现图像块位置的改变
第三部分、系统结构和驱动波形
1、系统的Top-down结构
2、图像块移动的驱动波形
第四部分、代码
1、同步信号驱动vga_driver.v
2、方块移动和rgb输出模块rgb.out.v
3、顶层模块top_vga_move.v
第五部分、总结
1、关于显示的范围无法填满整个屏幕的问题
2、源码地址
第一部分、实现效果
第二部分、动态VGA显示的原理
首先,本次测试的效果还是在显示器分辨率为:640*480@60Hz的情况下进行测试。
1、将动态显示的区域提前进行赋值
如果假设整块屏幕显示的是彩条,这个时候我想要一个图像块在这个彩条图像上移动,那么rgb应该优先被赋值为该图像块的显示内容,然后rgb再被赋值为彩条。
2、图像块的移动是每张图片叠加后的效果
白色的图像块看起来运动的很流畅,其实是人眼的视觉差,因为分辨为640*480@60Hz,表示电脑屏幕1s的时间要显示60张图片,图像块的移动是因为该图像块在每张图片上的位置都改变一次,因此就能看到白色图像块流畅的移动。
3、如何实现图像块位置的改变
定义两个计数器,x,y。假设每一帧画面显示完,就让x和y进行加1。当x或者y超过范围时就进行自减,这样就会形成块状碰到屏幕边沿之后图像块返回的动画。
如果这里没有看懂,可以去参考前面这篇博客。
第三部分、系统结构和驱动波形
FPGA的设计,清晰的设计思路是最重要的,如何做到时刻保持一个清晰的设计思路,我个人认为最好的解决办法就是将各种结构图,波形时序图用画图软件提前画出来,再去考虑怎么写代码。但是这样的后果就是要花费很多的时间,有时候做个实验要很久,害,鱼与熊掌不可兼得
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)