当前位置: 首页 > news >正文

Xilinx系列FPGA实现DP1.4视频收发,支持4K60帧分辨率,提供2套工程源码和技术支持

目录

  • 1、前言
    • 工程概述
    • 免责声明
  • 2、相关方案推荐
    • 我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目
    • 我已有的FPGA图像处理方案
    • 我已有的4K/8K视频处理解决方案
  • 3、详细设计方案
    • 设计框图
    • 本DP1.4性能参数
    • DP1.4视频输入源
    • DP物理层 Video PHY Controller
    • DP协议层解码 Video DisplayPort 1.4 Rx Subsystem
    • DP写缓存 Video Frame Buffer Write
    • DP读缓存 Video Frame Buffer Read
    • DP协议层编码 Video DisplayPort 1.4 TX Subsystem
    • DP视频输出显示
    • vivado逻辑工程源码架构
    • vitis软件工程源码架构
  • 4、Vivado工程源码1详解-->ZU7EV,DP1.4输入转输出版本
  • 5、Vivado工程源码2详解-->ZU19EG,DP1.4输入转输出版本
  • 6、工程移植说明
    • vivado版本不一致处理
    • FPGA型号不一致处理
    • 其他注意事项
  • 7、上板调试验证并演示
    • 准备工作
    • DP1.4视频收发演示
  • 8、福利:工程源码获取

Xilinx系列FPGA实现DP1.4视频收发,支持4K60帧分辨率,提供2套工程源码和技术支持

Xilinx系列FPGA实现DP1.4视频收发,支持4K60帧分辨率

1、前言

Xilinx系列FPGA实现DP视频收发现状:
目前Xilinx系列FPGA实现提供了多种DP视频收发方案;对于纯FPGA而言,需要用到GT高速接口资源实现编解码,但要求UltraScale+及其以上系列FPGA,以DP1.4为例,Xilinx官方提供了基于Video PHY Controller为核心的一整套DP1.4收发方案,此外,还可以直接使用GT高速接口IP核配置为GT-DP编解码模式,或者配置为DP编解码模式;对于Zynq-UltraScale+系列FPGA而言,既可以使用PL端的GT高速接资源做DP1.4视频收发,也可以使用PS端的DP外设做DP1.4视频收发;本博主擅长Xilinx-UltraScale+系列FPGA实现DP1.4视频收发方案设计,本设计采用基于Video PHY Controller为核心的一整套DP1.4收发方案,最高支持3840x2160@60Hz;

工程概述

本设计基于Xilinx系列FPGA的GT告诉接口实现DP1.4工程解决方案,最高支持3840x2160@60Hz;

使用Xilinx-UltraScale+系列FPGA 的GTY高速收发器实现3840x2160@60Hz的DP1.4视频收发实验;DP1.4视频输入源使用台式电脑主机模拟,需要主机具备DP1.4接口,将主机分辨率设置为3840x2160@60Hz,然后用DP1.4线缆连接至FPGA开发板的DP1.4输入接口;然后经过芝加达电子的MCDP6000或者其他同等功能的重定时器芯片实现恢复和重定时高速信号;然后差分视频信号直接连到FPGA的GTY高速收发器;然后调用Xilinx官方的Video PHY Controller IP核接收DP1.4输入视频并做串并转换工作,将原来高速串行信号解串为4路32bit的AXI4-Stream并行数据;然后调用Xilinx官方的Video DisplayPort 1.4 RX Subsystem IP核做DP视频解码工作,解码出120bit的AXI4-Stream视频流;解码后的AXI4-Stream视频流进入Xilinx官方的Video Frame Buffer Write IP核实现图像缓存,该IP优于Xilinx官方的VDMA,可以存RGB10bit像素,图像缓存介质为DDR4;然后调用Xilinx官方的Video Frame Buffer Read IP核实现图像从DDR4中读出;读出后的视频送入Xilinx官方的Video DisplayPort 1.4 Rx TX IP核做DP视频编码工作,并输出4路32bit的AXI4-Stream视频流;然后4路AXI4-Stream视频流进入前面调用的Video PHY Controller IP核做DP1.4视频并串转化工作,将原4路32bit的AXI4-Stream并行数据串化为高速串行信号,输出的差分视频数据信号直接从FPGA的GT高速BANK输出;DP1.4高速差分信号再进入德州仪器公司的SN65DP141或其他同等功能的驱动芯片,以增强高速信号的输出驱动能力;最后使用DP1.4线缆连接至显示器即可输出显示3840x2160@60Hz视频;

上述IP和IC需要vitis软件配置,所以需要调用MicroBlaze或者Zynq软核;针对目前市面上主流的项目需求,本博客共设计了2套工程源码,详情如下:
在这里插入图片描述
现对上述2套工程源码做如下解释,方便读者理解:

工程源码1

开发板FPGA型号为Xilinx-Zynq UltraScale+ xczu7ev-ffvc1156-2-i;DP1.4视频输入源使用台式电脑主机模拟,需要主机具备DP1.4接口,将主机分辨率设置为3840x2160@60Hz,然后用DP1.4线缆连接至FPGA开发板的DP1.4输入接口;然后经过芝加达电子的MCDP6000或者其他同等功能的重定时器芯片实现恢复和重定时高速信号;然后差分视频信号直接连到FPGA的GTY高速收发器;然后调用Xilinx官方的Video PHY Controller IP核接收DP1.4输入视频并做串并转换工作,将原来高速串行信号解串为4路32bit的AXI4-Stream并行数据;然后调用Xilinx官方的Video DisplayPort 1.4 RX Subsystem IP核做DP视频解码工作,解码出120bit的AXI4-Stream视频流;解码后的AXI4-Stream视频流进入Xilinx官方的Video Frame Buffer Write IP核实现图像缓存,该IP优于Xilinx官方的VDMA,可以存RGB10bit像素,图像缓存介质为DDR4;然后调用Xilinx官方的Video Frame Buffer Read IP核实现图像从DDR4中读出;读出后的视频送入Xilinx官方的Video DisplayPort 1.4 Rx TX IP核做DP视频编码工作,并输出4路32bit的AXI4-Stream视频流;然后4路AXI4-Stream视频流进入前面调用的Video PHY Controller IP核做DP1.4视频并串转化工作,将原4路32bit的AXI4-Stream并行数据串化为高速串行信号,输出的差分视频数据信号直接从FPGA的GT高速BANK输出;DP1.4高速差分信号再进入德州仪器公司的SN65DP141或其他同等功能的驱动芯片,以增强高速信号的输出驱动能力;最后使用DP1.4线缆连接至显示器即可输出显示3840x2160@60Hz视频;本设计使用UltraScale-GTY高速收发器,适用于Xilinx-UltraScale+系列FPGA实现DP1.4视频收发应用;

工程源码2

开发板FPGA型号为Xilinx-Zynq UltraScale+ xczu19eg-ffvc1760-2-i;DP1.4视频输入源使用台式电脑主机模拟,需要主机具备DP1.4接口,将主机分辨率设置为3840x2160@60Hz,然后用DP1.4线缆连接至FPGA开发板的DP1.4输入接口;然后经过芝加达电子的MCDP6000或者其他同等功能的重定时器芯片实现恢复和重定时高速信号;然后差分视频信号直接连到FPGA的GTY高速收发器;然后调用Xilinx官方的Video PHY Controller IP核接收DP1.4输入视频并做串并转换工作,将原来高速串行信号解串为4路32bit的AXI4-Stream并行数据;然后调用Xilinx官方的Video DisplayPort 1.4 RX Subsystem IP核做DP视频解码工作,解码出120bit的AXI4-Stream视频流;解码后的AXI4-Stream视频流进入Xilinx官方的Video Frame Buffer Write IP核实现图像缓存,该IP优于Xilinx官方的VDMA,可以存RGB10bit像素,图像缓存介质为DDR4;然后调用Xilinx官方的Video Frame Buffer Read IP核实现图像从DDR4中读出;读出后的视频送入Xilinx官方的Video DisplayPort 1.4 Rx TX IP核做DP视频编码工作,并输出4路32bit的AXI4-Stream视频流;然后4路AXI4-Stream视频流进入前面调用的Video PHY Controller IP核做DP1.4视频并串转化工作,将原4路32bit的AXI4-Stream并行数据串化为高速串行信号,输出的差分视频数据信号直接从FPGA的GT高速BANK输出;DP1.4高速差分信号再进入德州仪器公司的SN65DP141或其他同等功能的驱动芯片,以增强高速信号的输出驱动能力;最后使用DP1.4线缆连接至显示器即可输出显示3840x2160@60Hz视频;本设计使用UltraScale-GTY高速收发器,适用于Xilinx-UltraScale+系列FPGA实现DP1.4视频收发应用;

本博客详细描述了Xilinx系列FPGA实现DP1.4视频收发的设计方案,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做学习提升,可应用于医疗、军工等行业的高速接口或图像处理领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网以及其他开源免费获取渠道等等),若大佬们觉得有所冒犯,请私信批评教育;部分模块源码转载自上述网络,版权归原作者所有,如有侵权请联系我们删除;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律问题,与本博客及博主无关,请谨慎使用。。。

2、相关方案推荐

我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目

其实一直有朋友反馈,说我的博客文章太多了,乱花渐欲迷人,自己看得一头雾水,不方便快速定位找到自己想要的项目,所以本博文置顶,列出我目前已有的所有项目,并给出总目录,每个项目的文章链接,当然,本博文实时更新。。。以下是博客地址:
点击直接前往

我已有的FPGA图像处理方案

我的主页目前有FPGA图像处理专栏,改专栏收录了我目前手里已有的FPGA图像处理方案,包括图像缩放、图像识别、图像拼接、图像融合、图像去雾、图像叠加、图像旋转、图像增强、图像字符叠加等等;以下是专栏地址:
点击直接前往

我已有的4K/8K视频处理解决方案

我的主页有FPGA 4K/8K视频处专栏,该专栏有4K/8K视频处理,包括简单的4K/8K视频收发、4K/8K视频缩放、4K/8K视频拼接等等;以下是专栏地址:
点击直接前往

3、详细设计方案

设计框图

本设计的工程详细设计方案框图如下:
在这里插入图片描述

本DP1.4性能参数

Xilinx官方提供的DP1.4物理层架构包括GT控制器和收发子系统,总体而言性能很不错,具体如下:
• Supports multi-stream transport (MST) and single stream transport (SST)
• Dynamic lane support (1, 2, or 4 lanes)
• Dynamic link rate support (1.62/2.7/5.4/8.1 Gb/s)
• Dynamic support for 6, 8, 10, 12, or 16 bits per component (BPC)
• Dynamic support for RGB/YCbCr444/YCbCr422 color formats
• Supports 16-bit Video PHY (GT) interface
• Supports 2 to 8 channel audio with 44/48 kHz sample rates
• Supports HDCP 1.3 and HDCP 2.2 encryption in SST
• Supports native or AXI4-Stream video input interface
• Pixel mode support in native video interface mode
• Supports Linear PCM 2-channel audio format
• Supports single audio stream in MST mode
• Supports SDP packet for static HDR mode
• Supports eDP v1.4b

DP1.4视频输入源

DP1.4视频输入源使用台式电脑主机模拟,需要你的主机满足以下要求:
1、主机具备DP1.4接口
2、主机具备3840x2160@60Hz分辨率
如下:
在这里插入图片描述

DP物理层 Video PHY Controller

Video PHY Controller可做DP1.4视频的接收和发送的解串与串化;对于DP1.4视频接收而言,可将原来高速串行信号解串为4路32bit的AXI4-Stream并行数据;然后调用Xilinx官方的Video DisplayPort 1.4 RX Subsystem IP核做DP1.4视频的解码工作,解码出AXI4-Stream视频流;对于DP1.4视频发送而言,可将原4路32bit的AXI4-Stream并行数据串化为高速串行信号,输出的差分视频数据信号直接从FPGA的GT高速BANK输出;以DP1.4收发模式为例,Video PHY Controller配置如下:
在这里插入图片描述
该IP需要在Vitis中做进一步详细配置,详情参考VitisC语言软件代码;

DP协议层解码 Video DisplayPort 1.4 Rx Subsystem

Xilinx官方的Video DisplayPort 1.4 Rx Subsystem IP核主要实现DP1.4视频的解码工作,解码出4路32bit的AXI4-Stream并行数据;Video DisplayPort 1.4 Rx Subsystem配置如下:
在这里插入图片描述
该IP需要在Vitis中做进一步详细配置,详情参考VitisC语言软件代码;

DP写缓存 Video Frame Buffer Write

解码后的AXI4-Stream视频流进入Xilinx官方的Video Frame Buffer Write IP核实现图像缓存,该IP优于Xilinx官方的VDMA,可以存RGB10bit像素,图像缓存介质为DDR4;Video Frame Buffer Write配置如下:
在这里插入图片描述
该IP需要在Vitis中做进一步详细驱动,详情参考VitisC语言软件代码;

DP读缓存 Video Frame Buffer Read

然后调用Xilinx官方的Video Frame Buffer Read IP核实现图像从DDR4中读出;该IP优于Xilinx官方的VDMA,可以读RGB10bit像素,图像缓存介质为DDR4;Video Frame Buffer Read配置如下:
在这里插入图片描述
该IP需要在Vitis中做进一步详细驱动,详情参考VitisC语言软件代码;

DP协议层编码 Video DisplayPort 1.4 TX Subsystem

调用Xilinx官方的Video DisplayPort 1.4 Rx TX IP核做DP视频编码工作,并输出4路32bit的AXI4-Stream视频流;Video DisplayPort 1.4 TX Subsystem配置如下:
在这里插入图片描述
该IP需要在Vitis中做进一步详细配置,详情参考VitisC语言软件代码;

DP视频输出显示

视频输出显示需要支持4K@60Hz,一般情况下,1千块以内的显示器是不支持的,我是用的是家里的电视机,品牌为小米电视EA55-2022款,你可以查询一下你的电视是否支持4K@60Hz,此外,使用的HDMI线缆也必须支持4K@60Hz,在保证显示线缆和显示器OK的情况下再做输出测试,可以解决很大部分调试排查时间;

vivado逻辑工程源码架构

工程源码架构包括vivado Block Design逻辑设计和vitis SDK软件设计;
以工程源码1为例,Block Design逻辑设计架构截图如下:
在这里插入图片描述
以工程源码1为例,综合后的源码架构如下:
在这里插入图片描述

vitis软件工程源码架构

Vitis软件代码如下:
在这里插入图片描述

4、Vivado工程源码1详解–>ZU7EV,DP1.4输入转输出版本

开发板FPGA型号:Xilinx-Zynq UltraScale+ xczu7ev-ffvc1156-2-i;
FPGA开发环境:Vivado2023.1;
输入:电脑主机,DP1.4,分辨率3840x2160@60Hz;
输出:小米电视,DP1.4,分辨率3840x2160@60Hz;
DP1.4物理层方案:Xilinx官方的Video PHY Controller IP核,使用GTY高速接口;
DP1.4协议层解码方案:Xilinx官方的Video DisplayPort 1.4 RX Subsystem IP核;
DP1.4协议层编码方案:Xilinx官方的Video DisplayPort 1.4 TX Subsystem IP核;
图像写缓存方案:Xilinx官方的Video Frame Buffer Write IP核;
图像读缓存方案:Xilinx官方的Video Frame Buffer Read IP核;
图像读缓介质:PS端DDR4,也可换为PL端DDR4或DDR3;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握Xilinx系列FPGA实现DP1.4视频收发设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

5、Vivado工程源码2详解–>ZU19EG,DP1.4输入转输出版本

开发板FPGA型号:Xilinx-Zynq UltraScale+ xczu19eg-ffvc1760-2-i;
FPGA开发环境:Vivado2023.1;
输入:电脑主机,DP1.4,分辨率3840x2160@60Hz;
输出:小米电视,DP1.4,分辨率3840x2160@60Hz;
DP1.4物理层方案:Xilinx官方的Video PHY Controller IP核,使用GTY高速接口;
DP1.4协议层解码方案:Xilinx官方的Video DisplayPort 1.4 RX Subsystem IP核;
DP1.4协议层编码方案:Xilinx官方的Video DisplayPort 1.4 TX Subsystem IP核;
图像写缓存方案:Xilinx官方的Video Frame Buffer Write IP核;
图像读缓存方案:Xilinx官方的Video Frame Buffer Read IP核;
图像读缓介质:PS端DDR4,也可换为PL端DDR4或DDR3;
工程源码架构请参考前面第3章节中的《工程源码架构》小节;
工程作用:此工程目的是让读者掌握Xilinx系列FPGA实现DP1.4视频收发设计能力,以便能够移植和设计自己的项目;
工程的资源消耗和功耗如下:
在这里插入图片描述

6、工程移植说明

vivado版本不一致处理

1:如果你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
在这里插入图片描述
3:如果你的vivado版本高于本工程vivado版本,解决如下:
在这里插入图片描述
打开工程后会发现IP都被锁住了,如下:
在这里插入图片描述
此时需要升级IP,操作如下:
在这里插入图片描述
在这里插入图片描述

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需要更改FPGA型号,操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

1:由于每个板子的DDR不一定完全一样,所以MIG IP需要根据你自己的原理图进行配置,甚至可以直接删掉我这里原工程的MIG并重新添加IP,重新配置;
2:根据你自己的原理图修改引脚约束,在xdc文件中修改即可;
3:纯FPGA移植到Zynq需要在工程中添加zynq软核;

7、上板调试验证并演示

准备工作

FPGA开发板,推荐使用本博的开发板;
8K输入设备;
8K HDMI显示器或者电视;
HDMI线;
以工程源码1为例,开发板连接如下:
在这里插入图片描述

DP1.4视频收发演示

DP1.4视频收发演示如下:

Xilinx系列FPGA实现DP1.4视频收发,支持4K60帧分辨率

8、福利:工程源码获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
在这里插入图片描述
此外,有很多朋友给本博主提了很多意见和建议,希望能丰富服务内容和选项,因为不同朋友的需求不一样,所以本博主还提供以下服务:
在这里插入图片描述


文章转载自:

http://vcqSiLxu.qtqjx.cn
http://LDjBVlxD.qtqjx.cn
http://MXLZSgjh.qtqjx.cn
http://D0gJU5oK.qtqjx.cn
http://jAq2wECo.qtqjx.cn
http://hAkjVEJQ.qtqjx.cn
http://VVWFzdH9.qtqjx.cn
http://qcHRjv2e.qtqjx.cn
http://wqTre1UE.qtqjx.cn
http://368bw8gk.qtqjx.cn
http://GFfcpaSy.qtqjx.cn
http://RZ2XZTyy.qtqjx.cn
http://5WYUWpDc.qtqjx.cn
http://wOI4dSAw.qtqjx.cn
http://S2Cm8vnl.qtqjx.cn
http://IIzZvzCn.qtqjx.cn
http://8GZqg8GB.qtqjx.cn
http://apyDzvbd.qtqjx.cn
http://KtR3pjFJ.qtqjx.cn
http://02QsSLIM.qtqjx.cn
http://UV3zd3e0.qtqjx.cn
http://Urgzqe58.qtqjx.cn
http://eJ45EOG6.qtqjx.cn
http://t7x9Ne7z.qtqjx.cn
http://LthySRxF.qtqjx.cn
http://0u9wKdE9.qtqjx.cn
http://TgcajZKb.qtqjx.cn
http://Huh5wTbr.qtqjx.cn
http://Sz7yzX4a.qtqjx.cn
http://kXCPKV0A.qtqjx.cn
http://www.dtcms.com/a/367984.html

相关文章:

  • HTML文本格式化标签
  • OpenCV C++ 进阶:图像直方图与几何变换全解析
  • Java全栈学习笔记30
  • PiscCode轨迹跟踪Mediapipe + OpenCV进阶:速度估算
  • Java 学习笔记(进阶篇2)
  • OpenCV C++ 核心:Mat 与像素操作全解析
  • 实践指南:利用衡石AI Data Agent实现自然语言驱动的指标开发与归因
  • 23种设计模式——代理模式(Proxy Pattern)详解
  • 前端安全防护深度实践:从XSS到供应链攻击的全面防御
  • Bug排查日记:从崩溃到修复的实战记录
  • Xsens解码人形机器人训练的语言
  • 保姆级 i18n 使用攻略,绝对不踩坑(帮你踩完了)
  • Linux 文件系统及磁盘相关知识总结
  • 服务器为啥离不开传感器?一文看懂数据中心“隐形守护者”的关键角色
  • 【FastDDS】概述 Library Overview
  • 秋招还在手动筛简历?AI简历筛选3步实现效率跃升
  • 改 TDengine 数据库的时间写入限制
  • postgresql 通过dblink实现 跨库查询
  • LabView学习
  • FastGPT源码解析 工作流、知识库、大模型、Agent等核心代码文件梳理
  • LabVIEW汽车发动机振动测试
  • LabVIEW 尺度图自定义色表应用
  • PPT中如何将设置的文本框边距设为默认
  • 专题:2025电力行业5G工厂及绿色转型、市场机制研究报告|附100+份报告PDF、数据仪表盘汇总下载
  • [GYCTF2020]Ezsqli
  • 【实战指南】Cursor前端+Zion后端:10分钟打造能收款的AI商业应用MVP
  • 【LeetCode 热题 100】1. 两数之和——(解法二)哈希表
  • ansible阶段练习题
  • Vue用户管理系统代码逐行详解
  • 计算机网络4 第四章 网络层——网络间的通信问题(省际之间如何规划信件运输路线)