
数事其术与变用
基于FPGA的VGA游戏设计
杨金
(西华师范大学物理与电子信息学院四川南充637002)
设计开发
摘要:针对专用视频处理芯片实现VGA图像信号发生器,其设计技术难度大、开发成本高,本设计基于FPGA技术实现VGA图像信号发生器。给出了VGA控制模块的内部结构,实现了水平时序信号设计、垂直时序信号设计、彩条显示的设计,经测试究成功能控制和显示驱动,试验结果准确。
关键调:VGAFPGA图像信号发生器
中图分类号:TP391.41 1、前言
文献标识码:A
文章编号:1007-9416(2012)04-0171-02
系统中最重要的部分是VGA时序的产生,VGA时序是正常输
FPGA器件高集成,高速度、低功耗、体积小,有丰富的查找表(LUT)资源,在数字电路的设计中得到广泛的应用。基于FPGA的电路设计灵活方便,性价比高,可以克服模拟器件抗干扰性差的缺点, VGA接口是与显示器进行通信的唯一接口,通过FPGA器件控制 RGB信号、行同步信号、场同步信号等信号,并参照有关标准,最后可以实现对VGA显示器的控制。利用EDA技术设计方法,可以根据用户的需要,设计出针对性强的VGA显示控制器,而且不需要依靠计算机,既能够大大降低成本,又可以满足生产实践中不断变化的
需要,同时产品的升级换代也方便迅速。 2、系统工作原理及框图
VGA接口是一个模拟信号接口。整体设计由三个部分组成: FPGA部分,VGA接口电路部分和键盘控制部分。其核心是由FPGA 部分完成整个系统的显示图像的数据处理,然后通过VGA接口电路输出到显示器显示,其系统结构图如图1所示。
电源
FPGA Cyclonell
EP2C5T144C 8
键盘
接电路
图1系统结构图
2.1VGA控制模块的内部结构
行扫基生成器(HS)
50MH2 行地址信号输出
键盘
场地址信号输出
场担措生或器(VS)
ROM
图像模式控制
VGA 显示器
RGB 输出信号
图2VGA控制模块的内部结构
出显示的关键,它包含在VGA控制模块中。VGA控制模块的主要模块的功能是用硬件描述语言VHDL实现VGA时序。产生图像信号的核心器件采用Altera公司的cvclone
FPGA芯片
EP2C5T144C8。它具有嵌入存储器,嵌人乘法器、PLL和低成本的封装,这些都为诸如视频显示等批量应用进行了优化。根据VGA显示原理,图像信号产生器的主要功能是:产生时序驱动信号HS、VS 及VGA彩色图像编码信号,同时在正确的时序控制下,输出ROM 中的像素数据至显示器的VGA接口,进行图像显示。VGA控制模块的内部结构如图2所示。
VGA时序信号是图像显示的关键,行、场扫描时序的产生,是利用逻辑编程的方法实现的,即用VHDL编写分题器、计时器和锁相环模块来获得。图像信号包括彩条、图形和ROM中定制的文字等,然后利用行、场的地址信号和较为复杂的逻辑结构,实现图像信号彩条,图形和ROM中定制的文字等的显示。
2.2水平时序信号设计
根据水平时序关系算出每段时间(有效像素显示时间、水平前、后沿消隐时间、水平同步脉冲宽度)内像素时钟的个数以及显示整行所需的像素时钟个数。把显示整行所需的像素时钟个数成为行周期。以像素时钟为基础设计点计数器。像素时钟由系统时钟的二分频得到,以屏幕左上角的第一个像素作为起始点,以第一个像素所在的列作为第一列。每经过固定的像素时间即每来一个像素时钟脉冲即点计数器加一。当点计数器的值等于行周期时,点计数器清零。
其程序如下所示: process(clk25M) begin
if (clk25M'event and clk25M = '1') then if hcnt < h_period then
hcnt <= hcnt + 1, else
hcnt <= (others => 'o'),
end if end if;
end process;
2.3垂直时序信号设计
根据垂直时序关系算出每段时间(有效像素显示时间、垂直前、后沿消隐时间、垂直同步脉冲宽度)所需行的个数以及显示整行所需行个数,把显示完整一场所需行的个数称为场周期。当像素时钟上升沿到来时,判断水平时序信号是否跳变为负,即水平时序信号是否出现同步脉冲,若是,则说明显示器已经产生了行,此时场计数器加一。当场计数器的值等于场周期时,场计数
171