数电实验vga图像显示控制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电路综合实验
报告
学校:北京邮电大学
学院:信息与通信工程学院
专业:通信工程
班级:2008211115
学号:
班内序号:30
姓名:唐秋月
2011年1月5日
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 显
示
器
拨码输入
时序控制模块设计
行同步状态机状态转移图
列同步状态机状态转移图时序控制模块流程图:
五、源程序(含注释)
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;