您的位置首页 >半导体 >

FPGA 多路视频源切换与 OSD 菜单叠加实验解读,黑金云课堂综合例程解析

这套黑金云课堂的 FPGA 综合例程,主要实现多路视频输入源的切换,同时在视频画面上叠加图像菜单 OSD 显示,非常适合 FPGA 视频图像处理入门学习,多路摄像头或者 HDMI 视频信号送入 FPGA 后,先做视频采集、时序对齐缓存,再由选择模块选定当前输出通路,OSD 模块读取菜单字库或者位图数据,按照指定坐标叠加到视频数据流里,最后统一送出到显示接口,视频数据流时序严格,不同视频源的行场信号、帧率容易不同步,如果不做 FIFO 帧缓存,切换画面会出现花屏、撕裂,这个例程把采集、缓存、切换、菜单叠加、输出时序控制打包成完整工程,学习者可以直接在黑金开发板上跑通实验,再修改参数调整菜单样式、切换逻辑,快速掌握 FPGA 视频处理的核心思路。

一、多路视频源切换与菜单叠加模块对照表

模块名称核心功能重点控制信号容易出现的现象
视频采集模块接收多路视频源,解析行场同步、像素数据行同步 HS、场同步 VS、像素时钟、数据有效信号同步信号抓错,画面黑屏、偏色
帧缓存 FIFO/BRAM缓存不同通道图像,解决跨源时序不一致写指针、读指针、读写使能缓存溢出、画面撕裂、卡顿
多路切换选择模块根据按键 / 寄存器指令,选通一路视频流通道选择信号 sel切换瞬间花屏,无淡入淡出过渡
OSD 菜单叠加模块读取字库 / 位图,在指定坐标叠加菜单文字、图标叠加区域坐标、透明度、使能信号菜单错位、闪烁、覆盖不全
视频输出时序生成模块生成标准显示时序,送出合成后图像输出行场时序、像素时钟输出无画面、画面偏移

二、这个 FPGA 综合例程的核心功能清单

  1. 多路视频源并行采集:支持两路及以上视频同时接入,每一路独立采集,互不干扰。
  2. 通道实时切换:可以通过板载按键或者寄存器命令,切换当前输出是哪一路视频。
  3. OSD 图像菜单叠加:在视频画面上层叠加文字菜单、标识、通道编号,支持调整菜单位置。
  4. 时序隔离缓存:使用 FIFO 或者片内 BRAM 做帧缓冲,缓解不同视频源时钟域不同步的问题。
  5. 模块化工程结构:采集、缓存、切换、OSD、输出分开封装,方便单独修改、移植到别的 FPGA 工程。
  6. 适配黑金系列开发板:配套黑金云课堂文档,引脚约束、IP 核配置都提前做好,降低上手门槛。

三、实验调试高频踩坑点

  • 不同视频源像素时钟不一样,直接切换不做跨时钟域处理,大概率画面撕裂。
  • OSD 叠加坐标在行场消隐区之外,菜单闪烁,和视频画面互相干扰。
  • FIFO 深度设置太小,高速视频数据流进来直接溢出,图像乱码。
  • 按键没有消抖,多路视频源切换时通道乱跳,反复切换。
  • 像素位宽不匹配,采集是 8bit,输出是 24bit RGB,出现颜色异常。
  • 没有做好时序约束,综合后时序违例,跑高分辨率视频不稳定。

四、FPGA 多路视频切换 + 菜单叠加实验实操步骤

  1. 工程导入:下载黑金云课堂配套例程,在 Vivado 或者 Quartus 里面打开综合工程,核对开发板型号。
  2. 硬件接线:接入多路视频输入源,HDMI 或者摄像头,接上显示输出,确认电源稳定。
  3. IP 核对:检查 FIFO、PLL 时钟 IP 配置,确认各路视频像素时钟、输出显示时钟参数正确。
  4. 功能编译综合:运行综合、实现,查看时序报告,消除严重的时序违例。
  5. 下载比特流:烧录到黑金 FPGA 开发板,上电,观察默认视频画面。
  6. 通道切换测试:按下按键,验证多路视频源切换是否流畅,观察有无花屏。
  7. OSD 菜单调试:修改参数,调整菜单位置、文字内容,测试菜单叠加效果。
  8. 优化迭代:根据需求增加透明度、动画、更多通道,或者改成串口指令控制切换。

【常见问题】

问题 1:黑金云课堂这套 FPGA 综合例程做多路视频源切换与图像菜单叠加,原理上最难处理的地方是什么?

回答 1:黑金云课堂这套 FPGA 综合例程做多路视频源切换与图像菜单叠加,最难处理的是不同视频源时钟域隔离和帧同步,如果时序、缓存没有处理好,切换画面会撕裂,叠加的图像菜单也会闪烁错位。

问题 2:这个 FPGA 多路视频源切换与图像菜单叠加实验,能不能直接移植到别的品牌 FPGA 开发板?

回答 2:这个 FPGA 多路视频源切换与图像菜单叠加实验底层逻辑可以移植,但是黑金云课堂原版例程的引脚约束、IP 配置、硬件驱动是适配黑金开发板的,移植需要重新修改引脚分配、时序约束。

问题 3:跑 FPGA 多路视频源切换与图像菜单叠加实验,切换通道时出现瞬间花屏怎么解决?

回答 3:跑 FPGA 多路视频源切换与图像菜单叠加实验出现切换花屏,一般是没有等到场消隐窗口再切换通道,修改代码,把通道切换动作锁定在场消隐期间,配合帧缓存就可以改善。

【数据来源】

[2026-11-12](黑金云课堂:FPGA 多路视频切换 + OSD 菜单叠加实验例程讲解)正点原子 / 黑金官方社区

[2026-11-07](FPGA 视频 OSD 叠加、多路图像切换 FIFO 缓存设计思路)FPGA 开发者社区

[2026-10-18](跨时钟域视频采集与通道切换时序调试指南)电子发烧友

[2026-09-25](FPGA 图像菜单 OSD 叠加字库生成与坐标控制教程)Verilog 开源工坊

【免责声明】

本文仅针对黑金云课堂该 FPGA 综合例程做技术科普,例程运行效果和开发板型号、版本、IP 核版本、视频输入分辨率强相关;工程综合、时序优化、硬件调试需要掌握 Verilog/VHDL 与时序分析基础,本文不可以直接作为商用视频产品的开发依据。

今日大家都在搜的词: