参考:
https://blog.csdn.net/Taneeyo/article/details/115180568?spm=1001.2014.3001.5501
https://www.bilibili.com/video/BV17U4y157gp?spm_id_from=333.999.0.0
本文的工程下载链接:
https://download.csdn.net/download/weixin_50988214/21979975
主要内容:
使用vivado实现VGA端口,输出一幅彩条图像。
目录:
一、VGA时序
二、VGA各信号的配置
三、问题1、RGB565转化成RGB444
四、代码
五、出错问题
一、VGA时序
VGA显示信号由以下部分组成:
1、RGB444的数据值
2、VGA-HS: VGA行同步信号
3、VGA-VS: VGA场同步信号(列同步)
行同步有效说明一行扫描完了,到达下一行开始扫描‘场同步信号有效说明整个屏幕完成,又回到第一行开始扫描。以此重复达到持续绘制VGA显示屏幕这一功能。
但是,在显示器上的电子枪在扫描过程中需要进行复位调整,这时如果我们在复位时开始执行有效的行或者场扫描的话,那么会出现错误。这也是为什么VGA时序图中有FRONT_PORCH和BACK_PORCH空隙原因。
二、VGA各信号的配置
三、问题1、RGB565转化成RGB444
问题1、
若输入为RGB565转化成输出的RGB444
只取每个的高位
四、代码
1、vga_display.h
module vga_display( input vga_clk, //VGA驱动时钟 input sys_rst_n, //复位信号
input [ 9:0] pixel_xpos, //像素点横坐标 input [ 9:0] pixel_ypos, //像素点纵坐标 output reg [15:0] pixel_data //像素点数 ? );
parameter H_DISP = 10'd640; //分辨率—— ? parameter V_DISP = 10'd480; //分辨率——列 localparam WHITE = 16'b11111_111111_11111; //RGB565 白色 localparam BLACK = 16'b00000_000000_00000; //RGB565 黑色 localparam RED = 16'b11111_000000_00000; //RGB565 红色 localparam GREEN = 16'b00000_111111_00000; //RGB565 绿色 localparam BLUE = 16'b00000_000000_11111< |