VGA时序

VGA 显示器扫描方式从屏幕左上角一点开始,从左向右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间, CRT 对电子束进行消隐,每行结束时,用行同步信号进行同步; 当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐, 开始下一帧。完成一行扫描的时间称为水平扫描时间,其倒数称为行频率;完成一帧(整屏)扫描的时间称为垂直扫描时间,其倒数称为场频率,即刷新一屏的频率,常见的有 60Hz, 75Hz 等等。标准的 VGA 显示的场频 60Hz。时钟频率:以640480@60Hz为例,每场对应 525 个行周期,其中 480 为显示行。每显示行包括 800 点时钟,其中 640 点为有效显示区。由此可知:需要点时钟频率: 525800*60= 25.2MHz,约25MHz。

扫描方式

常见VGA时序表


其中:
a:行同步时间,
b:行消隐后沿,
c:行显示有效区域
d:行消隐前沿,
e:行扫描总时间,

o:场同步时间,
p:场消隐后沿,
q:场显示有效区域
r:场消隐前沿,
s:场扫描总时间,



本设计以640*480@60Hz为例,因此需要的时钟频率为25MHz,因此需要引入PLL生产25MHz的信号。

VGA时序控制器的Verilog代码

//
// Company: NanJing University of Information Science & Technology
// Engineer: Yang Cheng Yu
//
// Create Date: 2020/01/20 20:01:50
// Design Name: vga_640_480
// Module Name: vga_640_480
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//
module vga_640_480(input                clk,//25Minput              rst,output              hs,output               vs,output reg[9:0]  h_cnt,//行计数器output reg[9:0] v_cnt //场计数器
);
//*************************
//行时序(像素数)localparam a=96;       localparam b=48;       localparam c=640;      localparam d=16;       localparam e=800;
//*************************
//帧时序(行数)localparam o=2;localparam p=33;localparam q=480;localparam r=10;localparam s=525;       always@(posedge clk or negedge rst)beginif(!rst)h_cnt <= 10'd0;elseif(h_cnt==e-1)h_cnt <= 10'd0;elseh_cnt <= h_cnt + 1'b1;endassign hs=(h_cnt<a-1)?1'b0:1'b1;  always@(posedge clk or negedge rst)beginif(!rst)v_cnt <= 10'd0;elseif(v_cnt==s-1)v_cnt <= 10'd0;elseif(h_cnt==e-1)v_cnt <= v_cnt + 1'b1;elsev_cnt <= v_cnt;end assign vs=(v_cnt<o-1)?1'b0:1'b1;
endmodule
仿真文件Verilog代码

由于跑完一帧显示需要约18,000,000ns,因此只做部分过程的仿真

`timescale 1ns/1ps
`define clock_period 40
module vga_640_480_tb;reg clk_25m;reg rst;wire hs;wire vs;wire[9:0] h_cnt;wire[9:0] v_cnt;vga_640_480 vga(.clk  (clk_25m),//25M.rst (rst),.hs   (hs),.vs    (vs),.h_cnt(h_cnt),//行计数器.v_cnt(v_cnt) //场计数器
);initial clk_25m=1;always#(`clock_period/2)clk_25m=~clk_25m;initial beginrst=0;#200;rst=1;#(300000);$stop;end
endmodule
仿真波形

基于FPGA的VGA时序控制器相关推荐

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

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

  2. 基于FPGA的VGA接口设计(三)

    关于VGA系列文章的所有链接: 基于FPGA的VGA接口设计(一) 基于FPGA的VGA接口设计(二) 基于FPGA的VGA接口设计(三) 结篇   在之前的文章中介绍了有关VGA的扫描方式.行场同步 ...

  3. 基于FPGA的VGA协议实现

    基于FPGA的VGA协议实现 一.VGA简述 1.VCG接口 2.原理 3.显示器扫描 4.VGA时序分析 5.VGA时钟计算 6.不同分辨率的VGA参数 二.显示彩条 1.色彩原理 2.彩条输出 三 ...

  4. imut FPGA课设 基于FPGA的VGA弹球游戏设计 *秋昊

    写在前面的话: 本文主要呈现了一篇IMUT的FPGA课设报告. 课设报告内容(word版),视频演示,程序源码,专业创新实践简介,专业创新实践指导书均已放入下面的百度云链接中,也不大,总共不到20MB ...

  5. 基于FPGA的VGA显示对贪吃蛇游戏的设计

    基于FPGA的VGA显示对贪吃蛇游戏的设计 摘要 目前,电子数码产品已经进入了人生活的方方面面,而大多数电子产品都依靠显示屏来传递信息,由此可见用电路对显示屏进行控制的研究有很大的实用价值和市场需求. ...

  6. 基于FPGA的VGA显示彩条、字符、图片

    目录 一.VGA介绍 (一) VGA协议 (二) VGA端口介绍 (三) 色彩原理 (四)VGA显示原理 VGA通信协议: VGA时序解析 时钟分频 二.实现 ​1.彩条显示 2.字符显示 3.图片显 ...

  7. 基于FPGA的VGA控制输出显示(使用GM7123高清视频编码芯片)

    目录 一.VGA原理 1.VGA接口简介 2.VGA显示原理 二.VGA模块 三.VGA接口设计 1.设计要求 2.设计实现 3.实现结果 四.总结 一.VGA原理 1.VGA接口简介 VGA的全称是 ...

  8. 基于FPGA的VGA视频弹球游戏

    这是2011下半年我在这边第一年的一个期末课程项目.课程是嵌入式系统.我利用一个FPGA开发板做了一个VGA视频输出的弹球游戏.自认为做得不错,课程拿了A+,也因为这个作业通过了暑期实习面试.现在拿出 ...

  9. 基于FPGA的VGA显示设计(一)

    前言 FPGA主要运用于芯片验证.通信.图像处理.显示VGA接口的显示器是最基本的要求了. 原理 首先需要了解 : (1)VGA接口协议:VGA端子_维基百科 .VGA视频传输标准_百度 引脚1 RE ...

最新文章

  1. 解决ThinkPHP关闭调试模式时报错的问题汇总
  2. linux 好用的命令积累
  3. 【简便解法】1079 延迟的回文数 (20分)_31行代码AC
  4. 编辑神器Vi介绍及常用命令
  5. C++学习之路 | PTA乙级—— 1012 数字分类 (20分)(精简)
  6. css3常用伪类选择器
  7. web页面有哪三层构成?分别是什么?
  8. html里的音频插件,html5音频播放插件
  9. javascript animation lib greensock gsap介绍
  10. android 阿里hotfix,Android 热修复方案--阿里百川HotFix
  11. Python 爬取蜂鸟网的照片
  12. es6模块循环引用的问题
  13. 啡鸟集:什么样的咖啡豆,才是好的咖啡豆?
  14. noseunittestpytest
  15. 下载视频并保存至手机相册
  16. 【KEIL-MDK】系列——主题配色
  17. 学习笔记:Spring中default-autowire与autowire区别
  18. AE制作粒子飘雪效果
  19. 将默认的.git隐藏文件显示
  20. Java面试题(十九) 细说线程池秘境“七大参数”护法的身世

热门文章

  1. LTE CA带宽能力(CA bandwidth classes)规定了聚合带宽限制,见36.101中表格Table 5.6A-1
  2. [转载]三十四个有趣的小故事
  3. StarUML3.0 的破解方法
  4. arm+linux+usb驱动开发,Linux+ARM下的USB驱动开发
  5. 1029:三角形的判定
  6. 中专计算机毕业生登记表自我鉴定,中专毕业生登记表自我鉴定范文(精选5篇)...
  7. Learning Atom 学习Atom编辑器 Lynda课程中文字幕
  8. LLVM 与 Clang 介绍
  9. 数据交换平台开发之二功能需求
  10. js简单实现一个json格式化功能