基于FPGA的VGA接口驱动技术

更新时间:2023-08-30 12:52:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2012年12月第12期

电子测试

ELECTRONIC TEST

Dec. 2012No.12

基于FPGA的VGA接口驱动技术

姜世杰, 余红英, 洪永学, 林丽蓉

(中北大学信息与通信工程学院, 山西太原 030051)

依据VGA显示原理, 利用Verilog摘要:VGA (视频图形阵列)作为一种标准的显示接口得到广泛应用。

硬件编程语言作为逻辑描述手段,设计了一种基于现场可编程器件FPGA的VGA接口控制器。主要是对于系统时序的控制,完成对整个显示器的扫描,利用FPGA的高频率时钟优点;在使用FPGA的嵌入式系统中能代替VGA的专用显示芯片,节约硬件成本,节省计算机处理时间,加快数据处理速度并具有显示面积大、色彩丰富、承载信息量大、接口简单等优点。最后利用ModelSim进行仿真运行,得出与资料相同的时序波形。

关键词:VGA;FPGA;接口控制器中图分类号: TN79+1 文献标识码: A

FPGA implementation of VGA interface

Jiang Shijie, Yu Hongying, Hong Yongxue, Lin Lirong

(School if Information and Communication Engineering,North University of China, Taiyuan, Shanxi 030051)

Abstract: VGA(video graphic array)been widely used as a standard interface. According to the principle of VGA display, used of the Verilog hardware programming language as a means of logical description, this design based on field programmable device FPGA VGA interface controller. mainly to complete the control system timing for the display of the scanning with the help of high frequency clock advantages of FPGA, Using FPGA instead of the VGA special graphics chips in embedded, Can save 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. At last, running ModelSim to simulate and get the wave same as the datasheet.Keywords: VGA;FPGA;interface controller

候产生一个固定宽度的低脉冲,数据在某些固定的行和列交汇处有效。

0 引言

随着电子产业及视频图像处理技术的发展,VGA(视频图形阵列)作为一种标准的显示接口在视频和计算机领域得到了广泛的应用[1],在图像处理中若是采用传统的数据传输方式来使高分辨率图像实时显示在显示器上,一般要求晶振频率达到40 MHz以上,传统的电子电路难以达到这个速度,若采用专门的图像处理芯片,其设计难度大、开发成本高成为一个瓶颈选择。因此本文基于FPGA的灵活可编程性,利用其高达上百兆的工作频率来完成像素级的图像处理,丰富的I/O资源可以外接大容量存储器等优点,设计了一种驱动VGA的电路[2]。

1 VGA显示原理

1.1 VGA接口基本电路

标准的VGA接口一个有15个接口(见图1),但其中真正用到的就5个脚,HSYNC是行同步信号,VSYNC是场同步信号,同步信号就是为了让VGA显示器扫描像素点数据,vga_r、vga_g、vga_b为三原色信号,我们可以直接用I/O口去连接5个信号接口,并且三色信号接口输入只可能是数字信号(0或者1),因此液晶屏上显示的颜色最多有8种,一般来说可以在FPGA与VGA接口之间加一个D/A芯片,这样就可能实现65536种或者更多色彩的显示。

1.2 VGA工作原理[3-4]

VGA的接口时序如图2所示,场同步信号VSYNC在每帧数据开始的时候产生一个固定宽度的低脉冲,行同步信号HSYNC在每行开始的时图1 VGA接口

图2 VGA控制时序

对于一个刷新频率为60 Hz,分辨率为800×600的显示器,我们用50 MHz晶振的FPGA芯片驱动设计,表1为它的脉冲技术表。

表1 VGA时序表

同步脉冲

后沿显示脉冲后沿帧长行同步

信号12067800521039场同步信号

6

25

600

56

687

首先行同步信号在某个系统时钟上升沿到来时被拉低120个脉冲宽度后被拉高,经过67个脉冲,DATA数据有效,即显示器开始扫描800个列像素点,扫描完成到下一次行同步信号再次被拉低,中间经过52个时钟脉冲。扫描一行需要的

数据帧长为1039。

而场同步信号的扫描方式类似于上面的步骤,在某个时钟到来时被拉低6个脉冲宽度继而被拉高,拉高后延迟25

个脉冲周期行同步信号被拉

低,这样开始扫面每行的像素。完成本次扫描后场同步信号再次被拉低重复上述过程。因为刷新频率为60 Hz,所以每秒场同步信号会被拉低60次。这样完成对800×600分辨率显示器的每个像素点的扫描如图3所示。

图3 扫描过程

2 实例应用

针对上面提到的VGA工作原理,利用Quartus II软件编写Verilog[5]硬件代码来驱动常见的17寸电脑显示器,选用ALTERA公司的EP2C8Q208C8芯片作为主控芯片,根据时序来完成对硬件电路的描述与搭建。首先是对管脚的定义如表2所示。

表2 管脚定义

信号名称信号方向描述clkinput时钟信号 50MHzrst_ninput复位信号 低电平有效hsyncoutput行同步信号 低电平有效vsyncoutput场同步信号 低电平有效vga_routput三原色 红色信号0 或1vga_goutput三原色 绿色信号0或1vga_b

output

三原色 蓝色信号0或1

其次利用系统时钟产生行、场同步信号,完成对整个显示器的显示扫描,代码如下:

reg hsync_r,vsync_r; //同步信号产生

always @ (posedge clk or negedge rst_n) if(!rst_n) hsync_r <= 1'b1;

else if(x_cnt == 11'd0) hsync_r <=

1'b0;

//产生hsync信号

else if(x_cnt == 11'd120) hsync_r

<= 1'b1;

always @ (posedge clk or negedge rst_n) if(!rst_n) vsync_r <= 1'b1;

else if(y_cnt == 10'd0) vsync_r <=

1'b0;

//产生vsync信号

else if(y_cnt == 10'd6) vsync_r <=

1'b1;

assign hsync = hsync_r;

assign vsync = vsync_r;

最后驱动VGA接口在显示器上显示一个矩形框和一个小矩形,效果如图4所示。

//显示一个矩形框

wire a_dis,b_dis,c_dis,d_dis; //矩形框

显示区域定位

assign a_dis = ( (xpos>=200) && (xpos<=220) ) &&

( (ypos>=140) && (ypos<=460) );

assign b_dis = ( (xpos>=580) && (xpos<=600) ) && ( (ypos>=140) && (ypos<=460) );

assign c_dis = ( (xpos>=220) && (xpos<=580) ) &&( (ypos>=140) && (ypos<=160) );

assign d_dis = ( (xpos>=220) && (xpos<=580) ) && ( (ypos>=440) && (ypos<=460) );

//显示一个小矩形

wire e_rdy; //矩形的显示有效矩形区域assign e_rdy = ( (xpos>=385) && (xpos<=415) ) &&

( (ypos>=285) && (ypos<=315) );

图4 驱动显示器

此处只是展示了部分代码,Verilog硬件描述语言完全不同于以往我们接触的编程类语言,它可以很直白的完成对芯片或者器件的时序图的描述来完成硬件电路的搭建[6-7]。

3 调试仿真

本设计有两个模块,一个是vga_dis模块,它的作用是对所有像素点的扫描并产生行、场同步信号,另一个vga_play模块。编译生成的RTL视图如图5所示。

图5 RTL视图

其中clk为系统的时钟信号,设计中所有的分频、计数器等都是对该系统时钟进行操作完成,rts_n为复位信号,从vga_dis中产生hsync和vsync以供给VGA进行正常的扫描工作,同时产生坐标信号作为输入信号输入到vga_play模块中用于产生图像信息。

时序仿真软件我们选用同为ALTERA公司下的一个仿真平台ModelSim[8],我们在Quartus中编写好程序代码和仿真脚本,可以很好的无缝链接到ModelSim直接进行时序仿真如图6所示,本例输入/输出接口简单,编写的激励脚本也相对容易。

图6 时序仿真波形

4 结束语

利用可编程逻辑器件(FPGA/CPLD)可以很方便地实现数字系统设计,而在ALTERA的Quartus II软件平台和ModelSim仿真平台下,

FPGA设计的各个阶段都得到了很好的支持,两者的有效结合使得数字系统的设计更加方便快捷。

基于FPGA器件的VGA显示控制模块可以实现VGA显示的各项功能。其性能取决于Verilog代码的编写和Quartus II软件工具的综合优化的结果。

参考文献

[1] 谢磊.基于FPGA的VGA图像控制器的设计

与实现[J].新乡学院学报:自然科学版,2009, 26(6):51-53.

[2] 张亚平,贺占庄.基于FPGA的VGA显示模块

设计[J].计算机技术与发展,2007,17(6):242-245.

[3] 杨金.基于FPGA的VGA游戏设计[J].数字技术

与应用,2012(4):171-172.

[4] 段磊.基于FPGA的VGA显示系统[J].世界电子

元器件,2007(9):102-105.

[5] 夏宇闻,胡燕祥,刁岚松.Verilog HDL数字设计

与综合[M].2版.北京:电子工业出版社,2011.

(下转第71页)

京:高等教育出版社,1998.

[5] 吴运昌.模拟集成电路原理与应用[M].广州:

华南理工大学出版社,1995.

[6] Paul M.Brown,Jr.A Guide to Analong

ASICs[M].Academic Press ,Inc,San

Diego,1992.

[7] Paul Horowitz,Winfield.The Art of

Electronics[M],2nd ed,Cambridge University

图7 RL取7-301Ω,间隔约7Ω时,电流的波动

Press,1989.

[8] Thomas L.Floyd . Electronic Devices[M].5th

ed,Prentice-Hall Inc,New Jersey,1999.[9] 赵学泉.电源电路[M].北京:电子工业出版

社,1995.

[10] 杨世成.信号放大电路[M].北京:电子工业

出版社,1995.

[11] 彭介华.电子技术课程设计指导[M].北京:

图8 RL在7-580Ω,间隔约50Ω

时,电流的波动

参考文献

[1] 北京电子报社.北京电子报合订本[M].北京:

北京电子报社,1990:79-88.

[2] M.普兰特.电子爱好者读本[M].北京:科学

普及出版社,1983:195-197.

[3] 吴润宇.实用稳定电源[M].北京:人民邮电

出版社,1994.

[4] 童诗白,华成英.模拟电子技术基础[M].北

(上接第32页)

高等教育出版社,2000.

[12] 李青山.集成电子技术原理与工程应用[M].

哈尔滨:哈尔滨工业大学出版社,1991.作者简介:

米卫卫,硕士研究生,研究方向:计算机测控系统与技术E-mail:miweiweisky@http://www.77cn.com.cn

[6] 秦庆磊,张昌州.基于FPGA控制VGA显示的双

通道数字示波器[J].科技信息,2011(30):120.[7] 求是科技.FPGA数字电子系统设计与开发实

例导航[M].北京:人民邮电出版社,2005.[8] 时为.异步串行数字收发通信端口(UART)的

ModelSim仿真[J].扬州教育学院学报,2006,

24(3):52-54.作者简介:

姜世杰,在读硕士研究生,主要研究方向为图像处理与识别。E-mail:jiangshijie1@http://www.77cn.com.cn

本文来源:https://www.bwwdw.com/article/hyti.html

Top