FPGA-VGA

news2025/5/16 0:25:51

目录

前言

一、VGA是什么?

二、物理接口

三、VGA显示原理

四、VGA时序标准

五、VGA显示参数

六、模块设计

七、波形图设计

八、彩条波形数据



前言

VGA的FPGA驱动

一、VGA是什么?

VGA(Video Graphics Array)是IBM于1987年推出的显示标准,涵盖硬件接口、分辨率和图形处理规范。常见的视频传输接口有三种:VGA 接口、DVI 接口和HDMI 接口,目前的显示设备都配有这三种视频传输接口。

三类视频接口的发展历程为VGA→DVI→HDMI。

二、物理接口

接口解释:

1. 核心信号传输(RGB三原色)

  • Pin 1(Red):传输红色分量的模拟信号。

  • Pin 2(Green):传输绿色分量的模拟信号。

  • Pin 3(Blue):传输蓝色分量的模拟信号。
    作用:RGB三原色信号组合形成完整的图像色彩,信号强度决定像素亮度。

2. 同步信号(Sync)

  • Pin 13(Horizontal Sync):传输水平同步信号,控制显示器横向扫描的时序。

  • Pin 14(Vertical Sync):传输垂直同步信号,控制显示器纵向刷新的时序。
    作用:同步信号确保显示器与显卡输出的图像帧率匹配,避免画面撕裂或偏移。

3. 地线(Ground)

  • Pin 5(Ground):RGB信号的公共地线。

  • Pin 6(Red Ground):红色信号专用地线。

  • Pin 7(Green Ground):绿色信号专用地线。

  • Pin 8(Blue Ground):蓝色信号专用地线。

  • Pin 10(Sync Ground):同步信号的公共地线。
    作用:地线用于消除信号干扰,稳定传输质量。不同信号单独接地可减少串扰。

4. 其他功能针脚

  • Pin 4(ID2 / Reserved):早期用于显示器识别(ID Bit 2),现多为保留未用。

  • Pin 9(+5V DC):提供5V电源,早期用于某些显示器检测或DDC芯片供电。

  • Pin 11(ID0 / Reserved):显示器识别位(ID Bit 0),现通常未使用。

  • Pin 12(ID1 / SDA):部分设备用于DDC(Display Data Channel)通信的SDA数据线。

  • Pin 15(ID3 / SCL):部分设备用于DDC通信的SCL时钟线。
    作用:DDC功能允许显示器自动向显卡报告分辨率等信息(类似即插即用)。

关键接口是三个基色接口,以及行同步接口和场同步接口。

三、VGA显示原理

VGA 显示器显示图像,并不是直接让图像在显示器上显示出来,而是采用扫描的方
式,将构成图像的像素点,在行同步信号和场同步信号的同步下,按照从上到下、由左到
右的顺序扫描到显示屏上。

一行一行的扫描。

为什么我的扫描的这么慢,怎么改变帧率,提高或者降低帧率。

四、VGA时序标准

上面的时序也只是一种,也有其它的时序,比如反过来的。

代码如下(示例):

每个时钟周期传输一个像素点,深色部分有多个时钟周期,每个时钟周期对应一个像素点,上面是一个像素点的时钟周期,这个时钟周期也叫像素时钟周期。

每次扫描一帧图像,相交部分是显示区域,是一帧图像。

五、VGA显示参数

640x480@60的含义是,显示屏是640列,480行,60帧的速率。这60帧我没看到和感受到啊。

640x480约30_0000个像素点。

行扫描周期x场扫描周期x帧率=像素时钟(Mhz),这是行场同步的时钟频率。

由于VGA的输入是模拟信号,将数字信号转换为模拟信号,可以采用权电阻网络或者是专用的转换芯片。

这是RGB565的格式,用电压来表示颜色的深度,这三路模拟信号的电压范围为0V ~ 0.714V,0V 代表无色,0.714V 代表满色,电压高低由输入的数字信号决定。输入的R、G、B 数字信号不同,输出的三原色红、绿、蓝电压不同,颜色深浅不同,三原色相结合可以产生多种颜色。

六、模块设计

七、波形图设计

一个行扫描周期是扫描一行,扫描完一行,列计数器计数一个,图像是在对应的行扫描周期和列扫描周期的对应时间来判断的。

图像有效信号范围,计数从0开始

行计数器范围(96+40+8-1=143,96+40+8+640-1=783)

场计数器范围(2+25+8-1=34,2+25+8+480-1=514)

八、彩条波形数据

640是列的个数

480是行的个数

对行进行10等分。

在有些时候对于数据的初始化可以不用0,改用其他的不常见或者不可能数值。比如数据变化范围是0-100,位宽是8位,可以初始化为8'hff,防止在数据误操作,比如在0到10要进行一个操作,那么初始化为0就会在开始时发生误操作,但是初始化为8‘hff,就不会发生误操作。

有时数据需要对齐边沿。

数据滞后坐标一个时钟周期,在vga_ctrl里产生对应的坐标,然后图像生成模块在一个时钟周期内输出对应的图像数据。图像数据经过组合逻辑立刻经过vga_ctrl输出图像。

数据滞后位置的波形图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2338062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【嵌入式】【阿里云服务器】【树莓派】学习守护进程编程、gdb调试原理和内网穿透信息

目录 一. 守护进程的含义及编程实现的主要过程 1.1守护进程 1.2编程实现的主要过程 二、在树莓派中通过三种方式创建守护进程 2.1nohup命令创建 2.2fork()函数创建 2.3daemon()函数创建 三、在阿里云中通过三种方式创建守护进程 3.1nohup命令创建 3.2fork()函数创建 …

前沿篇|CAN XL 与 TSN 深度解读

引言 1. CAN XL 标准演进与设计目标 2. CAN XL 物理层与帧格式详解 3. 时间敏感网络 (TSN) 关键技术解析 4. CAN XL + TSN 在自动驾驶领域的典型应用

AI大模型科普:从零开始理解AI的“超级大脑“,以及如何用好提示词?

大家好,小机又来分享AI了。 今天分享一些新奇的东西, 你有没有试过和ChatGPT聊天时,心里偷偷犯嘀咕:"这AI怎么跟真人一样对答如流?它真的会思考吗?" 或者刷到技术文章里满屏的"Token"…

STM32单片机入门学习——第40节: [11-5] 硬件SPI读写W25Q64

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.18 STM32开发板学习——第一节: [1-1]课程简介第40节: [11-5] 硬件SPI读…

如何将 .txt 文件转换成 .md 文件

一、因为有些软件上传文件的时候需要 .md 文件,首先在文件所在的目录中,点击“查看”,然后勾选上“文件扩展名”,这个时候该目录下的所有文件都会显示其文件类型了。 二、这时直接对目标的 .txt 文件进行重命名,把后缀…

Qt 创建QWidget的界面库(DLL)

【1】新建一个qt库项目 【2】在项目目录图标上右击,选择Add New... 【3】选择模版:Qt->Qt设计师界面类,选择Widget,填写界面类的名称、.h .cpp .ui名称 【4】创建C调用接口(默认是创建C调用接口) #ifnd…

Spring 数据库编程

Spring JDBC 传统的JDBC在操作数据库时,需要先打开数据库连接,执行SQL语句,然后封装结果,最后关闭数据库连接等资源。频繁的数据库操作会产生大量的重复代码,造成代码冗余,Spring的JDBC模块负责数据库资源…

进阶篇|CAN FD 与性能优化

引言 1. CAN vs. CAN FD 对比 2. CAN FD 帧结构详解

CTF--各种绕过哟

一、原网页&#xff1a; 二、步骤&#xff1a; 1.源代码&#xff1a; <?php highlight_file(flag.php); $_GET[id] urldecode($_GET[id]); $flag flag{xxxxxxxxxxxxxxxxxx}; if (isset($_GET[uname]) and isset($_POST[passwd])) {if ($_GET[uname] $_POST[passwd])pr…

嵌入式ARM RISCV toolchain工具 梳理arm-none-eabi-gcc

嵌入式TOOLchain工具 梳理 简介 本文总结和梳理一下一些toolchain的规则和原理&#xff0c;方便后续跨平台的时候&#xff0c;给大家使用toolchain做一个参考。 解释如何理解arm-none-eabi-gcc等含义&#xff0c;以及如何一看就知道该用什么编译器。 当然如果有哪里写的不是…

复现SCI图像增强(Toward fast, flexible, and robust low-light image enhancement.)

运行train.py报错 > File "/home/uriky/桌面/SCI-main/SCI-main/train.py", line 105, in main > train_queue torch.utils.data.DataLoader( File "/home/uriky/anaconda3/envs/AA/lib/python3.8/site-packages/torch/utils/data/dataloader.py&q…

深入理解C++中string的深浅拷贝

目录 一、引言 二、浅拷贝与深拷贝的基本概念 2.1 浅拷贝 2.2 深拷贝 在C 中&#xff0c; string 类的深浅拷贝有着重要的区别。 浅拷贝 深拷贝 string 类中的其他构造函数及操作 resize 构造 构造&#xff08;赋值构造&#xff09; 构造&#xff08;拼接构造&#xf…

第八篇:系统分析师第三遍——3、4章

目录 一、目标二、计划三、完成情况四、意外之喜(最少2点)1.计划内的明确认知和思想的提升标志2.计划外的具体事情提升内容和标志 五、总结 一、目标 通过参加考试&#xff0c;训练学习能力&#xff0c;而非单纯以拿证为目的。 1.在复习过程中&#xff0c;训练快速阅读能力、掌…

Unity粒子特效打包后不显示

1.粒子发mesh&#xff0c;如果打包后不显示&#xff0c;尝试勾选r/w 2.如果还不行&#xff0c;mesh重做&#xff0c;目前发现ab包打出的&#xff0c;有的mesh会出问题&#xff0c;暂时原因不详。

楼梯上下检测数据集VOC+YOLO格式5462张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;5462 标注数量(xml文件个数)&#xff1a;5462 标注数量(txt文件个数)&#xff1a;5462 …

消防营区管控:从智能仓储、装备管理、应急物资调用等多维度出发

近期&#xff0c;一系列消防安全热点事件引发了社会各界的广泛关注。某老旧城区的一场火灾&#xff0c;由于消防通道被杂物堵塞&#xff0c;消防车辆无法及时靠近火源&#xff0c;加之周边消防设施老化&#xff0c;灭火物资储备不足&#xff0c;导致火势迅速蔓延&#xff0c;造…

解锁古籍中的气候密码,探索GPT/BERT在历史灾害研究中的前沿应用;气候史 文本挖掘 防灾减灾;台风案例、干旱案例、暴雨案例

历史灾害文献分析方法论的研究&#xff0c;是连接过去与未来的关键桥梁。通过对古籍、方志、档案等非结构化文本的系统性挖掘与量化分析&#xff0c;不仅能够重建千年尺度的灾害事件序列&#xff08;如台风、洪旱等&#xff09;&#xff0c;弥补仪器观测数据的时空局限性&#…

vue3 Element-plus修改内置样式复现代码

笔者在修改Element-plus的内置样式时&#xff0c;遇到一点挫折&#xff0c;现提供需求场景与解决方案。 一、实现&#xff08;1&#xff09;透明弹窗可拖拽&#xff0c;且不影响点击弹窗外内容&#xff1b;&#xff08;2&#xff09;弹窗内置表格&#xff0c;表格需修改样式颜色…

一本通 2063:【例1.4】牛吃牧草 1005:地球人口承载力估计

Topic&#xff1a; Ideas&#xff1a; 为什么把这两道题放在一起呢&#xff1f;就是因为这两道题很类似&#xff0c;都是很简单的数学题&#xff0c;只要你会列出数学等式&#xff0c;你就学会这道题了&#xff01; 下面把计算过程展示给大家 Code&#xff1a; //2025/04/18…

c++:c++中的输入输出(二)

1.getline getline是包含于头文件&#xff1a;<string>的函数 作用&#xff1a;读取一行字符串&#xff08;包含空格&#xff09; 使用格式&#xff1a;getline(cin,str); string a;getline(cin, a); 假设我们有一个场景是需要识别一行字符串中的字母a的个数&#xff0c;…