注:由于没有系统的学过FPGA和Verilog语言,都是用到了才查的,所以对照参考的实验有很多删减的地方。参考链接见文末。
1.本实验是用Zedboard实现VGA接口的使用,通过PL端的资源,根据对应引脚连接信号线,完成VGA的使用。
实验分为几个小节,首先介绍VGA的引脚,然后了解VGA的时序,再根据硬件电路图,完成Verilog程序的设计,接着烧写bit流到开发板,测试。
2.介绍
参考:米联------- ZYNQ VGA 硬件驱动设计
VGA 是 Video Graphics Array 的简称, 也叫 D-Sub 接口。 目前显示器都配备 VGA接口, 有的显示器还配备 DVI(Digital Visual Interface) 和 HDMI(High Definition
Multimedia Interface) 接口。 VGA 是 IBM 在 1987 年随 PS/2 机一起推出的一种视频传输标准, 具有分辨率高、 显示速率快、 颜色丰富等优点, 在彩色显示器领域得到了广
泛的应用。 根据不同分辨率, VGA 分为 VGA(640x480) 、 SVGA(800x600) 、 XGA(1024x768) 、SXGA(1280x1024) 等。 目前 VGA 已经成为一种标准, 广泛应用于显示器、 TFT 液晶屏中。
VGA 接口分为公头和母头, 一般显示器都自带一根公头线, MIS603 开发平台上是母头, VGA 接口一共 15 根线, 分为 3 排, 标号如图所示:
引脚定义
在这里强调一下, VGA 接口的 RED、 GREEN 和 BLUE 传输的是模拟信号, 峰峰值为 0V~0.714V, 0V 代表无色, 0.714V 代表满色; HSYNC 和 VSYNC 传输的是数字信号, 为 TTL 电平。 VGA 模拟信号传输如图 6.1-2 所示, 源端和终端匹配电阻均为 75欧姆。
- 时序
参考:https://www.cnblogs.com/spartan/archive/2011/08/16/2140546.html
显示器扫描方式分为逐行扫描和隔行扫描:逐行扫描是扫描从屏幕左上角一点开始,从左像右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。隔行扫描是指电子束扫描时每隔一行扫一线,完成一屏后在返回来扫描剩下的线,隔行扫描的显示器闪烁的厉害,会让使用者的眼睛疲劳。
完成一行扫描的时间称为水平扫描时间,其倒数称为行频率;完成一帧(整屏)扫描的时间称为垂直扫描时间,其倒数称为场频率,即刷新一屏的频率,常见的有60Hz,75Hz等等。标准的VGA显示的场频60Hz,行频31.5KHz。
行场消隐信号:是针对老式显像管的成像扫描电路而言的。电子枪所发出的电子束从屏幕的左上角开始向右扫描,一行扫完需将电子束从右边移回到左边以便扫描第二行。在移动期间就必须有一个信号加到电路上,使得电子束不能发出。不然这个回扫线会破坏屏幕图像的。这个阻止回扫线产生的信号就叫作消隐信号,场信号的消隐也是一个道理。
注:这个图很重要,决定了编程的结构,一定要理解到,没看懂时序的要去看上面的参考链接,那里写的更详细。
4. VGA硬件图
由图可知,颜色信号共12个bit可以显示4096个色号。
VGA 接口信号和Zedboard引脚连接如下表所示: