最近做了vga显示的实验,主要过程就是提取图片rgb数据存放在rom ip core里面,然后通过vga输出到显示器显示图片。
实验参考了黑金社区的博客:http://www.cnblogs.com/kingst/archive/2010/09/21/1832196.html。
首先我们要了解vga的概念,
VGA是什么?估计有接触过电脑的朋友多少也是知道。粗略认识VGA可分为,VGA硬件接口,和VGA协议。VGA硬件接口没有什么好学的,VGA时序才是正点。
VGA协议,主要有5个输入信号,亦是 HSYNC Signal, VSYNC Signal, RGB Signal。说简单一点,HSYNC Signal 是“列同步信号”, VSYNC Signal是“行同步信号”,RGB Signal是“红色-绿色-蓝色 颜色信号”。
VGA的扫描是固定的。一帧的屏幕是由“m行扫描”和“n列填充”组成。假设以 800 x 600 x 75Hz 为例的显示标准 (我所用的显示器就是这个标准), 那么宏观上它有 600 行 和 800列为一行。宏观上,一帧屏幕的显示是由600行从上至下扫描,800列从左至右填充,然而微观上,一行的行扫描是由超过800个列填充完成,一帧图像超过600行扫描。实际上是VGA的时序在作怪。
vga时序可以从:http://www.tinyvga.com/vga-timing 方便的查找,拿我们的800*600*75hz来讲:
HSYNC Signal 是用来控制“列填充”, 而一个HSYNC Signal 可以分为 4个

本文介绍了使用Nexys3 FPGA板实现VGA显示的过程,涉及VGA的基本概念、时序原理及如何将RGB数据存储于ROM并输出到显示器。通过分析800x600x75Hz的VGA时序,阐述了行同步信号HSYNC和列同步信号VSYNC的工作方式,以及有效显示区域的确定。最后,概述了vga_module的组成,包括clk_50分频模块和其它子模块。
最低0.47元/天 解锁文章
1350

被折叠的 条评论
为什么被折叠?



