欢迎来到天天文库
浏览记录
ID:55314042
大小:1.05 MB
页数:18页
时间:2020-05-09
《基于VHDL语言的VGA显示与控制.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、EDA大作业实验报告基于VHDL语言的VGA显示与控制1111000079田宇1111000081王坤目录1.VGA显示原理31.1VGA逐行扫描显示31.2VGA时序分析32.时序部分的代码实现32.1时序部分主要代码32.2时序部分的实现42.2.1行时序42.2.2场时序53.控制部分的代码实现53.1控制部分主要代码53.2控制部分的实现123.2.1彩条与彩格123.2.2字体显示124.硬件平台实验121.VGA显示原理1.1VGA逐行扫描显示逐行扫描是扫描从屏幕左上角一点开始,从左像右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对
2、电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。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
3、<=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场时序与行时序相类似。1.控制部分的代码实现3.1控制部分主要代码process(clk_d,sw)begini
4、fclk_d'eventandclk_d='1'thenifsw="11"thensw_t<=sw_t+1;endif;ifsw="01"thensw_t<=sw_t-1;endif;endif;endprocess;process(sw_t)beginifsw_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
5、"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="
6、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
7、_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)
此文档下载收益归作者所有