该模块位于Demonstrations\FPGA\HDMI_TX\vpg_source路径下。
模块概述
这是一个VGA显示控制器模块,用于生成符合DMT(Display Monitor Timing 显示器时序)时序的视频信号。
该模块的RTL Viewer视图如下:

该模块根据输入的时序参数生成VGA的行同步信号(vga_hs)、场同步信号(vga_vs)、数据有效信号(vga_de)以及RGB颜色数据(vga_r, vga_g, vga_b)。本案例利用该模块生成测试图案(颜色渐变和边框)用于HDMI显示验证。
输入信号:
-
clk:像素时钟输入。 -
reset_n:低电平有效的异步复位信号。 -
h_total:一行像素的总数(包括消隐区)。 -
h_sync:行同步脉冲的宽度(以像素数为单位)。 -
h_start:行有效数据开始的像素位置。 -
h_end:行有效数据结束的像素位置。 -
v_total:一帧的总行数(包括消隐区)。 -
v_sync:场同步脉冲的宽度(以行为单位)。 -
v_start:场有效数据开始的行位置。 -
v_end:场有效数据结束的行位置。 -
v_active_14,v_active_24,v_active_34:将垂直有效区域分为4等分的行位置,用于颜色模式切换。
输出信号:
-
vga_hs:行同步信号(低电平有效)。 -
vga_vs:场同步信号(低电平有效)。 -
vga_de:数据有效信号(高电平表示有效像素区域)。 -
vga_r,vga_g,vga_b:8位RGB颜色输出。
关键内部信号
-
h_count:水平像素计数器。 -
v_count:垂直行计数器。 -
pixel_x:当前行内的像素索引(用于颜色生成)。 -
h_act,v_act:行和场的有效区域标志。 -
color_mode:颜色模式控制信号(4位,分别代表4种颜色区域)。 -
boarder:边框标志(用于绘制白色边框)。
逻辑代码分析
1. 水平控制逻辑(Horizontal Control)
-
使用
h_count计数像素位置,在达到h_total时归零。 -
生成行同步信号
vga_hs:当h_count >= h_sync且未到行末时,同步信号为高(同步脉冲结束),否则为低(同步脉冲期间)。 -
控制行有效区域
h_act:在h_start到h_end之间置位。 -
pixel_x在有效区域内递增,用于生成颜色渐变。


2. 垂直控制逻辑(Vertical Control)
-
在每行结束时(
h_max为真)更新v_count。 -
生成场同步信号
vga_vs:当v_count >= v_sync且未到帧末时,同步信号为高(同步脉冲结束),否则为低。 -
控制场有效区域
v_act:在v_start到v_end之间置位。 -
根据垂直位置设置
color_mode:-
v_active_14、v_active_24、v_active_34将有效区域分为4部分,分别对应不同的颜色模式。
-

3. 图像生成与数据有效(Pattern Generator and DE)
-
vga_de(数据有效)由pre_vga_de延迟一拍产生,pre_vga_de是h_act和v_act的逻辑与。 -
绘制白色边框:当进入或退出有效区域时(行或场的边界),
boarder置位,输出白色(RGB=0xFF)。 -
在非边框区域,根据
color_mode输出渐变颜色:-
0001:红色渐变(红色分量随pixel_x递增)。 -
0010:绿色渐变。 -
0100:蓝色渐变。 -
1000:白色渐变(三通道同时递增)。 -
默认:黑色(RGB=0)。
-



de信号比h_act信号慢2拍:

分辨率640x480@60的场同步信号脉冲2, 场后肩33:






浙公网安备 33010602011771号