基于FPGA的VGA显示控制器设计

龙源期刊网 http://www.qikan.com.cn

基于FPGA的VGA显示控制器设计

作者:凌琳

来源:《电脑知识与技术》2012年第17期

摘要:VGA (视频图形阵列)作为一种标准的显示接口得到广泛应用。依据VGA显示原理,利用VHDL作为逻辑描述手段,设计了一种基于现场可编程器件FPGA的VGA接口控制器。在使用FPGA的嵌入式系统中能代替VGA的专用显示芯片,节约硬件成本,节省计算机处理时间,加快数据处理速度并具有显示面积大、色彩丰富、承载信息量大、接口简单等优点。 关键词: VGA; FPGA;接口控制器

中图分类号:TP18文献标识码:A文章编号:1009-3044(2012)17-4214-03 FPGA-based VGA Display Control Design LING Lin

(Electronic Information and Electrical Engineering Department of Hefei University, Hefei 230601, China)

Abstract:VGA(video graphic array)been widely used as a standard interface. According to the principle of VGA display, use of the VHDL as a means of logical description, this design based on field programmable device FPGA VGA interface controller. Using FPGA instead of the VGA special graphics chips in embedded, Can saving on hardware costs, save computer processing. Accelerate the speed of data processing and has the advantage of display area, rich colors, carrying information, and simple interface.

Key words: VGA; FPGA; interface controller

VGA接口大多应用在显示器与显卡之间;同时还可以用用在擦二色等离子电视输入图像的模数转换上;VGA接口同样也是LCD液晶显示设备的标准接口[2]。可编程逻辑器件随着微电子制造工艺的发展取得了长足的进步[3]。早期的器件只能存储少量的数据,完成简单的逻辑功能;发展到现在,可以完成复杂的逻辑功能,速度更块,规模更大,功耗更低。目前可编程逻辑器件主要有两大类:复杂可编程逻辑器件(complex programmable logic device,CPLD)和现场可编程逻辑器件(filed programmable gate array,FPGA)[1]。

FPGA的运行速度块,管脚资源丰富,容易实现大规模的系统设计,有大量的软核可用,便于进行二次开发。另外,由于FPGA具有可重构能力、抗看绍兴强等特点,因此,FPGA在工业控制等领域越来越受到重视。使用FPGA来完成VGA图像显示控制,可以让图像显示脱离PC机的控制,形成体积小、功耗低的格式嵌入式系统(便携式设备或手持设备),在应用于地面勘测、性能检测等方面,具有重要的现实意义[2]。

龙源期刊网 http://www.qikan.com.cn

显示器因为其输出信息量大,输出形式多样等特点已经成为现在大多数设计的常用输出设备。在FPGA的设计中可以使用很少的资源,就产生VGA各种信号[3]。为了通过VGA端口连接显示器显示前端采集到的图像数据,本设计在STK-FPGA开发板上使用VGA接口在显示器上显示文字及简单的图形。

现形的VGA接口大都用于CRT显示器,用作计算机的输出设备,另外,在很多图像采集输出的地方也占有一席之地。例如车载监控系统,图像识别等领域。 1 VGA显示原理

VGA工业标准显示模式要求:行同步、场同步都为负极性,即同步头脉冲要求是负脉冲。设计VGA图像显示控制要注意两个问题:一个是时许驱动,这是完成设计的关键,时序稍有偏差,显示必然不正常,甚至会损坏彩色显示器;另一个是VGA信号的电平驱动(VGA信号的驱动电平是模拟信号)对于一些VGA显示器,HS和VS的极性可正可负,显示器内可自动转换为正极性逻辑。在此以正极性为例,说明CRT的工作过程:R、G、B为正极性信号,即高电平有效[1]。 2 VGA时序

VGA时序控制模块是整个显示控制器的关键部分。最终的输出信号HS,VS必须严格按照VGA时序标准产生相应的脉冲信号,否则不能正确显示图像,甚至损坏显示器。 设计思路:由于像素频率约为25MHZ,则当输入50MHZ的时钟信号时,进行二分频处理,即可得到与像素频率相同的时钟信号。再对25MHZ时钟信号进行800分频,并当计数值小于640时,行同步信号取高电平,计数值大于640小于800时,行同步信号取低电平。在此基础上,利用行计数器进行计数,当计数值小于480时,场同步信号取高电平,计数值大于480小于525时,取低电平。其时序图如图1所示。 3 FPGA简介

FPGA是现场可编程门阵列的简称,它是电子设计领域中最具活力和发展前途的一项技术,上至高性能的CPU,下至简单的74电路,都可以用FPGA来实现。可以通过传统的原理图输入法或硬件描述语言自由地设计一个数字系统。通过软件仿真,可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改功能,随时修改设计而不必改动硬件电路。所以,使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA的这些优点使得GAL技术在90年代后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言的进步[1]。 4 FPGA的开发流程

用VHDL语言开发FPGA的流程图如图3所示,其过程如下:

龙源期刊网 http://www.qikan.com.cn

1)文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件,Verilog文件保存为.v文件。 5模块电路实现

设计中采用自顶向下的设计方法将系统分为时钟模块、时序控制模块、彩条显示模块、图片显示模块和字符显示模块,以硬件描述语言在FPGA中实现,系统顶层如图4所示。 图4顶层原理图

图4中inclk是时钟输入信号,输入pll25(锁相环)对时钟进行稳定并输出给其他模块。VGA640480为VGA时序控制模块,clk接受工作时钟信号,依据VGA显示原理,得到符合VGA显示标准的行扫描地址hcntout和场扫描地址vcnout输出给彩条、图片、字符显示模块,并通过MD模式选择当前显示内容,从选择的模块(彩条显示模块、图片显示模块、字符显示模块)中获取当前地址的显示信息,输出给hs行同步信号,vs场同步信号,并将颜色信息输出给r、g、b颜色分量信号,以显示当前位置颜色。

彩条显示模块从VGA时序控制模块获取当前显示地址,根据MD模式选择,选取要显示的彩条类型,再根据显示的地址判断当前地址显示的颜色,并将显示信息输出给时序控制模块。如横彩条即判断当前场扫描计数点,当计数点在0到60之间输出11111111(即白色彩条),60到120之间输出11111100(即为黄色彩条),120到180之间输出11100011(即为紫色彩条),180到240之间输出11100000(即为红色彩条),240到300之间输出00011111(即为蓝绿彩条),300到360之间输出00011100(即为绿色彩条),360到420之间输出00000011(即为蓝色彩条),其他输出00000000(即为黑色彩条)。竖彩条发生过程与横彩条一样,只是将场计数点换成行计数点来分别进行不同颜色彩条的显示。棋盘彩条的显示就是将横彩条竖彩条进行取异,即当前行计数与场计数所处在的范围进行取异计算,相同为0相异为1,得到该点的输出颜色。字符显示模块中存储了要显示的字符的字模信息,它从时序控制模块得到当前扫描地址,并对地址判断,若该点字符的字模显示为1即显示设置的前景色,字模为0则显示背景色,前景色与背景色可以自行设置。图片显示模块预先定制了一个内部ROM,存储了我们需要显示的图片,它将从时序控制模块得到的行、场扫描地址进行判断,当扫描到我们预设的显示区域则根据当前地址获取图片与存储的颜色信息并输出,若扫描的地址不在图片显示区域则显示我们预先设置的背景色。 6结束语

设计中采用了EP2C8Q208C8芯片来完成以上功能,它可以使用QuartusⅡ软件平台很方便的进行设计,利用VHDL代码具体实现了各模块功能,最终完成整个显示控制器的实现。如解决信息存储ROM的问题,还可以实现多图轮流播放,或者实现视频显示的设计。 参考文献:

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4