JESD204接口调试总结——Xilinx JESD204B数据手册的理解

article/2025/10/17 21:41:34

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

JESD204接口调试总结——Xilinx JESD204B数据手册的理解

  • 时钟架构
  • Subclass 1
  • SYSREF Sampling Clock Edge
  • 确定性时延
  • SYSREF Delay


时钟架构

设计中采用如下图所示时钟设计图,主要是refclk和coreclk分开的
在这里插入图片描述

图 3-1 显示了最通用和最灵活的时钟方案,其中使用单独的 refclk 和 glblclk 输入分别提供收发器参考时钟和内核时钟。 通过这种配置,参考时钟和内核时钟是物理上独立的时钟,可以在独立的频率下运行,没有额外的限制。 参考时钟可以在收发器限制范围内的任何频率运行,以选择线路速率。 内核时钟始终以所需的速率运行(串行线路速率的 1/40)

Reference Clock ——给JESDPHY的参考时钟 —— JESD204_PHY 中的 GTP/GTX/GTH/GTY 串行收发器需要稳定、低抖动的参考时钟,该参考时钟具有与器件和速度等级相关的范围。 在某些情况下,为内核时钟和参考时钟使用相同的时钟频率或源可能是有利的。 然而,这可能并不总是实用的。 了解对参考时钟和内核时钟施加的限制以及系统级含义(例如 SYSREF/SYNC 的同步捕获以实现子类 1 或 2 确定性延迟)非常重要。

Coreclk ——JESD204 内核使用 32 位(4 字节)数据路径运行。 核心时钟频率始终是线路速率除以 40。例如,对于 6.25 Gbs 的串行线路速率,核心时钟频率为 156.25 MHz。 AXI 流 RX 和 TX 数据接口在此内核时钟频率下运行
AXI4-Lite Interface Clock ——内核通过 AXI4-Lite 处理器接口进行配置和监控。 此接口的时钟是独立于内核时钟或参考时钟的时钟。 该时钟与核心时钟或参考时钟之间没有任何依赖关系
Drp_clk ——DRP 时钟。 基于 UltraScale 架构的设备需要一个自由运行的 DRP 时钟,这个时钟可以和AXI4-Lite接口时钟使用同一个

在JESDPHY的模块中
同时输入了Refclk 和core_clk,说明JESDPHY与JESD 204B CORE之间的数据交互都是在core_clk的时钟域下,JESDPHY内部已经做好了serdes内部时钟和core_clk的时钟域转换

Subclass 1

子类 1 通过使用公共 SYSREF 信号支持确定性延迟。 SYSREF 信号在内核外部生成,并分配给系统中的所有设备。 JESD204B 标准允许 SYSREF 为“一次性”、周期性或间隙周期性。 内核能够使用这些选择中的任何一个进行操作。 可靠捕获 SYSREF 的时序和时钟要求是实现可靠确定性延迟的关键

SYSREF Sampling Clock Edge

SYSREF的采样边沿选用上升沿和下降沿也是有讲究的。
IP核可以配置是coreclk的上升沿采样sysref还是下降沿采样sysref。默认的设置是下降沿采样,这是基于SYSREF和给到core的时钟是同步的假设。因此在IO管脚处SYSREF和CORECLK的上升沿是对齐的。且一般sysref是源时钟的分频。因此下降沿提供了最好的时序余量。

在这里插入图片描述

在我们的设计中,sysref都是coreclk进行分频产生的,那么下降沿采样肯定是必选的了

确定性时延

确定性时延时怎么来的,先要理解下面这张图。

在这里插入图片描述
SYSREF:作为Tx Device和Rx Device共用的参考信号,用于产生LMFC(Local Multiframe Clock)信号(我觉得与其说它是一个CLOCK,不如说它是一个脉冲合适)。
实际上是有一个LMFC的计数器。这个计数器在检测SYSREF的边沿(上升沿或者下降沿,我们这里是下降沿)对LMFC进行复位,如果2 octets一个帧(F = 2),16帧一个多帧(M = 16),那么则32(MF)个octets一个多帧,一个多帧定义为32个octets,那么LMFC计数器则会在0-7之间循环计数(5 core_clk cycles - 20 octets; 8clk – 32 octets)。每次记一个周期时,LMFC则会产生一个脉冲。

下面我为了增强理解重新画了一遍上图

在这里插入图片描述

1、我们假设sysref到接收和发射端距离是一样的,那么收发两端的LMFC counter和pulse相差不大。(左绿线)
2、同时我们假设LANE1的线短,LANE2的线长,那么LANE1的数据先于LANE2到达(接收端LANE1率先出现了R字符)
3、因为接收端每个有RX BUFFER,只要这个BUFFER的容量大于两条LANE线长的差即可补偿线距离不同造成的时延不同
4、两个LANE都已经接收到R的情况下,有LMFC触发,两个LANE的buffer同时从R处释放数据(右绿线)

5、LMFC counter实际时序不一定如我所画的,但大致应该就是这个意思,可以作为理解用
6、LANE1延迟了20字节,LANE2延迟了10个字节,这就是2个lane的确定性时延,每次上电将都是这样。通过接收SYSREF位置的调整(SYSREF DELAY),可以减小两个lane的确定性时延

SYSREF Delay

JESD204B 标准中定义的确定性延迟机制要求多帧大小大于链路上的最大可能延迟。 在实践中,这很难实现,特别是对于帧比较小的情况。 但是,只要多帧大小大于链路上延迟的最大变化,就可以实现确定性延迟
当最大延迟变化导致整体延迟跨越两个相邻 LMFC 周期之间的边界时,就会出现潜在问题。 在这种情况下,可以在系统重新启动之间观察到恰好一个 LMFC 周期的延迟变化。 应计算整体系统延迟(请参阅 RX 端到端延迟或 TX 端到端延迟)以确定这是否是可能的情况。
在出现这种情况的情况下,TX 或 RX 设备中的 LMFC 边界可以通过向其中一个设备中的 SYSREF 添加额外延迟来相对于彼此移动。 Xilinx JESD204 内核通过允许内部 SYSREF 处理逻辑中的额外延迟来支持内部 LMFC 的这种移位。 这是使用 SYSREF 处理寄存器中的 SYSREF 延迟字段编程的,允许在 SYSREF 事件检测和 LMFC 计数器复位之间插入 0 到 15 个内核时钟周期的延迟。 SYSREF 延迟值的变化需要内核复位以强制链路重新对齐


http://chatgpt.dhexx.cn/article/yG3Zm9xL.shtml

相关文章

【国产虚拟仪器】基于FPGA+JESD204B 时钟双通道 6.4GSPS 高速数据采集模块设计(二)研究 JESD204B 链路建立与同步的过程

基于 JESD204B 的采集与数据接收电路设计 本章将围绕基于 JESD204B 高速数据传输接口的双通道高速数据采集实现展 开。首先,简介 JESD204B 协议、接口结构。然后,研究 JESD204B 链路建立与同 步的过程。其次,研究基于 JESD204B …

JESD204接口调试总结——JESD204C协议的介绍

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JESD204接口调试总结——JESD204C协议的介绍 前言JESD204C变化总结新术语传输层数据链路层物理层 第二部分64b/66b和64b/80b链路层多块(MB)和扩展多块(EMB)同步字64b/66b链路…

JESD204B 和 JESD204C 之间的差异

JESD204 标准 JESD204规范定义了实现协议数据流的四个关键层,如图9所示。 传输层映射样本和已帧、已解码的字节之间的转换。可选的扰乱层对八位元进行扰动/解扰动,分散谱峰值以降低电磁干扰(EMI)。数据链路层处理链路同步、设置和维护,并对…

纸上谈兵_JESD204B

文章目录 基本概念优点子类协议结构链路参数传输层映射方式测试模式 数据链路层对齐字符替换与还原数据链路建立与维护 物理层 时钟器件时钟帧时钟/多帧时钟调整时钟各时钟关系图各协议层时钟使用情况 Xilinx IPPortsBasic Generic Clocking SchemesSubclass 1 OperationRx exa…

【JESD204系列】三、JESD204B标准分层

JESD204B 作为一种分层规范,在规范中共定义了四个层,分别为应用层,传输层,数据链路层和物理层。各层分别执行各自的对应的功能,最终通过四个层的联合,将数据高速无误的进行传输。 【JESD204系列】三、JESD2…

【高速总线】JESD204B简介

一、简介 JESD204是一种连接数据转换器(ADC和DAC)和逻辑器件的高速串行接口,支持高达 12.5 Gbps串行数据速率,并可确保 JESD204 链路具有可重复的确定性延迟。随着高速ADC跨入GSPS范围,与FPGA(定制ASIC&am…

JESD204接口调试总结——JESD204B协议的理解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 JESD204接口调试总结——JESD204B协议的理解 JESD204B建链的步骤 本节内容摘抄于网络上,写的比较明了,故转载于此 内容来源:理解JESD204B协…

JESD204B协议基础知识

目录 1.JESD204B优势 2. 关键变量 3.IP核应用 4.同步 4.1 代码组同步 4.2 初始化多帧序列 4.3 数据传输 1.JESD204B优势 JESD204是基于SERDES的串行接口标准,主要用于数模转换器和逻辑器件之间的数据传输,最早版本的是JESD204A,现在是…

JESD204B 协议解析和参数理解

目录 1. 概述 2. 时钟 3. 同步协议 4. 参数理解 1. 概述 在JESD204接口出现以前,数模转换器的数字接口绝大多数是差分LVDS的接口,这就造成了布板的困难,当PCB的密度很大的时候就需要增加板层从而造成制版的成本。但是JESD204需要…

JESD204B简介(一)-------理论概述篇

JESD204B是一种新型的基于高速SERDES的ADC/DAC数据传输接口。JESD204和JESD204B修订版数据转换器串行接口标准由JEDEC委员会制定,旨在标准化并减少高速数据转换器与FPGA(现场可编程门阵列)等其它器件之间的数据输入/输出数目。更少的互连可简…

JESD204B简介

1、SERDES技术 了解JESD204B之前需要先了解SERDES(SERialization/DESerialization)技术,也就是串化和解串,在发送端将多位并行的数据转换为1bit的串行数据,在接收端将串行数据恢复成原始的并行数据。如下图为基于FPGA的…

高速接口----JESD 204B(1)

前言 最近两周在做一些关于高速ADC的东西,也算是接触到了一些新的东西,做技术的,就是要不断地学习新的东西才可以啊。调试的平台是zcu102daq3。daq3是ADI推出的一个高速AD和DA的评估板。上面主要的芯片是ADC芯片AD9680,DAC芯片AD…

gzip chunked

gzip chunked --比天空间-- - mod_gzip和chunked http://www.httpwatch.com/httpgallery/chunked/ When an HTTP client is reading a response message from a server it needs to know when it has reached the end of the message. This is particularly important with per…

http协议里的chunked编码与测试

如果有写过http下载的人,或多或少了解一点chunked编码的传输方式。例如笔者最初不知道这个http传输方式,以前能行的代码有一天就突然不行了,抓包才发现数据异样。 chunked编码 分块传输编码(Chunked transfer encoding&#xff09…

c客户端http post chunked协议上传到服务器demo源码

下面例子中 :c 客户端采用 chunked协议上传到服务器,java 服务器返回的不是chunked 协议 chunked 编码协议格式参考 https://blog.csdn.net/wy5761/article/details/17568851 c 客户端 chunked 完整内容是 Hello, world,how are you 。分了2块上传 Hel…

HTTP CHUNKED

服务端给浏览器发送报文时,必须告诉浏览器报文的大小,这样浏览器可以根据报文大小来判断报文的完整性以及在长连接中确定报文的截尾。但是很多服务器的报文是动态创建的,在发送之前是无法确定其大小的。服务器只有等待内容全部创建后&#xf…

chunked java_HTTP协议的chunked编码

一般情况HTTP的Header包含Content-Length域来指明报文体的长度。如: 有时候服务生成HTTP回应是无法确定消息大小的,比如大文件的下载,或者后台需要复杂的逻辑才能全部处理页面的请求,这时用需要实时生成消息长度,服务器…

HTML中chunked解码和gzip解压

chunked编码 chunked编码的的好处 当访问的时动态页面时,服务器则无法预知内容的大小,因此需要一遍产生数据,一边发送数据,将数据分块发送(服务器通过响应头’Transfer-Encoding: chunked’告诉浏览器它将使用chunked编码传输)。…

Android:rxjava简单实现原理(map/flatmap操作符)

rxjava 装饰者模式1、背景2、定义3、特征4、装饰者模式demo rxjava装饰者模式1、rxjava中转换操作符map的简单实现2、rxjava中转换操作符flatmap的简单实现 装饰者模式 1、背景 假设奶茶店有两种茶,果茶(fruit tea)和奶茶(milky tea)&#…

java dataset flatmap_Spark中map和flatMap的區別詳解

本文介紹了Spark中map(func)和flatMap(func)這兩個函數的區別及具體使用。 函數原型 1.map(func) 將原數據的每個元素傳給函數func進行格式化,返回一個新的分佈式數據集。(原文:Return a new distributed dataset formed by passing each element of the…