ZYNQ——FPGA工程之VGA彩条显示

参考:

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空隙原因。

ZYNQ——FPGA工程之VGA彩条显示_第1张图片

二、VGA各信号的配置

ZYNQ——FPGA工程之VGA彩条显示_第2张图片

三、问题1RGB565转化成RGB444

问题1、

若输入为RGB565转化成输出的RGB444

ZYNQ——FPGA工程之VGA彩条显示_第3张图片

ZYNQ——FPGA工程之VGA彩条显示_第4张图片

只取每个的高位

ZYNQ——FPGA工程之VGA彩条显示_第5张图片

四、代码

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;     

你可能感兴趣的:(fpga)