VGA彩色信号发生器.doc
《VGA彩色信号发生器.doc》由会员分享,可在线阅读,更多相关《VGA彩色信号发生器.doc(18页珍藏版)》请在冰豆网上搜索。
湖南涉外经济学院
课程设计报告
课程名称:
EDA技术及应用
报告题目:
VGA彩色信号发生器
学生姓名:
所在学院:
信息科学与工程学院
专业班级:
电信1001班
学生学号:
104328018143070
指导教师:
廖亦凡、黄科
2013年6月27日
EDA技术及应用课程设计任务书
报告题目
VGA彩色信号发生器
完成时间
2013.6.17至2013.6.28
学生姓名
专业班级
电信1001班
指导教师
黄科、廖亦凡
职称
讲师
总体设计要求和技术要点
1.任务及要求
用FPGA实现VGA的彩条信号显示通过按键实现横纹、竖纹、方格图案的变化并能进一步设计出文字、图像的显示。
显示图像分辩率为640×480刷新率为60Hz。
按《湖南涉外经济学院课程设计管理办法》要求提交课程设计报告。
2.设计提示
VGA显示原理:
当显示屏分辩率为640×480时,整个屏上有640×480=307200个点(也称为像素),每个点的位置由其所在行和列确定,一幅图像就由这样的点阵来显示,像素点点亮的方式为从左到右,从上到下一行一行地扫描,当一屏扫完也就完成了一帧图像的显示,一秒钟扫60帧图像,其刷新率为60Hz。
设计的关键在于:
1、显示某一颜色的位置;2、如何由二进制代表颜色。
应当注意,VGA显示器每扫描完一行,再扫描一下行时会花一定时间来准备,因此要满足时序要求。
VGA行扫描时序图
(一)、同样每扫描完一帧,再扫描下一帧行时也会花一定时间来准备,因此也要满足其时序要求。
VGA场扫描时序图
显示的颜色用三位二进制表示,共可以显示八种颜色,对应关系如下表所示:
颜色编码表
颜色
黑
蓝
绿
品
红
青
黄
白
R
0
0
0
0
1
1
1
1
G
0
0
1
1
0
0
1
1
B
0
1
0
1
0
1
0
1
工作内容及时间进度安排
一、预设计阶段(第17周星期一):
包括教师授课、方案论证、设计计算和完成预设计(1天)。
二、安装调试阶段(第17周星期一至第18周星期三):
包括检查程序、调试和检测,完成任务(7天)。
三、总结报告阶段(第18周星期四至第18周星期五):
包括总结设计工作,写出设计说明书和最后的考核(2天)。
课程设计成果
一、课程设计作品
检查错误、调节程序。
出现仿真的结果和仿真的图像。
二、课程设计总结报告
(1)严格遵守课程设计报告格式要求。
做到内容完整正确、格式规范。
(2)课程设计报告正文部分内容应包括:
a.设计题目;
b.主要指标和要求;
c.方案选择及工作原理;
d.电路性能指标测试结果,是否满足要求及对成果的评价;
e.收获、体会和改进设计的建议。
出勤与纪律
1.课程设计时间:
上午8:
00-11:
30,下午2:
00-5:
30
2.学生应严格遵守纪律,不迟到、不早退、不无故缺课。
3.学生在课程设计期间,注意自身与他人安全,爱护实验室财产,违者按相关文件追查责任。
4.课程设计报告独立完成,不得以任何形式抄袭他人资料或成果(包括但不限于同学的资料或网上资料)。
一经发现该科目计0分。
摘要
本实验报告为VGA显示控制器设计报告。
实验设计了基于Verilog描述的VGA显示控制器,通过FPGA控制显示器显示色彩和图形。
完成的功能包括8种颜色的横向彩色、纵向彩色条幅的显示以及已经棋盘格的显示。
实验的重心放在了显示控制器的系统层面的设计,采用了自顶向下的思路进行设计。
报告中给出了完整的设计思路和过程,并将系统分模块进行了详细的设计,给出了Verilog语言描述。
完成了核心模块以及系统整体的仿真验证。
最终下载到GW48实验箱上测试通过。
关键词:
VGA;彩色信号发生器;FPGA;RGB
abstract
ThislabreportfortheVGAdisplaycontrollerdesignreport.ExperimentwasdesignedbasedonVerilogdescriptionofVGAdisplaycontroller,throughtheFPGAcontrolmonitorsdisplaycolorsandgraphics.Completefunctionsincludingeightkindsofcolorinlongitudinalandtransversechromaticcolorbannerdisplayandhasthecheckerboard.Theexperimentfocusesonthedesignofcontrollerofthesystemlevel,withtheideaoftop-downdesign.Reportpresentsacompletedesignideaandprocess,anddividethesystemmoduleindetailthedesign,theVeriloglanguagedescriptionispresented.Completedthecoremoduleandsimulationofthesystemasawhole.FinallydownloadedtoGW48experimentboxonthetestpass.
Keywords:
VGA;Colorsignalgenerator;FPGA;RGB
目录
一、概述 1
二、系统设计 1
1、系统的工作原理 1
2、VGA显示原理 1
3、按键模块控制VGA显示模式 2
三、程序设计 2
1.程序流程图 3
2、源程序及其说明 4
3.试验现象 7
四、仿真结果 9
五、总模块图、总原理图及引脚图 9
六、结论与心得 10
七、参考文献 11
6
一、概述
VGA显示控制器实现的主要功能是向显示器发出图形控制信号,产生相应的图形显示。
这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
本次课程设计主要是VGA显示控制器,使屏幕显示横彩条、竖彩条、棋盘格。
二、系统设计
1、系统的工作原理
FPGA是EDA课程设计的整个系统的核心,通过对其编程可输出RGB三基色信号和HS、VS行场扫描同步信号。
通过Verilog编写响应的彩条控制器程序,产生彩条信号,当FPGA接受到彩条控制信号后,内部的数据选择器模块根据控制信号选通相应的图像生成模块,输出图像信号,与行场扫描时序信号一起通过15帧D型接口电路送入VGA显示器,在VGA显示器上便可以看到对应的彩色图像。
FPGA所需工作时钟由外部高精度有源晶振提供。
2、VGA显示原理
工业标准的VGA显示模式为:
640×468×16色×60Hz。
常见的彩色显示器,一般由CRT(阴极射线管)构成,彩色是由R、G、B(红、绿、蓝)三基色组成,CRT用逐行扫描或隔行扫描的方式实现图像显示,由VGA控制模块产生的水平同步信号和垂直同步信号控制阴极射线枪产生的电子束,打在涂有荧光粉的荧光屏上,产生R、G、B三基色,合成一个彩色像素。
扫描从屏幕的左上方开始,由左至右,由上到下,逐行进行扫描,每扫完一行,电子束回到屏幕下一行的起始位置,在回扫期间,CRT对电子束进行消隐,每行结束是用行同步信号HS进行行同步;扫描完所有行,再由场同步信号VS进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。
VGA行同步信号HS和场同步信号VS的时序图如图2所示,T1为行同步消隐(约为6μs);T2为行显示时间(约为26μs);T3为场同步消隐(两个行周期);T4为场显示时间(480个行周期)。
显示器每扫描完一行,再扫描一下行时会花一定时间来准备,因此要满足时序要求,见图1
从0计数到639
图1VGA行扫描时序图
同样每扫描完一帧,再扫描下一帧行时也会花一定时间来准备,因此也要满足其时序要求,见图2从0计数到479
图2VGA场扫描时序图
对于VGA显示器的上述五个信号的时序驱动要严格遵循“VGA工业标准”,即640×480×60HZ模式,否则无法显示正确地图象。
VGA工业标准要求的频率:
时钟频率:
25.175MHz(像素输出的频率)
行频:
31469Hz
场频:
59.94Hz(每秒图像刷新频率)
图象信号显示的颜色种类与表示R、G、B三基色的二进制数位数有关,表1列出了8种颜色的编码方式。
表1VGA颜色编码
颜色
白
黄
表
红
品
绿
蓝
黑
R
1
1
1
1
0
0
0
0
G
1
1
0
0
1
1
0
0
B
1
0
1
0
1
0
1
0
竖条纹
横条纹
3、按键模块控制VGA显示模式
#条纹
棋盘格
图3VGA显示方框图
三、程序设计
1.程序流程图
开始
行同步扫描
扫描完480行
CRT生产消隐
N
场同步扫描
输出
MD=00
MD=11
MD=01
MD=10
选择#图
选择横条图
选择竖条图
选择棋盘格子图
图4VGA程序流程图
2、源程序及其说明
modulecolor(clock50MHz,MD,rgb,hs,vs);
inputclock50MHz;
input[1:
0]MD;
outpuths,vs;
output[2:
0]rgb;
reghs,vs,clock;
reg[2:
0]rgb,rgbx,rgby,rgba,rgbb;
reg[9:
0]hcnt,vcnt;
parameterh_Ta=96,h_Tb=40,h_Tc=8,h_Td=640,h_Te=8,h_Tf=8,h_Tg=800;
parameterv_Ta=2,v_Tb=25,v_Tc=8,v_Td=480,v_Te=8,v_Tf=2,v_Tg=525;
always@(posedgeclock50MHz) //2分频,得到25MHZ的频率
begin
clock<=~clock;
end
always@(posedgeclock) //行计数800
begin
if(hcnt==h_Tg-1)hcnt<=0;
elsehcnt<=hcnt+1;
end
always@(negedgehs) //场计数525
begin
if(vcnt==v_Tg-1)vcnt<=0;
elsevcnt<=vcnt+1;
end
always@(posedgeclock) //clock25MHz
begin
if(hcnt<=h_Ta-1)hs<=0; //产生行同步信号
elsehs<=1;
end
always@(vcnt)
begin
if(vcnt<=v_T