895191543基于FPGA的VGA显示控制设计论文.doc

上传人:仙人指路1688 文档编号:4142696 上传时间:2023-04-07 格式:DOC 页数:38 大小:782.50KB
返回 下载 相关 举报
895191543基于FPGA的VGA显示控制设计论文.doc_第1页
第1页 / 共38页
895191543基于FPGA的VGA显示控制设计论文.doc_第2页
第2页 / 共38页
895191543基于FPGA的VGA显示控制设计论文.doc_第3页
第3页 / 共38页
895191543基于FPGA的VGA显示控制设计论文.doc_第4页
第4页 / 共38页
895191543基于FPGA的VGA显示控制设计论文.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《895191543基于FPGA的VGA显示控制设计论文.doc》由会员分享,可在线阅读,更多相关《895191543基于FPGA的VGA显示控制设计论文.doc(38页珍藏版)》请在三一办公上搜索。

1、基于FPGA的VGA显示控制设计1 引言1.1 选题背景CRT显示器作为一种通用型显示设备,如今已广泛应用于我们的工作和生活中。与嵌入式系统中常用的显示器件相比,它具有显示面积大、色彩丰富、承载信息量大、接口简单等优点,如果将其应用到嵌入式系统中,可以显著提升产品的视觉效果。如今随着液晶显示器的出现,越来越多的数字产品开始使用液晶作为显示终端。但基于VGA标准的显示器仍是目前普及率最高的显示器1。若驱动此类显示器,需要很高的扫面频率,以及极短的处理时间,正是由于这些特点,所以可以用FPGA来实现对VGA显示器的驱动。本次专业课程设计即选用FPGA来实现VGA图片的显示。随着FPGA的不断发展及

2、其价格的不断下降,FPGA的可编程逻辑设计的应用优势逐渐显现出来。现在,越来越多的嵌入式系统选择了基于FPGA的设计方案。在基于FPGA的大规模嵌入式系统设计中,为实现VGA显示功能,既可以使用专用的VGA接口芯片如SPX7111A等,也可以设计和使用基于FPGA的VGA接口软核。虽然使用VGA专用芯片具有更稳定的VGA时序和更多的显示模式可供选择等优点,但设计和使用VGA接口软核更具有以下优势:(1)使用芯片更少,节省板上资源,减小布线难度;(2)当进行高速数据传输时,具有更小的高频噪声干扰;(3) FPGA(现场可编程门阵列)设计VGA接口可以将要显示的数据直接送到显示器,节省了计算机的处

3、理过程,加快了数据的处理速度,节约了硬件成本。1.2 目的和意义显示绘图阵列(video graphic array,VGA)接口,他作为一种标准的显示接口得到了广泛的应用。VGA接口大多应用在显示器与显卡之间;同时还可以用用在擦二色等离子电视输入图像的模数转换上;VGA接口同样也是LCD液晶显示设备的标准接口2。可编程逻辑器件随着微电子制造工艺的发展取得了长足的进步3。早期的器件只能存储少量的数据,完成简单的逻辑功能;发展到现在,可以完成复杂的逻辑功能,速度更块,规模更大,功耗更低。目前可编程逻辑器件主要有两大类:复杂可编程逻辑器件(complex programmable logic de

4、vice,CPLD)和现场可编程逻辑器件(filed programmable gate array,FPGA)4。FPGA的运行速度块,管脚资源丰富,容易实现大规模的系统设计,有大量的软核可用,便于进行二次开发。另外,由于FPGA具有可重构能力、抗看绍兴强等特点5,因此,FPGA在工业控制等领域越来越受到重视。利用FPGA完成VGA显示控制,可以使图像的显示脱离PC机的控制,形成体积小、功耗低的格式嵌入式系统(便携式设备或手持设备),应用于地面勘测、性能检测等方面,具有重要的现实意义。显示器因为其输出信息量大,输出形式多样等特点已经成为现在大多数设计的常用输出设备。在FPGA的设计中可以使用

5、很少的资源,就产生VGA各种信号6。为了通过VGA端口连接显示器显示前端采集到的图像数据,本课题在Xilinx公司的SPARTAN-3E开发板上使用VGA接口在显示器上显示文字及简单的图形,可以作为整个采集系统显示设计的参考,具有一定的实用价值。1.3 技术要求和设计范围开发板中的VGA显示控制共分为三个模块,包括一个二分频电路,一个VGA时序控制模块,一个存储器读出模块。二分频电路要能够把板载50MHZ的时钟频率分成25MHZ并提供给其他模块作为时钟;VGA时序控制模块用于产生640*480显示范围,并控制显示范围和消隐范围以及产生水平同步时序信号hs和垂直同步时序信号vs的值;存储器读出模

6、块提供给SRAM地址并按地址从存储器中读出八位R、G、B数据,并把R、G、B的值通过VGA接口传到CRT显示器。在课题中,FPGA要实现控制VGA图像显示的功能。这些模块的功能全部用VHDL语言在开发软件ISE中实现,最后下载到SPARTAN-3E开发板上验证。1.4 发展现状自1985年Xilinx公司推出第一片现场可编程逻辑器件(FPGA)至今, FPGA历史已经经历了十几年的发展历史。在这十几年的发展过程中,以FPGA为代表的数字系统现场集成技术取得了惊人的发展:现场可编程器件从最初的1200个可利用门,发展到90年代的25万个可利用门,乃至当新世纪来临之即,国际上现场可编程逻辑器件的著

7、名厂商Altera公司、Xilinx公司又陆续推出了数百万门的单片FPGA芯片,将现场可编程器件的集成度提高到一个新的水平。纵观现场可编程逻辑器件的发展历史,其之所以具有巨大的市场吸引力,根本在于:FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、开发软件投入少、芯片价格不断降低,促使FPGA越来越多地取代了ASIC的市场,特别是对小批量、多品种的产品需求,是FPGA成为首选。Xilinx公司自发明PFGA以来,就不断的推出新器件和开发工具,力求芯片的速度更高、功耗更低。在其新近开发的产品中,Xilinx重新定义了未来的可编程逻辑,为用户提供2.5V,3.3V和5V

8、可编程逻辑系列选择,并利用先进的0.18-。0.22-。0.25-,0.35um工艺技术生产出低成本、高性能的可编程逻辑产品。主要推出了Virex系列和SparanTM系列的FPGA,Vriex系列突破了传统FPGA密度和性能限制,使FPGA不仅仅是逻辑模块,而成为一种系统元件。而Spartan系列为替代ASIC的大容量FPGA树立了一个新的低成本标准。本课题使用的就是该公司的SPARTAN-3E开发板。芯片型号为XC3S500E。VGA的英文全称是Video Graphic Array,即显示绘图阵列。VGA支持在640X480的较高分辨率下同时显示16种色彩或256种灰度,同时在320X2

9、40分辨率下可以同时显示256种颜色。VGA由于良好的性能迅速开始流行,厂商们纷纷在VGA基础上加以扩充,如将显存提高至1M并使其支持更高分辨率如800X600或1024X768,这些扩充的模式就称之为VESA(Video Electronics Standards Association,视频电子标准协会)的Super VGA模式,简称SVGA,现在的显卡和显示器都支持SVGA模式。 显卡所处理的信息最终都要输出到显示器上,显卡的输出接口就是电脑与显示器之间的桥梁,它负责向显示器输出相应的图像信号。CRT显示器因为设计制造上的原因,只能接受模拟信号输入,这就需要显卡能输入模拟信号。VGA接口

10、就是显卡上输出模拟信号的接口,VGA(Video Graphics Array)接口,也叫D-Sub接口。虽然液晶显示器可以直接接收数字信号,但很多低端产品为了与VGA接口显卡相匹配,因而采用VGA接口。VGA接口是一种D型接口,上面共有15针空,分成三排,每排五个。VGA接口是显卡上应用最为广泛的接口类型,多数的显卡都带有此种接口。有些不带VGA接口而带有DVI(Digital Visual Interface数字视频接口)接口的显卡,也可以通过一个简单的转接头将DVI接口转成VGA接口,通常没有VGA接口的显卡会附赠这样的转接头。 目前大多数计算机与外部显示设备之间都是通过模拟VGA接口连

11、接,计算机内部以数字方式生成的显示图像信息,被显卡中的数字/模拟转换器转变为R、G、三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。对于模拟显示设备,如模拟CRT显示器,信号被直接送到相应的处理电路,驱动控制显像管生成图像。而对于LCD、DLP等数字显示设备,显示设备中需配置相应的/(模拟/数字)转换器,将模拟信号转变为数字信号。在经过/和/2次转换后,不可避免地造成了一些图像细节的损失。VGA接口应用于CRT显示器无可厚非,但用于连接液晶之类的显示设备,则转换过程的图像损失会使显示效果略微下降 现形的VGA接口大都用于CRT显示器,用作计算机的输出设备,另外,在很多图像采集输出的地

12、方也占有一席之地。例如车载监控系统,图像识别等领域2 方案论证2.1 显示控制设计思想2.1.1 显示控制设计的方法随着数字图像处理的应用领域的不断扩大,其实时处理技术成为研究的热点。EDA(电子设计自动化)技术的迅猛发展为数字图像实时处理技术提供了硬件基础。其中 FPGA 的特点适用于进行一些基于像素级的图像处理 。LCD和 CRT显示器作为一种通用型显示设备,如今已经广泛应用于工作和生活中。与嵌入式系统中常用的显示器件相比,它具有显示面积大、色彩丰富、承载信息量大、接口简单等优点,如果将其应用到嵌入式系统中,可以显著提升产品的视觉效果。为此,尝试将 VGA 显示的控制转化到 FPGA 来完

13、成实现7。FPGA 是整个系统的核心,通过对其编程可输出红、绿、蓝三基色信号和 HS、VS 行场扫描同步信号。当 FPGA 接受输出的控制信号后,内部的数据选择器模块根据控制信号选择相应的图像生成模块,输出图像信号,与行场扫描时序信号一起通过 VGA 接口电路送入显示器, VGA 显示器上便可看到对应在的彩色图像。主芯片时钟由外部提供,由一片晶振提供 50 MHz 频率的时钟源,接入芯片全局时钟引脚 CLK。控制中,只需要考虑行同步信号(Hs)、场同步信号(Vs)以及红绿蓝(RGB)这5个信号。如果能从FPGA发出这5个信号到VGA接口,就可以实现对VGA的控制。系统模块如图 1。图1 系统模

14、块图2.2 显示控制实现技术2.2.1 硬件电路实现技术VGA 的图形模式分为 3 类9:CGA、EGA 兼容的图形模式;标准的 VGA 图形模式;VGA 扩展图形模式。后 2种图形模式统称为 VGA 图形模式。本研究基于标准 VGA模式来实现。常见的彩色显示器一般都是由 CRT(阴极射线管)构成,每一个像素的色彩由红、绿、蓝三基色构成。显示时采用的是逐行扫描的方式。 VGA 显示模块产生的由水平同步信号和垂直同步信号控制阴极射线管中的电子枪产生电子束,轰击涂有荧光粉的屏幕,产生红、绿、蓝三基色,于显示屏上合成一个彩色像素点。图 2 表示的是 VGA 显示模块与 CRT 显示器的控制框图 。图

15、2 VGA 显示模块与 CRT 显示器的控制框图电子束扫描一幅屏幕图像上的各个点的过程称为屏幕扫描。现在显示器都是通过光栅扫描方式来进行屏幕扫描。在光栅扫描方式下,电子束按照固定的路径扫过整个屏幕,在扫描过程中通过电子束的通断强弱来控制电子束所经过的每个点是否显示或显示的颜色。 电子枪在 VGA 显示模块产生的行同步、场同步等控制信号的作用下进行包括水平扫描、水平回扫、垂直扫描、垂直回扫等过程。光栅扫描的路径通常为:从上到下扫过每一行,在每一行中从左到右地进行扫描。其过程如下:电子束从屏幕左上角开始向右扫,当到达屏幕的右边缘时,电子束关闭(水平消隐),并快速返回屏幕左边缘(水平回扫),然后在下

16、一条扫描线上开始新的一次水平扫描。一旦所有的水平扫描均告完成,电子束在屏幕的右下角结束并关闭(垂直消隐),然后迅速返回到屏幕的左上角(垂直回扫),开始下一次光栅扫描。通过对硬件进行编程,输出标准的 VGA 信号(红、绿、蓝三色信号和行、帧同步信号),通过 15 针VGA 接口输出至显示器,可具有显示驱动程序的能力,驱动显示器显示图像信号。板上的 VGA 接口只需使用其中的 5 个引脚,其中行、帧同步信号直接由 FGPA 输出;红、绿、蓝三色信号使用 FPGA 上 8 个引脚,8 位数据,其中红色 2 位,绿色和蓝色各 3 位,经由电阻网络 D/A 变换后输出值显示器,具有 256 种颜色。VG

17、A 接口与 FPGA 引脚连接见图3。图3 VGA与FPGA引脚连接2.2.2 软件实现技设计VGA图像显示控制需要注意两个问题:一个是时序的驱动,这是完成设计的关键,时序稍有偏差,显示必然不正常,甚至会损坏彩色显示器;另一个是VGA信号的电平驱动。针对开发板的条件,可以用50MHz的系统时钟进行分频得到25MHz的像素频率输出,FPGA通过串联电阻直接驱动5个VGA信号。每个颜色信号串一个电阻,每位的颜色信号分别是VGA_RED、VGA_BLUE、VGA_GREEN。每个电阻与终端的75欧电缆电阻相结合,确保颜色信号保持在VGA规定的0V0.7V之间。VGA_HSYNC和VGA_VSYNC信

18、号使用LVTTL或LVCMOS3I/O标准驱动电平。通过VGA_RED、VGA_BLUE、VGA_GREEN置高或低来产生8中颜色,如表1所示。表1 FPGA产生的8种颜色VGA信号的时序由视频电气标准委员会(VESA)规定。以下提供的VGA系统和时序信息作为例子来说明FPGA在640480模式下是如何驱动VGA监视器的。VGA显示器基于CRT,使用调幅模式,移动电子束(或阴极射线)在荧光屏上显示信息。LCD使用矩阵开关给液晶加压,在每个像素点上通过液晶来改变光的介电常数。尽管下面的描述仅限于CRT,LCD已经发展到可以同CRT使用同样的时序信号了。因此,下面的讨论均适合CRT和LCD。在CR

19、T显示器中,电流的波形通过蹄形磁铁产生磁场,使得电子束偏转,光栅在显示屏上横向显示,水平方向从左至右,垂直方向从上至下。当电子束向正方向移动时,信息才显示,即从左至右、从上至下。如果电子束从后返回左或顶边,显示屏并不显示任何信息。在消隐周期电子束重新分配和稳定于新的水平或垂直位时,丢失了许多信息。显示协议定义了电子束的大小以及通过显示屏的频率,该频率是可调的。现在的VGA显示屏支持多种显示协议,VGA控制器通过协议产生时序信号来控制光栅。控制器产生同步脉冲TTL电平来设置电流通过偏转磁铁的频率,以确保像素或视频数据在适当的时间送给电子枪。视频数据一般来自重复显示存储器中一个或多个字节它们被分配

20、到每个像素单元。入门实验板使用每个像素中的3位,产生图4中可能的一种颜色。控制器指定视频数据缓冲器以备电子束通过显示屏。然后,控制器接收并利用视频数据在适当的时间显示,电子束移动到指定的像素点。根据图4所示,VGA控制器产生水平同步时序信号(HS)和垂直同步时序信号(VS),调节在每个像素时钟视频数据的传送。像素时钟定义了显示像素信息的有效时间段。VS信号定义显示的更新频率,或刷新屏幕信息的频率。最小的刷新频率是取决于显示器的亮度和电子束的强度,实际频率一般在60120Hz之间。给定的刷新频率的水平线的数量定义了水平折回频率。表2的时序信号是640480,像素时钟25Mhz,刷新频率60Hz1

21、。图5说明了每个时序的联系。同步脉冲的时序宽度(TPW)和前后门拱的间隔TFP和TBP)基于观察多种VGA的显示屏的结果。前后门拱的间隔是前后同步脉冲时间。在这些时段信息不能显示。表2 VGA时序与时钟频率的关系图4 VGA控制器时序信号图5 各时序之间的联系2.3 运行环境和开发工具的选择2.3.1 运行环境Windows Server2000系统运行平台,Spartan-3E Starter Kit Board开发板。2.3.2 开发工具Xilinx.ISE.v9.1FPGA开发平台,Spartan-3E Starter Kit Board开发板。(1)ISE9.1i开发软件Xilinx是

22、全球领先的可编程逻辑完整解决方案的供应商,研发、制造并销售应用范围广泛的高级集成电路、软件设计工具以及定义系统级功能的IP(Intellectual Property)核,长期以来一直推动着FPGA技术的发展。Xilinx的开发工具也在不断地升级,由早期的Foundation系列逐步发展到目前的ISE 9.1i系列,集成了FPGA开发需要的所有功能,其主要特点有:包含了Xilinx新型SmartCompile技术,可以将实现时间缩减2.5倍,能在最短的时间内提供最高的性能,提供了一个功能强大的设计收敛环境; 全面支持Virtex-5系列器件(业界首款65nm FPGA); 集成式的时序收敛环境

23、有助于快速、轻松地识别FPGA设计的瓶颈; 可以节省一个或多个速度等级的成本,并可在逻辑设计中实现最低的总成本。Foundation Series ISE具有界面友好、操作简单的特点,再加上Xilinx的FPGA芯片占有很大的市场,使其成为非常通用的FPGA工具软件。ISE作为高效的EDA设计工具集合,与第三方软件扬长补短,使软件功能越来越强大,为用户提供了更加丰富的Xilinx平台。ISE的主要功能包括设计输入、综合、仿真、实现和下载,涵盖了FPGA开发的全过程,从功能上讲,其工作流程无需借助任何第三方EDA软件。设计输入:ISE提供的设计输入工具包括用于HDL代码输入和查看报告的ISE文本

24、编辑器(The ISE Text Editor),用于原理图编辑的工具ECS(The Engineering Capture System),用于生成IP Core的Core Generator,用于状态机设计的StateCAD以及用于约束文件编辑的Constraint Editor等。 综合:ISE的综合工具不但包含了Xilinx自身提供的综合工具XST,同时还可以内嵌Mentor Graphics公司的LeonardoSpectrum和Synplicity公司的Synplify,实现无缝链接。 仿真:ISE本身自带了一个具有图形化波形编辑功能的仿真工具HDL Bencher,同时又提供了使

25、用Model Tech公司的Modelsim进行仿真的接口。 实现:此功能包括了翻译、映射、布局布线等,还具备时序分析、管脚指定以及增量设计等高级功能。 下载:下载功能包括了BitGen,用于将布局布线后的设计文件转换为位流文件,还包括了ImPACT,功能是进行设备配置和通信,控制将程序烧写到FPGA芯片中去。 使用ISE进行FPGA设计的各个过程可能涉及到的设计工具如表3所示。表3 ISE设计工具表(2)SPARTAN-3E开发板本次设计所用的试验设备是Xilinx公司的SPARTAN-3E试验开发板。Spartan-3E是Xilinx最新推出的一款低成本FPGA,基于Spartan-3/3

26、L,对性能和成本进一步优化。实验板利用TI公司的TPS75003芯片(专门为Spartan-3E的FPGA提供电源)作为三态输出调整仪。该调整仪适用多种FPGA的应用。Spartan-3E入门实验板使设计人员能够即时利用Spartan-3E系列的完整平台性能。开发板的部分技术参数和特性如下:设备支持:Spartan-3E、CoolRunner-II关键特性:Xilinx 器件: Spartan-3E (50万门,XC3S500E-4FG320C), CoolRunner-II (XC2C64A-5VQ44C)与Platform Flash (XCF04S-VO20C)时钟:50 MHz晶体时钟

27、振荡器存储器: 128 Mbit 并行Flash, 16 Mbit SPI Flash, 64 MByte DDR SDRAM连接器与接口: 以太网10/100 Phy, JTAG USB下载,两个9管脚RS-232串行端口, PS/2类型鼠标/键盘端口, 带按钮的旋转编码器, 四个滑动开关,八个单独的LED输出, 四个瞬时接触按钮, 100管脚hirose扩展连接端口与三个6管脚扩展连接器 显示器: VGA显示端口,16 字符- 2 线式 LCD电源:Linear Technologies 电源供电,TPS75003三路电源管理IC 应用: 可支持32位的RISC处理器,可以采用Xilinx

28、的MicroBlaze 以及PicoBlaze嵌入式开发系 统;支持DDR接口的应用.;支持基于Ethernet网络的应用;支持大容量I/O扩展的应用。3 过程论述3.1 设计原理3.1.1 FPGA的原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有: 1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它

29、全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和IO引脚。 4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。 加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,

30、因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA(Filed Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半订制电路而出现的,既解决了订制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA的工作机理基于查找(Look-Up-Table

31、,LUT),LUT其实就是一个RAM。目前很多FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线、大小位161的RAM、当用户通过HDL语言描述了一个逻辑电路以后,FPGA的开发软件(Xlinx公司的ISE和EDK等非常优秀的软件,我们将会在以后的章节中具体介绍)会自动计算逻辑电路所有可能的结果,并事先把计算好的结果记入RAM中。这样,每当有信号输入需要进行逻辑运算时,不必再用门去搭电路了,只要把输入作为一个地址进行查表,找出对应地址所存储的内容,然后输出即可。图6所示位一个4输入与门的LUT实现。这个例子很简单,只需要一个LUT就可以完成。对于一个LUT无法完成的电路,

32、则需要通过进行逻辑信号将多个单元相连,这样FPGA就可以实现复杂的逻辑了。图6 LUT原理图FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。图7位一般FPGA的结构图。图7 FPGA结构因为LUT主要适合于SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而SRAM工艺的芯片在掉电后信息就会丢失,必须外加一片专用配置芯片,可以是EPROM芯片。在加电时,FPG

33、A芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只需通用的EPROM、PROM编程器即可。由于配置时间很短,因而不会影响系统正常工作。当然也有少数FPGA采用反熔丝或FLASH工艺,对这种FPGA就不需要外加专用的配置芯片了。这样,同一片PFGA,不同的编程数据可以产生不同的电路功能。因此,FPGA的使用非常灵活。随着的不断发展以及用户需求的不断提出,FPGA的技术也在不断地发展。随着工艺和数字电路技术的不断进步,FPGA芯片的集成度会更高,功能会更

34、强,速度会更快,功耗会更低。FPGA中嵌入处理器也成为FPGA的一个发展趋势,内嵌了一个MicroBlaze的软核和PowerPC的硬核,可以满足用户的不同需求,让整个系统的移植成为可能,真正做到了SOC的设计。3.1.2 VGA显示接口原理VGA显示图像原理:常见的彩色显示器,一般由CRT(阴极射线管)构成。彩色是有R,G.B(红:RED,绿:GREEN,蓝:BLUE)三基色组成。显示是用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有银光粉的荧光屏幕上,产生R,G,B三基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,进行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始

35、位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行同步,扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描。它的行场扫描时序示意图8所示。现以正极性为例,说明CRT的工作过程:R、G、B为正极性信号,即高电平有效。当VS=0,HS=0时,CRT显示的内容为亮的过程,即正向扫描过程约为26us。当一行扫描完毕,行同步HS=1,约需6us,期间,CRT扫描产生消隐,电子束回到CRT的左边下一行的起始位置(X=0,Y=1);当扫描完480行后,CRT的场同步VS=1,产生场同步是扫描线回到CRT的第一行第一列(C=0,Y=0处,约为两个

36、行周期)。HS和VS的时序图。T1为行同步消隐(约为6us);T2为行显示时间(约为26us),T3为场同步消隐(两行周期);T4为场显示时间(480行周期)。图8 行场扫描时序示意图3.2 显示控制的总体设计3.2.1 系统模块图本次设计主要设计一个显示控制器,将存在存储器中的数据读出来在CRT显示器上显示。由于显示器接收的是R,G,B三基色信号,是8位并行数据,因此要将采集的串行数据转化成并行数据,再去驱动显示器。该模块设计总体结构示意图如图9所示。设计方案如下:将图像控制模块分为这样几部分:二分频电路(img.vhd)、VGA时序控制模块(vga640480.vhd)、存储器读出模块(S

37、RAM.vhd)。其中二分频把50mhz时钟频率分成25mhz并提供给其它模块作为时钟;VGA时序控制模块用于产生640480显示范围,并控制显示范围和消隐范围以及产生水平同步时序信号hs和垂直同步时序信号vs的值;存储器读出模块提供给SRAM地址并按地址读出八位数据(灰度值Y),然后得到R、G、B的值(若Y中间值,则R=G=B=1;否则R=G=B=0),并把R、G、B的值通过VGA接口传到CRT显示器。图9 模块设计总体结构示意图3.3 显示控制的详细设计3.3.1 二分频电路 二分频把50MHz时钟频率分成25MHz并提供给其它模块作为时钟。显示器的像素分辨率是640480,像素时钟25M

38、hz,刷新频率60Hz1。开发板提供的系统时钟是50MHz,所以要对板载时钟进行分频后才能使用。分频电路的设计部分程序如下1214:beginprocess(clk50mhz)begin-将50MHz分成25MHz的频率if(clk50mhz event and clk50mhz =1)then clk25mhz=not clk25mhz;end if;end process;图10是二分频电路设计的内部结构图。图10 二分频电路设计的内部结构图3.3.2 VGA时序控制模块VGA时序控制模块用于产生640*480显示范围,并控制显示范围和消隐范围以及产生水平同步时序信号hs和垂直同步时序信号

39、vs的值。一般来说,时钟计数器通过像素时钟来控制水平时序信号。译码计数器的值产生HS信号。在指定的行,计数器产生当前像素显示的位置。一个独立的计数器产生垂直时序信号。垂直同步计数器在每个HS脉冲信号来临时自动加1,译码值产生VS信号。计数器产生当前显示行。这两个计数器从地址到显示缓冲器连续计数。开发板的DDR SDRAM 提供了一个足够的显示缓冲区。在HS脉冲的开始和VS脉冲的开始没有具体规定相对的时序关系。因此,计数器被分配到简单格式的视频RAM地址,或分配到同步脉冲产生器的最小译码逻辑。设计对时序控制部分的部分代码如下16、17:architecture Behavioral of vga

40、sig is-定义相关常量,可参考VGA相关工业标准constant H_PIXELS:INTEGER:=640;constant H_FRONT:INTEGER:=16;constant H_BACK:INTEGER:=48;constant H_SYNCTIME:INTEGER:=96;constant H_PERIOD:INTEGER:=H_SYNCTIME+H_PIXELS+H_FRONT+H_BACK;constant V_LINES:INTEGER:=480;constant V_FRONT:INTEGER:=11;constant V_BACK:INTEGER:=32;const

41、ant V_SYNCTIME:INTEGER:=2;constant V_PERIOD:INTEGER:=V_SYNCTIME+V_LINES+V_FRONT+V_BACK;signal hcnt:std_logic_vector(9 downto 0);-行计数器signal vcnt:std_logic_vector(9 downto 0);-场计数器begin-产生行计数(记录每行的点数),H_PERIOD为行周期计数值。A:process(clock,reset)begin-复位时行计数器清零if reset=0 thenhcnt0);elsif (clock event and cl

42、ock=1) then -当行计数到达计数周期时将重置if hcntH_PERIOD then hcnt=hcnt+1;else hcnt0);end if;end if;end process;-产生场计数(记录每帧中的行数,VPERIOD为场周期计数值)B:process(hsyncb,reset)begin-复位场计数器清零if reset=0 then vcnt0);elsif(hsyncb event and hsyncb=1) thenif vcntV_PERIOD thenvcnt=vcnt+1;else vcnt0);end if;end if;end process;-产生行

43、同步信号,H-PIXELS为行显示点数,H-FRONT为前消隐点数,H-SYNCTIME为行同步点数C:process(clock,reset)beginif reset=0 then hsyncb=(H_PIXELS+H_FRONT) and hcnt(H_PIXELS+H_SYNCTIME+H_FRONT) thenhsyncb=0;elsehsyncb=1;end if;end if;end process;-产生场同步信号,V-LINES为场显示点数,V-FRONT为前消隐点数,V-SYNCTIME为场同步点数D:process(hsyncb,reset)beginif reset=0

44、 then vsyncb=(V_LINES+V_FRONT) and vcnt(V_LINES+V_SYNCTIME+V_FRONT) thenvsyncb=0;elsevsyncb=H_PIXELS or vcnt=V_LINES then enable=0;else enable=1;end if;end if;end process;3.3.3 存储器读出模块存储器读出模块提供给SRAM地址并按地址从存储器中读出八位R、G、B数据,并把R、G、B的值通过VGA接口传到CRT显示器。图11是存储模块设计的内部结构图。图11 存储模块设计的内部结构图4 显示控制的实现过程4.1 实现4.1.

45、1 设计软件中的仿真实现在代码编写完毕后,需要借助于测试平台来验证所设计的模块是否满足要求。ISE提供了两种测试平台的建立方法,一种是使用KDL Bencher的图形化波形编辑功能编写,另一种就是利用HDL语言。由于前者使用简单,功能强大,所以本设计基于图像化波形编辑建立仿真。在ISE中创建testbench波形,可通过HDL Bencher修改,再将其和仿真器连接起来,再验证设计功能是否正确。首先在工程管理区将Sources for设置为Behavioral Simulation,然后在任意位置单击鼠标右键,在弹出的菜单中选择“New Source”命令,然后选中“Test Bench Wa

46、veForm”类型,输入文件名为“test_bench”,点击Next进入下一页。这时,工程中所有VHDL Module的名称都会显示出来,设计人员需要选择要进行测试的模块。由于本工程只有两个个模块,所以列出了test,如图12所示。图12 选择待测模块对话框用鼠标选中test,点击“Next”后进入下一页,直接点击“Finish”按键。此时HDL Bencher程序自动启动,等待用户输入所需的时序要求,如图13所示。图13 时序初始化窗口时钟高电平时间和时钟低电平时间一起定义了设计操作必须达到的时钟周期,输入建立时间定义了输入在什么时候必须有效,输出有效延时定义了有效时钟延时到达后多久必须输出有效数据。默认的初始化时间设置如下: 时钟高电平时间(Clock High Time):100ns  时钟低电平时间(Clock Low Time):100ns 输入建立时间(Input Setup):15ns 输出有效时间(Out

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号