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

GT高速口相关知识

一.1.0:FPGA高速口不需要配置电平标准但是电平标准是CML1.1不通系列fpga对高速口的叫法异同——统称GT1.2外部结构如下两个ibufds 表示可以同时跑两种接口(pcie,万兆网)4对rx/tx对1个时钟模块包含4个cpll1个Qpll区别GTP是另外一种结构如下图这个是GTP的结构如下——A一对 tx、rx、加上 cpll 称之为一条通道称为channelB一个 bank有 4 对 tx 和 rx、两对差分时钟称为quad或者 bankC:CPLL支持的最高线速度为6.6Gb/sQPLL支持最高12.5Gb/s左右,QPLL的时钟更加精确1.3内部结构如下A:PCS是数字处理部分PMA是模拟处理部分 。1.4:如下图PCB如果接反了可以用polarity 使P N颠倒过来。二时钟架构2.0在vivado约束界面都不显示 GT参考时钟的电平标准小梅哥技术说支持LVDS也兼容LVPECL CML。2.1如下图输入给GT的参考时钟一共可选择7路A: 本Quad的2路参考时钟.B: 相邻2个Quad的共4路参考时钟.C:全局时钟网络如CMT提供的1路备选时钟源.——(由于其经过了更多内部布线抖动性能不如前6路因此优先级最低。)2.2但是一个Quad的参考时钟源不能驱动超过3个Quad上的收发器(只能驱动当前Quad和南北方相邻 两个Quad )三我们以K7-325T为例来查找具体是哪个chanel——————bank117的channel 0/1 对应x0y11 和 x0y10位置。四4.1:高速口链路信号质量排查工具,一般在跑比如8B/10B之前都需要先确认眼图正常———ibert排查问题时首先烧录示列工程看眼图确定高速口的链路信号质量。4.2:ibert配置界面Silicon Version选择器件属性的只有一种可选默认即可。number of protocols选择协议的数量根据需要选择LineRate速率根据工程选择DataWidth数据宽度根据工程选择Refclk参考钟根据工程选择TXUSRCLK sources用户时钟源选择由一个Quad中的四个通道共享选择一个通道用作用户时钟来源。将GTX输入的125MHz的时钟同时作为IBERT内部逻辑的工作时钟这样就可以不使用额外的外部时钟。4.3打开示例工程4.4使能SFP如下4.5生成bit烧录进去4.6选择链路4.7按需选择5种环回方式中的一种其实还是通过GUI界面去设置LOOPBACK信号的000:ibert设置none 模式主要验证单个GT口的外部线缆是否连接Ok------001/010:主要验证不接外部线缆的条件下的单个GT口的内部信号-------外部如下内部如下100/110:主要为了验证两个GT口的内部和外部线缆的Rx和TX全部链路的信号------GT1的TX到GT2的RX设置000,GT2的TX到GT1的RX链路设置100或者110外部内部4.8偶尔如果no-link 直接点TX_Reset/RX_Reset,看是否为没复位导致的。4.9:本次测试默认是用的7bit的伪随机序列也可以更改其他数据类型。5.0errors不是0吗为啥ber 不为0呢?————BER误码个数/发送总比特数误码个数​。Errors是错误比特数是整数计数器显示为 0 就是真的没抓到错误。BER误码率 1Errors/总bit数所以BER不会为零eg并口125MHZ和串口2.5GHZ1000~1500秒没有错误才算到1e-12的误码5.1:可用如下组合进行发送高速数据一验证DK组合从00BC到FFBC。二空闲发00BC然后全D组合从0000到FFFF。三空闲发00BC然后全D组合在0000和FFFF之间切换。五GT常用技术协议18B/10B的作用A:8b/10b编码通过将8b数据编码为10b数据避免连续出现0或者1并拥有足够的位转换密度来保证时钟恢复。这种编码方式使数据传输不再需要分布时钟避免并行传输的一些缺点可以实现更高数据速率的串行传输B:可参考如下博客连接SERDES 之8B/10B-CSDN博客264b/66b的作用64b/66b编码技术是IEEE 802.3 工作组为10G 以太网提出的目的是减少编码开销。64b/66b 编码将 64bit 数据或控制信息编码成 66bit 块传输66bit 块的前两位表示同步头主要由于接收端的数据对齐和接收数据位流的同步。同步头有“01”和“10”两种“01“表示后面的 64bit 都是数据“10”表示后面的 64bit 是数据和控制信息的混合3加扰和解扰的作用避免传输信号具有周期性否则在多路传输的通信系统中容易造成串扰。4:4.1D码就是用户的发送数据。4.2K码K码是8B/10B编码体系中的控制字符集合Comma是嵌入K码里面的。4.3帧对齐Word Alignment4.31:当发送端的字符指示如txcharisk0001与接收端检测到的指示如rxcharisk0100不匹配时就说明多字节帧的字节顺序发生了偏移需要用户通过逻辑设计来调整对齐确保整个数据帧的正确拼接。——bc码的多少和数据是否对齐没有关系数据不对齐不能完全避免。4.32:0001的bc码偏移位(比如偏移到0100)是随机的吗还是有规律的呢?是不是都是会偏移成0100有没有可能偏移成0010——随机最好把4种情况的对其都做一下。6为了增加传输带宽我可以在两个bc 码之间尽可能多的增加正式数据D码的传输吗——可以但这个需要调试。不知道2个板子上的晶振误差是多少参考时钟的晶振偏差越大bc插入的越多。六Xilinx 的GT配置1图1和图2的区别是图1更加傻瓜不灵活图二直接在GT上面加协议比较推荐灵活。2参考时钟就是实际接入gt里面的参考时钟频率。2.1:上图这个就是如下图GT的位置33.a先确定 FPGA逻辑的接口位宽需求如下32bit————FPGA Interface WItdth3.b选择使能arrora 8B/103.c通过查阅数据手册————得出TX_DATA_WIDTH10*440和internal data width20为啥数据位宽减半是因为时钟是2倍3.d配置如下3.a先确定 FPGA逻辑的接口位宽需求如下16bit————FPGA Interface WItdth 16bit3.b选择使能arrora 8B/103.c通过查阅数据手册————得出TX_DATA_WIDTH10*220和internal data width20为啥数据位是一倍关系是因为时钟是1倍3.d配置如下3.1RX同理TXUSRCLK2频率 线速率/ TX_DATA_WIDTHTXUSRCLK和TXUSRCLK2 的时钟倍数关系如下图所示RX同理4.1:DRP时钟绝不能用gt的参考时钟实测会报错的。如下——应该gt的参考时钟只能局限使用数据不管是从时钟TSUSRCLK到XCLK还是从时钟XCLK到RSUSRCLK 都经过了时钟域的转换所以TX端和RX端都需要一个缓存区缓存下,因此把ip核中的Enable TX Buffer 和Enable RX Buffer 这 2 个选项给勾上.4.2推荐逗号码用K28.5Two byte boundaries 和 Any byte boundaries 在仿真上结果是一样的4.3:最终产生的示列工程如下结构框图(如果选取另一种所有结构都会包含在IP里面用户就不太方便修改)4.4实际作用可以这样用测试工程项目1:项目2:(空白方框里面放置图二的IP一般千兆网用网口万兆网就直接用光口了。4.5:有时候在XDC里面找不到约束信息.有可能就在IP核里面的还有可能约束的是坐标信息4.6:发射第一张图接收端第二张图BC会出现移位的情况。-----这是正常的现象。五基于GT的AC电容1gt时钟口一般晶振输出的差分时钟的P/N端会分别串接两个电容接GT:AC电容主要作用是去除晶振的直流和其他干扰分量变成交流信号后GT自己会用一个直流电压分量把晶体信号抬高进入电平识别范围。2gt数据口看人家原理图是加了AC电容的——1但自己实测在光纤通信和8b_10b和2711seders芯片外回环不加电容功能也正常2GT和2711seders芯片的rx和tx确实都会自己提供直流电压分量。六带宽计算1txclk125mhz,16bit数据8b/10b编码————线束率125M*16*(10/8)2.5Gbit/s

相关文章:

GT高速口相关知识

一. 1.0:FPGA高速口不需要配置电平标准,但是电平标准是CML 1.1不通系列fpga对高速口的叫法异同——统称GT 1.2外部结构如下:两个ibufds 表示可以同时跑两种接口(pcie,万兆网) 4对rx/tx对1个时钟模块:包含4个cpll1个Qpll(区别GTP…...

工作中的硬核记录

此文档用以记录我在工作中实用的命令,工具与相关知识 # 虚拟机客户机隔离选项开启,从而实现拖放与复制: sudo apt-get update sudo apt-get install open-vm-tools-desktop# 建立管道: # https://jupyter.ihep.ac.cn/YzPmEyvDRSGp…...

死锁(Deadlock)

什么是死锁 死锁是多个进程或线程因竞争资源而陷入相互等待的状态,若无外力干预,所有进程或线程将无法继续执行。例如各进程互相等待对方手里的资源,导致各进程都阻塞,无法向前推进的现象就是死锁。 什么时候产生死锁 互斥条件:在一段时间内某资源只由一个进程或线程占…...

5分钟搞定RT-Thread串口DMA配置:GD32F450硬件加速实战教程

GD32F450串口DMA配置实战:RT-Thread环境下的高效数据传输方案 在嵌入式系统开发中,串口通信是最基础也最常用的外设接口之一。传统的中断方式处理串口数据会占用大量CPU资源,而DMA(直接内存访问)技术则能显著提升系统效…...

get_iplayer代码架构分析:Perl模块化设计与核心功能实现原理

get_iplayer代码架构分析:Perl模块化设计与核心功能实现原理 【免费下载链接】get_iplayer A utility for downloading TV and radio programmes from BBC iPlayer and BBC Sounds 项目地址: https://gitcode.com/gh_mirrors/ge/get_iplayer get_iplayer作为…...

开发者退休计划:软件测试从业者的被动收入构建路径

一、软件测试行业的职业周期挑战当自动化工具与AI测试技术席卷行业,35岁以上的资深测试工程师面临三重结构性压力:技能迭代断层GitHub数据显示,67%团队已采用AI辅助测试脚本生成,传统手工测试需求下降23%。缺乏自动化框架设计&…...

VJEPA2预训练完全指南:利用百万小时视频数据构建世界模型

VJEPA2预训练完全指南:利用百万小时视频数据构建世界模型 【免费下载链接】vjepa2 PyTorch code and models for VJEPA2 self-supervised learning from video. 项目地址: https://gitcode.com/gh_mirrors/vj/vjepa2 VJEPA2是基于PyTorch的自监督视频学习框架…...

AI合规专家:法规GDPR 2.0下的软件测试新使命

一、变革:GDPR 2.0对测试领域的深度重构随着欧盟《通用数据保护条例》升级版(GDPR 2.0)的落地,软件测试从业者正面临角色本质的跃迁。新规在三大维度强化技术约束:算法可解释性强制化:要求AI决策逻辑全程可…...

如何为BilibiliSponsorBlock提交新的片段标注:完整用户指南

如何为BilibiliSponsorBlock提交新的片段标注:完整用户指南 【免费下载链接】BilibiliSponsorBlock 一款跳过小电视视频中恰饭片段的浏览器插件,移植自 SponsorBlock。A browser extension to skip sponsored segments in videos, ported from the Spons…...

10个实用技巧:让你的Gin开发环境更快更稳定

10个实用技巧:让你的Gin开发环境更快更稳定 【免费下载链接】gin Live reload utility for Go web servers 项目地址: https://gitcode.com/gh_mirrors/gin/gin Gin是一款专为Go Web应用打造的实时重载工具,能够显著提升开发效率。本文将分享10个…...

从‘发动机’到‘变速器’:用AUTOSAR OS Alarm与Counter的协作,讲透汽车ECU的定时心跳

从‘发动机’到‘变速器’:用AUTOSAR OS Alarm与Counter的协作,讲透汽车ECU的定时心跳 想象一下驾驶一辆高性能跑车时,发动机的轰鸣与变速器的精准配合——这种机械协同的美感,正是AUTOSAR OS中Counter与Alarm协作的完美隐喻。在汽…...

PHPMD源码解析:揭秘PHP代码质量检测引擎的内部工作原理

PHPMD源码解析:揭秘PHP代码质量检测引擎的内部工作原理 【免费下载链接】phpmd PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD. PHPMD can be seen as an user friendly frontend application for t…...

终极Duckling部署与优化指南:打造高性能生产环境的完整方案

终极Duckling部署与优化指南:打造高性能生产环境的完整方案 【免费下载链接】duckling Language, engine, and tooling for expressing, testing, and evaluating composable language rules on input strings. 项目地址: https://gitcode.com/gh_mirrors/du/duck…...

Spring Boot 自动装配加载过程的性能分析

Spring Boot 自动装配加载过程的性能分析 Spring Boot 的自动装配(Auto-Configuration)是其核心特性之一,它通过约定优于配置的原则,大幅简化了应用的开发与部署。随着项目规模的扩大,自动装配的加载过程可能成为性能…...

如何在VSCode、Vim和Emacs中配置Tern:提升JavaScript开发效率的完整指南

如何在VSCode、Vim和Emacs中配置Tern:提升JavaScript开发效率的完整指南 【免费下载链接】tern A JavaScript code analyzer for deep, cross-editor language support 项目地址: https://gitcode.com/gh_mirrors/te/tern Tern是一个强大的JavaScript代码分析…...

Java团队必看:为何转型AI应用开发已刻不容缓?

在数字化浪潮席卷全球的今天,AI技术正以前所未有的速度重塑各行各业。对于长期深耕Java领域的技术团队而言,转型AI应用开发不仅是顺应时代潮流的选择,更是保障技术竞争力、满足业务需求的必然之举。本文将从技术趋势、业务需求、开发效率三个…...

如何将AutoTrain Advanced模型部署到阿里云函数计算:Python运行时优化终极指南

如何将AutoTrain Advanced模型部署到阿里云函数计算:Python运行时优化终极指南 【免费下载链接】autotrain-advanced 🤗 AutoTrain Advanced 项目地址: https://gitcode.com/gh_mirrors/au/autotrain-advanced AutoTrain Advanced是一款强大的AI模…...

CarSim与Simulink联合仿真:基于MPC的动态规划路径实现超车换道操作指南与模型说明...

CarSim与Simulink联合仿真,实时检测,动态规划路径,实现超车换道,基于mpc,模型预测控制实现,距离效果见视频 提供carsim参数配置文件,导入即可运行 提供simulink模型文件 提供运行指导视频 提供模…...

FLARE-IDA 性能优化技巧:让逆向工程工作流提速300%的完整指南

FLARE-IDA 性能优化技巧:让逆向工程工作流提速300%的完整指南 【免费下载链接】flare-ida IDA Pro utilities from FLARE team 项目地址: https://gitcode.com/gh_mirrors/fl/flare-ida FLARE-IDA 是由 FLARE 团队开发的 IDA Pro 实用工具集,旨在…...

终极GoTrue性能优化指南:数据库调优、缓存策略与负载均衡实践

终极GoTrue性能优化指南:数据库调优、缓存策略与负载均衡实践 【免费下载链接】gotrue An JWT based API for managing users and issuing JWT tokens. 项目地址: https://gitcode.com/gh_mirrors/go/gotrue GoTrue是一个基于JWT的用户管理和令牌发行API&…...

【PID 控制算法实战】C 语言实现:结构体封装、积分限幅与一阶滤波

PID代码解读 (c语言版本) PID的控制流程根据流程一步步描述代码: PID代码流程 创建变量 typedef struct {float Kp, Ki, Kd;float error,last_error;float integral,max_intergral;float output,max_output; }PID;初始化PID的各类参数 void PID_Init(PID *pid,floa…...

Chart.js项目实战:AI碳足迹追踪监控系统

Chart.js项目实战:AI碳足迹追踪监控系统 【免费下载链接】awesome A curated list of awesome Chart.js resources and libraries 项目地址: https://gitcode.com/GitHub_Trending/awesome/awesome 在当今环保意识日益增强的时代,企业和个人都需要…...

阿里云开发者社区用户服务协议

C语言是一种通用的高级语言,最初是由丹尼斯里奇在贝尔实验室为开发UNIX操作系统而设计的。C语言最开始是于1972年在DEC PDP-11 计算机上被首次实现。 在1978年,布莱恩柯林汉(Brian Kernighan)和丹尼斯里奇(Dennis Ritc…...

脑科学研究必备:用BCT工具箱5步完成fMRI网络分析(附示例数据集)

脑科学研究实战指南:BCT工具箱在fMRI网络分析中的5步高效应用 神经影像数据分析一直是脑科学研究中的核心挑战之一。面对海量的功能磁共振成像(fMRI)数据,研究人员常常需要借助专业工具来提取有意义的网络特征。Brain Connectivity Toolbox(BCT)作为一款…...

解决OpenAI API Key单项目配置中的.env文件加载问题(2023/11/24)

1. 为什么你的OpenAI API Key配置总是失败? 最近在帮几个朋友调试OpenAI API项目时,发现一个高频问题:明明按照官方文档配置了.env文件,代码却死活读不到OPENAI_API_KEY。控制台不断报错提示"api_key client option must be …...

PyQtGraph实战案例:构建实时数据监控仪表盘的终极指南

PyQtGraph实战案例:构建实时数据监控仪表盘的终极指南 【免费下载链接】pyqtgraph Fast data visualization and GUI tools for scientific / engineering applications 项目地址: https://gitcode.com/gh_mirrors/py/pyqtgraph PyQtGraph是一款专为科学和工…...

知识加工:从事实表达到可用知识体系

通过知识抽取和知识融合,系统已经能够从多源数据中识别并整理出大量事实表达。但这些事实表达还不等于真正可用的知识图谱。一个可用的知识图谱,不仅要有事实,还要有较稳定的概念结构、可用的推理能力和可靠的质量保障。为此,还需…...

Ziggo-Device软件构建(On device)教程

Ziggo-Device软件构建:ERRORS-CSDN博客https://blog.csdn.net/Rthan/article/details/160149173?spm1001.2014.3001.5501Ziggo-CaaS-Switch软件配置教程-CSDN博客https://blog.csdn.net/Rthan/article/details/160148026?spm1001.2014.3001.5501Ziggo-CaaS-Switch…...

Redis秒杀系统设计,打造流畅抢购体验,让每一次点击都满载而归

核心设计方案:使用Redis的Lua脚本原子扣减库存,避免超卖。库存key设为String类型,初始值商品数量。抢购时执行Lua脚本:if(redis.call(get,KEYS[1]) - ARGV[1] > 0) then redis.call(decrby,KEYS[1],ARGV[1]) return 1 end retu…...

fastjson错误处理实战:避免常见陷阱的7个步骤

fastjson错误处理实战:避免常见陷阱的7个步骤 【免费下载链接】fastjson Fast JSON parser and validator for Go. No custom structs, no code generation, no reflection 项目地址: https://gitcode.com/gh_mirrors/fa/fastjson fastjson是Go语言中一款高效…...