• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

VGA测试试验设计Verilog代码VIVADO ARTIX-7开发板

10/10 09:59
666
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-2411111ZA5333.docx

共1个文件

名称:VGA测试试验设计Verilog代码VIVADO  ARTIX-7开发板

软件:VIVADO

语言:Verilog

代码功能:

VGA测试试验

VGA使屏幕产生彩色条纹

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

本代码已在ARTIX-7开发板验证,ARTIX-7开发板如下,其他开发板可以修改管脚适配:

ARTIX-7开发板.png

设计文档:

1 简介

本试验用来试验开发板VGA显示功能,开发板通过VGA数据线使屏幕产生彩色条纹。

2 实验原理

VGA(Video Graphics Array)即视频图形阵列,是IBM在1987年推出的使用模拟信号的一种视频传输标准,在当时具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域得到了广泛的应用。VGA接口实物图如下图所示:

左边带针的叫VGA公头,右边带槽的叫VGA母头。

VGA接口是一种D型接口,上面共有15针孔,分成三排,每排五个。 其中比较重要的是3根RGB彩色分量信号和2根扫描同步信号HSYNC和VSYNC针。其引脚编号图如下图所示:

VGA 显示器扫描方式从屏幕左上角一点开始,从左向右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT 对电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。完成一行扫描的时间称为水平扫描时间,其倒数称为行频率;完成一帧(整屏)扫描的时间称为垂直扫描时间,其倒数称为场频率,即屏幕的刷新频率,常见的有 60Hz,75Hz 等等,但标准的 VGA 显示的场频 60Hz。其扫描示意图如下图所示

在对VGA扫描方式有一个直观的感受以后接下来在看一看VGA接口的详细时序与各个参数的定义。VGA的详细时序如下图所示:

总的来说,VGA的时序主要包括行时序与场时序两个部分。

其中行时序主要包括:行同步(Hor Sync) 、行消隐(Hor Back Porch) 、行视频有效(Hor Active Video)和行前肩(Hor Front Porch)这四个参数,行时序的时序图如下图所示

而场时序主要包括:场同步(Ver Sync) 、场消隐(Ver Back Porch) 、场视频有效(Ver Active Video)和场前肩(Ver Front Porch)这四个参数,场时序的时序图如下图所示

3 程序设计

VGA显示的程序代码注释十分详细,主要是根据VGA时序图通过行场信号的控制,进

而产生相应的RGB数据。

4 实验现象

将VGA数据线分别连接开发板VGA接口和显示屏的VGA接口,将目录“... at7_prj_16at7_prjat7_prj.runsimpl_1”文件夹下的 at7_prj.bit 文件下载到开发板上,观察到现象如下图,开发板成功驱动显示屏显示彩色条纹。

部分代码展示:

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2019/04/13 17:54:08
// Design Name: 
// Module Name: at7_prj
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////
module at7_prj(
    input                   clk   , // 系统100MHz时钟
    input                   rst_n , // 系统复位
    output   reg   [4:0]    red_out   , // VGA红色分量
    output   reg   [5:0]    green_out , // VGA绿色分量
    output   reg   [4:0]    blue_out  , // VGA蓝色分量
    output                  hs_out    , // VGA行同步信号
    output                  vs_out      // VGA场同步信号
);
// 分辨率为640*480时行时序各个参数定义
parameter       C_H_SYNC_PULSE      =   96  , 
                C_H_BACK_PORCH      =   48  ,
                C_H_ACTIVE_TIME     =   640 ,
                C_H_FRONT_PORCH     =   16  ,
                C_H_LINE_PERIOD     =   800 ;
// 分辨率为640*480时场时序各个参数定义               
parameter       C_V_SYNC_PULSE      =   2   , 
                C_V_BACK_PORCH      =   33  ,
                C_V_ACTIVE_TIME     =   480 ,
                C_V_FRONT_PORCH     =   10  ,
                C_V_FRAME_PERIOD    =   525 ;
                
parameter       C_COLOR_BAR_WIDTH   =   C_H_ACTIVE_TIME / 8  ;  
reg [11:0]      R_h_cnt         ; // 行时序计数器
reg [11:0]      R_v_cnt         ; // 列时序计数器
wire             clk_25M       ;
wire            W_active_flag   ; // 激活标志,当这个信号为1时RGB的数据可以显示在屏幕上

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1341

  • 2-2411111ZA5333.docx
    下载

相关推荐