这套黑金云课堂的 FPGA 综合例程,主要实现多路视频输入源的切换,同时在视频画面上叠加图像菜单 OSD 显示,非常适合 FPGA 视频图像处理入门学习,多路摄像头或者 HDMI 视频信号送入 FPGA 后,先做视频采集、时序对齐缓存,再由选择模块选定当前输出通路,OSD 模块读取菜单字库或者位图数据,按照指定坐标叠加到视频数据流里,最后统一送出到显示接口,视频数据流时序严格,不同视频源的行场信号、帧率容易不同步,如果不做 FIFO 帧缓存,切换画面会出现花屏、撕裂,这个例程把采集、缓存、切换、菜单叠加、输出时序控制打包成完整工程,学习者可以直接在黑金开发板上跑通实验,再修改参数调整菜单样式、切换逻辑,快速掌握 FPGA 视频处理的核心思路。
一、多路视频源切换与菜单叠加模块对照表
| 模块名称 | 核心功能 | 重点控制信号 | 容易出现的现象 |
|---|---|---|---|
| 视频采集模块 | 接收多路视频源,解析行场同步、像素数据 | 行同步 HS、场同步 VS、像素时钟、数据有效信号 | 同步信号抓错,画面黑屏、偏色 |
| 帧缓存 FIFO/BRAM | 缓存不同通道图像,解决跨源时序不一致 | 写指针、读指针、读写使能 | 缓存溢出、画面撕裂、卡顿 |
| 多路切换选择模块 | 根据按键 / 寄存器指令,选通一路视频流 | 通道选择信号 sel | 切换瞬间花屏,无淡入淡出过渡 |
| OSD 菜单叠加模块 | 读取字库 / 位图,在指定坐标叠加菜单文字、图标 | 叠加区域坐标、透明度、使能信号 | 菜单错位、闪烁、覆盖不全 |
| 视频输出时序生成模块 | 生成标准显示时序,送出合成后图像 | 输出行场时序、像素时钟 | 输出无画面、画面偏移 |
二、这个 FPGA 综合例程的核心功能清单
- 多路视频源并行采集:支持两路及以上视频同时接入,每一路独立采集,互不干扰。
- 通道实时切换:可以通过板载按键或者寄存器命令,切换当前输出是哪一路视频。
- OSD 图像菜单叠加:在视频画面上层叠加文字菜单、标识、通道编号,支持调整菜单位置。
- 时序隔离缓存:使用 FIFO 或者片内 BRAM 做帧缓冲,缓解不同视频源时钟域不同步的问题。
- 模块化工程结构:采集、缓存、切换、OSD、输出分开封装,方便单独修改、移植到别的 FPGA 工程。
- 适配黑金系列开发板:配套黑金云课堂文档,引脚约束、IP 核配置都提前做好,降低上手门槛。
三、实验调试高频踩坑点
- 不同视频源像素时钟不一样,直接切换不做跨时钟域处理,大概率画面撕裂。
- OSD 叠加坐标在行场消隐区之外,菜单闪烁,和视频画面互相干扰。
- FIFO 深度设置太小,高速视频数据流进来直接溢出,图像乱码。
- 按键没有消抖,多路视频源切换时通道乱跳,反复切换。
- 像素位宽不匹配,采集是 8bit,输出是 24bit RGB,出现颜色异常。
- 没有做好时序约束,综合后时序违例,跑高分辨率视频不稳定。
四、FPGA 多路视频切换 + 菜单叠加实验实操步骤
- 工程导入:下载黑金云课堂配套例程,在 Vivado 或者 Quartus 里面打开综合工程,核对开发板型号。
- 硬件接线:接入多路视频输入源,HDMI 或者摄像头,接上显示输出,确认电源稳定。
- IP 核对:检查 FIFO、PLL 时钟 IP 配置,确认各路视频像素时钟、输出显示时钟参数正确。
- 功能编译综合:运行综合、实现,查看时序报告,消除严重的时序违例。
- 下载比特流:烧录到黑金 FPGA 开发板,上电,观察默认视频画面。
- 通道切换测试:按下按键,验证多路视频源切换是否流畅,观察有无花屏。
- OSD 菜单调试:修改参数,调整菜单位置、文字内容,测试菜单叠加效果。
- 优化迭代:根据需求增加透明度、动画、更多通道,或者改成串口指令控制切换。
【常见问题】
问题 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 与时序分析基础,本文不可以直接作为商用视频产品的开发依据。
