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

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

10小时前
246
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

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
    下载

相关推荐