雾盈 发表于 2016-9-12 13:06:38

雾盈FPGA笔记之(三十五)VGA显示彩色图片

本帖最后由 雾盈 于 2016-9-12 18:00 编辑

VGA显示8位彩色图片
                                                雾盈 2016-9-12

雾盈FPGA笔记汇总目录


一、写在前面

这次讲VGA显示彩色图片,这篇写完,再写一篇怎么制作彩色图片mif文件的文章。



二、什么是VGA?

VGA(Video Graphics Array)是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。不支持热插拔,不支持音频传输。
现在,台式电脑显示器大多用的就是VGA显示,连接线就是VGA线,是下图这种。


       

三、VGA的扫描方式

        显示器扫描方式分为逐行扫描和隔行扫描:
        逐行扫描是扫描从屏幕左上角一点开始,从左向右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT 对电子束进行消隐,每行结束时,用行同步信号进行同步;
当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。

        隔行扫描是指电子束扫描时每隔一行扫一线,扫完一屏后再返回来扫描剩下的线。
        我们这里采用逐行扫描的方式。



四、时序分析

由于列同步时序和行同步时序是一样的,我就只画了一个列同步时序图,如下图:

       

我们可以从示意图可以看到,列行时序都需要同步脉冲(a 段),显示后沿(b 段)、显示时序段(c 段)和显示前沿(d 段)四部分。
也可以这样说一个列行扫描周期 e=(a+b+c+d)
注意:同步脉冲(a段)要求是低电平脉冲信号。


a ,b ,c, d, e 代表多长时间呢,我们看一下VGA显示参数标准,如下图:



我们这个设计,采用的是800*600*60 的显示模式。Pll时钟为40mhz
到这里这样我们就很容易的将行列的时序用verilog语言描述出来了。

五、框图


       


六、代码思路及解释

1)首先,写出行列扫描

       

列信号没扫描完毕一行时,行信号开始扫描一列,循环往复。

2)输出行列同步信号vga_row,vga_col



3)显示有效区域使能信号



4)输出目的显示区域使能信号送给rgb显示模块



5)rgb显示模块



只是一个地址计数器,和rom数据进入,通过rgb引脚输出显示。
注意的是,{3{a}}等同于{a,a,a}

后面附上源代码:
下一篇写,彩色图片mif制作。


雾盈 发表于 2016-9-12 14:38:52

TIANSHANGTUP

芙蓉王 发表于 2016-9-13 09:18:53

          :):):)

陈飞龙 发表于 2016-9-20 11:20:34

:):):):):):):):)加油~

zxopenwgb 发表于 2016-9-20 11:32:11

雾盈 发表于 2016-9-12 14:38
TIANSHANGTUP

               :) :) :) :)

武123456 发表于 2016-11-14 10:18:42

跟着大神学习不错:P:P:P:P:P
页: [1]
查看完整版本: 雾盈FPGA笔记之(三十五)VGA显示彩色图片