Verilog实现VGA通信的驱动
0 2023-03-21

VGA全称是Video Graphics Array,即视频图形阵列,是一个使用模拟信号进行视频传输的标准。分辨率高,显示速度快


一、传输协议

VGA接口15个引脚,除去地线,我们一般会用到5个引脚:1(RED)、2(GREEN)、3(BLUE)、13(HSYNC)、14(VSYNC)。如图1:

图1  VGA接口引脚定义

1、2、3指的是传输的红、绿、蓝三色的模拟信号,范围为0-0.714V,0代表无色,0.714V代表满色,需要注意的这是模拟信号,因此前面还需要进行一个数模转换。HSYNC(行同步信号)和VSYNC(场同步信号)分别是指传输一行和传输一帧的时序,下面看一下他们的时序图:

图2  行同步时序

a:行同步时期,扫描地址的复位
b:行消隐后肩,扫描地址转移后的稳定等待准备期
c:行显示时期,数据有效区域
d:行消隐前肩,扫描地址转移的准备
e:行扫描总时间,一行扫描的总时间

图3  场同步时序

o:场同步时期,扫描地址的复位
p:场消隐后肩,扫描地址转移后的稳定等待准备期
q:场显示时期,数据有效区域
r:场消隐前肩,扫描地址转移的准备
s:场扫描总时间,一场扫描的总时间


可以看出,行同步时序和场同步时序类似,分别经历4个阶段:拉低、显示后沿、有效数据传输和显示前言。


图4  VGA显示器扫描轨迹


二、常见的刷新率时序表

由于FPGA擅长计数电路这里采用像素表示法来设计驱动。

图5  不同VGA的时序参数

FPGA硬件测试时要将sys_pll中的输出频率改为25MHZ。


三、驱动电路的verilog设计(lcd_driver)

目前液晶显示器普及,而高于 60Hz 的刷新率对于液晶来说,没有任何意义,所以我们以 640*480 在 60Hz 的刷新率下为例。


本次我们采用的是ADV7123视频转换芯片来实现。

1)为便于移植,根据640*480 60hz分辨率下的参数,宏定义相关数据。


2)行扫描单位hcnt计数


3)列扫描单位vcnt计数

每扫描完一行,即hcnt完成H_TOTAL次计数后,vcnt进行自加。


4)ADV7123控制信号输出
为了实现数据在lcd_dclk上升沿有效,我们将clk翻转输出,已实现上升沿采样 。
lcd_blank作为显示空白信号,低电平有效。
设计中不需要lcd_sync信息,可以直接接地。


5)有效显示使能信号输出

当使能信号有效时,接收外部输入的RGB数据lcd_data.


6)外部数据请求控制信号

为了保证数据稳定,lcd_request要提前一个时钟请求外部输入数据 。

同时,设计中实时显示下一时刻的扫描地址lcd_xpos、lcd_ypos,也要提前一个时钟输出,以保证外部数据输入的同步化。

lcd_xpos、lcd_ypos是显示器有效显示区域的行列坐标计数值。


四、模拟VGA图像数据的输入


1)宏定义三原色组合的颜色如下

这里要注意所用的VGA驱动电路是RGB888还是RGB565,如果是RGB565,三原色要改成下面样式,并把其他程序中lcd_data的位数改为16位:
笔者曾在这里犯过错误。


2)根据输入的行、列地址信号,输出三原色组合后得到的8条彩色。


五、不同分辨率的VGA驱动

lcd_para文件定义了四种VGA分辨率驱动,这里只需修改定义的注释就行,并把PLL锁相环中的频率改为相应的频率。


PLL修改方法为直接修改下面参数中的乘法除法因子:

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • GaN初创公司如何做出与众不同的创新?


  • 相关技术文库
  • FPGA
  • 可编程
  • PLC
  • verilog
  • 时钟发生器的相位噪声和抖动性能

    系统设计师通常侧重于为应用选择最合适的数据转换器,在向数据转换器提供输入的时钟发生器件的选择上往往少有考虑。然而,如果不慎重考虑时钟发生器的相位噪声和抖动性能,

    前天
  • 雷达信号处理上是选FPGA还是GPU,它们各自的特点又是什么?

      FPGA和CPU一直是雷达信号处理不可分割的组成部分。传统上FPGA用于前端处理,CPU用于后端处理。随着雷达系统的处理能力越来越强,越来越复杂,对信息处理

    05-29
  • PLC的相关知识分析

    写点纯理论的东西,最近一直在思考怎么跟零基础的人讲PLC。也就是当你面对一个门外汉时,怎么让他对PLC感兴趣,然后慢慢的带着学习PLC。思考了很多,又把学校的里

    05-27
  • 一文分析DDR线长匹配与时序

    DDR布线在PCB设计中占有举足轻重的地位,设计成功的关键就是要保证系统有充足的时序裕量。要保证系统的时序,线长匹配又是一个重要的环节。我们来回顾一下,DDR布

    05-27
  • 带你区分时序图、活动图、状态图、协作图

      时序图  时序图用于描述对象之间的传递消息的时间顺序,即用例中的行为顺序。  当执行一个用例时,时序图中的每条消息对应了一个类操作或者引起转换的触发事件。 

    05-26
  • 区分FPGA与DSP特点及用途

      FPGA是一种可编程的硅芯片,DSP是数字信号处理,当系统设计人员在项目的架构设计阶段就面临到底采用FPGA还是DSP的重要问题。本文将首先分别介绍FPGA

    05-26
  • FPGA概念对比CPU架构有啥特点

      你还没听过FPGA?那你一定是好久没有更新自己在企业级IT领域的知识了。今天笔者就和大家聊聊何为FPGA?FPGA主要应用场景是什么?有人说FPGA是替代传

    05-26
  • 时序收敛十大准则

    本文摘自《Vivado使用误区与进阶》,作者为Xilinx工具与方法学应用专家Ally Zhou。 时序收

    05-26
  • 仿真软件ModelSim及其应用

    如果您是FPGA开发方面的初学者,那么这个教程一定能够帮助你在仿真技术上越过新人的台阶;如果您是FPGA开发的老手,这篇文档也并非对您没有帮助,您可以把教程发给其他刚入门的同事,免去您亲自上阵指导的麻烦,把主要的精力放在更有价值的地方。

    05-25
  • 快速认识FPGA

      学习FPGA,在不同层次的人明显有不同的答案。先说一句,说不要开发版的都是菜鸟级选手。  我把FPGA层次划分为,鸡蛋级别,菜鸟级别,老鸟级别,高手级别四类

    05-25
  • 分析FPGA与CPLD的差别在哪

      1.CPLD  CPLD主要是由可编程逻辑宏单元(LMC,LogicMacroCell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复

    05-25
  • FPGA与CPLD的作用及不同之处

      FPGA/CPLD能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA/CPLD来实现。  FPGA/CPLD如同一张白纸或是一

    05-24
下载排行榜
更多
广告