版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于FPGA的VGA显示控制器设计摘 要该报告简述了Quartus仿真软件的基本操作方法,同时介绍FPGA逻辑器件的相关知识和Verilog硬件描述语言的相关知识,在基于FPGA逻辑器件、Quartus仿真软件和Verilog硬件描述语言下,设计了VGA显示控制器。该VGA图象显示控制器是用模块设计并通过它们的级连实现的,具体是通过硬件电路的设计且能实现的方案来用Verilog语言对硬件电路进行描述,同时把Verilog语言在Quartus中进行仿真关键词: VGA显示控制; Verilog; Quartus目录摘 要I第一章 VGA显示概述21.1 VGA显示的发展状况21.2 VGA显示接
2、口31.3 VGA显示的原理31.4 VGA标准41.4.1 VGA文字模式41.4.2 VGA色版51.4.3 VGA显示标准51.5 FPGA简介61.6 QuartusII软件概述9第二章 显示控制实现技术112.1 研究的基本内容112.2 硬件电路实现122.3 软件实现132.4 设计方案16第三章 VGA显示调试与显示173.1 软件程序设计173.2 程序在Quartus下的编译与仿真223.3 总结25第四章 学习心得26参 考 文 献27摘 要在电子电路领域中,设计自动化工具已经被广大电子工程师所接受,它必将取代人工设计方法并成为主要的设计手段。目前,Verilog语言已经
3、成为各家EDA工具和集成电路厂商认同和共同推广的标准化硬件描述语言,随着科学技术的迅猛发展,电子工业界经历了巨大的飞跃。集成电路的设计正朝着速度快、性能高、容量大、体积小和微功耗的方向发展,这种发展必将导致集成电路的设计规模日益增大。该实训的设计是用Verilog语言硬件描述语言设计出一个VGA图象显示控制器,用Verilog硬件描述语言进行编程,把Verilog语言描述的VGA图象显示控制器所需的程序在Quartus软件环境下进行模拟仿真,以此来验证所设计的结果是否满足设计的要求。在结果符合要求的情况下把Verilog程序下载到FPGA器件上,利用FPGA器件内部存储器存储所需要的数据,再通
4、过VGA接口输出到显示器上,从而达到设计的要求。VGA显示器因为其输出信息量大,输出形式多样等特点已经成为现在大多数设计的常用输出设备,FPGA以其结构的优势可以使用很少的资源产生VGA的各种控制信号。第一章 VGA显示概述CRT显示器作为一种通用型显示设备,如今已广泛应用于我们的工作和生活中。与嵌入式系统中常用的显示器件相比,它具有显示面积大、色彩丰富、承载信息量大、接口简单等优点,如果将其应用到嵌入式系统中,可以显著提升产品的视觉效果。如今随着液晶显示器的出现,越来越多的数字产品开始使用液晶作为显示终端。但基于VGA标准的显示器仍是目前普及率最高的显示器1。若驱动此类显示器,需要很高的扫面
5、频率,以及极短的处理时间,正是由于这些特点,所以可以用FPGA来实现对VGA显示器的驱动。本次专业课程设计即选用FPGA来实现VGA的显示1-2。随着FPGA的不断发展及其价格的不断下降,FPGA的可编程逻辑设计的应用优势逐渐显现出来。现在,越来越多的嵌入式系统选择了基于FPGA的设计方案。在基于FPGA的大规模嵌入式系统设计中,为实现VGA显示功能,既可以使用专用的VGA接口芯片如SPX7111A等,也可以设计和使用基于FPGA的VGA接口软核。虽然使用VGA专用芯片具有更稳定的VGA时序和更多的显示模式可供选择等优点,但设计和使用VGA接口软核更具有以下优势:(1)使用芯片更少,节省板上资
6、源,减小布线难度;(2)当进行高速数据传输时,具有更小的高频噪声干扰;(3) FPGA(现场可编程门阵列)设计VGA接口可以将要显示的数据直接送到显示器,节省了计算机的处理过程,加快了数据的处理速度,节约了硬件成本3。1.1 VGA显示的发展状况显示绘图阵列(video graphic array,VGA)接口,他作为一种标准的显示接口得到了广泛的应用。VGA接口大多应用在显示器与显卡之间;同时还可以用用在擦二色等离子电视输入图像的模数转换上;VGA接口同样也是LCD液晶显示设备的标准接口。可编程逻辑器件随着微电子制造工艺的发展取得了长足的进步。早期的器件只能存储少量的数据,完成简单的逻辑功能
7、;发展到现在,可以完成复杂的逻辑功能,速度更块,规模更大,功耗更低。目前可编程逻辑器件主要有两大类:复杂可编程逻辑器件(complex programmable logic device,CPLD)和现场可编程逻辑器件(filed programmable gate array,FPGA)。VGA(Video Graphaelics Array)是IBM在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高、显示速度快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。FPGA的运行速度块,管脚资源丰富,容易实现大规模的系统设计,有大量的软核可用,便于进行二次开发。另外,由于FPGA
8、具有可重构能力、抗看绍兴强等特点,因此,FPGA在工业控制等领域越来越受到重视4。利用FPGA完成VGA显示控制,可以使图像的显示脱离PC机的控制,形成体积小、功耗低的格式嵌入式系统(便携式设备或手持设备),应用于地面勘测、性能检测等方面,具有重要的现实意义。显示器因为其输出信息量大,输出形式多样等特点已经成为现在大多数设计的常用输出设备。在FPGA的设计中可以使用很少的资源,就产生VGA各种信号。为了通过VGA端口连接显示器显示前端采集到的图像数据,本课题在21EDAAltera FPGA开发板上使用VGA接口在显示器上显示彩条及简单的图形,可以作为整个采集系统显示设计的参考,具有一定的实用
9、价值5。1.2 VGA显示接口VGA 接口负责向显示器输出相应的显示信号。VGA 接口是一种D型接口,上面共有 15 个针孔,非对称地分成 3 排,每排 5 个,其排列及接口定义如图 1.1 所示。图 1.1 VGA接口图在基于 FPGA 的 VGA 控制中,只需要考虑行同步信号(Hs)、场同步信号(Vs)、蓝基色(R)、绿基色(G)、红基色(B)这5个信号。如果能从FPGA发出这5个信号到 VGA 接口,就可以实现对 VGA 的控制6。1.3 VGA显示的原理VGA显示图像原理:常见的彩色显示器,一般由CRT(阴极射线管)构成。彩色是有R,G.B(红:RED,绿:GREEN,蓝:BLUE)三
10、基色组成。显示是用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有银光粉的荧光屏幕上,产生R,G,B三基色,合成一个彩色像素7-8。扫描从屏幕的左上方开始,从左到右,从上到下,进行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行同步,扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。它的行场扫描时序示意图1.2所示。现以正极性为例,说明CRT的工作过程:R、G、B为正极性信号,即高电平有效。当VS=0,HS=0时,CRT显示的内容为亮的过程,即正向扫描过程约为26us。当一行扫
11、描完毕,行同步HS=1,约需6us,期间,CRT扫描产生消隐,电子束回到CRT的左边下一行的起始位置(X=0,Y=1);当扫描完480行后,CRT的场同步VS=1,产生场同步是扫描线回到CRT的第一行第一列(C=0,Y=0处,约为两个行周期)。HS和VS的时序图。T1为行同步消隐(约为6us);T2为行显示时间(约为26us),T3为场同步消隐(两行周期);T4为场显示时间(480行周期)。图1.2 行场扫描示示意图1.4 VGA标准1.4.1 VGA文字模式标准的VGA文字模式使用 80×25 或 40×25 个字母或数字组成的平面。每个字符的块状区域可以选择16种前景色
12、和8种背景色;8种背景色来自bit容量较低的集合(以今天的标准来说,例如 ffffff 或者是 000000)。而字符本身也可设定是否闪烁,而字符的闪烁动作都是同时的。画面的闪烁功能和选择背景颜色的功能是可交换的,换句话说两者只能择一。以上这些选项和IBM先前生产的 CGA 转换器是相同的。 VGA虽然支援黑白和彩色的文字模式,但黑白模式很少使用。大多的VGA在显示黑白模式时使用彩色模式,即是将灰色字画在黑色背景上。而使用VGA 的单色显示器也能很好的支援这样的彩色模式。现代显示器和显卡若连接不当,偶尔会导致显卡的VGA部份侦测显示器为单色的,而这将使BIOS开机显示为黑白模式。通常在加载操作
13、系统和适当的驱动程式以后,显卡的设定被覆盖,显示器就会变回彩色。在彩色的文字模式中,每个字符其实由两个byte代表。较低的一个byte用来显示字符,而较高的byte就用来代表彩色、闪烁等等属性。这种成对的byte模式是从CGA就一直传续下来的。1.4.2 VGA色版VGA的色彩系统可以向前相容于EGA和CGA转换器,而它在其上又新增了一种设定。CGA可以显示16种色彩,EGA则将其扩充成从64种颜色色版选出的16色模式(即红绿蓝各2 bits)。VGA则更将其扩充成256种颜色色版,但为了向前相容,一次只能选择256种之中的64种(例如第一个64种颜色集合、第二个)。所以一个。它们也不相容于较
14、老旧的显示器,将造成诸如 overscan、闪烁、垂直滚动、缺乏水平同步等等缺点。因为如此,多数的商业软件使用的 VGA 调适都限制在显示器的“安全界线”之下,例如 320×400(双倍分辨率,2 video pages)、320×240(方形像素,3 video pages)和 360x480(最高的相容分辨率,1 video page)。1.4.3 VGA显示标准VGA(Video Graphics Array)是IBM于1987年提出的一个使用模拟信号的电脑显示标准,这个标准已对于现今的个人电脑市场已经十分过时。即使如此,VGA仍然是最多制造商所共同支持的一个低标准,
15、个人电脑在加载自己的独特驱动程式之前,都必须支持VGA的标准。例如,微软Windows系列产品的开机画面仍然使用VGA显示模式,这也说明其分辨率和载色数的不足。VGA这个术语常常不论其图形装置,而直接用于指称640×480的分辨率。VGA装置可以同时储存4个完整的EGA色版,并且它们之间可以快速转换,在画面上看起来就像是即时的变色。除了扩充为256色的EGA式色版,这256种色彩其实可以透过 VGA DAC(Digital-to-analog converter),任意的指定为任何一种颜色。这就程度上改变了原本EGA的色版规则,因为原本在EGA上,这只是一个让程式可以在每个频道(即红
16、绿蓝)在2 bit以下选择最多种颜色的方式。但在VGA下它只是简单的64种颜色一组的表格,每一种都可以单独改变例如EGA颜色的首两个bit代表红色的数量,在VGA中就不一定如此了。VGA在指定色版颜色时,一个颜色频道有6个bit,红、绿、蓝各有64种不同的变化,因此总共有 262,144 种颜色。在这其中的任何 256 种颜色可以被选为色版颜色(而这 256 种的任何 16 种可以用来显示 CGA 模式的色彩)。这个方法最终仍然使了VGA模式在显示EGA和CGA模式时,能够使用前所未有的色彩,因为VGA是使用模拟的方式来绘出EGA和CGA画面。提供一个色版转换的例子:要把文字模式的字符颜色设定
17、为暗红色,暗红色就必须是 CGA 16 色集合中的一种颜色(譬如说,取代 CGA 默认的 7 号灰色),这个 7 号位置将被指定为 EGA 色版中的 42 号,然后 VGA DAC 将 EGA #42 指定为暗红色。则画面上的原本的 CGA 七号灰色,都会变成暗红色。这个技巧在 256 色的 VGA DOS 游戏中,常常被用来表示加载游戏的淡入淡出画面。总结来说,CGA 和 EGA 同时只能显示 16 种色彩,而 VGA 因为使用了 Mode 13h 而可以一次显示 256 色版中的所有色彩,而这 256 种颜色又是从 262,144 种颜色中挑出的。VGA显示模式VGA最早指的是显示器640
18、X480这种显示模式,VGA的英文全称是Video Graphic Array,也叫显示绘图阵列。VGA支持在640X480的较高分辨率下同时显示16种色彩或256种灰度,同时在320X240分辨率下可以同时显示256种颜色。在VGA基础上加以扩充,使其支持更高分辨率如800X600或1024X768,这些扩充的模式就称之为VESA(Video Electronics Standards Association,视频电子标准协会)的Super VGA模式,简称SVGA,现在的显卡和显示器都支持SVGA模式VGA接口就是显卡上输出模拟信号的接口,也叫D-Sub接口,传输红、绿、蓝模拟信号以及同步
19、信号(水平和垂直信号)。1.5 FPGA简介FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分9。FPGA的基本特点主要有: 1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和IO引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
20、 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程10。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPRO
21、M即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA(Filed Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半订制电路而出现的,既解决了订制电路的不足,又克服了原有可编程器件门电路数有限的缺点11。FPGA的工作机理基于查找(Look-Up-Table,LUT),LUT其实就是一个RAM。目前很多FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线、大小位16×1的RAM
22、、当用户通过HDL语言描述了一个逻辑电路以后,FPGA的开发软件会自动计算逻辑电路所有可能的结果,并事先把计算好的结果记入RAM中12-14。这样,每当有信号输入需要进行逻辑运算时,不必再用门去搭电路了,只要把输入作为一个地址进行查表,找出对应地址所存储的内容,然后输出即可。图1.3所示位一个4输入与门的LUT实现。这个例子很简单,只需要一个LUT就可以完成。对于一个LUT无法完成的电路,则需要通过进行逻辑信号将多个单元相连,这样FPGA就可以实现复杂的逻辑了。图1.3 LUT原理图FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB
23、(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分13。图1.4和图1.5是一般FPGA的结构图和结构示意图。 图1.4 FPGA结构 图1.5FPGA结构示意图因为LUT主要适合于SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,必须外加一片专用配置芯片,可以是EPROM芯片。在加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA
24、能够反复使用。FPGA的编程无须专用的FPGA编程器,只需通用的EPROM、PROM编程器即可。由于配置时间很短,因而不会影响系统正常工作。当然也有少数FPGA采用反熔丝或FLASH工艺,对这种FPGA就不需要外加专用的配置芯片了。这样,同一片PFGA,不同的编程数据可以产生不同的电路功能。因此,FPGA的使用非常灵活14。随着的不断发展以及用户需求的不断提出,FPGA的技术也在不断地发展。随着工艺和数字电路技术的不断进步,FPGA芯片的集成度会更高,功能会更强,速度会更快,功耗会更低。1.6 QuartusII软件概述QuartusII软件是Altera公司最新版本的EDA开发软件,支持AP
25、EX系列、Cyclone系列、Stratix系列和Excalibur系列等新型系列器件的开发。Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。含有工作组计算、集成逻辑分析仪、EDA工具集成、多过程支持、增强重编译和IP集成等特性。支持百万门级的设计,支持高速I/O设计,具有更强的设计能力和更快的编译速度。QuartusII开发软件为可编程片上系
26、统(SOPC)设计提供了一个完整的设计环境。无论是使用个人电脑、NUIX或Linux工作站,QuartusII都提供了方便设计、快速编译处理以及编程功能15-16。QuartusII输入的设计过程可分为创建工程、输入文件、项目编译、项目校验和编程下载等几个步骤。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快
27、了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Al
28、tera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。图1.6是QUARTUS II的界面。 图1.6是QUARTUS II的界面第二章 显示控制实现技术2.1 研究的基本内容 此设计要实现某一分辨率下(如640*48060Hz)的VGA显示驱动,能简单显示彩条、图像等。此程
29、序使用Verilog语言进行描述,Verilog HDL是目前应用最为广泛的硬件描述语言Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述Verilog HDL进行设计最大的优点是其工艺无关性这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电路Verilog HDL是一种硬件描述语言(hardware description language),为了制作数字电路而用来描
30、述FPGA的设计之用17。 1.熟悉VGA工作原理及VGA接口协议、工作时序。2.计算出合适的时序,并对原始时钟进行分频处理以获取符合时序要求的各频率。3.须要显示的图像等可存储于外部存储器,运行时,从外部存储器读取显示数据。显示控制器是一个较大的数字系统,采用模块化设计原则、借鉴自顶向下的程序设计思想,进行功能分离并按层次设计。利用Verilog硬件描述语言对每个功能模块进行描述,并逐一对每个功能模块进行编译仿真,使顶层VGA显示控制器的模块实体仿真综合得以顺利通过18。VGA显示控制器主要由以下模块组成:分频模块、VGA时序控制器模块、彩条图形生成模块、VGA显示模块、存储模块等,如下图2
31、.1所示。HS,VSRBGVGA接口D/A显示器 VGA时序 控制 ROM读取 控制二分频EEPROMADDRDATACLK50MHz图2.1基于FPGA的VGA显示控制系统2.2 硬件电路实现VGA 的图形模式分为 3 类:CGA、EGA 兼容的图形模式;标准的 VGA 图形模式;VGA 扩展图形模式。后两种图形模式统称为 VGA 图形模式19-20。本研究基于标准 VGA模式来实现。常见的彩色显示器一般都是由 CRT(阴极射线管)构成,每一个像素的色彩由红、绿、蓝三基色构成。显示时采用的是逐行扫描的方式。 VGA 显示模块产生的由水平同步信号和垂直同步信号控制阴极射线管中的电子枪产生电子束
32、,轰击涂有荧光粉的屏幕,产生红、绿、蓝三基色,于显示屏上合成一个彩色像素点。图 2.2表示的是 VGA 显示模块与 CRT 显示器的控制框图 。图2.2 VGA 显示模块与CRT显示器的控制框图电子束扫描一幅屏幕图像上的各个点的过程称为屏幕扫描。现在显示器都是通过光栅扫描方式来进行屏幕扫描。在光栅扫描方式下,电子束按照固定的路径扫过整个屏幕,在扫描过程中通过电子束的通断强弱来控制电子束所经过的每个点是否显示或显示的颜色21。 电子枪在 VGA 显示模块产生的行同步、场同步等控制信号的作用下进行包括水平扫描、水平回扫、垂直扫描、垂直回扫等过程。光栅扫描的路径通常为:从上到下扫过每一行,在每一行中
33、从左到右地进行扫描。其过程如下:电子束从屏幕左上角开始向右扫,当到达屏幕的右边缘时,电子束关闭(水平消隐),并快速返回屏幕左边缘(水平回扫),然后在下一条扫描线上开始新的一次水平扫描。一旦所有的水平扫描均告完成,电子束在屏幕的右下角结束并关闭(垂直消隐),然后迅速返回到屏幕的左上角(垂直回扫),开始下一次光栅扫描。通过对硬件进行编程,输出标准的 VGA 信号(红、绿、蓝三色信号和行、帧同步信号),通过 15 针VGA 接口输出至显示器,可具有显示驱动程序的能力,驱动显示器显示图像信号。板上的 VGA 接口只需使用其中的 5 个引脚,其中行、帧同步信号直接由 FGPA 输出;红、绿、蓝三色信号使
34、用 FPGA 上 8 个引脚,8 位数据,其中红色 2 位,绿色和蓝色各 3 位,经由电阻网络 D/A 变换后输出值显示器,具有 256 种颜色。VGA 接口与 FPGA 引脚连接见图2.3。图2.3 VGA与FPGA引脚连接2.3 软件实现设计VGA图像显示控制需要注意两个问题:一个是时序的驱动,这是完成设计的关键,时序稍有偏差,显示必然不正常,甚至会损坏彩色显示器;另一个是VGA信号的电平驱动。针对开发板的条件,可以用50MHz的系统时钟进行分频得到25MHz的像素频率输出,FPGA通过串联电阻直接驱动5个VGA信号。每个颜色信号串一个电阻,每位的颜色信号分别是VGA_RED、VGA_BL
35、UE、VGA_GREEN。每个电阻与终端的75欧电缆电阻相结合,确保颜色信号保持在VGA规定的0V0.7V之间。VGA_HSYNC和VGA_VSYNC信号使用LVTTL或LVCMOS3I/O标准驱动电平22-24。通过VGA_RED、VGA_BLUE、VGA_GREEN置高或低来产生8中颜色,如下表所示。VGA信号的时序由视频电气标准委员会(VESA)规定。以下提供的VGA系统和时序信息作为例子来说明FPGA在640×480模式下是如何驱动VGA监视器的。VGA显示器基于CRT,使用调幅模式,移动电子束(或阴极射线)在荧光屏上显示信息。LCD使用矩阵开关给液晶加压,在每个像素点上通过
36、液晶来改变光的介电常数。尽管下面的描述仅限于CRT,LCD已经发展到可以同CRT使用同样的时序信号了。因此,下面的讨论均适合CRT和LCD。在CRT显示器中,电流的波形通过蹄形磁铁产生磁场,使得电子束偏转,光栅在显示屏上横向显示,水平方向从左至右,垂直方向从上至下。当电子束向正方向移动时,信息才显示,即从左至右、从上至下。如果电子束从后返回左或顶边,显示屏并不显示任何信息。在消隐周期电子束重新分配和稳定于新的水平或垂直位时,丢失了许多信息。显示协议定义了电子束的大小以及通过显示屏的频率,该频率是可调的。现在的VGA显示屏支持多种显示协议,VGA控制器通过协议产生时序信号来控制光栅。控制器产生同
37、步脉冲TTL电平来设置电流通过偏转磁铁的频率,以确保像素或视频数据在适当的时间送给电子枪。视频数据一般来自重复显示存储器中一个或多个字节它们被分配到每个像素单元。入门实验板使用每个像素中的3位,产生图8中可能的一种颜色。控制器指定视频数据缓冲器以备电子束通过显示屏。然后,控制器接收并利用视频数据在适当的时间显示,电子束移动到指定的像素点。根据图2.5所示,VGA控制器产生水平同步时序信号(HS)和垂直同步时序信号(VS),调节在每个像素时钟视频数据的传送。像素时钟定义了显示像素信息的有效时间段。VS信号定义显示的更新频率,或刷新屏幕信息的频率。最小的刷新频率是取决于显示器的亮度和电子束的强度,
38、实际频率一般在60120Hz之间。给定的刷新频率的水平线的数量定义了水平折回频率23。下表的时序信号是640×480,像素时钟25Mhz,刷新频率60Hz±1。图7说明了每个时序的联系。同步脉冲的时序宽度(TPW)和前后门拱的间隔TFP和TBP)基于观察多种VGA的显示屏的结果。前后门拱的间隔是前后同步脉冲时间。在这些时段信息不能显示。图2.4 VGA控制器时序信号图2.5 各时序之间的联系2.4 设计方案设计方案如下:将图像控制模块分为这样几部分:二分频电路(clkdiv.v)、VGA时序控制模块(vga640480.v)、存储器读出模块(Stripes.v)。其中二分频
39、把50mhz时钟频率分成25mhz并提供给其它模块作为时钟;VGA时序控制模块用于产生640×480显示范围,并控制显示范围和消隐范围以及产生水平同步时序信号hs和垂直同步时序信号vs的值;存储器读出模块提供给SRAM地址并按地址读出八位数据(灰度值Y),然后得到R、G、B的值(若Y>中间值,则R=G=B=1;否则R=G=B=0),并把R、G、B的值通过VGA接口传到CRT显示器,如图2.6。图2.6 模块设计总体结构第三章 VGA显示调试与显示3.1 软件程序设计本设计需要三个模块,一个是二分频电路、VGA时序控制模块、存储器读出模块。二分频电路二分频把50MHz时钟频率分成
40、25MHz并提供给其它模块作为时钟。显示器的像素分辨率是640×480,像素时钟25Mhz,刷新频率60Hz±1。开发板提供的系统时钟50MHz,所以要对板载时钟进行分频后才能使用。分频电路的设计部分程序如下:module clkdiv(input wire mclk,input wire clr,output wire clk25);reg24:0 q;/25-bit counteralways (posedge mclk or posedge clr)begin if(clr=1)q<=0;elseq<=q+1;endassign clk25=q0; /25
41、mhzendmodule2.时序控制模块VGA时序控制模块用于产生640*480显示范围,并控制显示范围和消隐范围以及产生水平同步时序信号hs和垂直同步时序信号vs的值。一般来说,时钟计数器通过像素时钟来控制水平时序信号。译码计数器的值产生HS信号。在指定的行,计数器产生当前像素显示的位置。一个独立的计数器产生垂直时序信号。垂直同步计数器在每个HS脉冲信号来临时自动加1,译码值产生VS信号。计数器产生当前显示行。这两个计数器从地址到显示缓冲器连续计数。开发板的DDR SDRAM 提供了一个足够的显示缓冲区。在HS脉冲的开始和VS脉冲的开始没有具体规定相对的时序关系。因此,计数器被分配到简单格式
42、的视频RAM地址,或分配到同步脉冲产生器的最小译码逻辑。设计对时序控制部分的部分代码如下:module vga640480(input wire clk,input wire clr,output reg hsync,output reg vsync,output reg 9:0hc,output reg 9:0vc,output reg vidon);parameter hpixels=10'b; /行像素点=800parameter vlines=10'b; /行数=521parameter hbp=10'b; /行显示后沿=144(128+16)parameter
43、 hfp=10'b; /行显示前沿=784(128+16+640)parameter vbp=10'b; /场显示后沿=31(2+29)parameter vfp=10'b;/场显示前沿=511(2+29+480)reg vsenable; /Enbale for the Vertical counter/行同步信号计数器always(posedge clk or posedge clr) begin if(clr=1) hc<=0; else begin if(hc=hpixels-1) begin /The counter has reached the en
44、d of pixel count hc<=0; /计数器复位 vsenable<=1; /Enable the vertical counter to increment end else begin hc<=hc+1; /Increment the horizontal counter vsenable<=0; /Leave the vsenable off end endend/产生hsync脉冲/当hc为0127时,行同步脉冲为低电平always(*) begin if (hc<128) hsync=0;elsehsync=1;end/场同步信号计数器alw
45、ays(posedge clk or posedge clr) begin if(clr=1) vc<=0; else if(vsenable=1) begin if(vc=vlines-1) /Reset when the number of lines is reached vc<=0;elsevc<=vc+1;/场计数器加1 endend /产生vsync脉冲/当hc为0或1时,场同步脉冲为低电平always(*)begin if(vc<2)vsync=0;else vsync=1;end /Enable video out when within the por
46、chesalways(*)beginif(hc<hfp)&&(hc>hbp)&&(vc<vfp)&&(vc>vbp) vidon=1;else vidon=0;endendmodule3.显示彩条模块module vga_stripes(input wire vidon,input wire9:0hc,vc,output reg red,green,output reg blue);/输出16行宽的红绿条纹always(*)begin red=0; green=0; blue=0; if(vidon=1) begin re
47、d=vc4; green=vc4; endendendmodule4.VGA彩条显示的顶层文件设计module vga_initials_top(input wire mclk,input wire3:0btn,input wire7:0sw,output wire hsync,output wire vsync,output wire 2:0red,output wire 2:0green,output wire 1:0blue);wire clr,clk25,vidon;wire9:0hc,vc;wire0:31M;wire3:0rom_addr4;assign clr=btn3;clkdiv U1(.mclk(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广播电视播音员主持人资格考试(广播电视播音主持业务)试题及答案(定西2026年)
- 2025-2030年校园招聘大使行业跨境出海战略分析研究报告
- 新形势下电子元器件及设备行业顺势崛起战略制定与实施分析报告
- 2026年北京市海淀区初三二模语文试卷(含答案)
- 初中情绪安抚说课稿2025
- 高中2025年说课稿爱国主义主题班会
- 2026年现代汉语语法知识体系
- 2026年AI网联汽车测试实操题集
- 2026年数控编程零基础知识入门教程
- 2026年事业单位招聘笔试公共基础知识题库
- 实验室电气安全培训课件
- 建筑电工考试模拟100题电工证考试题库
- GB/T 22766.12-2025家用和类似用途电器售后服务第12部分:电坐便器的特殊要求
- 中国抗癌协会脑胶质瘤整合诊疗指南2025版
- 智慧港口等级评价指南集装箱码头(T-CPHA9-2022)
- 无人驾驶技术商业化应用风险评估与可行性分析报告
- 2025年肿瘤随访登记培训试题有答案
- 前置胎盘伴出血护理个案
- 2024年上海建桥学院公开招聘辅导员笔试题含答案
- 企业信息安全培训内容课件
- 高空坠物安全知识培训
评论
0/150
提交评论