FPGA实现SDI视频解码转UltraScale GTH光口传输,基于GS2971+Aurora 8b/10b ...

打印 上一主题 下一主题

主题 884|帖子 884|积分 2652

FPGA实现SDI视频解码转UltraScale GTH光口传输,基于GS2971+Aurora 8b/10b编解码架构,提供2套工程源码和技术支持
1、前言

FPGA实现SDI视频编解码现状;
一是使用专用编解码芯片,比如典范的吸收器GS2971,发送器GS2972,优点是简单,比如GS2971吸收器直接将SDI解码为并行的YCrCb422,GS2972发送器直接将并行的YCrCb422编码为SDI视频,缺点是成本较高,可以百度一下GS2971和GS2972的价格;另一种方案是使用FPGA逻辑资源部实现SDI编解码,利用Xilinx系列FPGA的GTP/GTX资源实现解串,利用Xilinx系列FPGA的SMPTE SDI资源实现SDI编解码,优点是合理利用了FPGA资源,GTP/GTX资源不用白不用,缺点是操作难度大一些,对FPGA开发者的技术水平要求较高。本设计使用GS2971吸收器方案;
FPGA实现SFP光口视频编解码现状;
目前基于Xilinx系列FPGA的SFP光口视频编解码主要有以下几种,Artix7系列的GTP、Kintex7系列的GTX、更高端FPGA器件的GTH、GTY、GTV、GTM等,线速率越来越高,应用场景也越来越高端;编码方式也是多种多样,有8b/10b编解码、64b/66b编解码、HDMI编解码、SDI编解码等等;本设计接纳UltraScale系列的UltraScale GTH作为高速接口、8b/10b编解码的方式实现SFP光口视频编解码;
工程概述

本设计使用Xilinx UltraScale系列FPGA为平台,实现UltraScale GTH 8b/10b编解码视频传输;输入源为一个3G-SDI相机大概HDMI转3G-SDI盒子,也可以使用SD-SDI大概HD-SDI相机,因为本设计是三种SDI视频自适应的,同轴的SDI视频通过同轴线连接到GS2971转接板,GS2971解码芯片将同轴串行的SDI视频解码为并行的BT1120格式视频,至此,SDI视频解码操作已经完成,可以举行常规的图像处理惩罚操作了;然后使用纯verilog实现的BT1120转RGB模块实现视频格式转换后输出RGB888视频;然后SDI视频输入视频送入视频组包模块,将视频的每一行打上包头包尾标记以包的形式输出,以便吸收方举行有效识别;让后调用Xilinx官方的UltraScale GTH IP核实现视频8b/10b编码和数据串化,将并行数据串化为高速串行差分信号,线速率设置为5Gbps,编码后的视频通过板载的SFP光口的光纤输出;然后用板载的SFP光口的光纤吸收视频,然后送入Xilinx官方的UltraScale GTH IP核实现视频8b/10b解码和数据解串,将差分高速串行信号解为并行数据;然后数据送入数据对齐模块,实现错位数据对齐;然后数据送入视频解包模块,实现每一行的视频包头包尾拆解,并天生对应的场同步信号和数据有效信号输出;然后使用本博主常用的FDMA图像缓存架构对收罗视频做图像3帧缓存,缓存介质为板载DDR4;然后Native视频时序控制FDMA从DDR4中读取视频并同步输出RGB888视频流;然后使用RGB转HDMI模块或专用芯片实现RGB视频流转HDMI差分视频信号;最后用表现器表现视频即可;针对市场主流需求,本博客设计并提供2套工程源码,详细如下:

现对上述2套工程源码做如下解释,方便读者理解:
工程源码1
开发板FPGA型号为Xilinx–Kintex UltraScale–xcku060-ffva1156-2-i;输入源为一个3G-SDI相机大概HDMI转3G-SDI盒子,也可以使用SD-SDI大概HD-SDI相机,因为本设计是三种SDI视频自适应的,SDI输入分辨率为1920x1080@60Hz;同轴的SDI视频通过同轴线连接到GS2971转接板,GS2971解码芯片将同轴串行的SDI视频解码为并行的BT1120格式视频,至此,SDI视频解码操作已经完成,可以举行常规的图像处理惩罚操作了;然后使用纯verilog实现的BT1120转RGB模块实现视频格式转换后输出RGB888视频;然后SDI视频输入视频送入视频组包模块,将视频的每一行打上包头包尾标记以包的形式输出,以便吸收方举行有效识别;让后调用Xilinx官方的UltraScale GTH IP核实现视频8b/10b编码和数据串化,将并行数据串化为高速串行差分信号,线速率设置为5Gbps,编码后的视频通过板载的SFP光口的光纤输出;然后用板载的SFP光口的光纤吸收视频,然后送入Xilinx官方的UltraScale GTH IP核实现视频8b/10b解码和数据解串,将差分高速串行信号解为并行数据;然后数据送入数据对齐模块,实现错位数据对齐;然后数据送入视频解包模块,实现每一行的视频包头包尾拆解,并天生对应的场同步信号和数据有效信号输出;然后使用本博主常用的FDMA图像缓存架构对收罗视频做图像3帧缓存,缓存介质为板载DDR4;然后Native视频时序控制FDMA从DDR4中读取视频并同步输出RGB888视频流;然后经过纯verilog表现的RGB转HDMI模块输出HDMI差分视频,输出分辨率为1280x720@60Hz;由此形成Sensor+高速接口+光编码+HDMI的高端架构;该工程适用于SFP光口的视频收罗卡(光端机)应用;
工程源码2
开发板FPGA型号为Xilinx–>Zynq UltraScale–xczu4ev-sfvc784-1-i;输入源为一个3G-SDI相机大概HDMI转3G-SDI盒子,也可以使用SD-SDI大概HD-SDI相机,因为本设计是三种SDI视频自适应的,SDI输入分辨率为1920x1080@60Hz;同轴的SDI视频通过同轴线连接到GS2971转接板,GS2971解码芯片将同轴串行的SDI视频解码为并行的BT1120格式视频,至此,SDI视频解码操作已经完成,可以举行常规的图像处理惩罚操作了;然后使用纯verilog实现的BT1120转RGB模块实现视频格式转换后输出RGB888视频;然后SDI视频输入视频送入视频组包模块,将视频的每一行打上包头包尾标记以包的形式输出,以便吸收方举行有效识别;让后调用Xilinx官方的UltraScale GTH IP核实现视频8b/10b编码和数据串化,将并行数据串化为高速串行差分信号,线速率设置为5Gbps,编码后的视频通过板载的SFP光口的光纤输出;然后用板载的SFP光口的光纤吸收视频,然后送入Xilinx官方的UltraScale GTH IP核实现视频8b/10b解码和数据解串,将差分高速串行信号解为并行数据;然后数据送入数据对齐模块,实现错位数据对齐;然后数据送入视频解包模块,实现每一行的视频包头包尾拆解,并天生对应的场同步信号和数据有效信号输出;然后使用本博主常用的FDMA图像缓存架构对收罗视频做图像3帧缓存,缓存介质为PS端DDR4;然后Native视频时序控制FDMA从DDR4中读取视频并同步输出RGB888视频流;然后经过ADV7511芯片输出HDMI差分视频,输出分辨率为1920x1080@60Hz;由此形成Sensor+高速接口+光编码+HDMI的高端架构;该工程适用于SFP光口的视频收罗卡(光端机)应用;
本博客详细描述了FPGA基于Aurora 8b/10b编解码架构实现UltraScaleGTH光口视频传输的设计方案,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做学习提升,可应用于医疗、军工等行业的高速接口或图像处理惩罚范畴;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐烦看到最后;
免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网等等),若大佬们觉得有所冒犯,请私信批评教育;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律题目,与本博客及博主无关,请谨慎使用。。。
2、相干方案保举

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

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

我的主页有FPGA GT 高速接口专栏,该专栏有 GTP 、 GTX 、 GTH 、 GTY 等GT 资源的视频传输例程和PCIE传输例程,此中 GTP基于A7系列FPGA开发板搭建,GTX基于K7大概ZYNQ系列FPGA开发板搭建,GTH基于KU大概V7系列FPGA开发板搭建,GTY基于KU+系列FPGA开发板搭建;以下是专栏地点:
点击直接前往
本博已有的 SDI 编解码方案

我的博客主页开设有SDI视频专栏,里面满是FPGA编解码SDI的工程源码及博客先容;既有基于GS2971/GS2972的SDI编解码,也有基于GTP/GTX资源的SDI编解码;既有HD-SDI、3G-SDI,也有6G-SDI、12G-SDI等;专栏地点链接如下:
点击直接前往
3、工程详细设计方案

工程设计原理框图

工程设计原理框图如下:

SDI 输入设备

SDI 输入设备可以是SDI相机,代码兼容HD/SD/3G-SDI三种模式;SDI相机相对比较贵,预算有限的朋侪可以思量用HDMI转SDI盒子模拟SDI相机,这种盒子某宝一百块左右;当使用HDMI转SDI盒子时,输入源可以用笔记本电脑,即用笔记本电脑通过HDMI线连接到HDMI转SDI盒子的HDMI输入接口,再用SDI线连接HDMI转SDI盒子的SDI输出接口到FPGA开发板,如下:

GS2971芯片

本设计接纳GS2971芯片解码SDI,GS2971不需要软件配置,硬件电阻上下拉即可完成配置,本设计配置为输出BT1120格式视频,当然,你在设计电路时也可以配置为输出CEA861格式视频;GS2971硬件架构如下,提供PDF格式原理图:

BT1120转RGB

BT1120转RGB模块的作用是将SMPTE SD/HD/3G SDI IP核解码输出的BT1120视频转换为RGB888视频,它由BT1120转CEA861模块、YUV422转YUV444模块、YUV444转RGB888三个模块组成,该方案参考了Xilinx官方的设计;BT1120转RGB模块代码架构如下:

BT1120转RGB模块顶层接口如下:

视频数据组包

由于视频需要在UltraScale GTH 中通过aurora 8b/10b协议收发,以是数据必须举行组包,以适应aurora 8b/10b协议尺度;视频数据组包模块代码位置如下:

起首,我们将16bit的视频存入FIFO中,存满一行时就从FIFO读出送入UltraScale GTH发送;在此之前,需要对一帧视频举行编号,也叫作指令,UltraScale GTH组包时根据固定的指令举行数据发送,UltraScale GTH解包时根据固定的指令恢复视频的场同步信号和视频有效信号;当一帧视频的场同步信号上升沿到来时,发送一帧视频开始指令 0,当一帧视频的场同步信号下降沿到来时,发送一帧视频开始指令 1,视频消隐期间发送无效数据 0 和无效数据 1,当视频有效信号到来时将每一行视频举行编号,先发送一行视频开始指令,在发送当前的视频行号,当一行视频发送完成后再发送一行视频结束指令,一帧视频发送完成后,先发送一帧视频结束指令 0,再发送一帧视频结束指令 1;至此,一帧视频则发送完成,这个模块不太好理解,以是我在代码里举行了详细的中文解释,需要留意的是,为了防止中文解释的乱序表现,请用notepad++编辑器打开代码;指令定义如下:

留意!!!指令可以恣意更改,但最低字节必须为bc;
基于UltraScale GTH高速接口的视频传输架构

本设计使用UltraScale GTH高速接口传输视频,使用8b/10b编解码协议,搭建基于UltraScale GTH高速接口的视频传输架构,包括视频数据组包模块、UltraScale GTH IP核配置调用、吸收数据对齐模块、视频数据解包模块等部分,总体代码架构如下:

基于UltraScale GTH高速接口的视频传输架构顶层接口核参数配置如下:

本设计共例化了2路UltraScale GTH,以是2路UltraScale GTH的收发回环方式也做了机动的参数化配置,如果你只需要1路GT,则可删除另一起,如果你想例化更多路GT,则可根据上述设计方法扩展,非常方便;
UltraScale GTH IP 简介

关于UltraScale GTH 先容最详细的肯定是Xilinx官方的《ug576-ultrascale-gth-transceivers》,我们以此来解读:《ug576-ultrascale-gth-transceivers》的PDF文档我已放在了资料包里;我用到的开发板FPGA型号为Kirtex7-UltraScale-xcku060-ffva1156-2-i;带有28路UltraScale GTX资源,此中2路连接到了板载2个SFP光口,每通道的收发速率为 500 Mb/s 到 16.375 Gb/s 之间。GTH 收发器支持不同的串行传输接口或协议,比如8b/10b编解码、PCIE /2.0/3.0 接口、万兆网 XUAI 接口、OC-48、串行 RapidIO 接口、 SATA(Serial ATA) 接口、数字分量串行接口(SDI)等等;
UltraScale GTH 基本结构

UltraScale GTH 基本结构如下:

Xilinx 以 Quad 来对串行高速收发器举行分组,四个串行高速收发器和一个 COMMOM(QPLL)组成一个 Quad,每一个串行高速收发器称为一个 Channel(通道),下图为UltraScale GTH 收发器在Kintex7 UltraScale FPGA 芯片中的示意图:《ug576-ultrascale-gth-transceivers》第19页;
在 Ultrascale/Ultrascale+架构系列的 FPGA 中,GTH 高速收发器通常使用 Quad 来划分,一个 Quad 由四个GTHE3/4_CHANNEL 原语和一个 GTHE3/4_COMMON 原语组成。每个GTHE3/4_COMMON 中包含两个 LC-tank pll(QPLL0 和 QPLL1)。只有在应用程序中使用 QPLL 时,才需要实例化 GTHE3/4_COMMON。每个 GTHE3/4_CHANNEL 由一个 channel PLL(CPLL)、一个 transmitter,和一个 receiver 组成。一个参考时钟可以直接连接到一个 GTHE3/4_CHANNEL 原语,而不需要实例化 GTHE3/4_COMMON;
Ultrascale GTH 收发器的发送端和吸收端功能是相互独立,都是由 Physical Media Attachment(物理前言适配层 PMA)和Physical Coding Sublayer(物理编码子层 PCS)组成。PMA 内部集成了串并转换(PISO)、预加重、吸收平衡、时钟发生器和时钟恢复等;PCS 内部集成了 8b/10b 编解码、弹性缓冲区、通道绑定和时钟修正等,每个 GTHE3/4_CHANNEL源语的逻辑电路见《ug576-ultrascale-gth-transceivers》第20页;
UltraScale GTH 的参考时钟

UltraScale 器件中的 GTH 收发器提供了不同的参考时钟输入选项。参考时钟选择架构支持 QPLL0、QLPLL1 和CPLL。从架构上讲,每个 Quad 包含四个 GTHE3/4_CHANNEL 原语,一个 GTHE3/4_COMMON 原语,两个专用的外部参考时钟引脚对,以及专用的参考时钟路由。如果使用到了高性能 QPLL,则必须实例化 GTHE3/4_COMMON,如下面 GTHE3/4_COMMON 时钟多路复用器结构的详细视图所示,(《ug576-ultrascale-gth-transceivers》第33页)在一个 Quad 中有 6 个参考时钟引脚对,两个本地参考时钟引脚对:GTREFCLK0或GTREFCLK1,两个参考时钟引脚对来自上面的两个Quads:GTSOUTHREFCLK0或 GTSOUTHREFCLK1,两个参考时钟引脚对来自下面的两个 Quads: GTNORTHREFCLK0 或GTNORTHREFCLK1。

UltraScale GTH 发送和吸收处理惩罚流程

起首用户逻辑数据经过 8B/10B 编码后,进入一个发送缓存区(Phase Adjust FIFO),该缓冲区主要是 PMA 子层和 PCS 子层两个时钟域的时钟隔离,解决两者时钟速率匹配和相位差异的题目,最后经过高速 Serdes 举行并串转换(PISO),有须要的话,可以举行预加重(TX Pre-emphasis)、后加重。值得一提的是,如果在 PCB 设计时不慎将 TXP 和 TXN 差分引脚交叉连接,则可以通过极性控制(Polarity)来弥补这个设计错误。吸收端和发送端过程相反,相似点较多,这里就不赘述了,需要留意的是 RX 吸收端的弹性缓冲区,其具偶然钟改正和通道绑定功能。这里的每一个功能点都可以写一篇论文甚至是一本书,以是这里只需要知道个概念即可,在详细的项目中回详细用到,还是那句话:对于初次使用大概想快速使用者而言,更多的精力应该关注IP核的调用和使用。
UltraScale GTH 发送接口

《ug576-ultrascale-gth-transceivers》的第104到179页详细先容了发送处理惩罚流程,此中大部分内容对于用户而言可以不去深究,因为手册讲的基本都是他自己的设计头脑,留给用户可操作的接口并不多,基于此思绪,我们重点讲讲UltraScale GTH例化时留给用户的发送部分需要用到的接口;用户只需要关心发送接口的时钟和数据即可,以例化2路UltraScale GTH 为例,经本博主优化,用户只需要关心如下UltraScale GTH 发送接口即可快速使用UltraScale GTH ;

UltraScale GTH 吸收接口

《ug576-ultrascale-gth-transceivers》的第181到314页详细先容了发送处理惩罚流程,此中大部分内容对于用户而言可以不去深究,因为手册讲的基本都是他自己的设计头脑,留给用户可操作的接口并不多,基于此思绪,我们重点讲讲UltraScale GTH 例化时留给用户的发送部分需要用到的接口;用户只需要关心吸收接口的时钟和数据即可,以例化2路UltraScale GTH 为例,经本博主优化,用户只需要关心如下UltraScale GTH 吸收接口即可快速使用UltraScale GTH ;

UltraScale GTH IP核调用和使用

UltraScale GTH IP核配置调用在工程种位置如下:

UltraScale GTH IP核调用和使用很简单,通过vivado的UI界面即可完成,如下:

UltraScale GTH基本配置如下:板载差分晶振125M,线速率配置为5G,协议范例被指为aurora 8b/10b;如下:

相较于Xilinx 7系列FPGA的GT高速接口,UltraScale系列FPGA在物理束缚页也有较大改进,已不需要用户再去检察官方数据手册找到原理图所在的FPGA内部位置,而是直接给出了详细PIN脚,只要在这里选对了位置,GT高速接口的时钟和数据引脚在XDC中已不再需要束缚,如下:

此外,有别于Xilinx 7系列FPGA的GT高速接口;UltraScale 系列FPGA的GT高速接口在控制引脚方面更加细节,用户可以选择详细哪些控制引脚被使用,当然,这需要开发职员对SERDES技术有较高的认知,在此基础上,可使我们的设计更加便捷,对于8B/10编解码协议而言,开发者大概只需关注并使用极性反转控制,如果需要动态变速,大概还需要使用DRP接口,其余功能性接口实在不必太过关注;如下:

吸收数据对齐模块

由于GT资源的aurora 8b/10b数据收发自然有着数据错位的情况,以是需要对接受到的解码数据举行数据对齐处理惩罚,数据对齐模块代码位置如下:

我定义的 K 码控制字符格式为:XX_XX_XX_BC,以是用一个rx_ctrl 指示数据是否为 K 码 的 COM 符号;
rx_ctrl = 4’b0000 表现 4 字节的数据没有 COM 码;
rx_ctrl = 4’b0001 表现 4 字节的数据中[ 7: 0] 为 COM 码;
rx_ctrl = 4’b0010 表现 4 字节的数据中[15: 8] 为 COM 码;
rx_ctrl = 4’b0100 表现 4 字节的数据中[23:16] 为 COM 码;
rx_ctrl = 4’b1000 表现 4 字节的数据中[31:24] 为 COM 码;
基于此,当吸收到有K码时就对数据举行对齐处理惩罚,也就是将数据打一拍,和新进来的数据举行错位组合,这是FPGA的基础操作,这里不再赘述;数据对齐模块顶层接口如下:

视频数据解包

数据解包是数据组包的逆过程,代码位置如下:

UltraScale GTH解包时根据固定的指令恢复视频的场同步信号和视频有效信号;这些信号是作为后面图像缓存的重要信号;由于数据解包是数据组包的逆过程,以是这里不再过多赘述,视频数据解包模块顶层接口如下:

FDMA图像缓存

FDMA图像缓存架构实现的功能是将输入视频缓存到板载DDR中再读出送后续模块,目的是实现视频同步输出,实现输入视频到输出视频的跨时钟域题目,更好的出现表现效果;由于调用了Xilinx官方的MIG作为DDR控制器,以是FDMA图像缓存架构就是实现用户数据到MIG的桥接作用;架构如下:

FDMA图像缓存架构由FDMA控制器+FDMA组成;FDMA实际上就是一个AXI4-FULL总线主设备,与MIG对接,MIG配置为AXI4-FULL接口;FDMA控制器实际上就是一个视频读写逻辑,以写视频为例,假设一帧图像的大小为M×N,此中M代表图像宽度,N代表图像高度;FDMA控制器每次写入一行视频数据,即每次向DDR中写入M个像素,写N次即可完成1帧图像的缓存,读视频与之一样;同时调用两个FIFO实现输入输出视频的跨时钟域处理惩罚,使得用户可以AXI4内部代码,以简单地像使用FIFO那样操作AXI总线,从而到达读写DDR的目的,进而实现视频缓存;本设计图像缓存方式为3帧缓存;图像缓存模块代码架构如下:

基于FDMA的图像缓存架构在Block Design设计中如下:

HDMI视频输出

缓存图像从DDR4读出后经过Native时序天生模块输出尺度的VGA时序视频,然后经过纯verilog表现的RGB转HDMI模块输出HDMI差分视频;最后送表现器表现即可;需要留意的是,UltraScale系列FPGA不支持oserdese2原语,以是只能用oserdese3原语实现10 bit串化,基于此,本博主提供的RGB转HDMI模块可支持7系列、ULTRASCALE系列FPGA、ULTRASCALE_PLUS系 FPGA,顶层代码如下:

代码例化如下:

此外,有的FPGA开发板接纳专用芯片实现RGB转HDMI功能,这种情况下只需配置芯片即可,本设计中有的工程就是使用了ADV7511芯片,其i2c配置代码如下:

工程源码架构

提供2套工程源码,以工程源码1为例,工程Block Design设计如下:

提供2套工程源码,以工程源码1为例,综合后的工程源码架构如下:

工程源码2使用了Zynq;PL端时钟由Zynq软核提供,以是需要运行运行SDK以启动Zynq,以是需要在SDK里运行一个简单的hello world程序,SDK软件代码架构如下:

4、vivado工程源码1详解–>KU060版本

开发板FPGA型号:Xilinx–Kintex UltraScale–xcku060-ffva1156-2-i;
FPGA开发环境:Vivado2019.1;
输入:3G-SDI相机或HDMI转SDI盒子,分辨率1920x1080@60Hz;
输出:HDMI,RTL逻辑编码方案,分辨率1920x1080@60Hz;
SDI视频解码方案:GS2971芯片方案;
回环光口范例:SFP光口;
高速接口范例:UltraScale GTH,线速率5Gbps;
高速接口编解码协议:8b/10b编解码;
图像缓存方案:FDMA图像缓存+DDR4颗粒+3帧缓存;
实现功能:FPGA实现UltraScale GTH光口视频传输;
工程作用:此工程目的是让读者把握FPGA实现UltraScale GTH光口视频传输的设计能力,以便能够移植和设计自己的项目;
工程Block Design和工程代码架构请参考第3章节的《工程源码架构》末节内容;
工程的资源消耗和功耗如下:

5、vivado工程源码2详解–>Zynq UltraScale ZU4EV版本

开发板FPGA型号:Xilinx–>Zynq UltraScale–xczu4ev-sfvc784-1-i;
FPGA开发环境:Vivado2019.1;
输入:3G-SDI相机或HDMI转SDI盒子,分辨率1920x1080@60Hz;
输出:HDMI,ADV7511编码方案,分辨率1920x1080@60Hz;
SDI视频解码方案:GS2971芯片方案;
回环光口范例:SFP光口;
高速接口范例:UltraScale GTH,线速率5Gbps;
高速接口编解码协议:8b/10b编解码;
图像缓存方案:FDMA图像缓存+PS端DDR4颗粒+3帧缓存;
实现功能:FPGA实现UltraScale GTH光口视频传输;
工程作用:此工程目的是让读者把握FPGA实现UltraScale GTH光口视频传输的设计能力,以便能够移植和设计自己的项目;
工程Block Design和工程代码架构请参考第3章节的《工程源码架构》末节内容;
工程的资源消耗和功耗如下:

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内部天生的彩条;
FPGA开发板,没有开发板可以找本博提供;
SFP光模块和光纤;
我的开发板了连接如下:

UltraScale GTH光口SDI视频传输效果演示

UltraScale GTH光口SDI视频传输效果演示如下:

     SDI-GTP
  
8、工程代码的获取

代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,大概文章末尾的V名片。
网盘资料如下:

此外,有许多朋侪给本博主提了许多意见和发起,盼望能丰富服务内容和选项,因为不同朋侪的需求不一样,以是本博主还提供以下服务:


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

熊熊出没

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表