基于FPGA的VGA接口设计(三)

结篇

  在之前的文章中介绍了有关VGA的扫描方式、行场同步时序,继续记录一下VGA时序中的具体参数是怎么来的。
  我们经常会看到有关VGA分辨率这样的描述:“640x480 60Hz”,当然还有其他的分辨率形式,意思就是说,1s之内刷新60张图片,每张图片的有效显示区域是640x480个像素点,来看一下下图中详细的描述:

基于FPGA的VGA接口设计(三)

  上表中,我们分别关注下“640x480 60Hz”行和场的有关参数:

  • 场周期,也就是一场(一帧)图像用的时间:T=1/60s,约等于16667us;
  • 这个显示分辨率下,将一场分成了525行,其中484行为有效显示行,41行为场消隐期,注意,单位是行;
  • 一行分成了800个像素点,其中有效像素点646个,其余的为行消隐时间,注意,单位是像素;
  • 由此就可以算出一个像素所占用的时间:tpix= 16667us/(525*800),约等于0.039683us,在FPGA设计中,我们便可以很容易的想到25MHz的时钟周期为40ns,这也是我们经常使用25MHz作为像素输出的同步时钟的原因;

  在有的资料中,场扫描中有效行为480行,行扫描中有效像素为640个,这是因为有4行为过扫描边界行,6列为过扫描边界列,有的会把这些像素归于消隐区。

  了解了这些基础的知识后其实fpga的代码设计核心使用一个嵌套的计数器就可以了,在写这个系列的笔记以前,查阅资料的时候,发现,VGA的像素同步方式貌似不仅仅可以使用行、场同步的方式,还有各种别的同步方式,比如说“绿同步”,顾名思义便是将同步放入了绿基线中,这跟线中,既有绿色分量,也包含同步信号,不过还没具体了解过,欢迎有了解的大神前来留言。。。