vga图像显示控制
视频控制器 vga兼容
视频控制器 VGA兼容简介视频控制器(Video Controller)是计算机中的一个重要设备,负责管理和控制显示器的显示输出。
VGA(Video Graphics Array)是一种视频接口标准,它通过模拟信号传输视频数据,被广泛应用于计算机的显示输出。
本文将介绍视频控制器 VGA兼容的基本原理、功能和使用方式。
基本原理视频控制器 VGA兼容是一种硬件设备,通常集成在计算机的主板上。
它负责将来自计算机的视频信号转换为VGA接口所能识别的模拟信号,并通过VGA接口连接显示器进行显示。
VGA兼容表示该视频控制器符合VGA接口的标准,能够正常工作并输出兼容VGA接口的视频信号。
VGA接口采用15个针脚连接,包括红、绿、蓝三个颜色信号、水平同步信号和垂直同步信号等。
功能视频控制器 VGA兼容具备以下基本功能:1.显示输出管理:视频控制器负责管理和控制显示输出,将计算机的视频信号转化为显示器所需的信号格式。
2.显示模式设置:视频控制器支持不同的显示模式设置,包括分辨率、刷新率、色彩模式等。
3.显存管理:视频控制器通过显存(显卡内存)存储图像数据,控制显示的内容。
4.图形加速:视频控制器支持硬件加速功能,提升图形绘制和显示的效率。
5.多显示器支持:某些视频控制器还支持多显示器输出,可以同时连接多台显示器进行显示。
除了基本功能,视频控制器 VGA兼容还可以根据厂商和型号的不同而具备一些特殊功能,比如支持高清视频输出、多屏幕拓展等。
使用方式视频控制器 VGA兼容通常在操作系统启动时就会被自动识别和初始化。
在使用计算机时,可以通过以下方式对视频控制器进行设置和管理:1.显示设置:在操作系统的设置界面中,可以设置和调整显示的分辨率、刷新率、色彩模式等参数。
根据实际需求和显示器的性能,选择合适的显示设置。
2.驱动程序:视频控制器需要安装相应的驱动程序,以保证其正常工作和发挥最佳性能。
在操作系统的设备管理器中可以进行驱动程序的安装和更新。
vga 工作原理
vga 工作原理
VGA(Video Graphics Array)是一种图像显示标准,它通过视频控制器将图像信号传输到显示器上。
VGA工作原理涉及到几个关键组件:图像生成器、视频控制器和显示器。
首先,图像生成器是计算机中的一个电路板,负责将计算机内部的图像数据转换成适合显示的模拟信号。
图像生成器接收来自计算机内存的图像数据,并根据特定规则对其进行转换。
通常,图像生成器会将图像数据转换成RGB(红、绿、蓝)模式的模拟信号。
然后,这些模拟信号会通过连接计算机和显示器的VGA线缆传输到视频控制器。
视频控制器是一个电路板,作为计算机和显示器之间的中介,负责从图像生成器接收到的模拟信号,并进行必要的信号增强和处理。
视频控制器将处理后的模拟信号转发给显示器。
显示器上的电子枪通过控制电子束的位置和强度,将接收到的模拟信号转化成可视的图像。
每个像素点的颜色由RGB三种颜色的强度决定,所以电子枪会根据接收到的信号确定每个像素点的颜色。
最后,显示器会将处理后的图像显示在屏幕上。
总结一下,VGA的工作原理涉及到图像生成器、视频控制器和显示器三个主要组件。
图像生成器将计算机内部的图像数据转换成模拟信号,视频控制器负责处理和增强这些模拟信号,
并将其传输到显示器上,显示器则根据接收到的信号将图像显示在屏幕上。
VGA显示控制
基于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欧姆电阻接地,以满足工业标准。
VGA显示控制资料
基于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欧姆电阻接地,以满足工业标准。
VGA 图像显示控制器设计报告
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简单图像显示控制模块设计一、实验目的随着数字图像处理的应用领域的不断扩大,其实时处理技术成为研究的热点。
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显示屏显示采用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生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彩条信号显示控制器设计
一、课程设计内容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显示进行控制的。
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显示原理与控制资料讲解
图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图像显示控制一实验目的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);”用于从外部输入图像数据。
基于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;此部分代码为时序部分主要代码。
标准vga图形配置器
标准vga图形配置器标准VGA图形配置器。
VGA(Video Graphics Array)是一种显示标准,它定义了计算机图形显示的分辨率、颜色深度和刷新频率等参数。
在计算机的图形显示中,VGA扮演着非常重要的角色。
为了更好地配置VGA图形,我们需要使用标准VGA图形配置器来进行设置。
一、了解VGA图形配置器。
VGA图形配置器是一种用于配置计算机图形显示参数的工具,它可以帮助用户调整分辨率、颜色深度、刷新频率等参数,以获得更好的显示效果。
通过VGA图形配置器,用户可以根据自己的需求进行个性化的设置,以满足不同的显示要求。
二、使用VGA图形配置器的步骤。
1. 打开VGA图形配置器。
在开始菜单或桌面上找到VGA图形配置器的图标,双击打开该程序。
2. 调整分辨率。
在VGA图形配置器中,找到分辨率设置选项,通过拖动滑块或选择预设的分辨率来调整显示屏的分辨率。
一般来说,较高的分辨率可以获得更清晰的显示效果,但也会占用更多的显存和显卡性能。
3. 设置颜色深度。
在颜色深度设置选项中,选择合适的颜色深度。
通常情况下,我们可以选择32位颜色以获得更丰富的色彩表现,但在显存有限的情况下,也可以选择16位颜色。
4. 调整刷新频率。
刷新频率决定了显示屏每秒刷新的次数,较高的刷新频率可以减少屏幕闪烁,提升视觉舒适度。
在VGA图形配置器中,我们可以根据显示器的支持范围选择合适的刷新频率。
5. 保存设置。
在完成以上调整后,记得点击“应用”或“确定”按钮来保存设置,使其生效。
三、VGA图形配置器的注意事项。
1. 显示器支持范围。
在进行VGA图形配置时,要注意显示器的支持范围,不要超出其最大分辨率和刷新频率范围,以免造成显示器损坏或显示异常。
2. 显卡性能。
在调整分辨率和颜色深度时,要考虑显卡的性能,选择适合显卡的参数,以获得更流畅的显示效果。
3. 视觉舒适度。
刷新频率对于视觉舒适度非常重要,选择合适的刷新频率可以减少眼睛的疲劳感,提升使用体验。
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的设计之用。
verilog的VGA显示控制
Verilog的VGA显示控制from : 好友博客:/blog/?uid-20-action-viewspace-itemid-591一、VGA时序下面的图是本人画了一个晚上的结果,个人认为能够比较详细的阐述VGA的信号时序VGA的时序根据不同的显示分辨率和刷新频率会有变化,具体各种类型的时序信息可以参考下面的网站这里非常详细的说明的每一种显示模式的VGA时序信息/documents/pc/vga_timing.html二、VGA电平VSYNC,HSYNC为标准TTL电平,0V~3.3VRGB的电平在0V~0.7V之间(0V为黑色,0.7V为全色)三、程序顶层框图VGA产生行同步(HSYNC),场同步信号(VSYNC),并产生每个像素的地址输入单口ROM(显存)中,ROM输出该点需要显示的颜色值四、单口ROM(显存)设计程序的显示模式为800*600,72Hz刷新频率,像素频率为50MHz每个像素需要显示的颜色存储在单口RAM中,每种颜色用8个字节表示则如果要显示800*600分辨率,则需要800*600字节(480KB)的单口ROM由于FPGA内部没有这么大的RAM,因此我把屏幕上100*100个像素组成的矩形作为一个逻辑像素(即显示同一种颜色)这样只要8*6字节(48字节),用FPGA自带的RAM是很容易实现的ROM中颜色存储地址表:将全屏划分成8*6的方格,每个方格的颜色存储在ROM中,VGA控制器不断产生行坐标(ROM水平地址)和场坐标(ROM垂直地址)最后组合成ROM实际地址输入ROM中,ROM输出该地址的颜色值,显示在LCD中五、程序设计代码1module VGA(clk,rst_n,hsync,vsync,vga_r,vga_g,vga_b);2345input clk; //50MHz67input rst_n; //复位信号89output hsync; //行同步信号1011output vsync; //场同步信号1213// R、G、B信号输出1415output[1:0] vga_r;1617output[2:0] vga_g;1819output[2:0] vga_b;2021//--------------------------------------------------2223reg[10:0] x_cnt; //行坐标(这里包括了行同步、后沿、有效数据区、前沿)2425reg[9:0] y_cnt; //列坐标(这里包括了场同步、后沿、有效数据区、前沿)2627reg[5:0] Xcoloradd;2829reg[2:0] Ycoloradd;30313233parameter3435 Left = 184,3637 PixelWidth = 100,3839 Top = 29;40414243always @ (posedge clk or negedge rst_n)4445if(!rst_n) x_cnt <= 10'd0;4647else if(x_cnt == 11'd1040) x_cnt <= 10'd0; //行计数记到104 04849else x_cnt <= x_cnt+1'b1;50515253always @ (posedge clk or negedge rst_n)//产生行地址(ROM水平地址)5455if(!rst_n) Xcoloradd <= 6'b000000;5657else if(x_cnt >= Left && x_cnt <Left + PixelWidth) Xcoloradd <= 6' b000000;5859else if(x_cnt >= Left + PixelWidth && x_cnt <Left + 2*PixelWidt h) Xcoloradd <= 6'b000001;6061else if(x_cnt >= Left + 2*PixelWidth && x_cnt <Left + 3*PixelWidt h) Xcoloradd <= 6'b000010;6263else if(x_cnt >= Left + 3*PixelWidth && x_cnt <Left + 4*PixelWidt h) Xcoloradd <= 6'b000011;6465else if(x_cnt >= Left + 4*PixelWidth && x_cnt <Left + 5*PixelWidt h) Xcoloradd <= 6'b000100;6667else if(x_cnt >= Left + 5*PixelWidth && x_cnt <Left + 6*PixelWidt h) Xcoloradd <= 6'b000101;6869else if(x_cnt >= Left + 6*PixelWidth && x_cnt <Left + 7*PixelWidt h) Xcoloradd <= 6'b000110;7071else if(x_cnt >= Left + 7*PixelWidth && x_cnt <Left + 8*PixelWidt h) Xcoloradd <= 6'b000111;7273else Xcoloradd <= 6'b110000;//背景颜色地址74757677always @ (posedge clk or negedge rst_n)7879if(!rst_n) y_cnt <= 10'd0;8081else if(y_cnt == 10'd666) y_cnt <= 10'd0; //场同步记到66 68283else if(x_cnt == 11'd1040) y_cnt <= y_cnt+1'b1;//每计数完一行,场同步就加一84858687always @ (posedge clk or negedge rst_n)//产生列地址(ROM垂直地址)8889if(!rst_n) Ycoloradd <= 3'b000;9091else if(y_cnt >= Top && y_cnt < Top + PixelWidth) Ycoloradd <= 3'b 000;9293else if(y_cnt >= Top + PixelWidth && y_cnt < Top + 2*PixelWidth) Y coloradd <= 3'b001;9495else if(y_cnt >= Top + 2*PixelWidth && y_cnt < Top + 3*PixelWidt h) Ycoloradd <= 3'b010;9697else if(y_cnt >= Top + 3*PixelWidth && y_cnt < Top + 4*PixelWidt h) Ycoloradd <= 3'b011;9899else if(y_cnt >= Top + 4*PixelWidth && y_cnt < Top + 5*PixelWidt h) Ycoloradd <= 3'b100;100101else if(y_cnt >= Top + 5*PixelWidth && y_cnt < Top + 6*PixelWidt h) Ycoloradd <= 3'b101;102103else Ycoloradd <= 3'b110;//背景颜色地址104105//--------------------------------------------------106107// signal port ROM108109110111wire[7:0] color;112113wire[5:0] coloradd;114115116117assign coloradd = {Ycoloradd,3'b000}|Xcoloradd;//将水平地址和垂直地址合成R OM实际地址118119sprom u1(coloradd,clk,color);120121122123//---------------------------------------------------124125126127wire valid; //有效数据显示区标志,就是你在液晶屏幕上可以看到的区域128129130131assign valid = (x_cnt > 10'd184) && (x_cnt < 10'd984)132133134135 && (y_cnt > 10'd29) && (y_cnt < 10'd629);136137//--------------------------------------------------138139reg hsync_r,vsync_r;140141142143always @ (posedge clk or negedge rst_n)144145if (!rst_n) begin146147 hsync_r <= 1'b0;148149 vsync_r <= 1'b0;150151 end152153else begin154155 hsync_r <= x_cnt >= 10'd120; //产生hsync信号(行同步)when x_cnt>=50,t hen hsync_r=1,else 0;低电平同步156157 vsync_r <= y_cnt >= 10'd6; //产生vsync信号(场同步)my LCD is low syn c158159 end160161assign hsync = hsync_r;162163assign vsync = vsync_r;164165166167//--------------------------------------------------168169//颜色输出170171assign vga_r[1] = valid ? color[7] : 1'b0;172173assign vga_r[0] = valid ? color[6] : 1'b0;174175176177assign vga_g[2] = valid ? color[5] : 1'b0;178179assign vga_g[1] = valid ? color[4] : 1'b0;180181assign vga_g[0] = valid ? color[3] : 1'b0;182183184185assign vga_b[2] = valid ? color[2] : 1'b0;186187assign vga_b[1] = valid ? color[1] : 1'b0;188189assign vga_b[0] = valid ? color[0] : 1'b0;190191192193endmodule194六、后记在这次程序中只在ROM中存储了一些随机的数,因此显示出来是一些小方格如果ROM做的更大,完全可以存储一幅图像,显示在LCD中不过由于由于用ROM做为显存,每次只能显示一幅静态的图像,而且没有加入字符库,不能显示字符在下次的文章中,我将使用双口RAM,加上Nios II处理器,这样可以方便的显示各种字符标签: IC design, 转载。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 GB分频模块 时 序 控 制 模 块 生 成 图 形 模 块 VGA 显示器拨码输入时序控制模块设计Hcnt=639 Hcnt=799Hcnt=655 Hcnt=751行同步状态机状态转移图Vcnt=479 Vcnt=524Vcnt=489Vcnt=491列同步状态机状态转移图时序控制模块流程图:显示前沿 后沿 同步 显示后沿 同步 前沿时钟触发时钟二分频当前坐标是否在显示范围内?否根据拨码开关选择像素输出模式/颜色是行坐标加1是否超过行边界?列坐标加1,行坐标归0是是否超过列边界?列坐标归0是否否五、源程序(含注释)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;sw6 : in std_logic;sw7 : in std_logic;clk : in std_logic; --系统时钟输入hsync : out std_logic;--输出行同步、列同步以及R.G.B信号vsync : out std_logic;rdata : out std_logic;gdata : out std_logic;bdata : out std_logic;lrdata : out std_logic;lgdata : out std_logic;lbdata : out std_logic);end vgacode;architecture behave of vgacode is-- horizontal timing signalsconstant h_data: integer:=640; --VGA时序中几个关键数据constant h_front: integer:=16;constant h_back: integer:=48;constant h_sync: integer:=96;constant h_period: integer:= h_sync + h_data + h_front + h_back; --800-- vertical timing signalsconstant v_data: integer:=480;constant v_front: integer:=10;constant v_back: integer:=33;constant v_sync: integer:=2;constant v_period: integer:= v_sync + v_data + v_front + v_back; --525signal henable, venable : std_logic;signal clk25M : std_logic;signal hcnt: std_logic_vector(9 downto 0); -- horizontal pixel counter signal vcnt: std_logic_vector(9 downto 0); -- vertical line counter beginprocess(clk)beginif clk'event and clk = '1' then --由系统时钟分频得到25MHZ的频率信号clk25M <= not clk25M;end if;end process;process(clk25M) ---行扫描beginif (clk25M'event and clk25M = '1') thenif hcnt < h_period thenhcnt <= hcnt + 1;elsehcnt <= (others => '0');end if;end if;end process;process(clk25M) --行同步beginif (clk25M'event and clk25M = '1') thenif (hcnt >= (h_data + h_front)and hcnt < (h_data + h_sync + h_front)) thenhsync <= '0';elsehsync <= '1';end if;end if;end process;process(clk25M) --列扫描beginif (clk25M'event and clk25M = '1') thenif hcnt = (h_data + h_sync + h_front) thenif vcnt < v_period thenvcnt <= vcnt + 1;elsevcnt <= (others => '0');end if;end if;end if;end process;process(clk25M) --列同步beginif (clk25M'event and clk25M = '1') thenif (vcnt >= (v_data + v_front)and vcnt < (v_data + v_sync + v_front)) thenvsync <= '0';elsevsync <= '1';end if;end if;end process;process(clk25M) --行显示beginif (clk25M'event and clk25M = '1') thenif hcnt < h_data thenhenable <= '1';elsehenable <= '0';end if;end if;end process;process(clk25M) --列显示beginif (clk25M'event and clk25M = '1') thenif vcnt < v_data thenvenable <= '1';elsevenable <= '0';end if;end if;end process;process(clk25M,henable,venable) --几种显示模式beginif (clk25M'event and clk25M = '1') thenif(henable='1' and venable='1') thenif sw0 = '0' and sw1 = '0' then --64 color rdata <= sw7 ;gdata <= sw5 ;bdata <= sw3 ;lrdata <= sw6;lgdata <= sw4 ;lbdata <= sw2 ;else if sw1 = '0' and sw0 = '1' then --竖条纹rdata <= hcnt(9);gdata <= hcnt(8);bdata <= hcnt(7);lrdata <= hcnt(6);lgdata <= hcnt(5);lbdata <= hcnt(4);else if sw1 = '1' and sw0 = '0' then --横条纹rdata <= vcnt(9);gdata <= vcnt(8);bdata <= vcnt(7);lrdata <= vcnt(6);lgdata <= vcnt(5);lbdata <= vcnt(4);else if sw1 = '1' and sw0 = '1' then --棋盘显示if ( henable = '1' and venable = '1' ) thenif ( hcnt(4) = '0' and hcnt(3) = '0' and hcnt(2) ='0'and hcnt(1) = '0' and hcnt(0) = '0' )or (vcnt(4) = '0' and vcnt(3) ='0' and vcnt(2) ='0'and vcnt(1) = '0' and vcnt(0) = '0' ) thenlrdata <= '0';lgdata <= '0';lbdata <= '0';rdata <= '0';gdata <= '0';bdata <= '0';else lrdata <= '1';lgdata <= '1' ;lbdata <= '0' ;rdata <= '1' ;gdata <= '0' ;bdata <= '0' ;end if;end if;end if;end if;end if;end if;end if;end process;end behave;六、实验器材1.计算机;2. VGA显示器;3.直流稳压电源;4.EDA 开发板及相应元器件七、功能说明本实验实现的功能时通过拨码开关控制显示器的图像显示。