基于VHDL语言的VGA显示与控制.docx

上传人:b****5 文档编号:7406382 上传时间:2023-01-23 格式:DOCX 页数:13 大小:1.05MB
下载 相关 举报
基于VHDL语言的VGA显示与控制.docx_第1页
第1页 / 共13页
基于VHDL语言的VGA显示与控制.docx_第2页
第2页 / 共13页
基于VHDL语言的VGA显示与控制.docx_第3页
第3页 / 共13页
基于VHDL语言的VGA显示与控制.docx_第4页
第4页 / 共13页
基于VHDL语言的VGA显示与控制.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于VHDL语言的VGA显示与控制.docx

《基于VHDL语言的VGA显示与控制.docx》由会员分享,可在线阅读,更多相关《基于VHDL语言的VGA显示与控制.docx(13页珍藏版)》请在冰豆网上搜索。

基于VHDL语言的VGA显示与控制.docx

基于VHDL语言的VGA显示与控制

 

EDA大作业实验报告

 

基于VHDL语言的VGA显示与控制

 

1111000079田宇

1111000081王坤

 

1.VGA显示原理

1.1VGA逐行扫描显示

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

1.2VGA时序分析

(图-1)

2.时序部分的代码实现

2.1时序部分主要代码

ifck'eventandck='1'thenH<=H+1;

ifH>15andH<110thenHs<='1';

elsifH>=110thenHs<='0';

ifH>=160andH<800thenHen<='1';

elsifH=800thenHen<='0';

H<=0;

endif;

endif;

endif;

ifHs'eventandHs='1'thenV<=V+1;

ifV>11andV<14thenVs<='1';

elsifV>=14thenVs<='0';

ifV>=45andV<525thenVen<='1';

elsifV=525thenVen<='0';

V<=0;

endif;

endif;

endif;

此部分代码为时序部分主要代码。

2.2时序部分的实现

2.2.1行时序

H:

HS:

行消隐信号

Hen:

允许显示

由时序图(图-1)可以看出,行时序中需要有行消隐、行同步、显示前后沿等。

其中有效显示信号为640个周期。

2.2.2场时序

与行时序相类似。

3.控制部分的代码实现

3.1控制部分主要代码

process(clk_d,sw)

begin

ifclk_d'eventandclk_d='1'then

ifsw="11"then

sw_t<=sw_t+1;

endif;

ifsw="01"then

sw_t<=sw_t-1;

endif;

endif;

endprocess;

process(sw_t)

begin

ifsw_t="0000"thenR<=Rd(s);G<=Gd(s);B<=Bd(s);

elsifsw_t="0001"thenR<=Rd(s+1);G<=Gd(s+1);B<=Bd(s+1);

elsifsw_t="0010"thenR<=Rd(s+2);G<=Gd(s+2);B<=Bd(s+2);

elsifsw_t="0011"thenR<=Rd(s+3);G<=Gd(s+3);B<=Bd(s+3);

ifs=5andt=4and(n=0orm=0orn=79orm=59orn=1orm=1orn=78orm=58)thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

elsifsw_t="0100"thenR<=Rd(s+4);G<=Gd(s+4);B<=Bd(s+4);

ifs=3andt=4and(n=0orm=0orn=79orm=59orn=1orm=1orn=78orm=58)thenR<=Rd(0);G<=Gd

(1);B<=Bd(3);

endif;

elsifsw_t="0101"thenR<=Rd(s+5);G<=Gd(s+5);B<=Bd(s+5);

ifs=2andt=4and(n=0orm=0orn=79orm=59orn=1orm=1orn=78orm=58)thenR<=Rd(3);G<=Gd

(2);B<=Bd(0);

endif;

elsifsw_t="0110"thenR<=Rd(s+6);G<=Gd(s+6);B<=Bd(s+6);

ifs=1andt=4and(n=0orm=0orn=79orm=59orn=1orm=1orn=78orm=58)thenR<=Rd(0);G<=Gd(0);B<=Bd(3);

endif;

elsifsw_t="0111"thenR<=Rd(s+7);G<=Gd(s+7);B<=Bd(s+7);

ifs=3andt=5and(n=0orm=0orn=79orm=59orn=1orm=1orn=78orm=58)thenR<=Rd(0);G<=Gd(0);B<=Bd(0);

endif;

elsifsw_t="1000"thenR<=Rd((s+t)rem8);G<=Gd((s+t)rem8);B<=Bd((s+t)rem8);

elsifsw_t="1001"thenR<=Rd((s+t)rem7);G<=Gd((s+t)rem7);B<=Bd((s+t)rem7);

elsifsw_t="1010"thenR<=Rd((s+t)rem6);G<=Gd((s+t)rem6);B<=Bd((s+t)rem6);

elsifsw_t="1011"thenR<=Rd((s+t)rem5);G<=Gd((s+t)rem5);B<=Bd((s+t)rem5);

elsifsw_t="1100"thenR<=Rd((s+t)rem4);G<=Gd((s+t)rem4);B<=Bd((s+t)rem4);

elsifsw_t="1101"thenR<=Rd((s+t)rem3);G<=Gd((s+t)rem3);B<=Bd((s+t)rem3);

elsifsw_t="1110"thenR<=Rd((s+t)rem2);G<=Gd((s+t)rem2);B<=Bd((s+t)rem2);

elsifsw_t="1111"thenR<=Rd((s+t)rem1);G<=Gd((s+t)rem1);B<=Bd((s+t)rem1);

--ifs=5andt=4and(n=0orm=0orn=79orm=59orn=1orm=1orn=78orm=58)thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

--endif;

--ifs=4andt=4and(n=0orm=0orn=79orm=59orn=1orm=1orn=78orm=58)thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

--endif;

--ifs=3andt=4and(n=0orm=0orn=79orm=59orn=1orm=1orn=78orm=58)thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

--endif;

--ifs=2andt=4and(n=0orm=0orn=79orm=59orn=1orm=1orn=78orm=58)thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

--endif;

--ifs=1andt=4and(n=0orm=0orn=79orm=59orn=1orm=1orn=78orm=58)thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

--endif;

--ifs=3andt=5and(n=0orm=0orn=79orm=59orn=1orm=1orn=78orm=58)thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

--endif;

ifs=1andt=6thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=2andt=6thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=3andt=6thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=4andt=6thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=5andt=6thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=3andt=6thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=3andt=5thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=3andt=4thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=3andt=3thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=3andt=2thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=3andt=1thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=1andt=3thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=2andt=3thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=3andt=3thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=4andt=3thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=5andt=3thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=6andt=3thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=1andt=1thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=2andt=1thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=3andt=1thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=4andt=1thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=5andt=1thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=6andt=1thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=1andt=1thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=1andt=2thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=1andt=3thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=1andt=4thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=1andt=5thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=1andt=6thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=6andt=1thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=6andt=2thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=6andt=3thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=6andt=4thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=6andt=5thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifs=6andt=6thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

ifm=7andn=5and(m=15orn=10)thenR<=Rd(3);G<=Gd(3);B<=Bd(3);

endif;

endif;

endprocess;

3.2控制部分的实现

3.2.1彩条与彩格

通过对行信号、场信号计数,打印出彩条。

通过拨码开关,控制彩条向左走或向右走。

通过REM对信号求余,打印出彩格。

3.2.2字体显示

与彩格控制类似。

4.硬件平台实验

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

当前位置:首页 > 高等教育 > 理学

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

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