SOPC在VGA数字视频信号处理中的应用

2014-01-03 02:09燕卫
中国信息化·学术版 2013年4期

燕卫

【摘要】本文介绍了如何依据VGA工业标准及VGA接口的功能,确定控制器输入输出信号的时序逻辑及控制器的组成构件,进而利用高效的EDA软硬件开发平台,在可编程逻辑器件FPGA_E定制VGA图形控制器。

【关键词】VGA接口标准、嵌入式视频系统、SOPC

【中图分类号】TP391.41;TP277 【文献标识码】A 【文章编号】1672-5158(2013)04-0067-01

一、SOPC方案论证

SOPC是PLD和ASIC技术融合的结果,目前0.13微米的ASIC产品制造价格仍然相当昂贵,相反,集成了硬核或软核CPU、DSP、存储器、外围I/O及可编程逻辑的SOPC芯片在应用的灵活性和价格上有极大的优势。SOPC被称为“半导体产业的未来”。SOPC是一种特殊的嵌入式系统:首先它是片上系统(SOC),即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁减、可扩充、可升级,并具备软硬件在系统可编程的功能。

常见的EDA软件有ORCAD、Multisim、PROTEL、Quaaus、Matlab等,本文使用的软件平台是美国Altera公司Quartus Ⅱ,它是单芯片可编程系统( SOPC)设计的综合性环境,拥有FPGA和CPLD设计的所有阶段的解决方案,能够完成所有的软件流程。

本文使用的硬件开发板是Altera的UP3板,得益于强大的硬件开发板,设计过程基本不需要进行硬件制作,该板拥有的FPGA(EPlC3)、VGA接口插件、FlashROM、EEPROM等硬件资源,对加快设计进度有很大的帮助。

二、VGA图形控制器的设计与验证

随着全球化的加速,当前的电子产品已经日趋标准化,放弃标准等于放弃市场。因此,从技术标准人手进行设计已经成为新时期电子设计的必然途径。

(一)VGA图形控制器的整体设计

VGA图形控制器是一个较大的数字系统。采用模块化设计原则,借鉴自顶向下的程序设计思想,进行功能分离并按层次设计。利用VHDL硬件描述语言逐一对每个功能模块进行描述,并逐个通过编译仿真。使顶层VGA图形控制器的模块实体仿真综合得以顺利通过。VGA控制器主要由以下模块组成:VGA时序控制模块,分频模块、图像控制模块、ROM读取模块等。

模块其实就是一个个能够独立实现某种功能的子电路,与传统意义上的电路不同的是,可编程逻辑器件中的模块都是通过VHDL等硬件描述语言来完成功能设计。这种设计方法的最大的好处是易于修改,避免了传统电路改进过程中需要克服的硬件更改问题,提高了设计效率。

(二)VGA控制器的时序控制器的设计

根据VGA工业标准,VGA控制器输出信号主要有三组:HS、VS、RGB,输入信号主要两组:CLK、DATA

根据VGA行扫描时序要求,控制器需要一个行脉冲计数器(输入接CLK,初值为0,计数值高于800时进位)和一个水平同步脉冲发生器(在行脉冲计数器数值高于656且低于752时,输出一个低电平)。

根据VGA场扫描时序要求,控制器需要一个场脉冲计数器(输入接行脉冲计数器的进位端,初值为0,计数值高于525时进位)和一个垂直同步脉冲发生器(在场脉冲计数器数值高于490且低于492时,输出一个低电平)。

根据VGA工业标准对图像分辨率和消隐信号的要求,控制器需要一个图像输出使能控制器(在行脉冲计数器数值低于640且场脉冲计数器数值低于480时,把DATA图像信号输出到RGB端)和一个消隐控制器(在行脉冲计数器数值高于于640或场脉冲计数器数值高于480时,把数值0赋到RGB端)。把以上思路用VHDL语言描述出来,输入到QuartusⅡ的文本编辑器中,编译无误后,就完成了对VGA时序控制器的初步设计。

行脉冲计数器及HS行同步脉冲产生模块的验证,行脉冲HS(hsyne)结束时间为30.29us,加上行同步头Tb的40个周期(约1.6us),可知仿真所得的行周期为31.89us,由于输入CLK信号为25MHZ低于标准的25.175MHZ,因此它比标准的行周期31.78us略长是正确的,此外HS的脉冲宽度也在3.8us左右(标准为3.81us),可见本模块时序仿真验证正确的。

场脉冲计数器及VS场同步脉冲产生模块的验证,行脉冲VS(vsyne)结束时间为15.75ms,加上场同步头Tb的25个周期(约为0.8ms),可知仿真所得的行周期为16.55ms,和标准的16.688ms误差在正常范围的,此外VS的脉冲宽度也在0.06ms左右(标准为63us),可见本模块时序仿真验证是正确的。

控制器能够将信号pax val延迟少许时间送到RGB端证明,该模块时序仿真验证是正确的。

(三)ROM读取控制模块

ROM读取控制模块是VGA彩色显示器和存储图像数据的ROM之间的通道。为了保证VGA显示器能够准确的显示图像,必须严格按照显示器的扫描规律,在ROM中逐个字节的存储对应像素点的颜色数据,并通过RGB信号线把颜色数据输入VGA显示器,从而得到ROM中存储的图像信息,在显示器上显示出完整的一幅图像。

此模块的设计关键在于产生与各个像素点对应的ROM的地址信号。利用类似于横坐标与纵坐标定位的方式,可以分别得到高9位和低10位地址信号,最终结合为19位的地址信号。可以实现横坐标不大于640,纵坐标不大于480的像素点的定位,并得到ROM中相对应地址的颜色数据。

(四)VGA彩色信号生成模块

通过一个4进制计数器mode对该输入进行计数,每当按钮被按下一次,计数器mode的值就加1。而计数器mode的值又决定着输出的彩条信号的类型,当mode为0时,输出的彩条为竖彩条;当mode为1时,输出横彩条;当mode为2时,输出棋盘格彩条;当mode为3时,输出“全黑”信号;当mode为4时,输出“全白”信号,以此类推,共显示11种模式。

(五)刷新率调节模块的设计

VGA 9业标准的分辨率为640×480,刷新率为60HZ,这无法满足用户对显示画面的要求,要解决这一问题,必须提高VGA控制器的象素输出频率(即点频),使VGA控制器描述一个点所花费的时间更短,进而在同一时间内描述更大的信息量(即更高的分辨率)和更多幅的画面(即更高的刷新率)。

FPGA器件CycloneEPIC3内部拥有PLL锁相环,可以通过QuartusⅡ的Mega Wizard功能模块生成,这样就可以在FPGA器件内部建立一个倍频器(由于器件限制,最高倍频输出频率为450MHZ),如果在这个倍频器输出端接上一个数控分频模块,那么我们就可以控制VGA接口的象素输出频率了,这样就可以实现更高的分辨率和刷新率了。

经过实验论证,基于FPGA的VGA图形控制系统已基本达到设计要求,可实现彩条、全黑、全白、全红、变分辨率、刷新率的图形显示,并可实现FPGA器件对显示器的单片控制。已顺利建立基于FPGA的VGA图形控制系统与VGA接口之间的通信通道,在此基础上,可进一步实现对其它显示系统的控制。