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

FPGA使用GTX实现SFP光纤收发SDI视频 全网首创略显高端 提供工程源码和技术支持

目录

  • 1、前言
  • 2、设计思路和框架
  • 3、vivado工程详解
  • 4、上板调试验证并演示
  • 5、福利:工程代码的获取

1、前言

FPGA实现SDI视频编解码目前有两种方案:
一是使用专用编解码芯片,比如典型的接收器GS2971,发送器GS2972,优点是简单,比如GS2971接收器直接将SDI解码为并行的YCRCB,GS2972发送器直接将并行的YCRCB编码为SDI视频,缺点是成本较高,可以百度一下GS2971和GS2972的价格;
另一种方案是使用FPGA实现编解码,利用FPGA的GTP/GTX资源实现解串,优点是合理利用了FPGA资源,GTP/GTX资源不用白不用,缺点是操作难度大一些,对FPGA水平要求较高。
本设计直接另辟蹊径,创新性地使用GTX的SFP接口,使用光纤传输SDI视频实现收发,全网首创,具有重要意义。。。以上内容纯属娱乐。。。
本文详细描述了FPGA使用GTX实现SFP光纤收发SDI视频的实现设计方案,工程代码编译通过后上板调试验证,文章末尾有演示视频,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字成像和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;

2、设计思路和框架

设计思路和框架如下:
在这里插入图片描述
视频输入:
FPGA内部生成3G-SDI彩条视频;
SDI视频编码:
使用Xilinx SMPTE-SDI IP实现SDI视频编码;
GTX串化:
直接使用Xilinx源语实现SDI视频数据并串转换;
SFP光口环回:
使用SFP光纤线缆对接两个SFP光实现环回连接;
GTX解串:
直接使用Xilinx源语实现SDI视频数据串并转换;
SDI视频解码:
使用Xilinx SMPTE-SDI IP实现SDI视频解码;
VGA时序恢复:
此模块的作用就是解码恢复出hs、vs以及de信号,即恢复正常的VGA视频时序;
颜色转换:
YUV444转RGB888,很简单,几条公式的事儿,不多讲;
HDMI发送驱动:
纯verilog代码实现,可以参考我之前写的文章点击查看:HDMI
这里的设计思路和原理讲得很简单,是因为我之前写过一篇文章,详细讲解了SDI的编解码,可以参考我之前写的文章点击查看:SDI解码
点击查看:SDI发送

3、vivado工程详解

开发板:Xilinx Kintex7开发板;
开发环境:Vivado2019.1;
输入:FPGA内部生成彩条,分辨率1080p@30帧;
输出:HDMI,分辨率1080p@30帧;
工程代码架构如下:
在这里插入图片描述
SDI编码部分代码如下:
在这里插入图片描述
HDMI输出驱动代码如下:
在这里插入图片描述
GTX代码如下:
在这里插入图片描述
资源消耗和功耗预估如下:
在这里插入图片描述

4、上板调试验证并演示

板子连接如下:
在这里插入图片描述
演示视频如下:

FPGA使用GTX实现SFP光纤收发SDI视频

5、福利:工程代码的获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
在这里插入图片描述

相关文章:

FPGA使用GTX实现SFP光纤收发SDI视频 全网首创略显高端 提供工程源码和技术支持

目录1、前言2、设计思路和框架3、vivado工程详解4、上板调试验证并演示5、福利:工程代码的获取1、前言 FPGA实现SDI视频编解码目前有两种方案: 一是使用专用编解码芯片,比如典型的接收器GS2971,发送器GS2972,优点是简…...

Django 之 CharField 和 TextField

CharField test_char models.CharField(max_length288)设置长度为 288 并不会报错,这取决于你的数据库后端,mysql char 类型长度为 255,django 里面设置超过 255 并不会有提示,个人感觉有点误导人,起码给个警告也行&…...

recyclerview 使用的坑

1.有不同的布局 12_GridLayoutManager setSpanSizeLookup()方法 - 简书 setSpanSizeLookup 这个方法要会 spanCount和 getSpanSize spanCount/getSpanSize() 才是这一项所占的宽度 2.均分 item布局要设置宽度为match_paraent 3.设置完了。发现高度不一样,…...

DBeaver连接mysql、oracle数据库

1. DBeaver连接mysql 1) 下载DBeaver https://dbeaver.io/download/,并安装 2) 新建数据库连接 3)选择mysql驱动程序 4)填写连接设置内容 5)点击 “编辑驱动设置”,并填写相关信息 6)选择本地…...

Kivy GridLayout 布局

Kivy GridLayout 是一种用于构建用户界面的布局类型,可以帮助我们快速创建具有固定列和行的网格布局。GridLayout 布局是可以适用于任意数量的行和列的布局,然后在这些行和列中放置 UI 元素。 Kivy 的 GridLayout 使用起来类似于 HTML 的表格&#xff0c…...

Spark高手之路2—Spark安装配置

文章目录Spark 运行环境一、Local 模式1. 下载压缩包2.上传到服务器3. 解压4. 启动 Local 环境5. 命令行工具6. 退出本地模式7. 提交应用二、Standalone 模式1. 解压2. 修改配置文件1)进入解压缩后路径的 conf 目录,复制 workers.template 文件为 worker…...

Java中对象的比较

目录元素的比较基本类型的比较引用类型的比较1. 覆写基类的equals2. 基于Comparble接口类的比较3. 基于比较器比较三种方法对比元素的比较 基本类型的比较 这里就拿整型, 字符型, 布尔型 为例: public static void main(String[] args) {int a 10;int b 20;System.out.pri…...

Python编程训练题2

1.11 有 n 盏灯&#xff0c;编号 1&#xff5e;n&#xff08;0<n<100&#xff09;。第 1 个人把所有灯打开&#xff0c;第 2 个人按下所有编号为 2 的倍数的开关&#xff08;这些灯将被关掉&#xff09;&#xff0c;第 3 个人按下所有编号为 3 的倍数的开关&#xff08;其…...

Shifu基础功能:设备管理

设备管理 deviceshifu_configmap.yaml中的telemetries表示自动测量记录传导。Shifu通过telemetries中设置的方法&#xff0c;以指定时间向设备周期性地发送请求&#xff0c;来判断设备的连接情况。如果设备出现故障或者连接出现问题&#xff0c;edgeDevice的状态将发生改变&am…...

交互:可以执行命令行的框架才是好框架

上一节课&#xff0c;我们开始把框架向工业级迭代&#xff0c;重新规划了目录&#xff0c;这一节课将对框架做更大的改动&#xff0c;让框架支持命令行工具。 第三方命令行工具库 cobra obra 不仅仅能让我们快速构建一个命令行&#xff0c;它更大的优势是能更快地组织起有许多…...

eunomia-bpf 和 wasm-bpf 项目的 3 月进展

eunomia-bpf 项目是一个开源项目&#xff0c;旨在提供一组工具&#xff0c;用于在 Linux 内核中更方便地编写和运行 eBPF 程序。在过去一个月中&#xff0c;该项目取得了一些新的进展&#xff0c;以下是这些进展的概述。 首先&#xff0c;eunomia-bpf 动态加载库进行了一些重要…...

Spring框架核心功能手写实现

文章目录概要Spring启动以及扫描流程实现基础环境搭建扫描逻辑实现bean创建的简单实现依赖注入实现BeanNameAware回调实现初始化机制模拟实现BeanPostProcessor模拟实现AOP模拟实现概要 手写Spring启动以及扫描流程手写getBean流程手写Bean生命周期流程手写依赖注入流程手写Be…...

k8s-镜像构建Flink集群Native session

一.Flink安装包下载 wget https://dlcdn.apache.org/flink/flink-1.14.6/flink-1.14.6-bin-scala_2.12.tgz 二.构建基础镜像推送私服 docker pull apache/flink:1.14.6-scala_2.12 docker tag apache/flink:1.14.6-scala_2.12 172.25.152.2:30002/dmp/flink:...

在 k8S 中搭建 SonarQube 7.4.9 版本(使用 PostgreSQL 数据库)

本文搭建的 SonarQube 版本是 7.4.9-community&#xff0c;由于在官方文档中声明 7.9 版本之后就不再支持使用 MySQL 数据库。所以此次搭建使用的数据库是 PostgreSQL 11.4 版本。 一、部署 PostgreSQL 服务 1. 创建命名空间 将 PostgreSQL 和 SonarQube 放在同一个命名空间…...

从getBean()分析BeanFactory和ApplicationContext

本文说了哪些问题: BeanFactory 是啥ApplicationContext 是啥什么时候去实例化一个 bean, BeanFactory 和 ApplicationContext 实例化 bean 都是在什么时候 一个 Bean 什么时候被初始化 任何一个 Bean, 都是在 getBean () 的时候被初始化的.BeanFactory 需要字节手动调用 getb…...

详解Redis的主从同步原理

前言 Redis为了保证服务高可用&#xff0c;其中一种实现就是主从模式&#xff0c;即一个Redis服务端作为主节点&#xff0c;若干个Redis服务端作为主节点的从节点&#xff0c;从而实现即使某个服务端不可用时&#xff0c;也不会影响Redis服务的正常使用。本篇文章将对主从模式…...

前端项目上线后,浏览器缓存未刷新问题

文章目录问题背景一、解决办法二、实现原理关于缓存强缓存协商缓存刷新页面对浏览器的影响总结问题背景 前端页面开发测试完&#xff0c;要进行上线&#xff0c;某些页面上传更新到服务器之后&#xff0c;浏览器并没有更新&#xff0c;渲染的还是老页面。这是因为浏览器读了缓存…...

Vulnhub系列:Raven 1

该篇为Vulnhub系列靶机渗透&#xff0c;本次靶机存在4个flag。下面开始我们今天的渗透之旅。Raven靶机有很多种思路&#xff0c;我将对其进行一一整理。首先进行信息收集&#xff0c;利用arp-scan和nmap&#xff0c;进行靶机的ip及端口扫描发现了22、80、111端口。下面访问80端…...

MybatisPlus------多数据源环境(十一)

MybatisPlus------多数据源环境&#xff08;十一&#xff09; 生产环境中常常会存在多个数据源。 比如读写分离、一主多从、混合模式等等。 首先再pom文件中需要引入依赖&#xff1a; 多数据源所需要使用到的依赖 <!-- 多数据源所需要使用到的依赖--><depend…...

Tomcat+IDEA+Servlet能显示页面但提交form表单出现404问题

问题&#xff1a; 当我们使用tomcat启动&#xff0c;然后输入对应的url路径时候&#xff0c;能出现该html的页面&#xff0c;但提交表单后&#xff0c;却出现了404的问题&#xff0c;这时候我就很疑惑了....然后开始慢慢分析。 思路&#xff1a; 首先我们得知道404状态码是什…...

vLLM-v0.17.1部署教程:vLLM+NGINX实现SSL/TLS加密API服务

vLLM-v0.17.1部署教程&#xff1a;vLLMNGINX实现SSL/TLS加密API服务 1. vLLM框架简介 vLLM是一个专注于大语言模型(LLM)推理和服务的高性能开源库。它最初由加州大学伯克利分校的天空计算实验室开发&#xff0c;现已发展成为一个由学术界和工业界共同维护的社区项目。 这个框…...

避开版本坑!用DINOv2和MMSegmentation在PASCAL VOC 2012上跑通语义分割(附完整环境配置)

避开版本坑&#xff01;用DINOv2和MMSegmentation在PASCAL VOC 2012上跑通语义分割&#xff08;附完整环境配置&#xff09; 语义分割作为计算机视觉领域的核心任务之一&#xff0c;其技术演进始终与深度学习框架的生态紧密相连。当Meta开源的DINOv2遇上OpenMMLab的MMSegmentat…...

别再死磕公式了!用Ansoft Maxwell 2D给永磁无刷电机做仿真,保姆级操作流程(附避坑点)

永磁无刷电机仿真实战&#xff1a;从零掌握Ansoft Maxwell 2D的高效工作流 第一次打开Ansoft Maxwell 2D时&#xff0c;满屏的专业术语和复杂的参数设置界面确实容易让人望而生畏。作为从业十年的电机设计工程师&#xff0c;我完全理解这种面对专业仿真软件时的无力感——理论书…...

3步实现文献影响力自动化追踪:Zotero学术插件使用指南

3步实现文献影响力自动化追踪&#xff1a;Zotero学术插件使用指南 【免费下载链接】zotero-google-scholar-citation-count Zotero plugin for fetching number of citations from Google Scholar. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-google-scholar-citat…...

RK3568 Android12长按电源键无反应?三步搞定关机菜单恢复

RK3568 Android12电源键功能失效排查与深度修复指南 在RK3568平台上进行Android12系统定制时&#xff0c;电源键功能异常是开发者常遇到的典型问题。不同于简单的功能缺失&#xff0c;这背后涉及系统级行为配置、手势交互逻辑和硬件抽象层的多层级适配。本文将带您从现象溯源到…...

摆脱论文困扰!!2026最新AI论文写作软件测评与推荐

2026年真正好用的AI论文写作软件&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 …...

手把手教你理解永磁同步电机的Clark与Park变换(附MATLAB仿真代码)

手把手教你理解永磁同步电机的Clark与Park变换&#xff08;附MATLAB仿真代码&#xff09; 在工业自动化与电动汽车驱动领域&#xff0c;永磁同步电机&#xff08;PMSM&#xff09;凭借其高功率密度和卓越的动态性能&#xff0c;已成为现代运动控制系统的核心部件。然而&#xf…...

开发环境神器:OpenClaw+GLM-4.7-Flash自动补全错误日志解决方案

开发环境神器&#xff1a;OpenClawGLM-4.7-Flash自动补全错误日志解决方案 1. 为什么需要日志自动诊断系统 作为一个长期与开发环境打交道的程序员&#xff0c;我每天要面对数百行日志输出。最头疼的场景莫过于&#xff1a;当你在IDE中调试时&#xff0c;突然蹦出一段晦涩的错…...

OpenClaw关键词挖掘Agent配置(附SOP脚本,可直接复制使用)

OpenClaw关键词挖掘Agent全栈配置指南&#xff08;附可执行SOP脚本&#xff09;一、系统架构解析OpenClaw关键词挖掘系统采用分布式架构&#xff0c;核心由以下模块构成&#xff1a;数据采集层实时爬虫引擎&#xff1a;支持动态IP代理&#xff0c;突破反爬限制API集成模块&…...

Chatbot、Composer与Agent架构深度解析:如何选择最优对话系统方案

Chatbot、Composer与Agent架构深度解析&#xff1a;如何选择最优对话系统方案 想象一下&#xff0c;你正在为一个电商平台设计智能客服。老板要求&#xff1a;既要能秒回“我的订单到哪了”这种简单问题&#xff0c;又要能处理“帮我推荐几款适合周末露营的装备&#xff0c;预…...