最近做了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个段,也就是 a (同步段) , b(后廊