3546|2

69

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

炼狱传奇-VGA之战 [复制链接]

VGA(Video Graphics Array,视频图形阵列),是IBM 于1987年提出的一个使用类比讯号的电脑显示标准。VGA 是最多制造商所共同支持的一个低标准,个人电脑在加载自己的独特驱动程式之前,都必须支持 VGA 的标准。
今天我们就来学习一下这个接口的驱动时序,让我们的设计从此色彩纷呈。首先我们看一下VGA接口的电路原理图
由电路图可以看出,我们的VGA并没有特殊的外部芯片,也就是说,我们唯一要关注的可能就是它的显示原理和时序了。那么接下来我们具体来看一下VGA的扫描原理是什么。
VGA扫描方式
显示器扫描方式分为逐行扫描和隔行扫描:逐行扫描是扫描从屏幕左上角一
点开始,从左向右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起
始位置,在这期间,CRT 对电子束进行消隐,每行结束时,用行同步信号进行同
步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。隔行扫描是指电子束扫描时每隔一行扫一线,扫完一屏后再返回来扫描剩下的线,隔行扫描的显示器闪烁快速,可能会使使用者眼睛疲劳(本实验采用逐行扫描的方式)
扫描原理清楚以后,紧接着大家再来看看VGA的行、列同步时序

列同步时序
行同步时序
VGA 中定义行时序和列时序都需要同步脉冲(a 段),显示后沿(b 段)、显示时序段(c 段)和显示前沿(d 段)四部分。VGA 工业标准显示模式要求:行同步、列同步都为负极性,即同步脉冲要求是负脉冲。
由 VGA 行时序可知:每一行都有一个负极性行同步脉冲(a 段),是数据行的结束标志,同时也是下一行的开始标志。在同步脉冲之后为显示后沿(b段),在显示时序段(c 段)显示器为亮的过程,RGB 数据驱动一行上的每一个像素点,从而显示一行。在一行的最后为显示前沿(d 段)。在显示时间段之外没有图像投射到屏幕,而是插入消隐信号。同步脉冲、显示后沿和显示前沿都是在行消隐间隔内,当消隐有效时,RGB 信号无效,屏幕不显示数据。
VGA 的列时序与行时序分析基本一致。

VGA也有许多的显示标准,接下来我们通过表格来一探究竟。
以本实验的显示标准 800*600*60Hz 为例。(800 为列数,600 为行数,60Hz为刷新一屏的频率)
行时序:屏幕对应的行数为 628(a+b+c+d=e 段),其中 600(c 段)为显示行;每行均有行同步信号(a 段),为4 个行周期的低电平;
列时序:每个显示行包括800列(a+b+c+d=e段),其中640(c段)为有效显示区,每列均有列同步信号(a段),为96个行周期的低电平。
扫描时钟频率:40MHZ

原理清楚以后,接下来我们设计系统模块图如下:
模块说明:
(1)时钟分频模块
我们开发板上使用的晶振为50MHZ,由于我们的显示标准为800*600*60HZ,所以我们需要分频输出40MHZ的系统时钟。时钟分频模块,我们可以通过调用锁相环来实现。
(2)VGA行列同步控制模块
VGA显示标准需要设定行列同步信号,标定出有效显示区域,这也是整个VGA驱动模块的核心部分
(3)VGA色彩显示控制模块
在图像有效显示区域内,输出控制颜色的r、g、b信号
接下来我们学习每个功能模块的具体代码实现,由于分频模块我们采用的是锁相环,而之前的章节中,我们对锁相环的使用有专门的论述,所以此处我们不再赘述。

VGA行列同步控制模块具体代码如下:


VGA色彩显示控制模块具体代码如下:
编写完成各子模块以后,为了将所有模块连接起来,我们需要建立顶层文件如下:

综合编译以后,我们可以查看RTL视图,查看电路综合结果和预想是否一致,调用RTL视图如下:
由此可以,电路模块综合结果和我们预先设定相同。接下来我们编写测试代码如下,用来验证我们设计的正确性
查看仿真波形
如图可以看出,当en有效时,vga_r输出3’b111,说明设计正确。

将代码下载到开发板,运行效果图如下:


此帖出自FPGA/CPLD论坛

最新回复

很好的资料 谢谢分享  详情 回复 发表于 2015-12-27 11:47
点赞 关注(2)
 

回复
举报

6423

帖子

17

TA的资源

版主

沙发
 
谢楼主分享
此帖出自FPGA/CPLD论坛
个人签名training
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
很好的资料
谢谢分享
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表