vivado实现VGA

VGA原理

VGA 的英文全称是Video Graphic Array,即显示绘图阵列。 VGA 支持在640X480 的较高分辨率下同时显示16种色彩或256 种灰度,同时在320X240 分辨率下可以同时显示256 种颜色。肉眼对颜色的敏感远大于分辨率,所以即使分辨率较低图像依然生动鲜明。 VGA 由于良好的性能迅速开始流行,厂商们纷纷在VGA 基础上加以扩充,如将显存提高至1M 并使其支持更高分辨率如800X600或1024X768,这些扩充的模式就称之为VESA(Video Electronics Standards Association,视频电子标准协会) 的Super VGA 模式,简称SVGA,现在的显卡和显示器都支持SVGA 模式。不管是VGA 还是SVGA,使用的连线都是15针的梯形插头,传输模拟信号。

VGA接口信号
目前大多数计算机与外部显示设备之间都是通过模拟VGA 接口连接,计算机内部以数字方式生成的显示图像信息,被显卡中的数字/模拟转换器转变为R、G、 B三原色信号和行、场同步信号,信号通过电缆传输到显示设备中。本例中,VGA 接口是标准的15 针接口,有五个接口信号。

行同步(水平同步)与场同步(垂直同步)
为了实现发送端与接受端图像各点一一正确对应,发送端与接收端的扫描必须同步。同步脉冲是周期稳定,边沿陡峭的脉冲。按我国电视标准,行同步脉冲的频率等于行频为15.625KHZ,行周期为64us。在电视技术中常以64us 作为时间单位,并以H 表示,即1H=64us。场同步脉冲频率等于场频为50HZ,场周期为20ms,312.5H。行同步脉冲宽度为4.7us 左右,场同步脉冲宽度为2.5~3H。

Verilog代码实现VGA

输入信号分别为: clk、 switch。 clk 是时钟信号, switch 是选择模式信号,分别对应横彩条、竖彩条及两种棋盘格。

module vga( clock, switch, disp_RGB, hsync, vsync );
input clock; //系统输入时钟 100MHz
input [1:0]switch;
output [2:0]disp_RGB; //VGA 数据输出
output hsync; //VGA 行同步信号output
vsync; //VGA 场同步信号
reg [9:0] hcount; //VGA 行扫描计数器
reg [9:0] vcount; //VGA 场扫描计数器
reg [2:0] data;
reg [2:0] h_dat;
reg [2:0] v_dat;
reg flag;
reg [1:0]cnt;
wire hcount_ov;
wire vcount_ov;
wire dat_act;
wire hsync;
wire vsync;
reg vga_clk;
//VGA 行、场扫描时序参数表
parameter hsync_end = 10'd95,
hdat_begin = 10'd143,
hdat_end = 10'd783,
hpixel_end = 10'd799,
vsync_end = 10'd1,
vdat_begin = 10'd34,
vdat_end = 10'd514,
vline_end = 10'd524;
always @(posedge clock)
beginif(cnt==3)cnt <= 0;elsecnt <= cnt + 1;endalways @(posedge clock)
beginif(cnt < 2)vga_clk <= 1;elsevga_clk <= 0;end
//************************VGA 驱动部分*******************************//行扫描
always @(posedge vga_clk)beginif (hcount_ov)hcount <= 10'd0;elsehcount <= hcount + 10'd1;end
assign hcount_ov = (hcount == hpixel_end);
//场扫描
always @(posedge vga_clk)beginif (hcount_ov)beginif (vcount_ov)vcount <= 10'd0;elsevcount <= vcount + 10'd1;endend
assign vcount_ov = (vcount == vline_end);
//数据、同步信号输
assign dat_act = ((hcount >= hdat_begin) && (hcount < hdat_end))
&& ((vcount >= vdat_begin) && (vcount < vdat_end));
assign hsync = (hcount > hsync_end);
assign vsync = (vcount > vsync_end); assign
disp_RGB = (dat_act) ? data : 3'h00;
//************************显示数据处理部分*******************************//
always @(posedge vga_clk)begincase(switch[1:0])2'd0: data <= h_dat; //选择横彩条2'd1: data <= v_dat; //选择竖彩条2'd2: data <= (v_dat ^ h_dat); //产生棋盘格2'd3: data <= (v_dat ~^ h_dat); //产生棋盘格endcaseend
always @(posedge vga_clk) //产生竖彩条
beginif(hcount < 223)v_dat <= 3'h7; //白else if(hcount < 303)v_dat <= 3'h6; //黄else if(hcount < 383)v_dat <= 3'h5; //青else if(hcount < 463)v_dat <= 3'h4; //绿else if(hcount < 543)v_dat <= 3'h3; //紫else if(hcount < 623)v_dat <= 3'h2; //红else if(hcount < 703)v_dat <= 3'h1; //蓝elsev_dat <= 3'h0; //黑end
always @(posedge vga_clk) //产生横彩条
beginif(vcount < 94)h_dat <= 3'h7; //白else if(vcount < 154)h_dat <= 3'h6; //黄else if(vcount < 214)h_dat <= 3'h5; //青else if(vcount < 274)h_dat <= 3'h4; //绿else if(vcount < 334)h_dat <= 3'h3; //紫else if(vcount < 394)h_dat <= 3'h2; //红else if(vcount < 454)h_dat <= 3'h1; //蓝elseh_dat <= 3'h0; //黑end
endmodule

vivado实现VGA相关推荐

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

    参考: https://blog.csdn.net/Taneeyo/article/details/115180568?spm=1001.2014.3001.5501 https://www.bili ...

  2. ddr传输 pl ps_Vitis ZYNQ开发秘籍 PS 端任意控制 VGA 显示画面最终实现

    上一篇文章,<Vitis ZYNQ开发秘籍>- PS 端任意控制 VGA 显示画面的硬件架构,已经介绍了在 Vivado 中需要调用的 IP 已经各 IP 间的连线.而在实现显示的功能,咱 ...

  3. 【边学边记_12】——VGA原理与FPGA实现

    VGA原理与FPGA实现 推荐参考小梅哥视频学习 使用FPGA驱动VGA不适合用来显示复杂多变的图像内容,但是却常用于显示实时图像内容,例如显示图像传感器实时采集到的图像.此种方式数据流由图像传感器实 ...

  4. NEXYS4_DDR迪芝伦XC7A100TCSG324-1型,VGA接口显示彩条

    vga彩条显示,640*480模式可以显示1600*900 1. VGA显示 1.1 VGA的端口定义 1.2 VGA的显示时序 1.3 像素点与时序 1.4 此处选择DELL_E2016HV型显示器 ...

  5. 基于FPGA的DDS信号发生器(vivado版本)

    一.设计目标 根据DDS技术原理,在vavido上编写DDS信号源硬件逻辑语言,实现频率.幅度.波形可调的信号源发生器. 频率调节分为11个档位,分别是:1Hz.10Hz.100Hz.500Hz.1k ...

  6. 基于FPGA的VGA/LCD显示控制器设计(中)

    今天给大侠带来基于FPGA的VGA/LCD显示控制器设计,由于篇幅较长,分三篇.今天带来第二篇,中篇,VGA 显示原理以及VGA/LCD 显示控制器的基本框架,话不多说,上货. 之前也有图像处理以及V ...

  7. 【接口协议】FPGA 驱动 VGA 显示实验(二)实验设计部分

    目录 实验任务 实验环境 实验设计 程序设计 VGA 时序模块 模块框图 仿真波形 顶层模块 约束文件 实验任务 利用FPGA驱动VGA实现彩条显示,分辨率为800 × 600@60Hz,分别显示三种 ...

  8. 带有 VGA 接口的 FPGA 原型设计

    现场可编程门阵列或 FPGA 是很棒的小设备.简而言之,它们是一整套逻辑块,通过互连连接在一起.这些逻辑块可以随意连接,以创建简单或复杂的电路.从简单的异或门到 CPU,再到整个系统(如果您有足够的钱 ...

  9. VGA成像原理与简单实现

    VGA成像原理与简单实现 前言 一.VGA成像原理 二.VGA成像时序详解 三.VGA成像设计 四.VGA控制器Verilog设计实现 五.TB文件展示 六.仿真结果分析 前言 本篇文章简单记录VGA ...

最新文章

  1. 微服务架构实战项目Serverless的持续交付与架构案例
  2. location [=|$|最长原则|^~](nginx-1.4.4)
  3. BZOJ4066: 简单题
  4. Python——杂记
  5. 创业冲突的五种解决方法是_当创始合伙人发生冲突时,最好的解决方法4和5
  6. [转载] python 装饰器
  7. emlog插件,emlog采集插件,emlog伪原创发布插件
  8. VS2017自带打包软件
  9. RGB与CMYK几其他颜色模式的区别
  10. 征途2s 服务器文件,征途2 部分服务器更新内容介绍!
  11. 亲测有效:解决inkscape转换的svg图标,上传到阿里图标库不显示问题
  12. 利用Reachability判断网络环境(WAN/WIFI)
  13. 关于一些Excel的快捷键总结
  14. 大数据发展前景及就业方向【大数据专业讲座】
  15. 10 Things No One Can Steal From You
  16. 欧拉函数|(扩展)欧拉定理|欧拉反演
  17. Java解析idToken
  18. windows安装TexStudio
  19. 东北人,请你讲东北话
  20. 绿盟赛—ModelArts实现智能花卉识别

热门文章

  1. 3DMAX 处理反面
  2. 21-Heartbeat配置文件authkey重要参数讲解
  3. MongoDB Hot Backup 测试及痛点
  4. Linux 下解压文件命令大全
  5. 登陆页老是提示验证码错误,validate验证控件IE下用remote方法明明返回true 但是还是报错,提示验证码错误...
  6. RHCE认证培训+考试七天实录(一)
  7. PLinq Lookup ParallelQuery
  8. 最舒适的路线 第六届
  9. hdu 1052 Tian Ji -- The Horse Racing
  10. 洛谷 - P1111 - 修复公路 - 并查集