VGA说明书资料Word格式文档下载.docx
《VGA说明书资料Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《VGA说明书资料Word格式文档下载.docx(17页珍藏版)》请在冰点文库上搜索。
回顾近30年电子设计技术发展历程,可将EDA技术分为三个阶段。
(1)七十年代为CAD阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作,产生了计算机辅助设计概念。
(2)八十年代为CAE阶段,与CAD相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计,这就是计算机辅助工程的概念。
CAE的主要功能是:
原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。
(3)九十年代为ESDA阶段,尽管CAD/CAE技术取得了巨大的成功,但并没有把人从繁重的设计工作中彻底解放出来。
在整个设计过程中,自动化和智能化程度还不高,各种EDA软件界面千差万别,学习使用困难,并且互不兼容,直接影响到设计环节间的衔接。
基于以上不足,人们开始追求:
贯彻整个设计过程的自动化,这就是ESDA即电子系统设计自动化。
目前的EDA产业正处在一场大变革的前夕,对更低成本、更低功耗的无止境追求和越来越短的产品上市压力正迫使IC供应商提供采用0.13μm或以下的千万门级的系统芯片,而这些系统芯片的高复杂性设计更加依赖于EDA供应商提供全新的设计工具和方法以实现模拟前后端、混合信号和数字电路的完全整合。
然而,这些新的需求为当代EDA工具和设计方法带来了不少新的挑战与机会。
例如,如何在工艺上防止模拟电路与数字电路之间的干扰;
现有的大部份EDA工具最多只能处理百万门级设计规模,随着IC设计向千万门级以上规模发展,现有EDA工具和方法必须进行升级。
如何融合各EDA供应商的工具,以便向IC设计界提供更高效能和更方便的RTL-to-GDSII或Conc-ept-to-GDSII整合设计环境;
为保证深亚微米(0.13μm或以下)和更低内核工作电压(1.8V或以下)时代的信号完整性和设计时序收敛,必须采用新的设计方法。
半导体工艺的每一次跃升都促使EDA工具改变自己,以适应工艺的发展;
反过来EDA工具的进步又推动设计技术的发展。
可以说EDA工具是IC设计产业的背后推手。
系统芯片(SOC)正在迅速地进入主流产品的行列。
由此引发的“芯片就等于整机”的现象,将对整个电子产业形成重大的冲击。
种种迹象表明,整个电子产业正在酝酿着一场深刻的产业重组,这将为许多新兴的企业提供进入这一行业的最佳。
2VGA显示原理
VGA(视频图形阵列)作为一种标准的显示接口得到广泛的应用,一般有专用芯片,本实验采用FPGA(现场可编程门阵列)设计VGA接口可以将要显示的数据直接送到显示器,节省了计算机的处理过程,加快了数据的处理速度,节约了成本。
随着显示技术的不断发展,在业界制定了多种显示协议标准。
根据分辨率和刷新频率的不同,显示模式的发展可分为:
VGA(640×
480像素);
SVGA(高级VGA,800×
600像素);
XGA(可扩展图形阵列,1024×
768像素)。
本文可以识别各种刷新频率的上述显示模式,并得到像素频率值,进一步应用于A/D转换器采样模块处理中。
图2-1行,场扫描时序示意图
VGA显示图像原理:
常见的彩色显示器,一般由CRT(阴极射线管)构成。
彩色是由R,G,B(红:
RED绿:
GREEN蓝:
BLUE)三基色组成。
显示是用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生R,G,B三基色,合成一个彩色像素。
扫描从屏幕的左上方开始,从左到右,从上到下,进行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行行同步;
扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。
它的行,场扫描时序示意图如图2-1所示。
现以正极性为例,说明CRT的工作过程:
R,G,B为正极性信号,即高电平有效。
当VS=0,HS=0时,CRT显示的内容为亮的过程,即正向扫描过程约为26μs,当一行扫描完毕,行同步HS=1,约需6μs;
其间,CRT扫描产生消隐,电子束回到CRT的左边下一行的起始位置(X=0,Y=1);
当扫描完480行后,CRT的场同步VS=1,产生场同步使扫描线回到CRT的第一行第一列(X=0,Y=0处,约为两个行周期)。
HS和VS的时序图。
T1为行同步消隐(约为6μs);
T2为行显示时间(约为26μs);
T3为场同步消隐(两行周期);
T4为场显示时间(480行周期)
3系统设计
3.1设计前注意
设计VGA图像显示控制需要注意两个问题:
一个是时序的驱动,这是完成设计的关键,时序稍有偏差,显示必然不正常,甚至会损坏彩色显示器;
另一个是VGA信号的电平驱动。
显示控制器设计提示:
显示器技术规格提供的行频一般在30kHz~45kHz(保守数据),场频一般在50Hz~75Hz(保守数据)。
针对以上保守数据,设计分辨率为640×
480的显示接口,以30kHz的行频进行扫描时所需时钟频率为:
30kHz×
800(行周期)=24MHz,则场频为:
30kHz÷
525(场周期)=5.14Hz。
本实验实现在显示器上显示彩条的设计,初始时GRB=“000”,用记数器过一段时间使R取反,即变为红色。
这样就有黑、红彩条了。
3.2显示控制模块
显示控制模块是关键,因为它将输出行同步,场同步,以及三基色信号,并送往显示器。
对这五个信号的时序驱动,必须严格遵守"
VGA工业标准"
,否则会损害VGA显示器。
普通的VGA显示器,其引出线共含5个信号:
R,G,B:
三基色信号
HS:
行同步信号
VS:
场同步信号
VGA工业标准是640×
480×
60Hz
VGA工业标准要求的频率:
时钟频率:
25.175MHz(像素输出的频率)
行频:
31469Hz
场频:
59.94Hz(每秒图像刷新频率)
VGA工业标准模式要求:
行同步,场同步都为负极性,即同步头脉冲要求是负脉冲。
行,场同步信号时序见图2-5
图3-1行,场同步信号时序图
图3-1所示的就是VGA(640×
60Hz)图像格式的信号时序图。
其点时钟(DCLK)的频率为25.175MHz。
其中HS表示行同步信号,HB表示行消隐信号,VS代表场同步信号,VB代表场消隐信号。
场周期为16.683ms,每场有525行,其中480行为有效显示行,45行为场消隐期。
场同步信号VS每场有一个脉冲,该脉冲的低电平宽度为2行。
场消隐期包括场同步信号,场消隐前肩(13行),场消隐后肩(30行),共45行。
行周期为31.87μs,每显示行包括800点,其中640点为有效显示区,160点为行消隐期(非显示区)。
行同步信号HS每行有一个脉冲,该脉冲的低电平宽度为3.81μs(即96个DCLK)和行消隐前肩行(19个DCLK),行消隐后肩(45个DCLK)。
复合消隐信号是行消隐信号和场消隐信号的逻辑与。
在有效显示期复合消隐信号为高电平,在非显示区它是低电平。
3.3图像显示控制设计
3.31设计概述
行计数器对输入点时钟(25.175MHz)计数.在行计数器大于等于640小于800期间为非显示区,行消隐信号为0,表示不显示图像.因为一行共有800个点时钟,所以有效显示区域为640个点时钟.在行计数器大于等于656小于752这段期间,行同步信号为0,这是行同步头,共有96个点时钟.当行计数器计满800点,内部的行扫描结束提示信号跳变为1,开始行计数器的新一轮计数。
用场计数器对已扫描完的行进行记数。
当场使能信号为1时开始计数。
在场计数器大于等于480小于525这段期间为非显示区,此时场消隐为0,因为一场共有525行,所以从中间可以看出有效显示行为480行。
在场计数器大于等于490小于492这段期间,场同步信号为0,是场同步脉冲头,为2行。
当场计数器计满525行,内部的场扫描提示信号变为1,开始场计数器的新一轮计数。
将行消隐信号和场消隐信号逻辑与得到了复合消隐信号HVB。
在非显示区域为0,显示区域为1。
在复合消隐信号显示区域,将数据传送给三基色信号R,G,B表示显示图像,在非显示区域则不显示图像。
场同步信号产生方法类似,就不再给出详细程序。
只是场计数器是对行计数,有效显示行是480行。
场同步为2行,场消隐为45行,并且要设置一个场使能信号VENCNT.当扫描完一行时,场使能信号为1时,此时在开始场计数。
图3-2所示是计算机VGA(640×
480,60Hz)图像格式的信号时序图,其点时钟DCLK为25.175MHZ,场频为59.94Hz。
图中Vsync为场同步信号,场周期Tvsync为16.683ms每场有525行,其中480行为有效显示行,45行为场消隐期。
场同步信号Vs每场有一个脉冲,该脉冲的低电平宽度twv为63μs(2行)。
场消隐期包括场同步时间twv、场消隐前肩tvh(13行)、场消隐后肩tyh(30行),共45行。
行周期THSYNC为31.78μs,每显示行包括800点。
其中640点为有效显示区,160点为行消隐期(非显示区)。
行同步信号HS每行有一个脉冲,该脉冲的低电平宽度twh为3.81μs(即96个DCLK);
行消隐期包括行同步时间twv,行消隐前肩thc(19个DCLK)和行消隐后肩tch(45个DCLK).共160个点时钟。
复合消隐信号是行消隐信号和场消隐信号的逻辑与,在有效显示期复合消隐信号为高电平,在非显示区域它是低电平。
图3-2图像格式的信号时序图
3.3.2行,场同步验证
图3-3场同步仿真图
图3-4场同步仿真图
仿真波形图3-3和3-4是为了说明场同步的正确性。
仿真波形中场同步脉冲头(VS=0)占两个脉冲,所以场同步脉冲头为2行;
场消隐前肩为13行,场消隐后肩为30行。
这与实际的行同步脉冲波形一致。
图3-5行同步仿真图
图3-6行同步仿真图
仿真波形图3-5和3-6是为了说明行同步的正确性。
仿真波形中行同步脉冲头(HS=0)占96个脉冲,所以行同步脉冲头为96个点时钟宽度;
行消隐前肩为19个点时钟宽度,行消隐后肩为45个点时钟宽度。
这些与实际的行同步脉冲波形一致。
说明行同步信号是正确的。
3.4彩条信号产生模块
彩条信号产生模块设计包括了竖彩条发生和横彩条发生两种模块。
竖彩条发生模块根据行点数器h_count的计数值来产生彩条,它将行点数计数器的计数值等分成四份,共四种竖彩条,x的二进制值为“1”表示像素应发光,为“0”表示像素应熄灭。
横彩条发生模块与竖彩条发生模块相似。
它根据场行数计数器v_count的计数值来产生横彩条。
将场行数计数器的计数值等分成四份,共四种横彩条,y的二进制值为“1”表示该行的像素应发光,为“0”表示像素应熄灭。
s是彩条模式控制输入信号,s为0时,显示横条纹;
s为1时,显示纵条纹。
程序如下:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityvga_1is
port(
x:
instd_logic_vector(9downto0);
y:
s:
instd_logic;
rout,gout,bout:
outstd_logic);
endvga_1;
architecturebehaviourofvga_1is
constantY_0:
std_logic_vector(9downto0):
=conv_std_logic_vector(0,10);
constantY_1:
=conv_std_logic_vector(120,10);
constantY_2:
=conv_std_logic_vector(240,10);
constantY_3:
=conv_std_logic_vector(360,10);
constantY_4:
=conv_std_logic_vector(480,10);
constantX_0:
constantX_1:
=conv_std_logic_vector(160,10);
constantX_2:
=conv_std_logic_vector(320,10);
constantX_3:
constantX_4:
=conv_std_logic_vector(640,10);
begin
h_slip:
process(x,y,s)
begin
if(s='
0'
)then
if(y>
=Y_0andy<
Y_1)then
rout<
='
1'
;
gout<
bout<
elsif(y>
=Y_1andy<
Y_2)then
=Y_2andy<
Y_3)then
else
endif;
if(x>
=X_0andx<
X_1)then
elsif(x>
=X_1andx<
X_2)then
=X_2andx<
X_3)then
endprocess;
endbehaviour;
4仿真结果及说明
以上各功能模块在QuartusⅡ软件中编程在Modelsim中仿真,仿真结果如图4-1、图4-2所示。
图中,rst信号是复位信号,Clk信号是25.175MHz点时钟信号,s是彩条模式控制输入信号,hs、vs分别是行、场同步信号输出,rout、gout、bout分别为红、绿、兰三种颜色信号的输出。
图4-1显示横条纹仿真图
图4-2显示纵条纹仿真图
从图4-1可以看出,当s为低电平时,在vs为高电平期间共呈现四种颜色,分别是红、绿、兰、白,即呈现四种颜色的横纹。
从从图4-2可以看出,当s为高电平时,在hs为高电平期间共呈现四种颜色,分别是红、绿、兰、白,即呈现四种颜色的纵纹。
总结体会
这次实验是非常有意义的一个实验。
实验前,我参考了网络上给出的类似代码,对实验有个大概的了解。
但在状态机和系统的设计当时在我的脑海里就是一团乱麻。
随后和老师的交流让我有了全新的思路。
以前总在写软件,各种软件代码,思路枯死在了软件编程上,而硬件的编程给了我全新的思考问题的方法。
硬件语言不是简单的写几行代码实现几个逻辑,其精髓在于从硬件的角度去理解系统,然后用其固有的VHDL语言去描述。
每一行代码背后都隐藏着硬件的逻辑门实现方法,单纯地凭编程逻辑去描述是不可行的,不是所有的逻辑描述都能用电子器件加以实现。
正是这一限制条件,让硬件描述更加有趣,更加值得去深究。
实验中每次修改和完善设计,思路都在不断优化,对FPGA的认识都在不断加深。
实验下来,自主学习了大量的资料,积累了不少经验。
虽然VGA显示控制器本身并不复杂,但其设计思路是通用的,或者至少是可供以后借鉴的。
我相信这种系统设计的思路将给我以后的实验和开发提供有益的参考。
在实际应用中,还可以对彩条信号产生模块方便地进行修改。
比如,可以修改行、场计数器的判断值来调整彩条的大小,增加控制信号的位数.以及增加延时跳变的功能.使输出的彩条信号产生各种变化。
以上就是我此次实验的总结与收获。
最后我要感谢老师的指导和帮助。
参考文献
[1]潘松,王国栋,VHDL实用教程,电子科技大学出版社.2000.2
[2]李广军,孟宪元,可编程ASIC设计及应用.电子科技大学出版社,2000.3
[3]曹允.基于FPGA的时序彩条信号实现方法及应用.电子技术应用,第七期
[4]朱耀东,经亚枝,张焕春.基于FPGA的LCD&
VGA控制器设计.电子技术应用,2002年第11期
[5]董士海,张倪,肖磊等.EDA/VGA程序员手册.北京大学出版社.1999:
389---394.
[6]尹建华.微型计算机原理与接口技术.北京:
高等教育出版社.2003
[7]蒋本珊.计算机组成原理与系统结构北京航空航天大学出版社
[8]陈姚节卢建华.基于FPGA的VGA显示接口的研究与设计
[9]董任.VHDL入门、解惑、经典实例、经验总结北京航空航天大学出版社。
[10]郑亚民,董小舟.可编程逻辑器件开发软件QuartusⅡ国防大学出版社。
[11]peterJ.Ashenden(著),葛红,黄河,吴继明(译).VHDL设计指南机械工业出版社
系统总体硬件原理图