VGA时序描述

1 概述

本文用于讲解VGA的时序,方便程序人员编写代码。

2 VGA接口时序详解

VGA 显示器扫描方式从屏幕左上角一点开始,从左向右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT 对电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。完成一行扫描的时间称为水平扫描时间,其倒数称为行频率;完成一帧(整屏)扫描的时间称为垂直扫描时间,其倒数称为场频率,即屏幕的刷新频率,常见的有 60Hz,75Hz 等等,但标准的 VGA 显示的场频 60Hz。其扫描示意图如下图所示。

在这里插入图片描述

图 1 VGA扫描示意图

在对VGA扫描方式有一个直观的感受以后接下来在看一看VGA接口的详细时序与各个参数的定义。VGA的详细时序如下图所示:

在这里插入图片描述

图 2 VGA详细时序

总的来说,VGA的时序主要包括行时序与场时序两个部分。

其中行时序主要包括:行同步(Hor Sync) 、行消隐(Hor Back Porch) 、行视频有效(Hor Active Video)和行前肩(Hor Front Porch)这四个参数,行时序的时序图如下图所示

在这里插入图片描述

图 3 VGA行时序

而场时序主要包括:场同步(Ver Sync) 、场消隐(Ver Back Porch) 、场视频有效(Ver Active Video)和场前肩(Ver Front Porch)这四个参数,场时序的时序图如下图所示

在这里插入图片描述

图 4VGA场时序

需要注意的有三点:

1、行时序是以”像素”为单位的, 场时序是以”行”为单位的。

2、VGA 工业标准显示模式要求:行同步,场同步都为负极性,即同步脉冲要求是负脉冲。

3、VGA 行时序对行同步时间、 消隐时间、 行视频有效时间和行前肩时间有特定的规范, 场时序也是如此。 常用VGA 分辨率时序参数如下表所示

表 1 VGA分辨率时序参数

在这里插入图片描述

其中:

Pixel Clock = (Screen Refresh Frequency)(Hor Active Video + Hor Front Porch + Hor Synv Pulse + Hor Back Porch) (Ver Active Video + Ver Front Porch + Ver Synv Pulse + Ver Back Porch)

以1600x1200,60Hz这种分辨率格式来说,162MHz = 161_870_400Hz = 60*(192 + 304 + 1600 + 64)*(2 + 46 + 1200 + 1) = 60 * 2160 * 1249

1600 + 64)*(2 + 46 + 1200 + 1) = 60 * 2160 * 1249

  • 7
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Verilog是一种硬件描述语言,用于描述数字电路和系统的行为。它被广泛用于设计和验证集成电路和数字系统。VGA(Video Graphics Array)是一种视频显示标准,用于连接计算机和显示器。 在Verilog中,你可以使用模块化的方式来描述VGA时序。通常,VGA时序由垂直同步信号(VSYNC)、水平同步信号(HSYNC)、像素时钟信号(CLK)和像素数据信号(DATA)组成。 以下是一个简单的Verilog代码示例,用于生成VGA时序信号: ```verilog module vga_timing ( input wire clk, // 像素时钟信号 output wire vsync, // 垂直同步信号 output wire hsync // 水平同步信号 ); reg [9:0] v_counter; // 垂直计数器 reg [9:0] h_counter; // 水平计数器 always @(posedge clk) begin // 在这里根据VGA时序规范更新计数器的值 // 生成垂直同步信号 if (v_counter >= 2'd3FF) vsync <= 1'b1; else vsync <= 1'b0; // 生成水平同步信号 if (h_counter >= 2'd639) hsync <= 1'b1; else hsync <= 1'b0; // 更新计数器的值 if (h_counter >= 2'd799) begin h_counter <= 2'd0; if (v_counter >= 2'd524) v_counter <= 2'd0; else v_counter <= v_counter + 2'd1; end else begin h_counter <= h_counter + 2'd1; end end endmodule ``` 这个示例代码使用了两个计数器(v_counter和h_counter),根据VGA时序规范生成了垂直同步和水平同步信号。根据具体的VGA分辨率和刷新率,你可能需要调整计数器的范围和阈值。 请注意,这只是一个简单的示例,实际的VGA时序可能更加复杂,并且可能需要处理其他信号(如像素数据)以生成完整的视频信号。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风中月隐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值