2021-07-23

实验一 VGA显示RGB彩条实验

学习目的:

 1. 学习VGA 	
 2. 学习视频的时序 	
 3. 学习RGB颜色空间

实验原理:
VGA接口是经典的显示接口, 传输信号为模拟信号.
使用ADC: ADV7123
将24bit 的RGB 信号转化为模拟信号
2021-07-23
实验步骤

 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色垂直彩条, 如下图
2021-07-23
实验总结
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
上一篇:ShaderToy对照UnityShader方法目录 [入门替换版]


下一篇:ARM base instruction -- 指令助记符