-
《电子设计自动化》
课程设计
题目:
院
(
系
)
:
p>
年级:
班级:
姓名:
学号:
VGA
图像显示控制器
指导老师:
- 1 -
摘要:
本文介绍了一种利用可编程逻辑器件实现
VGA
p>
图像显
示控制的方法,阐述了
VGA
图像显示控制器中
VGA
显像的
基本原理以及功能演示,利用可编程器件
FPGA
设
计
VGA
图
像显示控制的
VHDL
设计方案,并在
Altera
公司的
QuartusII
软件环境下完成
VGA
模块的设计。而且给出了
VGA
模块的
设计思路和顶层逻辑框图。最终实现
VG
A
图像显示控制器,
VGA
图像控制器
是一个较大的数字系统,传统的图像显示的
方法是在图像数据传输到计算机,并通过显示
屏显示出在传
输过程中,将图像数据的
CPU
< br>需要不断的信号控制,
所以造
成
CPU
的资源浪费,系统还需要依靠计算机,从而减少了系
统的
灵活性。
FPGA
芯片和
EDA
设计方法的使用,可根据用
户的需求,
为设计
提供了有针对性的
VGA
显示控制器,
不需
要依靠计算机,它可以大大降低成本,并可以满足生产实践
中不断改变的需要,产品的升级换代和方便迅速。
- 2 -
目录
设计思路
.......................
..................................................
....................
-
1
-
一、
系统设计
.......................
..................................................
..
-
1 -
1.
设计要求
.......................
..................................................
..
-
1 -
2.
设计方案
.......................
..................................................
..
-
1 -
二、
单元电路设计
.
................................................ ...................
-
2
-
1.
VGA
显示控制模块
.
..................................
.........................
-
3 -
2.
数据存储模块
.
................................................ ...................
-
7
-
3.
锁相环模块
.
.................................................
......................
-
8
-
三、
软件设计
.......................
..................................................
-
10 -
1.
VHDL
语言
.
.....................................
..................................
-
10 -
2.
Quartus
II
简介
.
..................................................
..............
-
11
-
3.
硬件开发工具
.
................................................ .................
-
12
-
四、
硬件验证
.......................
..................................................
-
14 -
附录
.
..
..................................................
..............................................
-
15 -
1.
程序
..................................................
...............................
-
15 -
2.
仪器设备名称型号
........
..................................................
-
17 -
3.
系统的性能指标
.
< br>............................................... ..............
-
18
-
- 3 -
设计思路
一、
系统设计
1.
设计要求
通过
VGA
接口在显示器显示彩色图像,
BMP
格式,像素
640
×
480
。
2.
设计方案
运行时,从
FPGA
内部存储器读取显示数据。若需存储较大数据时,可将像素点
数据存储于
FPGA
内部的
EAB
RAM
、
外部
ROM
或
RAM
中。
p>
如果是
FPGA
内部的
LPM_ROM
,
可以设置成含有
3
位数据线的模块,如果用外部的
12
数据线的
ROM/RAM
,一个
字节存
储两个相邻像素,
每个像素是
3
位彩色
数据。
将图像控制模块分为这样几
部分;分频电路、
VGA
时序控制模块、图像数据存储器读出模块
.
原理图下图所
示
:
(注:最终是用
VHDL
文件实现,此原理图只做模块示意
使用。
)
图
1
其中
,
VGA
时序控制模块用于产生
640
*480
显示范围,并控制显示范围和消隐范
围以及产生水平同
步时序信号
HS
和垂直同步时序信号
V
S
的值,同时产生一个
ROM
地址,用
于读取所存数据;
ROM
模块为
FPG
A
内部
LPM_ROM
,数据线
3
根,地
址线为
32
768
根,用于存储分辨率为
160*120
< br>的图像信息;分频器调用锁相环,
产生
VGA
显示器所需的
25M
赫兹频率。
< br>
考虑到所采用的硬件平台没有足够的空间存储
640*
480*3bit
数据,所以采
用插值法以实现设计要求。
p>
具体实现为存储
160*120
的图像数据
,
使用缩放的方
- 1 -
法将图像放大。
该方案是在硬件存储条件有限的情况下所采用的设计方
案,
若存
储空间足够,
则完全可以采用
数据线为
3
,
地址线为
307200
(
640*480
)
的
LPM_ROM
存储像素信息。
二、
单元电路设计
本系统所使用的模块可
分为四块,
顶层文件,
分别为
VGA<
/p>
控制模块,
数据存储模
块,锁相环模块。
下文依次介绍。
1
、
顶层文件
LIBRARY
IEEE;
USE _LOGIC_;
ENTITY
VGAV IS
PORT (CLK20MHZ: IN STD_LOGIC;
HS,VS,R,G,B:OUT STD_LOGIC;
C:OUT STD_LOGIC);
END VGAV;
ARCHITECTURE MODELSTRU OF VGAV IS
COMPONENT VGA640480
PORT(CLK:IN STD_LOGIC;
RGBIN:IN STD_LOGIC_VECTOR(2 DOWNTO 0);
HS,VS,R,G,B:OUT STD_LOGIC;
HOUT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0);
VOUT:OUT STD_LOGIC_VECTOR(9 DOWNTO 0));
END COMPONENT;
COMPONENT
IMGROM
PORT(
clock:IN STD_LOGIC;
address:IN STD_LOGIC_VECTOR(14 DOWNTO
0);
q:OUT STD_LOGIC_VECTOR(2 DOWNTO
0));
END COMPONENT;
COMPONENT PLL50
PORT
(inclk0: IN STD_LOGIC;
c0
: OUT STD_LOGIC);
END
COMPONENT;
SIGNAL
RGB:STD_LOGIC_VECTOR(2 DOWNTO 0);
SIGNAL CLK25MHZ:STD_LOGIC;
SIGNAL ROMADDR:STD_LOGIC_VECTOR(14
DOWNTO 0);
SIGNAL
HPOS,VPOS:STD_LOGIC_VECTOR(9 DOWNTO 0 );
BEGIN
- 2 -
ROMADDR<=VPOS(8 DOWNTO 2)&HPOS(9 DOWNTO
2);
C<=CLK25MHZ;
I_PLL50:PLL50 PORT
MAP(inclk0=>CLK50MHZ,c0=>CLK25MHZ);
I_VGA640480:VGA640480
PORT <
/p>
MAP(CLK=>CLK25MHZ,RGBIN=>RGB,HS=>HS,VS=>
VS,R=>R,G=>G,B=>B,HOUT=>HPOS,
VOUT=>VPOS
);
I_IMGROM:IMGROM PORT
MAP(clock=>CLK25MHZ,address=>ROMADDR,q=>RGB);
END MODELSTRU;
采用地址并用的方法,将
p>
160*120
的图像放大到
640*48
0
。
2
、
VGA
显示控制模块
对于普通的
VGA
显示器,其引线共含
5
个信号,即三基色信号
R G B;
行同
步信号
HS
和场同步信号
VS
。
图
2
显示器扫描方式分为逐行扫描和隔行扫描:
< br>逐行扫描是扫描从屏幕左上角一点开
始,从左像右逐点扫描,每扫描完一行
,
电子束回到屏幕的左边下一行的起始位
置,
在这期间,
CRT
对电子束进行消隐,每行结束时,用行同步信
号进行同步;
当扫描完所有的行,
形成一帧,
< br>用场同步信号进行场同步,
并使扫描回到屏幕左
上方,同
时进行场消隐
,
开始下一帧。隔行扫描是指电子束扫描时每隔一
行扫一
线,
完成一屏后在返回来扫描剩下的线,
隔行扫描的显示器闪烁的厉害,
会让使
用者的眼睛疲劳
。
完成一行扫描的时间称为水平扫描时间,
< br>其倒数称为行频率;
完成一帧
(整
屏)扫描的时间称为垂直扫描时间,其倒数称为场频率,即刷新一屏的频率,常
见的有
60Hz
,
75Hz
< br>等等。标准的
VGA
显示的场频
60Hz,
行频
31.5KHz
。
p>
行场消隐信号
:
是针对老式显像管的成像扫描电路而言的。电子枪所发出的
电子束从屏幕的左上角开始向
右扫描,
一行扫完需将电子束从右边移回到左边以
- 3 -
便扫描第二行。
在移动期间就必须有
一个信号加到电路上,
使得电子束不能发出。
不然这个回扫线会
破坏屏幕图像的。
这个阻止回扫线产生的信号就叫作消隐信号
,
场信号的消隐也是一个道理。
显示带
宽
:
带宽指的显示器可以处理的频率范围。如果是
60Hz
刷新频率的
VGA,
其带宽达
640x480x60=18.4MHz,70Hz
的刷新频率
1024x768
分辨率的
SVGA,
其带宽达
1024x768x70=55.1MHz
。
时钟频率:以
640x480@59.94Hz(60Hz)
为例,每场对应
525
个行周期
(525=10+2+480+33),<
/p>
其中
480
为显示行。每场有场同步信号
,
该脉冲宽度为
2
个
行周期的负脉冲,
每显示行包括
800
点时钟
,
其中
< br>640
点为有效显示区
,
每一行
有
一个行同步信号,该脉冲宽度为
96
个点时钟。由此可知:行频为
525*59.94=31469Hz,
< br>需要点时钟频率:
525*800*59.94
约
25MHz
逐行扫描轨迹如下图:
图
3
VGA
的工业标准
:
VESA
中定义行时序和场时序都需要同步脉冲(
Sync
a
)、显示后沿(
Back
porch
b
)、显示时序段(
Display
interval
c
)和显示前沿(
Front
porch
d
)四部分。
VGA
工业标准显示模式要求:行同步,场同步都为负极性,即同步脉冲要
求是负
脉冲。
由
VGA
的行时序可知:没一行都有一个负极性行同步脉冲(
Sync
a
),是数
据行的结束标志
,
同时也是下一行的开始标志。
在同步脉冲之后为显示后沿
p>
(
Back
porch
b
),在显示时序段(
Display interval c
)显示器为亮的过程,
RGB
数
据驱动一行上的每一个像素点,
从而显示一行。
在一行的最后为显示前沿
(
Front
porch
d
)。在显示时间段(
Display interval c
)之外没有图像投射到屏幕是
插入消隐信号。
< br>同步脉冲
(Sync
a)
、<
/p>
显示后沿
(
Back
porch
b
)
和显示前沿
(
Front
porch
d
)都是在行消隐间隔内
(Horizontal
Blanking Interval)
,当消隐有效
时,
p>
RGB
信号无效,屏幕不显示数据。
- 4 -
VGA
的场时序与行时序基本一样,每一帧的负极性脉冲(
Sync
a
)是一帧的
结束标志,同时也是下一帧的开始标志。
而显示数据是一帧的所有行数据。
图
4
p>
上图中的时间段如下:
这四个时期定义如下:
图
5
这八个时期定义如下:
A~B
:行消隐期
即同步,相当于还原扫描坐标吧
B~C
:行消隐后肩
相当于准备开始扫描吧
C~D
:行显示期
扫描中,数据有效区域
D~E
:行消隐前肩
完成扫描,相当于准备同步
O~P
:场消隐期
即同步,相当于还原扫描坐标吧
P~Q
:场消隐后肩
相当于准备开始扫描吧
Q~R
:场显示期
扫描中,数据有效区域
R~S
:场消隐前肩
完成扫描,相当于准备同步
以下是行扫描,场扫描
HS
,
VS
时序图:
- 5 -
图
6
如上图所示:
VGA
一直在扫描,每一场的扫描包括了若干行扫描,反复循
环。且在
640*480@60Hz
的标准下,每秒需要输出
25.175M
像素,即每秒
输出
p>
31469
行,也即每秒输出
60
张图。其工业标准如下图所示:
图
7
此部分代码见附录。原理图如下:
图
8
-
6 -
3
、
数据存储模块
数据存储模块调用
p>
LPM_ROM
模块。具体设置如下:
图
9 <
/p>
该模块用于存储图像数据。数据位宽为
3
,地址线为
32768.
原理图如下:
图
10
存储与该
ROM
的图像数据原为
BMP
格式,为使其可以存储于
ROM
内部,需
要使用软件将信息转换。本实验使用
3
位数据存储颜色信息,因此仅能显示
8
中颜色,具体对应关系如下表所示:
表格
1
R
0
0
0
0
1
1
1
G
0
0
1
1
0
0
1
B
0
1
0
1
0
1
0
- 7 -
颜色
黑
蓝
绿
青
红
品
黄
-
-
-
-
-
-
-
-
-
上一篇:鸡蛋的胜利
下一篇:汽车制造中冲压工艺发展研讨(中英文翻译)