基于FPGA的VGA显示系统的设计与实现

时间:2022-02-25 11:57:25

基于FPGA的VGA显示系统的设计与实现

摘要:针对VGA(视频图形阵列)接口显示器的检测需求,设计了一种基于Altera FPGA的VGA显示系统。详细介绍了VGA显示的原理,采用硬件描述语言Verilog完成了VGA显示所需的驱动时序和图像存储相关模块的设计,并对整个系统进行了综合仿真,验证了设计的正确性。仿真与测试结果表明,该设计可以在简单的情况下实现图像或字符显示,节约了硬件成本,还可以满足不同显示标准的需要。

关键词:VGA;图像显示;FPGA;设计实现

DOI:10.3969/j.issn.1005-5517.2016.2.013

引言

VGA(Video Graphics Array)是IBM公司在1987年随PS/2机一起推出的一种视频传输标准,具有分辨率高、显示速率快、颜色丰富等优点,在显示器领域得到了广泛的应用。随着电子设计自动化(EDA)技术的发展,近年来FPGA(现场可编程逻辑门阵列)在大规模嵌入式系统设计中得到了广泛应用。本文对基于FPGA的VGA显示系统进行了研究,利用了Altera CycloneⅣ系列的FPGA高达上百兆的工作频率特性为数字图像处理提供了良好的实时性,其内部集成的数字锁相环为系统的工作时钟提供的良好的稳定性,其内部嵌入的存储器可以存储一定容量的图像信息,其丰富的I/O口资源可以扩展外接大容量的显示接口。此外,FPGA电路的可重构性,为系统功能的优化和升级以及功能拓展提供了很大的设计空间。因此,由FPGA完成VGA图像的显示和控制,较好的实现了图像数据处理的实时性和可靠性,具有成本低、结构简单、应用灵活的优点,可以广泛应用于视频和计算机的显示技术领域。

1 VGA显示原理

计算机显示器的显示有许多标准,如VGA、SVGA等。VGA作为一种标准的显示接口得到广泛的应用。常见的彩色显示器,一般由CRT(阴极射线管)构成,彩色是由R、G、B(红、绿、蓝)三基色组成。显示器中的阴极射线枪通过发出电子束打在涂有荧光粉的荧光屏上,产生RGB三基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,进行扫描,每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行行同步;扫描完所有行,用场同步信号进行场同步,并使扫描回到屏幕的左上方,同时进行场消隐,预备下一场的扫描.

VGA接口电路如图1所示,VGA采用15 pin的接口,用于显示的接口信号主要有5个:1个行同步信号(HSY);1个场同步信号(VSY)、以及3个颜色信号(VGA_G、VGA_R、VGA_B。

VGA的接口时序如图2所示,场同步信号VSYNC在每帧开始的时候产生一个固定宽度的低脉冲,行同步信号HSYNC在每行开始的时候产生一个固定宽度的低脉冲,数据DATA在某些固定的行和列的交汇处有效。

对于VGA接口信号的时序驱动,要严格遵循VGA显示工业标准.在不同分辨率下,VGA驱动时序中的行、列同步信号的格式是完全一致的,都由同步段、后廊段、激活段和前廊段组成,只是对应每段的高低电平的保持时间不同。本文采用刷新频率为60Hz,分辨率为800×600的VGA显示标准,其驱动时序表如表P所示。按照800×600×60Hz的显示标准时序,一个列像素扫描需要25ns,要完成一行的扫描,需要1056个列像素,也就是说需要1056×25ns的时间。如果要完成所有行的扫描的话,需要628×1056×25ns的时间。但不是所有时间都用来VGA图像显示,有一部分的时间用来时序同步操作.

2 FPGA的设计与实现

设计采用Altera公司的Cyclone Ⅳ系列FPGA(EP4CE6F17C8)作为主控制器,该芯片具有多达16272个LE、P79个用户I/O口。器件中M9K存储块提供240 KB存储容量,能够被配置来支持多种操作模式,包括ROM、RAM、FIFO以及单口和双口模式。器件具有3个可编程锁相环(PLL)和9个全局时钟线,能提供时钟管理和频率合成,实现最大的系统功能。VGA图像显示器是一个较大的数字系统。本设计采用模块化的设计方法,遵循自顶向下的程序设计思想,进行功能划分并按层次设计。采用硬件描述语言Verilog设计了各个功能模块并进行仿真,使顶层VGA显示模块实体仿真综合得以顺利通过。VGA图像显示器的逻辑结构框图如图3所示。根据VGA显示的原理,VGA图像显示器的工作原理是:时钟分频模块负责为系统提供驱动的基准时钟,VGA时序发生模块负责产生时序驱动信号、行列地址信号和有效区域信号,同时在正确的时序控制下,由图像显示控制模块读取图像信息存储模块中的像素数据并产生R、G、B三基色信号至显示器的VGA接口,进行图像显示。

2.1时钟分频模块设计

设计驱动VGA采用800×600×60Hz显示标准,该显示标准需要的最小单位也就是列像素所占用的时间周期为25ns。也就是说,至少需要频率为40MHz的时钟为VGA驱动提供基准时钟,利用FPGA器件的嵌入式锁相环(PLL)对FPGA源时钟(频率为50MHz)进行倍频(四倍频后五分频得到40MHz)。PLL是FPGA的重要硬件资源,其主要的功能是对源时钟编程、倍频、分频等。

2.2 VGA时序发生模块设计

VGA时序发生模块接口信号包括:行同步信号HSYNCSignal、场同步信号VSYNC Signal、有效区域信号Ready_Sig、行地址信号Column_Addr_Sig、列地址信号Row_Addr_Sig。行同步信号是根据行像素计数寄存器Count_H的计数值来产生,场同步信号产生是根据列像素计数寄存器Count_V的计数值来产生,而有效区域信号Ready_Sig用来确定串行输出的显示器的红、绿、蓝信号线上电平的高低.

经过PLL分频后的时钟每过25ns,Count_H就会累加计数,当其计到1056个列像素时,Count_V加1,Count_V最大计到628。VSYNC Signal在同步段保持低电平,之后就会拉高输出,同步段保持低电平的时间是扫描4个列像素的时间.而HSYNC Signal在同步段即刚开始的128个行像素保持低电平,之后输出高电平。有效区域信号Ready_Sig发生在HSYNCSignal和VSYNC Signal的激活段交集处,输出为高电平有效.为了精确地控制图像显示在屏幕的位置,VGAI]寸序发生模块有义务输出当前的行地址信号(Column_Addr_Sig)和列地址信号(Row_AddLSig)。行地址的计数是发生在128个Count_H之后,而列地址计数是27个Count_V之后开始计数.

VGA时序发生模块sync_module.v的部分代码如下:

2.3图像信息存储模块设计

图像信号包括数字彩条、棋盘格和ROM中定制的图形等。要在屏幕上显示图像,除VGAI]寸序之外,还需要设计底层存储器以建立图像信息库。FPGA定制ROM一般有两种方法:第一种方法是利用FPGA器件的嵌入式存储器定制LPM-ROM,用.mif文件或,hex文件对其对其进行初始化,这种方法获得的ROM最大寻址空间为2P2,可以存储一幅分辨率为64×64的图像信息;第二种方法是在FPGA逻辑资源的限度内利用硬件描述语言Verilog HDL定制一个ROM,采用case语句对其进行初始化,这种方法获得的ROM在存储深度较大时,编译时对时间的开销较大且浪费FPGA的逻辑资源。ROM初始化完成后在40M Hz的时钟频率下输出存储的图像信息,其图像颜色种类的多少取决于ROM存储空间的大小。

本设计需要显示一副64(宽)×64(高)×1(颜色)像素点阵的“比卡丘”卡通图像。要存放这一副图像,可采用FPGA嵌入的存储器定制数据线宽64位、地址线宽6位的LPM-ROM,其初始化文件如图4所示。这样的配置使得设计简单化,通过对行信号和列信号的有效组合对存储器的地址进行访问而来输出图像像素点阵从而显示图像。

2.4图像显示控制模块设计

该部分设计的思路是在前三步的基础上实现.有关RGB三基色信号的控制、行与列地址的控制、图像显示控制、帧控制,都是在这个模块中完成操作。首先,通过读取当前的行和列地址信号对ROM进行寻址,读取图片像素信息从而完成整个图片信息的扫描。其次,当有效区域信号产生时,通过RGB三基色信号实现图像的正确显示。

图像显示控制模块vga_controI_module.v的部分代码如下:

endmodule

2.5VGA显示顶层模块设计

在各模块功能实现的基础上,通过实例化的方式把它们有机地整合在一起,即为VGA显示顶层模块vga_moduoe.v,对其编译后生成的RTL级网表如图5所示。

3仿真与测试结果

利用modeIsim对VGA显示顶层模块进行功能仿真,所得到的时序驱动信号和RGB图像信号的关系如图6所示。HSYNC_Sig在前P28个时钟周期内保持低电平,后面保持高电平的时间为928个CLK,而VSYNC_Sig在HSYNC_Sig第5个下降沿到来时由低电平变为高电平,可以说明VGA模块工作是正确的。利用VGA适配器将FPGA板载的VGA接口与液晶显示器接口连接好,利用Quartus Ⅱ软件将程序下载到FPGA中验证,硬件测试结果如图8所示。最终,VGA输出的图像与图像源是一致的。

本文基于FPGA设计了VGA图像显示器,采用LPM-ROM完成图像信息的存储,在FPGA中合成了对VGA图像显示所需的各种时序控制信号和图像接口信号,用较省逻辑资源的方式,完成了VGA显示模块的设计,为图像运算节省了更多的逻辑资源。经过仿真验证,设计是正确可行的。该设计可以很好的实现我们在简单应用系统中对图像或字符显示的需要。

本设计还可以做一些扩展,当显示的图像信息量较大时,可对FPGA内部逻辑结构的数字图像处理实用算法进行深入研究,如添加CCD摄像头图像采集模块[3];还可以外接大容量的存储器,采用8位的二进制数据表示RGB三基色,实现256色输出,使显示的图像色彩更加丰富。

上一篇:智能化建筑电气节能工程设计的问题思考 下一篇:高龄女友索婚,少年惶惶成千古恨