vga图像显示控制

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VGA图像显示控制器

一、摘要和关键词

摘要:VGA显示屏显示采用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生GRB基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。通过控制扫描计数器不同值时对RGB三原色信号的控制,来完成显示设计。

关键词:行列扫描行列同步RGB三原色控制

二、设计任务要求

实验目的

1. 熟练掌握VHDL 语言和QuartusII 软件的使用;

2. 理解状态机的工作原理和设计方法;

3. 掌握利用EDA 工具进行自顶向下的电子系统设计方法;

4. 熟悉VGA 接口协议规范。

实验要求:

设计一个VGA 图像显示控制器,达到如下功能:

显示模式为640×480×60HZ 模式;

用拨码开关控制R、G、B(每个2 位),使显示器可以显示64种纯色;

在显示器上显示横向彩条信号(至少6 种颜色);

在显示器上显示纵向彩条信号(至少8 种颜色);

在显示器上显示自行设定的图形、图像等。

选做:自拟其它功能。

三、实验原理

1、显示控制原理

常见的彩色显示器一般由阴极射线管(CRT)构成,彩色由GRB(Green Red Blue)基色组成。显示采用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生GRB基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,逐行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT、对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。VGA显示控制器控制CRT显示图象的过程如图1所示

2、VGA时序信号

计算机内部以数字方式生成的显示图像信息,被显卡中的数字/模拟转换器转变为R、G、

B 三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。对于模拟显示设备,如模拟CRT 显示器,信号被直接送到相应的处理电路,驱动控制显像管生成图像。设计VGA 控制器的关键是产生符合VGA 接口协议规定的行同步和场同步信号,它们的时序关系如下图所示:

h_sync:水平同步信号(负脉冲),每个水平扫描周期显示器刷新一行;

v_sync:垂直同步信号(负脉冲),每个垂直扫描周期显示器刷新一帧;

行同步信号(HS ) 场同步信号(VS ) 时序名称 时钟数(像素数)

时序名称 行数 前沿 16 前沿 10 行同步 96 场同步 2 数据 640 数据 480 后沿 48 后沿 33 总像素数

800

总行数

525

按照每秒60帧的刷新速度来计算,所需要的时钟频率为: 频率=60H z(帧数)×525(行)×800(每一行像素数)=25.2MHz 所以我们通过开发系统的50MHz 时钟资源,通过时钟分频产生25MHz 的频率即可。虽然没有达到精确的25.2MHz 的时钟频率(刷新率可能会是59Hz),但是并不会造成影响。

3、VGA 显示器的工作过程

以屏幕左上角的那个像素作为原点(1,1)。当显示器接收到控制器输出的v_sync 信号,则开始一个新的垂直刷新循环,同时控制器输出h_sync 信号。当经过P+Q=1.084ms 的时间后,准备开始水平刷新循环,当h_sync 信号的下降沿到来时,即开始刷新第一行(行数加1)。再经过B+C = 5.66s 的时间后,开始刷新第一行的第一个像素(列数加1),并按照所需的时钟频率,刷新此行中其余像素。直到显示器接收到下一个h_sync 信号,又开始刷新第二行。

重复此过程,直到刷新到屏幕的底部。当刷新了最下面一行的最后一个像素后,显示器即完成了一帧的刷新,控制器又输出v_sync 信号,显示器又开始一个新的垂直刷新循环。

四、系统设计(包括设计思路、总体框图、分块设计)

总体设计思路:

VGA 显示器的控制器可划分为3个子模块: I .时钟分频子模块;

II .时序控制子模块 ,提供同步信号(h_sync 和v_sync )及像素位置信息; III .生成图形子模块,接收像素位置信息,并输出颜色信息;

由于系统时钟为50MHZ ,实验所需频率为25MHZ,故时钟分频模块只需在程序中通过分频语句完成;生成图形子模块由系统提供;所以重点设计的模块就是时序控制模块。

总体系统框图如下:

HS

系统时

VS 钟 R G

B

分频模块 时 序 控 制 模 块 生 成 图 形 模 块 VGA 显

拨码输入

时序控制模块设计

Hcnt=639 Hcnt=799

Hcnt=655 Hcnt=751

行同步状态机状态转移图

Vcnt=479 Vcnt=524

Vcnt=489

Vcnt=491

列同步状态机状态转移图

时序控制模块流程图:

显示

前沿 后沿 同步 显示

后沿 同步 前沿

时钟触发

时钟二分频

当前坐标是否在显示范围内?

根据拨码开关选择像素输出模式/颜色

行坐标加1

是否超过行边

界?

列坐标加1,行坐标

归0

是否超过列边

界?

列坐标归0

是否

五、源程序(含注释)

library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;

entity vgacode is port( sw0 : in std_logic; --拨码开关输入 sw1 : in std_logic; sw2 : in std_logic; sw3 : in std_logic; sw4 : in std_logic; sw5 : in std_logic;

相关文档
最新文档