数电实验vga图像显示控制Word格式文档下载.docx

上传人:b****2 文档编号:14875859 上传时间:2022-10-25 格式:DOCX 页数:15 大小:204.26KB
下载 相关 举报
数电实验vga图像显示控制Word格式文档下载.docx_第1页
第1页 / 共15页
数电实验vga图像显示控制Word格式文档下载.docx_第2页
第2页 / 共15页
数电实验vga图像显示控制Word格式文档下载.docx_第3页
第3页 / 共15页
数电实验vga图像显示控制Word格式文档下载.docx_第4页
第4页 / 共15页
数电实验vga图像显示控制Word格式文档下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

数电实验vga图像显示控制Word格式文档下载.docx

《数电实验vga图像显示控制Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数电实验vga图像显示控制Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。

数电实验vga图像显示控制Word格式文档下载.docx

扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,并预备进行下一次的扫描。

通过控制扫描计数器不同值时对RGB三原色信号的控制,来完成显示设计。

关键词:

行列扫描行列同步RGB三原色控制

2、设计任务要求

实验目的

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

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

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

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

实验要求:

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

显示模式为640×

480×

60HZ模式;

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

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

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

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

选做:

自拟其它功能。

三、实验原理

1、显示控制原理

常见的彩色显示器一般由阴极射线管(CRT)构成,彩色由GRB(GreenRedBlue)基色组成。

显示采用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生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帧的刷新速度来计算,所需要的时钟频率为:

频率=60Hz(帧数)×

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个子模块:

.时钟分频子模块;

.时序控制子模块,提供同步信号(h_sync和v_sync)及像素位置信息;

.生成图形子模块,接收像素位置信息,并输出颜色信息;

由于系统时钟为50MHZ,实验所需频率为25MHZ,故时钟分频模块只需在程序中通过分频语句完成;

生成图形子模块由系统提供;

所以重点设计的模块就是时序控制模块。

总体系统框图如下:

HS

系统时VS

钟R

G

B

时序控制模块设计

Hcnt=639

Hcnt=799

Hcnt=655

Hcnt=751

行同步状态机状态转移图

显示

同步

Vcnt=479

Vcnt=524

Vcnt=489

Vcnt=491

列同步状态机状态转移图

时序控制模块流程图:

五、源程序(含注释)

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entityvgacodeis

port(

sw0:

instd_logic;

--拨码开关输入

sw1:

sw2:

sw3:

sw4:

sw5:

sw6:

sw7:

clk:

--系统时钟输入

hsync:

outstd_logic;

--输出行同步、列同步以及R.G.B信号

vsync:

rdata:

gdata:

bdata:

lrdata:

lgdata:

lbdata:

outstd_logic

);

endvgacode;

architecturebehaveofvgacodeis

--horizontaltimingsignals

constanth_data:

integer:

=640;

--VGA时序中几个关键数据

constanth_front:

=16;

constanth_back:

=48;

constanth_sync:

=96;

constanth_period:

=h_sync+h_data+h_front+h_back;

--800

--verticaltimingsignals

constantv_data:

=480;

constantv_front:

=10;

constantv_back:

=33;

constantv_sync:

=2;

constantv_period:

=v_sync+v_data+v_front+v_back;

--525

signalhenable,venable:

std_logic;

signalclk25M:

signalhcnt:

std_logic_vector(9downto0);

--horizontalpixelcounter

signalvcnt:

--verticallinecounter

begin

process(clk)

ifclk'

eventandclk='

1'

then--由系统时钟分频得到25MHZ的频率信号

clk25M<

=notclk25M;

endif;

endprocess;

process(clk25M)---行扫描

begin

if(clk25M'

eventandclk25M='

)then

ifhcnt<

h_periodthen

hcnt<

=hcnt+1;

else

=(others=>

'

0'

);

endif;

process(clk25M)--行同步

if(hcnt>

=(h_data+h_front)

andhcnt<

(h_data+h_sync+h_front))then

hsync<

='

;

else

process(clk25M)--列扫描

ifhcnt=(h_data+h_sync+h_front)then

ifvcnt<

v_periodthen

vcnt<

=vcnt+1;

else

endif;

process(clk25M)--列同步

if(vcnt>

=(v_data+v_front)

andvcnt<

(v_data+v_sync+v_front))then

vsync<

process(clk25M)--行显示

h_datathen

henable<

process(clk25M)--列显示

ifvcnt<

v_datathen

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1