VGA显示控制

合集下载

实验五vga图显示控制

实验五vga图显示控制

实验五 VGA图像显示控制一实验目的1.进一步掌握VGA显示控制的设计原理。

2.了解图像的存储和读取方法。

3.进一步掌握4×4键盘或PS/2键盘接口电路设计方法。

4.掌握状态机设计复杂控制电路的基本方法。

二硬件需求1.EDA/SOPC实验箱一台。

三实验原理VGA图像显示控制利用实验三中学习的《VGA显示控制模块》显示存储于ROM中的图像数据。

要显示的图像是四块64*64像素大小的彩色图片,通过键盘控制可以选择不同的图片显示。

图像可以在屏幕上移动(水平和垂直方向每帧分别移动“H_Step”点和“V_Step”点),通过键盘改变“H_Step”和“V_Step”的值即可改变其移动速度和方向。

图像碰到屏幕边沿会反弹回去。

如图5.1所示H_StepV_Step图5.1 VGA图像显示控制示意图实验中要用到4×4键盘、VGA显示控制、ROM等模块,在《实验三常用模块电路的设计》中已经讲述,可以直接使用已做好的模块(可能需要修改部分代码)。

键盘也可以使用PS/2接口键盘,这样可以输入更多的字符。

四实验内容1、图5.2是整个设计的顶层电路。

图5.2 VGA图像显示控制顶层电路图2、实验三中学习的几个模块①“Read_Keyboard”模块与实验三中的4×4键盘模块一致;②四个ROM模块使用宏功能模块实现,并设置其内存初始化文件分别为“FBB.mif”、“dog.mif”、“cat.mif”、“flower.mif”,如图5.3所示。

当然也可以用其他图片(大小为64*64)使用“BmpToMif”软件生成对应的“mif”文件,如图5.4所示。

图5.3 内存初始化文件设置图5.4 获取内存初始化文件(mif文件)③“VGA”模块与实验三中基本一致,只需要在端口中屏蔽“key”端口,并加入“imag_rgb: in std_logic_vector(2 downto 0);”用于从外部输入图像数据。

VGA图像显示控制器设计报告

VGA图像显示控制器设计报告

摘要本实验报告为VGA显示控制器设计报告。

实验设计了基于VHDL描述的VGA显示控制器,通过FPGA控制CRT显示器显示色彩和图形。

完成的功能包括64种纯色的显示、横向和纵向彩色条幅的显示以及正方形色块的运动与控制。

实验的重心放在了显示控制器的系统层面的设计,采用了自顶向下的思路进行设计,系统的核心为有限状态机。

报告中给出了完整的设计思路和过程,并将系统分模块进行了详细的设计,给出了VHDL语言描述。

完成了状态机和核心模块以及系统整体的仿真验证。

最终下载到实验板上测试通过。

关键词:FPGA;VHDL;VGA显示控制;状态机第一部分任务要求 (1)1.1课题要求 (1)1.2设计目标 (1)第二部分系统设计 (2)2.1设计思路 (2)2.2系统结构设计 (4)2.2.1系统结构框图 (4)2.2.2系统逻辑功能划分 (4)2.2.3层次模块划分 (5)2.2.4模块设计图 (8)2.2.5控制器设计 (8)2.2.6状态机设计 (10)2.2.7基本模式设计 (10)2.2.8用户模式设计 (11)2.3系统硬件语言描述 (14)2.3.1VHDL描述思路 (14)2.3.2总体电路的描述 (14)2.3.3分块电路的描述 (18)2.4系统仿真验证 (31)第三部分结果与分析 (35)3.1实现功能说明 (35)3.2器件资源分析 (36)3.3VHDL设计优化 (38)3.4故障和问题分析 (40)第四部分总结与结论 (41)4.1实验结论 (41)4.2总结体会 (41)第五部分附录部分 (43)5.1元器件和仪表清单 (43)5.2VHDL源代码 (43)5.3电路图 (59)5.4参考文献 (67)第一部分任务要求1.1课题要求设计一个 VGA 图像显示控制器。

1.显示模式为 640×480×60Hz 模式;2.用拨码开关控制 R、G、B(每个2 位),使显示器可以显示64 种纯色;3.在显示器上显示横向彩条信号(至少 6 种颜色);4.在显示器上显示纵向彩条信号(至少 8 种颜色);5.在显示器上显示自行设定的图形、图像等。

VGA 图像显示控制器设计报告

VGA 图像显示控制器设计报告
D~E:行消隐前肩完成扫描,相当于准备同步
O~P:场消隐期即同步,相当于还原扫描坐标吧
P~Q:场消隐后肩相当于准备开始扫描吧
Q~R:场显示期扫描中,数据有效区域
R~S:场消隐前肩完成扫描,相当于准备同步
以下是行扫描,场扫描HS,VS时序图:
图6
如上图所示:VGA一直在扫描,每一场的扫描包括了若干行扫描,反复循环。且在640*480@60Hz的标准下,每秒需要输出25.175M像素,即每秒输出31469行,也即每秒输出60张图。其工业标准如下图所示:
图7
此部分代码见附录。原理图如下:
图8
3、
数据存储模块调用LPM_ROM模块。具体设置如下:
图9
该模块用于存储图像数据。数据位宽为3,地址线为32768.
原理图如下:
图10
存储与该ROM的图像数据原为BMP格式,为使其可以存储于ROM内部,需要使用软件将信息转换。本实验使用3位数据存储颜色信息,因此仅能显示8中颜色,具体对应关系如下表所示:
显示带宽:带宽指的显示器可以处理的频率范围。如果是60Hz刷新频率的VGA,其带宽达640x480x60=18.4MHz,70Hz的刷新频率1024x768分辨率的SVGA,其带宽达1024x768x70=55.1MHz。
时钟频率:以640x480@59.94Hz(60Hz)为例,每场对应525个行周期(525=10+2+480+33),其中480为显示行。每场有场同步信号,该脉冲宽度为2个行周期的负脉冲,每显示行包括800点时钟,其中640点为有效显示区,每一行有一个行同步信号,该脉冲宽度为96个点时钟。由此可知:行频为525*59.94=31469Hz,需要点时钟频率:525*800*59.94约25MHz

VGA简单图像显示控制模块设计

VGA简单图像显示控制模块设计

VGA简单图像显示控制模块设计一、实验目的随着数字图像处理的应用领域的不断扩大,其实时处理技术成为研究的热点。

EDA (电子设计自动化)技术的迅猛发展为数字图像实时处理技术提供了硬件基础。

其中FPGA 的特点适用于进行一些基于像素级的图像处理。

LCD 和CRT 显示器作为一种通用型显示设备,如今已经广泛应用于工作和生活中。

与嵌入式系统中常用的显示器件相比,它具有显示面积大、色彩丰富、承载信息量大、接口简单等优点,如果将其应用到嵌入式系统中,可以显著提升产品的视觉效果。

为此,尝试将VGA 显示的控制转化到FPGA 来完成实现。

利用可编程器件CPLD/FPGA实现VGA彩色显示控制器在工业现场中有许多实际应用。

以硬件描述语言VHDL对可编程器件进行功能模块设计、仿真综合,可实现VGA显示控制器显示各种图形、图像、文字,并实现了动画效果。

二、实验概要1、VGA输出利用FPGA 设计一个类似点阵LCD 显示的VGA 显示控制器,可实现文字及简单的图表显示。

工作时只需将要显示内容转换成对应字模送入FPGA,即可实现相应内容的显示。

2、LCD1602显示显示VGA图像输出信息。

3、按键控制选择要显示的图片或内容等等。

4、声光提示LED与蜂鸣器,用于警告提示或其他功能标识。

5、 VGA 接口及设计参数VGA接口是与显示器进行通信的唯一接口。

通过CPLD/FPGA器件对RGB信号、行同步信号、场同步信号等信号的控制,并参照有关标准,可以实现对VGA显示器的控制。

由此可见,了解接口标准,控制时序和设定恰当的参数是系统设计的关键。

参照VGA主要参数的工业标准,像素输出频率为25.175MHz;行频(线频率)为31.469KHz;场频(刷新率)为59.94Hz。

参数设计原理以及行同步信号(Ts)与显示信号(Tdis)的关系如图1所示。

6、 VGA 图像控制器的设计方案VGA图像控制器是一个较大的数字系统。

采用模块化设计原则,借鉴自顶而下的程序设计思想,进行功能分离并按层次设计。

vga图像显示控制

vga图像显示控制

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 三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。

VGA显示控制_常熟理工学院

VGA显示控制_常熟理工学院

课程设计报告课程EDA课程设计题目VGA显示控制院系物理与电子工程学院年级2011级专业电子科学与技术班级电科112学号050211202050211207050211208050211210学生姓名陈启、李伟阳、李钟奇、刘贵晶指导教师张惠国设计时间目录第1章绪论 (1)1.1EDA技术的发展 (1)1.2课程设计的任务 (2)第2章课题背景 (2)2.1选题背景 (2)2.2国内外文献综述 (3)2.2.1显示技术发展史 (3)2.2.2各种显示器的显示原理 (3)2.2.3显示标准的发展 (6)2.2.4VGA概述及其接口 (7)第3章VGA显示控制的相关理论 (9)3.1VGA显示控制 (9)3.2RGB颜色模型 (11)第4章VGA显示控制器的VHDL设计 (11)4.1显示控制器的整体设计 (11)4.2彩条信号发生器设计 (12)第5章VGA实验实现的结果 (15)5.1VGA显示输出 (15)5.1.1VGA显示的竖直彩条信号 (15)5.1.2VGA显示的横向彩条信号 (15)参考文献 (16)总结体会 (16)第1章绪论1.1EDA技术的发展我们已经进入数字化和信息化的时代,其特点就是各种数字产品的广泛应用。

现代数字产品在性能提高复杂度增大的同时,更新换代的速度也越来越快,实现这种进步的因素在于芯片制造技术和设计技术的进步。

前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管。

后者的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD 通用软件包。

在现代数字系统的设计中,EDA技术已成为一种普遍的工具。

对设计者而言,熟练的掌握EDA技术,可以极大的提高工作效率,起到事半功倍的效果。

无论是设计集成电路还是普通设计的电子线路,没有EDA工具的支持是难以完成的。

EDA技术的使用包括电子工程师进行电子系统的开发的全过程,以及进行开发设计涉及的各个方面。

VGA显示控制器设计——功能设计

VGA显示控制器设计——功能设计

VGA显示控制器设计主要功能及技术指标:1 可实现系统复位和清零,复位后屏幕显示为黑色。

2 支持多种简单彩色背景更换,利用拨码开关,可以更换背景。

3 实现在背景上显示字符串功能4 条件允许的情况下可以支持字符串以一定的路径循环展示的功能。

设计目标:1 设置复位和清零的按键,复位后屏幕显示黑色,清零后,屏幕不显示。

2 背景颜色:纯色显示,彩色条纹显示,文字显示;(三种模式);设置三个开关,分别控制三种显示模式。

3 设置拨码开关,用来切换屏幕背景的颜色。

纯色显示:拨码开关控制屏幕背景的颜色;显示8种颜色彩色条纹显示:拨码开关控制彩色条纹的形式;横状条纹,竖状条纹;文字显示:拨码开关控制文字显示形式;A 屏幕中心显示不动B 左右平移运动C 上下平移运动4字符显示文字显示3种子模式:1)子模式1是沿固定轨迹运动模式,固定图形沿水平方向运动,行运动到边界后折回到下一行继续水平运动;2)子模式2是反弹球模式,固定图形在矩形屏幕做内直线运动,到边界后沿反射角方向反弹,周而复始;3)子模式3是受控运动模式,使用上下左右4个按键控制固定图形在屏幕内的运动方向;基本设计思路:1 根据功能选择硬件电路的设计和选择。

2 将功能分为各个模块,编程实现各部分的功能。

3 下载仿真验证。

主要问题:1 VGA显示器的选择 CRT LED LCD(工作原理和显示方式不同,但控制信号和控制方式是相同的。

)芯片选择分屏显示技术、矩阵切换技术2 模块划分分频模块显示模块控制模块字符编码模块设计思路:1 系统功能分析和描述2 系统层次模块划分3 硬件语言描述4 仿真验证功能状态设计三种显示模式:Sw1-sw0 控制三种模式的切换s0 s1 s21 纯色//8种纯色显示:红绿青蓝紫黄白黑Sw7-sw2 每两位分别控制RGB显示64种纯色拨动开关更换颜色2 彩色条纹横条纹和竖条纹条纹颜色:红绿青蓝紫黄白黑Sw8拨动开关控制条纹样式的显示状态us0 us13 文字静止显示上下滚动左右滚动Sw9 sw10 拨动开关控制文字显示样式状态 usw0 usw1 usw2。

VHDL语言VGA显示控制

VHDL语言VGA显示控制

EDA大作业实验报告基于VHDL语言的VGA显示与控制1111000079 田宇1111000081 王坤目录1.VGA显示原理 (3)1. 1 VGA逐行扫描显示 (3)1. 2 VGA时序分析 (3)2.时序部分的代码实现 (3)2.1时序部分主要代码 (3)2.2时序部分的实现 (4)2.2. 1 行时序 (4)2.2.2场时序 (5)3.控制部分的代码实现 (5)3.1控制部分主要代码 (5)3.2控制部分的实现 (12)3.2.1彩条与彩格 (12)3.2.2字体显示 (12)4.硬件平台实验 (12)1- VGA显示原理1.1 VGA逐行扫描显示逐行扫描是扫描从屏幕左上角一点开始,从左像右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行同步:当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。

1.2 VGA时序分析9.水-麻------------ f荷同步r_ IVGA的行时序\同歩1同步~1牀冲8睐冲.| ------场消(ft何隔VGA的场时序0-1)2.时序部分的代码实现2.1时序部分主要代码if eve nt and ck=,T then H<=H+1 oif H>15 and H<110 then Hs<=> T。

elsif H>=110 then Hs<= 0J。

if H>=160 and H<800 then Hen<=, T。

elsif H=800 then Hen<=,O'。

H<=Ooend ifoend ifoend ifoif Hs' event and Hs=,T then V<=V+1oif V>11 and V<14 then Vs<=, 1'。

VGA彩条信号显示控制器设计

VGA彩条信号显示控制器设计

一、课程设计内容1、使用Verilog语言和Modelsim仿真器完成可显示横彩条、竖彩条、棋盘格相间的VGA控制器的设计和验证2、设计并验证可显示英语单词”HIT”的VGA控制器3、使用Quartus II和SOPC实验箱验证设计的正确性4、Verilog代码要符合微电子中心编码标准二、FPGA原理CPLD、FPGA是在PAL、GAL等基础上发展起来的一种具有丰富的可编程I/O 引脚、逻辑宏单元、门电路以及RAM空间的可编程逻辑器件,几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。

CPLD 的设计是基于乘积项选择矩阵来实现的,而FPGA基于查找表来设计的。

查找表就是实现将输入信号的各种组合功能以一定的次序写入RAM中,然后在输入信号的作用下,输出特定的函数运算结果。

其结构图如图1所示:图1. FPGA查找表单元一个N输入查找表(LUT,Look Up Table)可以实现N个输入变量的任何逻辑功能,如N输入“与”、N输入“异或”等。

输入多于N个的函数、方程必须分开用几个查找表(LUT)实现(如图2所示)。

图2 FPGA查找表单元内部结构该系统设计中,FPGA芯片用的是ALTERA公司的EP1K30QC208-2,它的系统结构如图3所示。

它由若干个逻辑单元和中央布线池加I/O端口构成图3 EP1K30QC208内部结构三、VGA接口VGA的全称为Video Graphic Array,即显示绘图阵列。

在PC行业发展的初期,VGA以其支持在640X480的较高分辨率下同时显示16种色彩或256种灰度,同时在320X240分辨率下可以同时显示256种颜色的良好特性得到广泛支持。

后来,厂商们纷纷在VGA基础上加以扩充,如将显存提高至1M并使其支持更高分辨率如800X600或1024X768,这些扩充的模式就称之为VESA(Video Electronics Standards Association,视频电子标准协会)的Super VGA模式,简称SVGA,现在的显卡和显示器都支持SVGA模式。

VGA控制显示实验说明文档

VGA控制显示实验说明文档

VGA控制显示实验本实验是在VGA基本控制之上的更进一步的对VGA显示进行控制的。

1.VGA显示原理常见的彩色显示器一般由CRT(阴极射线管)构成,彩色是由R(红),G(绿),B(蓝)3基色组成。

显示采用逐行扫描的方式,阴极射线枪发出的电子束打在涂有荧光粉的荧光屏上,产生RGB三色基,最后合成一个彩色图像。

从屏幕的左上方开始自左向右的扫描,每扫完一行电子束回到下一行的最左端,每行结束后电子枪回扫的过程中进行消隐。

然后从新开始行扫描,消隐,直到扫描到屏幕的右下方,电子书回到屏幕的左上方重新开始新的图像扫描,并且在回到屏幕的左上方过程中进行消隐,在消隐的过程中不发射电子束。

每一行扫描结束时,用HS(行同步)信号进行同步;扫描完所有的行后用VS(场同步)信号进行同步。

2.VGA实验功能说明本实验设计是基于FPGA的VGA接口控制器,通过对FPGA硬件编程实现显示驱动,通过VGA接口在显示器上显示彩条,圆环和动态方块信号。

实现显示驱动需要5个信号:R,G,B,hsyncb,vsyncb,其中R,G,B分别为红,绿,蓝颜色的强度信号,hsyncb和vsyncb 为行同步和场同步信号,均为模拟信号。

由实验板将FPGA输出直接与VGA接口相连,中间没有D/A转换电路,因此这五个信号实际上均为数字信号。

hsyncb和vsyncb可用数字信号等效;R,G,B分别用3位数字信号表示。

用于显示驱动的行,场同步信号利用实验板的50MHz系统时钟产生。

VGA接口控制器由三个模块组成,即产生行场同步信号和消隐信号的VGASig模块,产生内容和位置信息的ColorMap模块,产生动态时序信号的count16以及顶层模块VGACore,模块之间的信号连接如图:本设计的整体思想是:首先由系统时钟二分频后作为VGASig模块的时钟输入信号;VGASig 模块的hsyncb信号和vsyncb信号形成顶层模块的hsyncb(行同步)和vsyncb(场同步)信号;VGASig模块的hcnt和vcnt信号作为ColorMap模块的地址控制输入,ColorMap模块根据该信号的值输出相应的RGB颜色信息rgbx,rgby,rgbz和rgbw。

清华课件-VGA显示控制器设计

清华课件-VGA显示控制器设计
11
行同步时序关系(参考)
Horizonal pixels(水平像素) 分辨 率 帧频 率 像素 时钟 同步 宽度 (S) 行同 步极 性 活 动 像 素
前沿 (F)
后沿 (B)
扫描 速率
640X 480
60 HZ
25.18 MHZ
16
48
96
31.47 KHZ
-
640
场同步信号
场同步信号与场扫描时序关 系 每帧包含480行数据,这些行 数据在15.25ms时间段内被发 送到显示器。在最后一行数 据发送完毕之后,场同步信 号经过至少0.45ms才可以变 低,并且保持为低64us。在 场同步信号上升沿之后至少 1.02ms,下一帧的第一行数 据才可以发送。所以,一帧 的数据占用16.784ms中的 15.25ms。在剩余的1.534ms 中,显示器保持黑屏(与荧 光粉的发光持续时间有关)。
VGA显示控制器设计
许忠信
1
Outline
VGA接口定义 VGA原理 VGA设计要点
2
VGA接口
VGA是Video Graphics Adapter的缩写, 的缩写, 的缩写 信号类型为模拟类型。 信号类型为模拟类型。
显示卡端的接口为15针母插座 显示卡端的接口为 针母插座: 针母插座
显示器连线端的接口为15针公插座: 显示器连线端的接口为 针公插座: 针公插座
1. 对输入的50MHZ的信号进行二分频,产生一个25MHZ的信号。 2. 根据需要的屏幕像素,产生行同步和场同步的计数矢量。 对于640*480的像素,考虑消隐区,每行像素数0-800,每场行数 0-525。 3. 由行同步和场同步计数矢量产生行同步信号和场同步信号。 行同步:656--752为低电平,其余为高。 场同步:490--492为低电平,其余为高。 4. 色彩输出 色彩输出的范围是在非消隐区内, 在消隐区不要有色彩输出,让R、 G、B信号都为0。 对640*480个像素点的RGB进行赋值,输出不同的图案。 若输出图片,要确定显示输出在屏幕的位置,图片的大小。

VGA彩条信号显示控制电路

VGA彩条信号显示控制电路

摘要本设计是用 FPGA 来实现 VGA 图像控制器,控制显示器显示彩条信号,用VHDL语言,在QuartusI I上实现软件仿真。

本文首先介绍了VGA显示的基本原理,然后提出了一种VGA图像控制器的设计方案,并用VHDL硬件描述语言和原理图输入的方法完成了该方案的设计,通过显示横彩条、竖彩条、棋盘格,验证了VGA_SYNC同步信号功能模块时序的正确性,软件实验环境为 Quartus II 6.0 开发软件。

本系统尝试用FPGA实现 VGA图像显示控制器,这一过程通过编程实现,之后通过软件的测试和仿真,当软件验证无误后完成硬件的下载验证,最终在显示器上实现输出,基本原理就是利用FPGA的可编程原理和VGA的时序控制原理,这在产品开发设计中有许多实际应用。

例如显示器,电视等的维修,可以期望采用FPGA设计的VGA接口可以将要显示的数据直接送到显示器,就可以可靠的找到故障的大致原因等。

从而省掉每次都要接信号源的麻烦,同时也节约了成本。

节省了计算机的处理过程,加快了数据的处理速度,节约了硬件成本。

同时亦可将其作为信号源,应用于电视机或计算机等彩色显示器的电路开发,方便彩色显示器驱动控制电路的调试。

[关键词]: VGA ;FPGA ;图像控制器AbstractThis design is the use of FPGA to realize VGA image controller, controls the display to display the color signal, using VHDL language, on the QuartusII software simulation. This paper firstly introduces the basic principle of VGA display, and then put forward a kind of VGA image controller design, and use VHDL hardware description language and schematic input method to complete the design, through to display the cross color, vertical striped, checkerboard, verification of the VGA_SYNC function module synchronization signal timing is correct, software test environment for Quartus II 6 software development.The system attempts to use the FPGA achieve VGA image display controller, this process is realized by programming, followed by the software testing and simulation, when the software validation correctly completes the hardware download verification, culminating in the display to achieve output, basic principle is the use of FPGA can weave Cheng Yuanli and VGA to control the timing of this principle, in product in the design of many practical applications. Such displays, television repair, can expect to use FPGA to design VGA interface can display data directly to the display, can reliably find fault causes etc.. In order to save every time the signal source of trouble, but also save the cost. Save a lot of computer process, accelerate the speed of dealing with data, save the cost of hardware. At the same time as the signal source, is applied to the television or computer color display circuit, convenient color display drive control circuit debugging.[Key words]: VGA; FPGA; image controller目录1 绪论.......................................................... -2 -2 设计要求及方案论证............................................ -3 -2.1 设计要求................................................ - 3 -2.2 设计方案................................................ - 3 -3 系统设计...................................................... -4 -3.1 设计原理................................................ - 4 -3.2 程序设计................................................ - 5 -3.2.1时钟部分.......................................... - 5 -3.2.2色彩显示部分...................................... - 5 -3.2.3程序流程图........................................ - 5 - 4系统仿真...................................................... - 5 - 5实验小结...................................................... - 9 - 参考文献....................................................... - 11 - 程序清单....................................................... - 11 -1绪论现如今,随着液晶显示器的出现,越来越多的数字产品开始使用液晶作为显示终端。

VGA显示原理与控制资料讲解

VGA显示原理与控制资料讲解

图6 VGA接口定义图
Planning and task
Establish a powerPC405 system with EDK Write a boot loader program
Write a VGA driver and control program
VGA display success
图2 通用VGA显示卡控制电路
Timing analysis
Vsync : 场同步信号 tWV : 场同步脉冲(宽度为2行) tHV : 场消隐前沿(13行) tVH :场消隐后沿(30行) Hsync : 行同步信号 tWH : 行同步脉冲(96个DCLK) tHC : 行消隐前沿(19个DCLK) tCH : 行消隐后沿(45个DCLK) BLANK : 复合消隐信号(行消隐信号和场消隐信号的逻辑 与,有效显示区域为高电平,无效显示区域为低电平)
此课件下载可自行编辑修改,仅供参考! 感谢您的支持,我们努力做得更好!谢谢
754
658
图4 行同步状态机状态转移图
Timing implementation
场同步状态机有v_video,v_front,v_sync, v_back四 种状态,它根据场行数计数器的计数值来进行 场同步状态机状态转移图
Interface definition
1红基色 red 2 绿基色 green 3 蓝基色 blue 4 地址码 ID Bit 5 自测试 (各家定义不同 ) 6 红地 7 绿地 8 蓝地 9 保留 (各家定义不同 ) 10 数字地 11 地址码 12 地址码 13 行同步 14 场同步 15 地址码 (各家定义不同 )
图3 VGA(640X480,60Hz)图像格式信号时序图

VGA显示控制器

VGA显示控制器

VGA显示控制器摘要前言 3一、课程设计要求和设计目的 41.1 课程设计要求 41.2.课程设计目的 4二、课程设计方案论证和设计原理 42.1.课程设计方案论证 42.2.课程设计原理 42.2.1.VGA扫描原理 42.3.外围电路原理 5三、电路原理分析和系统设计 63.1、系统原理框图 63.1.1.时钟分频模块(PLL) 63.1.2. VGA行列控制模块(VGA) 63.1.3. VGA色彩显示控制模块(R_G_B) 63.2、系统电路Magicsopc实验箱中VGA电路原理图和管脚分配 7四、系统各模块及其工作原理 84.1、系统设计流程 84.2、PLL锁相环模块设计 84.3、VGA控制模块设计 94.3.1. VGA时序分析 94.3.2.显示标准与参数分段 94.3.3. VGA扫描控制流程图 114.3.4. RGB模块设计流程图 124.3.5.顶端模块 12五、编译、仿真以及Magicsopc实验箱实现 135.1.程序编译 135.2.下载试验箱验证 145.3.测试仿真 155.3.1.测试仿真软件Modelsim 155.3.2.仿真结果及分析 155.3.2.1 PLL模块 155.3.2.2 VGA显示控制模块 155.3.2.3 RGB控制模块 16六、实验心得 16七、参考文献 17附件 17VGA模块程序 17RGB模块程序 19TOP顶层模块程序 20测试模块程序 21前言Verilog HDL是目前应用最为广泛的硬件描述语言.Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。

Verilog HDL进行设计最大的优点是其工艺无关性.这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路。

Verilog HDL是一种硬件描述语言为了制作数字电路而用来描述ASICs和FPGA的设计之用。

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

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

EDA大作业实验报告基于VHDL语言的VGA显示与控制1111000079 田宇1111000081 王坤目录1.VGA显示原理 (3)1.1VGA逐行扫描显示 (3)1.2VGA时序分析 (3)2.时序部分的代码实现 (3)2.1 时序部分主要代码 (3)2.2 时序部分的实现 (4)2.2.1 行时序 (4)2.2.2 场时序 (5)3.控制部分的代码实现 (5)3.1 控制部分主要代码 (5)3.2 控制部分的实现 (12)3.2.1彩条与彩格 (12)3.2.2 字体显示 (12)4. 硬件平台实验 (12)1.VGA显示原理1.1VGA逐行扫描显示逐行扫描是扫描从屏幕左上角一点开始,从左像右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。

1.2VGA时序分析(图-1)2.时序部分的代码实现2.1 时序部分主要代码if ck'event and ck='1' then H<=H+1;if H>15 and H<110 then Hs<='1';elsif H>=110 then Hs<='0';if H>=160 and H<800 then Hen<='1';elsif H=800 then Hen<='0';H<=0;end if;end if;end if;if Hs'event and Hs='1' then V<=V+1;if V>11 and V<14 then Vs<='1';elsif V>=14 then Vs<='0';if V>=45 and V<525 then Ven<='1';elsif V=525 then Ven<='0';V<=0;end if;end if;end if;此部分代码为时序部分主要代码。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA 的VGA显示控制摘要VGA(Video Graphics Array)即视频图形阵列,是IBM公司1987年推出的一种传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛应用。

本次课程设计是基于FPGA和主芯片为 EP4CE30F23C8N的ALTER公司的开发板Cyclone IV来实现的。

数字图像信息在VGA接口显示器正确、完整地显示,涉及到时序的构建和数字图像信息的模拟化两方面,提出一种能够广泛应用的VGA显示接口方案,详细阐述了数字图像数据DA转化并输出到VGA接口显示器显示的方法,其中包括接口的硬件设计、视频DA转换器的使用方法、通过FPGA构造VGA时序信号的方法等等。

方案可以应用于各种仪器,数字视频系统、高分辨率的彩色图片图像处理、视频信号再现等。

课设主要用到的芯片是ADV7123,它是一款高速、高精度数模转换芯片。

拥有三路十位D/A转换器,能够将代表颜色的数据锁存到数据寄存器中,然后通过D/A 转换器转换成模拟信号输出,得到我们要的色彩。

VGA显示的硬件设计和原理1.1 FPGA主芯片课程设计所用开发板的主芯片是EP4CE30F23C8N——Cyclone IV,其由Altera公司开发,值得注意的是该开发板所支持的QUARTUS II的版本较高,并且11.0的版本较12.0的版本编译好的程序更好下载。

图-11.2 ADV7123实现VGA的控制显示主要用到的芯片就是ADV7123,ADV7123由完全独立的三个I0位高速D/A转换器组成,RGB(红绿蓝)视频数据分别从R9~R0、G9~G0、B9~B0输入,在时钟CLOCK的上升沿锁存到数据寄存器中,然后经告诉D/A转换器转换成模拟信号。

三个独立的视频D/A转换器都是电流型输出,可以接成差分输出,也可以接成单端输出。

DE2-115上按单端输出,在模拟输出端用75欧姆电阻接地,以满足工业标准。

低电平有效的BLANK信号为复合消隐信号,当BLANK为低电平时,模拟视频输出消隐电平,此时从R9~R0,G9~G0,B9~B0输入的所有数据被忽略。

BLANK和SYNC都是在CLOCK 的上升沿被锁存的。

图-2是ADV7123的功能原理图:图-2图-3是它的引脚图:图-3引脚功能描述:G0-G9,B0-B9,R0-R9:像素数据输入端口,上升沿来临锁存数据;BLANK:复合空白信号控制输入;CLOCK:65MHz时钟输入端口;IOB,IOG,IOR:像素实时输出端口;SYNC:复合同步控制输入。

图-4是ADV7123 的时序图:图-4开发板与显示器的端口连接:连接头如图-5所示,15个管脚里面5个是最重要的,他们包括三个基本红、绿、蓝三条基本色彩线和水平与垂直两条控制线,有这5条控制线,我们可以在屏幕上显示多种颜色,在开发板上,红、绿、蓝三条基本色彩每条都由10条输入线控制,课设中用到其中8条,可以实现显示真彩色BMP图像图-5图-6是原理图:图-62.同步时序的实现2.1 VGA时序原理我们常把要显示的数据如图像处理结果存放到存储器里,如果要把显示存储器里的图像在VGA接口显示器显示,大多情况下,扫描时序是需要我们构造的。

以1024@768,59.94 Hz(60 Hz)为例。

VGA工业标准规定,如图2,每场信号对应806个行周期,其中768行为图像显示行,每场有场同步信号,该脉冲宽度为6个行周期的负脉冲;每显示行包括1344点时钟,其中1024点为有效显示区,每行有一个行同步信号负脉冲,该脉冲宽度为136个点时钟。

这样我们可以知道,行频为1344@59.94 Hz即80559 Hz,需要的点时钟频率为:806@1344@59.94 Hz约65 MHz。

图7 、8行场同步信号时序图图-7图-8同步信号,如场同步、行同步、符合同步信号可以在FPGA里构建。

选取65 MHz 的晶振作为点时钟CLOCK输入,将CLOCK输入到模等于1344的像素脉冲计数器中,当像素脉冲计数在0到136脉冲间输出低电平,其它输出高电平,以此作为行同步信号Hsys;然后以vga_hs行节拍为单位进行计数,当计到0到6时输出低电平,其它输出高电平,当计了806个行同步信号时,计数器清0,以此作为场同步信号vga_vs。

根据图-9,可以控制在屏幕上显示不同的图形,要注意行消隐和场消隐时间。

图-9其中行时序和场时序都要产生同步脉冲(sync a)、显示后沿(back porch b)、显示时序段(displayinterval c)和显示前沿4个部分,各部分所占的时间如上图所示。

2.2软件实现(1)产生hs行同步脉冲,宽度136pix;if(hcnt[10:8]==3'd0&&(hcnt[7]==1'b0||hcnt[7:4]==4'd0)) //-- 0~135beginvga_hs <= 1'b0;endelsebeginvga_hs <= 1'b1;end(2)产生vs场同步脉冲, 宽度 6个vgahs宽度;if(vcnt[9:3]==7'd0&&vcnt[2:1]!=2'b11) //-- 0~5beginvga_vs <= 1'b0;endelsebeginvga_vs <= 1'b1;end3.总体设计总体设计一共包含4个模块,包含2个分频模块,1个计数模块,1个控制显示模块,具体设计如下:(1)由于系统时钟为50MHz,但是要65MHz的输入时钟,可以通过锁相环,比例为13/10,具体方法:Tools->MagaWizard Plug-In Manager->Create a new custom megafuctionvariation->ALTPLL->Verilog HDL另外还要设计一个50M分频来控制每幅画面显示的时间,代码如下:module div50M(clkin,clkout);input clkin;output clkout;reg clkout;reg [25:0]cnttemp;always @(posedge clkin )beginif(cnttemp==49999999)begincnttemp <= 1'b0;endelsebeginif(cnttemp==25000000)beginclkout <= 1'b1;endelsebeginclkout <= 1'b0;endcnttemp <= cnttemp+1'b1;endend(2)计数模块长度为3位,从000到111一共8种情况。

连接50M分频,计数器左边接50M分频,每当上升沿来临时,计数器加1,通过输出值得不同展现不同画面。

(3)控制模块包括时序的控制以及同步、显示的时间的设计,同时为了得到不同的颜色,根据不同颜色相加可以配成第三种颜色,下图为配色方案,具体可以通过程序来实现,因为分别采用的是8位来表示三基色,每一种三基色都有1到255种情况,因此可以配出多种颜色,图-10为配色方案:图-10设计好这四个模块,画出原理图-11:图-114.程序调试将画好的原理图分配好引脚,进行编译,以下是我在调试中遇到的问题,以及解决方法。

(1)刚开始会出现很多语法错误的问题,这需要认真检查源程序,比如有些地方一句话结束,没有加分号,还有的符号用的中文符号,也会出编译错误;有的地方如一个if必须对应一个else,一个begin对应一个end,这些基本的错误要认真检查。

(2)行同步与场同步的时间要严格控制,如果控制不当有可能会损坏显示器,这个要根据图-9,找到1024*768@60的相应时序设计。

(3)关于计数参数vga_en的case语句,一个要注意语法问题,另外就是通过case语句控制显示不同画面,如显示横条或是竖条怎么设计,要明白这个语句的作用是控制显示的位置。

这里要注意的是通过hcnt和vcnt控制显示那些行和哪些列,只要该行不显示,则不管它对应的列是显示还是不显示,该行都不显示。

(4)关于行像素点计数参数hpixcnt的case语句,hpixcnt是一个位宽为10位的矢量,当取最高位为0时在行像素点0到512显示一种颜色,取1时在行像素点513到1024可以显示另一种颜色,当取高两位时有四种选择,高三位则有8中颜色选择。

显示的部分图像如下:5.课设总结经过两周的课设,使我对FPGA有了更深刻的理解,从选择课题,到着手设计以及出现效果,这过程中需要不断改进,不断获取信息,深刻理解其工作原理,才能找到实现的方法。

刚开始,对视频显示没有多少了解,通过看芯片资料,网上查阅论文资料,才慢慢对其有一定了解,然后是研究其显示原理,以及时序的相关问题。

由于对verilog语言不是很了解,还需要了解其基本语法,掌握基本的分频、计数模块的设计方法。

但是这些还不够,最最重要的的是控制模块,这个过程我借鉴了一些其它资源,研究它的原理、作用。

然后通过不断地调试得到自己想要的效果。

在调试的过程中,首先就是要小心,避免一些基本语法的错误,然后就是要根据时序的关系,控制显示输出,不仅要考虑到显示的的位置,显示的色彩,还要控制显示的时间等问题。

在今后的学习中,要谨慎治学,多思考,多翻阅书籍。

遇到不懂的问题应该多渠道查找信息,平时多练习,培养研究能力,只有这样才能在今后的学习中不断进步。

这次课程设计也是汲取经验的过程,通过不断积累经验,才能更好地解决问题。

6.主要程序清单`timescale 1ns / 1psmodule vga_top(clk65M,//输入时钟rstn, //复位vga_en, //0到7计数,显示8帧不同画面vga_hs, //行同步信号vga_vs, //场同步信号vga_r,vga_g,vga_b,vga_blk, //复合空白信号vga_syn, //复合同步信号控制输出vga_clk //输出时钟);input c lk65M;input r stn;input [2:0]vga_en;output vga_hs;output vga_vs;output [7:0]vga_r; //要显示真彩色BMP图像,r,g,b三个分量各需要8位 output [7:0]vga_g;output [7:0]vga_b;output vga_blk;output vga_syn;output vga_clk;reg vga_vs;reg[7:0] vga_r; //声明一个8位的矢量寄存器变量reg[7:0] vga_g;reg[7:0] vga_b;wire vga_blk;wire vga_syn;wire vga_clk;reg [10:0]hcnt; //声明一个11位的矢量寄存器变量,行的像素点计数reg [9:0]vcnt; //行计数reg vgahs1;reg hdisply; //控制行各点的显示reg vdisply; //控制行的显示reg frminit;assign vga_clk = clk65M;assign vga_syn = 1'b0;//--assign vga_blk = vga_vs&vga_hs;assign vga_blk = vdisply&hdisply; //将vdisplay和hdisplay相与赋给vga_blk always @(posedge clk65M or negedge rstn)beginif(!rstn)//rstn低电平复位,重新扫描beginhcnt <= 11'd0;vcnt <= 10'd0;vga_hs <= 1'b1;vga_vs <= 1'b1;vgahs1 <= 1'b0;hdisply <= 1'b0;vdisply <= 1'b0;frminit <= 1'b0;elsebeginif(hcnt==11'd1343) // 1344pix;有效显示宽度为1024pix beginhcnt <= 11'd0;endelsebeginhcnt <= hcnt + 1'b1;endif(hcnt[10:8]==3'd0&&(hcnt[7]==1'b0||hcnt[7:4]==4'd0)) //-- 0~135beginvga_hs <= 1'b0; //-- 产生hs行同步脉冲,宽度136pix;endelsebeginvga_hs <= 1'b1;endcase(vga_en)3'b000:beginif((hcnt[10:0]>295)&&(hcnt[10:0]<1320))beginhdisply <= 1'b1;endelsebeginhdisply <= 1'b0;if((vcnt[9:0]>28)&&(vcnt<803))beginvdisply <= 1'b1;endelsebeginvdisply <= 1'b0;endend3'b001:beginif((hcnt[10:0]>295)&&(hcnt[10:0]<1320)) beginhdisply <= 1'b1;endelsebeginhdisply <= 1'b0;endif((vcnt[9:0]>28)&&(vcnt<413))beginvdisply <= 1'b1;endelsebeginvdisply <= 1'b0;endend3'b010:if((hcnt[10:0]>295)&&(hcnt[10:0]<1320)) beginhdisply <= 1'b1;endelsebeginhdisply <= 1'b0;endif((vcnt[9:0]>28)&&(vcnt<803))beginvdisply <= 1'b1;endelsebeginvdisply <= 1'b0;endend3'b011:beginif((hcnt[10:0]>295)&&(hcnt[10:0]<1320)) beginhdisply <= 1'b1;endelsebeginhdisply <= 1'b0;endif((vcnt[9:0]>28)&&(vcnt<797))beginvdisply <= 1'b1;elsebeginvdisply <= 1'b0;endend3'b100:beginif((hcnt[10:0]>295)&&(hcnt[10:0]<1320)) beginhdisply <= 1'b1;endelsebeginhdisply <= 1'b0;endif((vcnt[9:0]>28)&&(vcnt<803))beginvdisply <= 1'b1;endelsebeginvdisply <= 1'b0;endend3'b101:beginif((hcnt[10:0]>295)&&(hcnt[10:0]<1320)) beginhdisply <= 1'b1;endbeginhdisply <= 1'b0;endif((vcnt[9:0]>220)&&(vcnt<420))beginvdisply <= 1'b1;endelsebeginvdisply <= 1'b0;endend3'b110:beginif((hcnt[10:0]>295)&&(hcnt[10:0]<551)) beginhdisply <= 1'b1;endelsebeginhdisply <= 1'b0;endif((vcnt[9:0]>419)&&(vcnt<611))beginvdisply <= 1'b1;endelsebeginvdisply <= 1'b0;end3'b111:beginif((hcnt[10:0]>807)&&(hcnt[10:0]<1320)) beginhdisply <= 1'b1;endelsebeginhdisply <= 1'b0;endif((vcnt[9:0]>35)&&(vcnt<797))beginvdisply <= 1'b1;endelsebeginvdisply <= 1'b0;endendendcasevgahs1 <= vga_hs;if(vga_hs==1'b0&&vgahs1==1'b1)beginif(vcnt==10'd805)beginvcnt <= 10'd0;frminit <= 1'b1;endelsevcnt <= vcnt + 1'b1;endendelsebeginfrminit <= 1'b0;endif(vcnt[9:3]==7'd0&&vcnt[2:1]!=2'b11)beginvga_vs <= 1'b0;endelsebeginvga_vs <= 1'b1;end endendreg [9:0]hpixcnt;reg [7:0]frmdtmp;always @(posedge clk65M or negedge rstn)beginif(!rstn)beginvga_r <= 8'd0;vga_g <= 8'd0;vga_b <= 8'd0;hpixcnt <= 10'd0;frmdtmp <= 8'd100;endbeginif(hdisply==1'b1)beginhpixcnt <= hpixcnt + 1'b1; endelsebeginhpixcnt <= 10'd0;end if(frminit==1'b1)beginfrmdtmp <= frmdtmp + 1'b1;endcase(vga_en)3'b000:beginvga_r <= 8'd250;vga_g <= 8'd100;vga_b <= 8'd50;end3'b001:begincase(hpixcnt[9])1'd1:beginvga_r <= 8'd100;vga_g <= 8'd250;vga_b <= 8'd0;end1'd0:vga_r <= 8'd100;vga_g <= 8'd250;vga_b <= 8'd200;endendcaseend3'b010:beginvga_r <= 8'd250;vga_g <= 8'd0;vga_b <= 8'd250;end3'b011:begincase(hpixcnt[9:8])2'd0:beginvga_r <= 8'd250;vga_g <= 8'd200;vga_b <= 8'd0;end2'd1:beginvga_r <= 8'd0;vga_g <= 8'd250;vga_b <= 8'd200; end2'd2:beginvga_r <= 8'd200;vga_g <= 8'd0;vga_b <= 8'd250; end2'd3:beginvga_r <= 8'd250;vga_g <= 8'd250;vga_b <= 8'd250; endendcaseend3'b100:begincase(hpixcnt[9:7])3'b000:beginvga_r <= 8'd250;vga_g <= 8'd200;vga_b <= 8'd0;end3'b001:beginvga_r <= 8'd0;vga_g <= 8'd250;vga_b <= 8'd200; end3'b010:beginvga_r <= 8'd200;vga_g <= 8'd0;vga_b <= 8'd250; end3'b011:beginvga_r <= 8'd250;vga_g <= 8'd250;vga_b <= 8'd250; end3'b100:beginvga_r <= 8'd250;vga_g <= 8'd200;vga_b <= 8'd0;end3'b101:beginvga_r <= 8'd0;vga_g <= 8'd250;vga_b <= 8'd200; end3'b110:beginvga_r <= 8'd200;vga_g <= 8'd0;vga_b <= 8'd250; end3'b111:beginvga_r <= 8'd250;vga_g <= 8'd250;vga_b <= 8'd250;endendcaseend3'b101:beginvga_r <= 8'd250;vga_g <= 8'd250;vga_b <= 8'd0;end3'b110:beginvga_r <= 8'd250;vga_g <= 8'd0;vga_b <= 8'd0;end3'b111:beginvga_r <= 8'd250;vga_g <= 8'd100;vga_b <= 8'd50;endendcase endendendmodule26。

相关文档
最新文档