FPGA入门系列14--VGA

这篇具有很好参考价值的文章主要介绍了FPGA入门系列14--VGA。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章简介

本系列文章主要针对FPGA初学者编写,包括FPGA的模块书写、基础语法、状态机、RAM、UART、SPI、VGA、以及功能验证等。将每一个知识点作为一个章节进行讲解,旨在更快速的提升初学者在FPGA开发方面的能力,每一个章节中都有针对性的代码书写以及代码的讲解,可作为读者参考。

第十五章:VGA

 VGA(Video Graphics Array)视频图形阵列是IBM于1987年提出的一个使用模拟信号的电脑显示标准。VGA接口即电脑采用VGA标准输出数据的专用接口。VGA接口共有15针,分成3排,每排5个孔,显卡上应用最为广泛的接口类型,绝大多数显卡都带有此种接口。它传输红、绿、蓝模拟信号以及同步信号(水平和垂直信号)。

FPGA入门系列14--VGA

    它具有分辨率高、显示速率快、颜色丰富等优点。VGA接口不但是CRT显示设备的标准接口,同样也是LcD液晶显示设备的标准接口,具有广泛的应用范围。    

    很多人觉得只有HDMI接口才能进行高清信号的传输,但这是一个大家很容易进入的误区,因为通过VGA的连接同样可以显示1080P的图像,甚至分辨率可以达到更高,所以用它连接显示设备观看高清视频是没有问题的,而且虽然它是种模拟接口,但是由于VGA将视频信号分解为R、G、B三原色和HV行场信号进行传输,所以在传输中的损耗还是相当小的。

首先我们看一下 VGA 接口的电路原理图:

FPGA入门系列14--VGA

图1 VGA接口原理图

    通过图1可以看出VGA 并没有特殊的外部芯片,也就是说,唯一要关注的就是它的显示原理和时序了。那么接下来我们具体来看一下VGA 的扫描原理是什么。

    VGA扫描方式:

    显示器扫描方式分为逐行扫描和隔行扫描:①逐行扫描是扫描从屏幕左上角一点开始,从左向右逐点扫描,每扫描完一行, 电子束回到屏幕的左边下一行的起始位置,在这期间, CRT 对电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一帧,用场同步信号进行场同步,并使扫描回到屏幕左上方,同时进行场消隐,开始下一帧。

② 隔行扫描是指电子束扫描时每隔一行扫一线,扫完一屏后再返回来扫描剩下的线。

FPGA入门系列14--VGA

图2 VGA图像显示扫描示意图

常见的彩色显示器一般由 CRT(阴极射线管)构成,色彩是由 R、 G、 B(红、黄、蓝)三基色组成。显示是用逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉的荧光屏上,产生 RGB 三基色,合成一个彩色像素。扫描从屏幕的左上方开始,从左到右,从上到下,进行扫描, 每扫完一行,电子束回到屏幕的左边下一行的起始位置,在这其间 CRT 对电子束进行消隐。每行结束时,用行同步信号进行同步;扫描完所有行,用场同步信号进行同步,并使扫描回到屏幕左上方,同时进行场消隐,预备下一场的扫描。

    对于普通的 VGA 显示器,共有 5 个信号:R、 G、 B 三基色;HS(行同步信号);VS(场同步信号)。对于时序驱动, VGA 显示器要严格遵循“VGA”工业标准,即 640x480@60Hz 模式,否则可能会损害 VGA 显示器。

    了解了扫描原理后,紧接着看一下 VGA 的行、列同步时序:

FPGA入门系列14--VGA

图3 列同步时序

FPGA入门系列14--VGA

图4 行同步时序

    VGA 中定义行时序和列时序都需要同步脉冲(a 段),显示后沿(b 段)、显示时序段(c 段)和显示前沿(d 段)四部分。VGA 工业标准显示模式要求:行同步、列同步都为负极性,即同步脉冲要求是负脉冲。
    由 VGA 行时序可知:每一行都有一个负极性行同步脉冲(a 段),是数据行的结束标志,同时也是下一行的开始标志。在同步脉冲之后为显示后沿(b 段),在显示时序段(c 段)显示器为亮的过程, RGB 数据驱动一行上的每一个像素点,从而显示一行。在一行的最后为显示前沿(d 段)。在显示时间段之外没有图像
投射到屏幕,而是插入消隐信号。同步脉冲、显示后沿和显示前沿都是在行消隐间隔内,当消隐有效时,RGB 信号无效,屏幕不显示数据。

    各分辨率下,VGA的显示标准参数如图5所示:

FPGA入门系列14--VGA

图5 VGA标准参数

    本实验以显示标准为 800*600*60Hz 为例。(800 为列数, 600 为行数,60Hz 为刷新一屏的频率)。
   行时序:屏幕对应的行数为 628(a+b+c+d=e 段),其中 600(c 段)为显示行;每行均有行同步信号(a 段),为 4 个行周期的低电平;
    列时序:每个显示行包括 1056 列(a+b+c+d=e 段),其中 800(c 段)为有效显示区,每一行有一个行同步信号(a 段),为 128 个行周期的低电平。
扫描时钟频率:40MHZ。

    原理清楚以后,接下来设计系统模块图如下:

 

FPGA入门系列14--VGA

图6 系统模块框图

模块说明:
    (1)时钟分频模块
    开发板上使用的晶振为 50MHZ,由于我们的显示标准为 800*600*60HZ,所以需要分频输出 40MHZ 的系统时钟。时钟分频模块,我们可以通过调用锁相环来实现。
    (2)VGA 行列同步控制模块
    VGA 显示标准需要设定行列同步信号,标定出有效显示区域, 这也是整个 VGA驱动模块的核心部分。

    (3)VGA 色彩显示控制模块    

    在图像有效显示区域内,输出控制颜色的 r、 g、 b 信号。接下来学习每个功能模块的具体代码实现,分频模块采用锁相环实现即可。
    VGA 行列同步控制模块具体代码如下:

FPGA入门系列14--VGA

FPGA入门系列14--VGA

FPGA入门系列14--VGA

    VGA 色彩显示控制模块具体代码如下:

FPGA入门系列14--VGA

 

编写完成各子模块以后,将所有模块连接起来,需要建立顶层文件如下:

FPGA入门系列14--VGA

FPGA入门系列14--VGA

    综合编译以后,我们可以查看 RTL 视图,查看电路综合结果和预想是否一致,调用 RTL 视图如下:

FPGA入门系列14--VGA

图7 RTL视图

通过RTL图可以看出电路模块综合结果和预先设计的系统模块框图相同。接着编写测试代码如下,用来验证我们设计的正确性:

FPGA入门系列14--VGA

通过Modelsim仿真,查看仿真波形:

FPGA入门系列14--VGA

    可以看出,当 en 有效时, vga_r 输出 3’ b111,说明设计正确。
    编写管脚约束文件,生成bit文件,将bit文件下载到开发板,实际运行效果图如下:

FPGA入门系列14--VGA

图8 显示结果 文章来源地址https://www.toymoban.com/news/detail-438273.html

到了这里,关于FPGA入门系列14--VGA的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA经验谈系列文章——逻辑级数

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 在FPGA经验谈系列文章中,我说道我的第一份工作的内容: 在第一家公司,使用FPGA主要是进行算法实现,要求的主频不高,资源一般也不太受限制。难点在于算法的理解,性能的提升和以及和软件的配合

    2024年02月16日
    浏览(42)
  • Cilium系列-14-Cilium NetworkPolicy 简介

    Cilium 系列文章 今天我们进入 Cilium 安全相关主题, 介绍 Kubernetes 网络策略以及 CiliumNetworkPolicies 额外支持的内容。 默认情况下,Kubernetes 集群中的所有 pod 都可被其他 pod 和网络端点访问。 网络策略允许用户定义 Kubernetes 集群允许哪些流量, 禁止哪些流量。传统的防火墙是根据

    2024年02月14日
    浏览(37)
  • FPGA经验谈系列文章——FPGA开发方向以及算法开发模型

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 FPGA开发笼统的说可以分为两个方向,一个是接口方向、一个是算法方向。 接口方向可不是简单的uart、IIC、SPI等这些简单接口,这些东西不足以支撑一个方向,大部分都是基于serdes的高速复杂接口,例如

    2023年04月10日
    浏览(65)
  • RabbitMQ系列(14)--Topics交换机的简介与实现

    1、Topics交换机的介绍 Topics交换机能让消息只发送往绑定了指定routingkey的队列中去,不同于Direct交换机的是,Topics能把一个消息往多个不同的队列发送;Topics交换机的routingkey不能随意写,必须是一个单词列表,并以点号分隔开,例如“one.two.three”,除此外还有两个替换符,

    2024年02月13日
    浏览(46)
  • FPGA信号处理系列文章——深入浅出理解多相滤波器

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 多相滤波是,按照相位均匀划分把数字滤波器的系统函数H(z)分解成若干个具有不同相位的组,形成多个分支,在每个分支上实现滤波。 采用多相滤波结构,可利用多个阶数较低的滤波来实现原本阶数较

    2024年02月05日
    浏览(76)
  • 【FPGA开发】VGA彩条显示及VGA白块位移

    为了理解VGA的工作模式,并且进行vga一部分的模板开发,方便后续图像处理显示的需求。这里通过对vga时序进行分析,进行简单的vga图像控制。实验阶段进行的是640*480@60hz的分辨率和刷新率,后续因为需要适应显示器的规格。会在模块化的阶段进行参数的重新分配,变成可编

    2024年01月21日
    浏览(42)
  • FPGA入门有多难?这篇文章让你吃透零基础入门技巧!

    FPGA是一个高度集成化的芯片,其学习过程既需要编程,又需要弄懂硬件电路和计算机架构。涉及到的知识和基础非常多, 如果不合理地安排学习内容,学习过程会非常漫长和枯燥 。这使很多想要学习FPGA小伙伴望而却步,那么,**FPGA到底有多难入门?**今天移知教育小编就带

    2024年02月04日
    浏览(52)
  • FPGA学习——VGA显示

    VGA(Video Graphics Array)是IBM在1987年随PS/2机⼀起推出的⼀种视频,具有分辨率⾼、显⽰速率快、颜⾊丰富等优点,在彩 ⾊显⽰器领域得到了⼴泛的应⽤。不⽀持热插拔,不⽀持⾳频传输。对于⼀些嵌⼊式VGA显⽰系统,可以在不使⽤VGA显⽰卡和计算机的 情况下,实现VGA图像的显⽰

    2024年02月04日
    浏览(41)
  • FPGA设计入门:Vivado综合简介

    FPGA设计入门:Vivado综合简介 FPGA是一种基于可编程逻辑器件的数字电路设计技术,可以通过编程实现各种电路功能。Vivado是Xilinx公司推出的一款开发工具,可以用来对FPGA进行综合、布局、布线、生成比特流等操作。本篇文章将从Vivado综合的基本流程入手,详细介绍如何使用

    2024年02月09日
    浏览(45)
  • 基于FPGA的VGA图像显示

    引言:本文我们介绍利用FPGA实现VGA图像显示,主要介绍VGA硬件接口、VGA接口时序原理以及FPGA代码实现VGA接口时序、仿真等内容。 VGA(Video Graphics Array)视频图形阵列是IBM于1987年提出的一个使用模拟信号的电脑显示标准。VGA接口即电脑采用VGA标准输出数据的专用接口。VGA接口

    2024年02月06日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包