基于FPGA的VGA图像控制器设计与实现

时间:2022-04-19 01:25:08

基于FPGA的VGA图像控制器设计与实现

摘要:EDA技术[1]是现代电子设计技术的核心,它依赖功能强大的计算机,在EDA软件工具平台上,以硬件描述语言VHDL为系统逻辑描述的主要手段完成系统设计。利用可编程器件FPGA实现VGA彩色显示控制器在工业现场中有许多实际应用。以硬件描述语言VHDL对可编程器件进行功能模块设计、仿真综合,可实现VGA显示控制器显示各种图形、图像、文字及动画效果。

关键词:EDA技术;VHDL;VGA显示控制器;FPGA;

中图分类号:TP391.41 文献标识码:A文章编号:1007-9599 (2010) 07-0000-01

VGA Image Controller Design&Implementation against FPGA

Hu Yinggang

(Chengdu Institute of Sichuan Normal University,Chengdu611754,China)

Abstract:EDA technology [1] is the core of modern electronic design technology,it relies on powerful computer platform in the EDA software tools, hardware description language VHDL description for the system logic to complete the primary means of system design.FPGA implementation using programmable devices VGA color display controllers in the industrial field,there are many practical applications.VHDL hardware description language with programmable function module device design,simulation,synthesis,can achieve VGA display controller display various graphics,images,text and animation.

Keywords:EDA technology;VHDL;VGA display controller;FPGA;

一、设计原理

VGA(视频图形阵列)作为一种标准的显示接口得到广泛的应用,一般有专用芯片,本设计采用FPGA设计VGA接口,可以将要显示的数据直接送到显示器。

VGA接口是与显示器进行通信的唯一接口。通过FPGA器件对RGB信号、行同步信号、场同步信号等信号的控制,并参照有关标准,可以实现对VGA显示器的控制。由此可见,了解接口标准,控制时序和设定恰当的参数是系统设计的关键。参照VGA主要参数的工业标准,像素输出频率为25.175MH;行频为31.469KHz;场频为59.94Hz。

二、设计方案

VGA图像控制器是一个较大的数字系统。采用模块化设计原则和自顶向下的设计思想,进行功能分离并按层次设计。将VHDL硬件描述语言设计与原理图设计相结合,逐一对每个功能模块进行仿真,使顶层VGA图像控制器的模块实体仿真综合得以顺利通过。VGA控制器主要由以下模块组成:消隐模块,显示模块,分频模块,网格生成模块,汉字显示模块,图像控制模块,动画生成模块,LPM-ROM调用模块,EEPROM调用模块等。

三、模块设计

(一)消隐模块

消隐模块是整个显示控制器的关键部分,显示模块、汉字模块、彩条模块、网格模块、动画控制模块、LPM-ROM调用模块等都由消隐模块控制,并且行同步信号(HS)和场同步信号(VS)都由该模块产生。仿真时由于CLK频率相当高,像素速率也很高,为了观察HS、VS信号,适当缩小了波形比例。

(二)显示模块

显示模块是整个显示控制器的重要组成部分。各个模块的输出数据都要经过该模块处理后送到显示器。显示模块在VGA显示控制器中起着至关重要的作用。

显示模块的VHDL设计如下:

ARCHITECTURE BEHAVE OF DISPLAY IS

SIGNAL GRB: STD_LOGIC_VECTOR(3 DOWNTO 1);

BEGIN

GRB(2)

GRB(3)

GRB(1)

R

G

B

END BEHAVE;

GRBP为三原色数据信号,由模式控制模块产生;行同步信号HS由消隐模块产生;场同步信号VS由消隐模块产生。输出的R、G、B信号分别为红色、绿色、蓝色信号。显示模块的输出信号直接连到VGA接口,它是控制器与显示器进行通信的桥梁。该模块以VHDL语言实现,该模块中的结构体描述一共只用了6条语句。而要实现同样的功能,一般操作系统的视频卡驱动程序需要冗长的代码去描述。由此可见,VHDL语言具有很大的优越性。

(三)汉字生成模块

汉字生成模块可实现在显示器上显示汉字、字符等。字模信息可以利用字模提取软件来获得,得到了汉字的字模信息后,可以通过屏幕上的横坐标和纵坐标按照字模信息定义像素的颜色,这样就可以显示任何字体、任何点阵的汉字,并根据需要决定汉字在屏幕上的位置。至于英文以及其他任何符号的显示原理与汉字显示的原理一样。

(四)网格生成模块

网格生成模块用来编辑各种图形。网格生成模块的实现原理与汉字生成模块、彩条发生器类似,在像素的横坐标和纵坐标控制下,实现各种网格图形的生成。网格生成模块所产生的九种图形送显示器依次显示,所以可以看到网格由小到大逐渐变化,虽然不是动画效果,但每秒一帧画面的速度依然使图像连续变化呈现出动感。网格以及背景的颜色也可以随意设置。每帧图像的速率可由时钟来控制。

(五)LPM-ROM调用模块

LPM是参数可设置模块库。本设计中调用了三个LPM-ROM,其中两个用来存放汉字信息,另一个用来存放动态彩条信息。调用LPM-ROM模块,一个重要的问题就是*.mif文件的生成。这里文件生成借助字模提取软件和WORD编辑功能。设置好参数后,生成元件作为自定义元件库中的元件以供调用。

(六)EEPROM调用模块

EEPROM调用模块是设计的难点之一。该模块实现了对系统外挂的两个EEPROM(W27E040和W27C020)的访问,通过该模块可以使显示器显示各种各样的彩色图像。

(七)图像模式控制模块

图像模式控制模块也是该数字系统的关键部分,它的主体部分是一个功能齐全的数据选择器(32选1)。该模块由一个32选1数据选择器和一个32进制可逆计数器组成。可逆计数器控制端为EC、DIR、CLR,MD为计数时钟信号。计数结果是数据选择器进行选择的依据,通过对可逆计数器的控制,可以实现对模式选择的控制。

图像控制模块共产生了32种模式,由计数器实现了对模式的有效控制。其实图像控制模块功能还可以进一步扩展。计数器输出为8比特,实际共有255种模式,在输入的32个信号中,可以将它们其中的任意几个进行再处理,如叠加、异或、相与等等,这样就可以产生成千上万种图形的输出。

结语:掌握可编程逻辑器件的使用方法和技巧,对现代数字系统设计实现至关重要。本文介绍的基于FPGA器件的VGA控制器设计方法,可以实现显示器的实时显示。

参考文献:

[1]潘松,黄继业.EDA技术与VHDL(第二版)[J].北京:清华大学出版社,2007,1

上一篇:Linux下多通道话音采集压缩卡的驱动研究与实现 下一篇:802.1x协议在桌面安全管理系统中的应用