实验一 VGA显示RGB彩条实验
学习目的:
1. 学习VGA
2. 学习视频的时序
3. 学习RGB颜色空间
实验原理:
VGA接口是经典的显示接口, 传输信号为模拟信号.
使用ADC: ADV7123
将24bit 的RGB 信号转化为模拟信号
实验步骤
1. 打开priject_1 , 用quartus II 打开par 目录中的top.qpf 工程文件
2. 运行ALINX3402_EP4CExxxx(FPGA 型号).tcl 脚本文件
3. 编译FPGA 工程
4. 连接开发板VGA 接口到显示器VGA接口、显示器切换到VGA 输入
5. 接通开发板电源
6. 下载.sof 或.pof 文件
实验现象
显示器有信号, 能看到分辨率信息为 1280x720@60p, 显示器显示标准8色垂直彩条, 如下图
实验总结
VGA 接口使用主要是 DAC, 在很多简易的VGA接口中直接将数字信号 连接到 模拟信号的VGA 接口中,这样可以实现8色 显示
稍微复杂点的使用的是电阻网路构建DAC, 本开发板使用ADC7123
视频的时序主要包含 同步, 场同步, 数据有效DE,
VGA 对视频时序要求不是非常严格, 只要接近基本就能显示
实验代码
顶层模块的代码如下:
//---------------------------
//- 日期:2021.7.23
//- 作者:Simon
//- 黑金动力社区学习笔记
//---------------------------
//************************** 顶层模块 **************************//
//顶层模块代码
module vga_colorbar (
input sys_clk,
input sys_rst_n,
output vga_hs,
output vga_vs,
output [15:0] vga_rgb
);
wire vga_clk_w;
wire locked_w;
wire rst_n_w;
wire [15:0] pixel_data_w;
wire [9:0] pixel_xpos_w;
wire [9:0] pixel_ypos_w;
assign rst_n_w = sys_rst_n && locked_w;
pll u_vga_pll(
.inclk0 (sys_clk),
.areset (~sys_rst_n),
.c0 (vga_clk_w),
.locked_w (locked_w)
);
vga_drive u_vga_drive(
.vga_clk (vga_clk_w),
.sys_rst_n (rst_n_w),
.vga_hs (vga_hs),
.vga_vs (vga_vs),
.vga_rgb (vga_rgb),
.pixel_data (pixel_data_w),
.pixel_xpos (pixel_xpos_w),
.pixel_ypos (pixel_ypos_w)
);
vga_display u_vga_display(
.vga_clk (vga_clk_w),
.vga_rst_n (rst_n_w),
.pixel_xpos (pixel_xpos_w),
.pixel_ypos (pixel_ypos_w),
.pixel_data (pixel_data_w)
);
endmodule