VGA 接口原理分析和控制逻辑的实现学习
学习内容
本课程首先 进行 VGA 接口 的原理介绍,然后 编写逻辑 控制代码,最终进行
仿真和实现。 本课程 主要包括原理介绍和 设计实现 两个部分。
原理介绍
原理介绍分成以下三个部分。
(1) VGA 硬件 电路
(2) VGA 显示器工作 原理
(3) VGA 时序 分析
下面对 本课程涉及 的原理进行简要介绍。
(1) VGA 硬件 电路
ZEDBOARD 开发板 VGA 接口 电路如下,采用 DB15 接口 VGA-R1~VGA-R4、 VGA-G1~VGA-G4、 VGA-B1~VGA-B4 分别 代表 红绿蓝三基
色信号, 通过 电 阻 网络设计实现 分压效果 ,实现 DAC采集 使得 R、 G、 B 三基色 分别 4 bit 实现 12bit 分辨率 。 VGA-HS 表示 行同步 信号 VGA-VS 表示一帧 /屏 信号 的 结束 。
(2) VGA 显示器 工作原理
VGA 显示器 通过 自左向右 ,自上 至 下 逐行扫描的形式实现,每行扫描结束
会 产生 一个 H_SYN 行 同步信号, 最后 一行 扫描 结束 时候 产生 一个
H_SYN 同时产生一个 V_SYN 接着将进入 下一 屏的扫描和 显示 ,重复上
述操作。
由于协议基于经典的
CRT显示器,电子枪需要时间进行调整 ,这就需要除了同步
信号外还需要另外多一些的延迟时间,我们将看到这就是所谓 FRONT_PORCH和BACK_PORCH。
(3) VGA 时序分析
一幅图像中, 行扫描 若干次, 场 扫描仅一次 。
单独看行时序和场时序,FRONT_PORCH和 BACK_PORCH分别是在同步信号
的之前和之后。
从不断刷新的视频流中,从显示屏的第一个扫描点开始截取,可以实现显示,此
时时序可转换为下图,如此转换好处是便于地址从0 开始计,编程非常方便。依
据是VGA 支持即插即用,显示器会自动寻找同步信号。
下表列出了常见的显示分辨率和刷新率对应的参数。这里说的脉冲个数都是以像
素频率为单位的。
设计实现
目标:设计
一个 VGA信号的时序发生器,包括行号和列号以及对应的
H_SYN_V_SYN以及显示使能信号。
工程提供代码如下:
Step1 设计行 内 计数器和 行 计数器 ,设置 同步信号, 确定 有效 显示区 和消隐区 。实现 可见 代码 my_vga_syn.v。
上述
代码 即 VGA 的 时序驱动代码, 完整 代码可见 my_vga_syn.v。
Step2 编写 测试平台,实现效果测试 。
仿真
代码可见 vga_sim_top.v 主要注意模块调用和测试激励。
Step3新建工程 ,将上述文件添加到 工程中, 设置行为仿真,
Step4 设置 为 顶层文件, 生成 时钟, 实现输 入 100M 输出 65M 生成design1_wrapper.v文件 。
Step5 编写引脚 约束文件 生成 bitstream,下载 到开发板测试效果。
至此本节 课程实现,可通道 VGA 显示屏 查看工程效果。