纸上谈兵_JESD204B

article/2025/10/17 11:38:59

文章目录

  • 基本概念
    • 优点
    • 子类
    • 协议结构
      • 链路参数
      • 传输层
        • 映射方式
        • 测试模式
      • 数据链路层
        • 对齐字符替换与还原
        • 数据链路建立与维护
      • 物理层
    • 时钟
      • 器件时钟
      • 帧时钟/多帧时钟
      • 调整时钟
      • 各时钟关系图
      • 各协议层时钟使用情况
  • Xilinx IP
    • Ports
    • Basic Generic Clocking Schemes
    • Subclass 1 Operation
    • Rx example仿真
      • IP核设置
      • 仿真
        • 产生ILA序列
        • 产生各个lane的数据;接收各个lane的数据
  • 博文链接

基本概念

优点

JESD204B 协议的优点如下,

  • 支持多通道、多链路和多芯片同步
  • 支持确定性延迟
  • 使用器件时钟(Device Clock)
  • 单通道速率最高可达 12.5Gbps

确定性延迟的意义在于,当电路重新上电,或是重新进行同步时,这之间的延迟是确定的。

子类

JESD204B 的子类说明如下,

子类说明
子类 0不支持确定性延时,向后兼容 JESD204A
子类 1使用 SYSREF参考时钟支持确定性延时
子类 2使用 SYNC~时钟支持确定性延时
在这里插入图片描述
在这里插入图片描述

协议结构

在这里插入图片描述

链路参数

在使用时,需要针对特定应用场景所需的链路数、通道数、通道速率以及各时钟信号的频率,对链路参数进行配置。
在这里插入图片描述

NP->ADC number of bits per sample

Understanding JESD204B Link Parameters
The N’ parameter is found by multiplying the number of nibbles by four. It can be advantageous to both the transmitter and receiver to set N’ to 16 for converters with resolutions ranging from eight bits to 16 bits. This allows for the same transmitter and receiver to be used for multiple converters, easing overall system design. A non-complete nibble has room for either control bits (CS ) or tail bits (T ) as defined by the JESD204B standard. The equation N’ = N + CS + T must be satisfied.

For example, a 14-bit converter with N’ = 16 would have two bits left that could be used for control bits and/or tail bits. The figure below gives a visual representation of the how the converter data is mapped into a JESD204B word for a 14-bit converter with N’ = 16. If there are no tail bits or control bits, the JESD204B word is the same as the sample data. This would occur in this case if the resolution of the converter were equal to 16 bits instead of 14 bits. It is important to note that the left most bit is the most significant bit of the converter sample. Samples are transmitted across the link MSB first and LSB last. Control bits, if any, are appended after the LSB to each conversion sample.
在这里插入图片描述
The S parameter is the number of transmitted samples per converter per frame. Typically, the S parameter is set to one. This parameter must always be an integer to minimize cross talk between the JESD204B circuitry and the analog circuitry of the converter. The JESD204B specification allows for this parameter to be greater than one, but it is simpler to set S to one such that the frame clock (FC ) and sample clock of the converter can be equal. For a 500MSPS converter and S = 1, the frame clock rate is 500MHz.
The next parameter to set is the number of lanes, L . In order to determine the number of lanes required, the maximum lane rate must be known. The maximum lane rate is determined by two main factors: the output driver capability of the transmitter and the input capability of the receiver. To calculate the lane line rate and determine the number of lanes, Equation 1 is used:
Lane Rate = (M x S x N’ x 10/8 x FC)/L
Using the example information above with a quad-channel, 500MSPS 14-bit converter with N’ = 16 and S = 1, we can set the L parameter to different values and find the resultant lane rate to make sure it falls within system limitations. In this case, let’s assume the maximum lane rate that can be supported by the transmitter and receiver is equal to the maximum lane rate defined for the JESD204B specification, which is 12.5Gbit/s. If L = 2, the resultant lane rate is (4 x 1 x 16 x 10/8 x 500MHz)/2 = 20Gbit/s. This exceeds the accepted maximum. Clearly, L must be set to 4 in order to reduce the lane rate below the accepted maximum. With L = 4, the lane rate is 10Gbit/s, which complies with the maximum rate of 12.5Gbit/s.
After using the number of converters, the number of samples per frame, the JESD204B word size, and the maximum lane rate to calculate the number of lanes, we can determine the number of octets transmitted per frame, F . In order to determine this parameter, Equation 2 can be used:
F = (M x S x N’)/(8 x L)
Continuing with the information from the previous examples, F can be calculated. Substituting the values, we have F = (4 x 1 x 16)/(8 x 4) = 2. So for a quad-channel, 500MSPS 14-bit converter with four JESD204B lanes, there are two octets needed to transmit one sample of data per frame, which results in a lane rate of 10Gbit/s.
假设一个4通道的AD芯片,分辨率是14位,则M=4,N=14。在JESD204B的标准中要求,采样的一个数据必须要分解成半字节(nibble,4bit),那么14位的AD数据,能分解成3个nibble,还余下2位。那么余下的这2位,要与控制位(CS)或尾位(T)组成一个新的nibble。所以14位采样率的AD,需要4个nibble,那么N’=16,发送时先发送高位,再发送低位。同理,如果12位的AD,只需要3个nibble,不需要控制位或尾位在补充。
还是以一个4通道,500MSPS采样率,14位的AD为例,可以知道N’=16,S=1。假设器件支持的JESD204B协议的速率为12.5Gb/s,那么可以求得L=4的时候,速率为10Gb/s,这样才不会超过速率的最大限制;同样的,计算得出F=2,即每一帧传输中有2个字节的数据。

传输层

在这里插入图片描述

映射方式

传输层按照应用层中的相关配置对对样本数据进行处理,将其映射为符合要求的帧数据。 协议定义了四种映射机制,如下所示,

  • 单个转换器输出的样本映射到单通道中
  • 单个转换器输出的样本映射到多个通道中
  • 同一个设备中多个转换器输出的样本映射到单通道中
  • 同一个设备中多个转换器输出的样本映射到多个通道中

在实际应用中,一个设备通常集成多个转换器,并且多个转换器同时工作,因此一般情况下采用后两种方式,即多个转换器中的样本映射到单个通道或多个通道中。在向多个通道映射样本数据时,参数 HD 和 CF 控制链路采用不同的映射方式。

参数名称描述备注
HD控制映射完成后八位字节的传输方式当 HD = 0 时,每个转换器的样本和控制字符只能在一个通道内传输,并且不同转换器的样本和控制字符不能出现在同一个八位字节中;当 HD = 1 时,每个转换器中的样本和控制字符可以通过多个通道分开传输,不同转换器中的样本和控制字符可以出现在同一个八位字节中
CF控制每条链路每帧数据内控制字节的数量CF可以和参数 L、M 共同决定控制字节所在的通道以及在该通道中所处的位置

在这里插入图片描述
在这里插入图片描述

JESD204B Overview
在这里插入图片描述
如图所示,为一个8通道采样,11位的AD,拥有4条传输通道,即M=8,N=11,L=4。根据上面的说明,N’=13(此处TI的定义和ADI的略有不同,ADI的定义下N’=16,但不影响理解),补充了2个控制位和3个尾位。要是同一帧的传输下,4条通道装下8个转换器的一个数据,需要设置F=4,即4个字节,每2个转换器共用一个传输通道,各自传输2个字节的数据。这张图一目了然的展示了连接参数对组帧方式的作用。

在这里插入图片描述

摘自《AD9689》

在这里插入图片描述
在这里插入图片描述

测试模式

JESD204B 协议定义了长传输层测试模式短传输层测试模式,前者周期为多个帧周期,后者周期为单个帧周期,两种测试模式中采用的测试序列必须是可重复的,即在测试持续时间内按照一定周期重复出现。

在传输层测试模式中,将输入到传输层的数据样本替换为测试样本,通过验证接收端与发送端传输层中的测试样本是否完全一致,可以判断收发端传输层是否能够对数据样本进行正确的处理,将其映射为帧数据并对其进行解帧。

数据链路层

在这里插入图片描述

数据链路层中包括字符替换和还原模块、缓存器和 8B/10B 编解码模块。

对齐字符替换与还原

在这里插入图片描述
对齐字符的替换与帧数据是否经过加扰以及链路是否支持通道同步有关,如下所述,

方式描述
收发端都支持通道同步,数据加扰发送端检测到当前帧的最后一个八位字节等于0xFC,并且该八位字节不在多帧的末尾时,将其替换为控制字符/F/;当前多帧的最后一个八位字节等于 0x7C 时,将其替换为对齐字符/A/。接收端接收到字符/F/和/A/后将其还原为 0xFC和 0x7C
收发端都支持通道同步,数据不加扰发送端检测到当前帧与前一帧的最后一个八位字节相等,且当前帧的最后一个八位字节不在多帧的末尾时,将其替换为控制字符/F/,但如果在前一帧中已经进行了对齐字符的替换,则不对当前帧进行对齐字符替换;当前多帧的最后一个八位字节与前一帧的最后一个八位字节相等时,将其替换为控制字符/A/。接收端接收到字符/F/和/A/后将其还原为与前一帧最后一个八位字节相等的数据
收发端至少有一侧不支持通道同步,数据加扰发送端检测到当前帧的最后一个八位字节等于 D28.7 时,将其替换为控制字符/F/。接收端接收到字符/F/后将其还原为 D28.7
收发端至少有一侧不支持通道同步,数据不加扰发送端检测到当前帧与前一帧的最后一个八位字节相等时,将其替换为控制字符/F/,但如果在前一帧中已经进行了对齐字符的替换,则不对当前帧进行对齐字符替换。接收端接收到字符/F/后将其还原为与前一帧最后一个八位字节相等的数据

数据链路建立与维护

数据链路的建立分为三步:代码组同步(CGS)、初始通道同步(ILS)、传输用户数据。
在这里插入图片描述

物理层

在这里插入图片描述

时钟

器件时钟

  • 器件时钟是 JESD204B 系统中的时基参考
  • 时钟发生器电路负责从源时钟产生所有器件时钟,发送端和接收端设备从时钟发生器电路接收它们的器件时钟
  • 器件时钟可具有与帧时钟或多帧时钟不同的周期,并且,器件负责从器件时钟产生帧时钟和多帧时钟。
  • 器件时钟的频率和抖动特性会直接影响整个 JESD204B 链路中数据传输的稳定性,在频率较高时,需要使用差分信号形式传输

帧时钟/多帧时钟

  • 所有发送端和接收端设备中的帧时钟周期必须分别相同
  • 所有发送端和接收端设备中的多帧时钟周期必须分别相同
  • 每个设备中的帧时钟和多帧时钟必须由同一时钟源产生且相位对齐
  • 对于采用子类 1 的设备,在 SYSREF 信号有效时,帧时钟和本地多帧时钟的相位由器件时钟的时钟沿决定
  • 对于采用子类 2 的设备,LMFC 的相位由 SYNC~上升沿决定;在 SYNC~信号无效时,帧时钟的相位由调整时钟决定

调整时钟

调整分辨率

  • 调整分辨率定义为:可以对 LMFC 相位进行调整的最小步长
  • 调整分辨率由链路设备(转换器或逻辑处理器件)中频率最高的器件时钟决定
  • 如果调整分辨率小于转换器的器件时钟周期和帧时钟周期,则转换器需要从其器件时钟产生一个高速的调整时钟来满足链路的调整分辨率

调整时钟

  • 该时钟的周期与调整分辨率相同,且可以通过控制接口改变其周期
  • 可以通过调整时钟的上升沿对齐帧时钟和 LMFC
  • 调整时钟与器件时钟相位对齐,便于对其进行定时检测

各时钟关系图

在这里插入图片描述

各协议层时钟使用情况

在这里插入图片描述

Xilinx IP

Ports

在这里插入图片描述

Basic Generic Clocking Schemes

在这里插入图片描述
上图所示的是一种比较灵活的时钟架构,

  • 使用单独的 refclk 和 glblclk 输入分别作为收发器参考时钟和内核时钟
  • 参考时钟和核心时钟是物理上独立的时钟,可以在独立的频率下运行,没有额外的限制
  • 参考时钟可以在所选线路速率的收发器限制范围内以任何频率运行,核心时钟始终以所需的速率运行(串行线路速率的 1/40)
    在这里插入图片描述

Subclass 1 Operation

摘自《pg066》在这里插入图片描述

摘自《Xilinx JESD204B数据手册的理解》
在这里插入图片描述

  • FPGA 的Device Clock是 FPGA 逻辑时钟(tx_core_clk 或 rx_core_clk)
  • SYSREF 信号作为Tx Device和Rx Device共用的参考信号,用于产生LMFC脉冲信号
  • 有一个LMFC计数器,在SYSREF的边沿(上升沿或下降沿可设)进行复位;计数器对一个多帧(multiframe)的字节(octets)进行计数(一个multiframe对应K*F个字节)(由于rx_data是四字节的Lane倍,则1 tx_core_clk cycles -4octets,那么,对于一个包含32 octets的多帧,LMFC计数器的范围是0-7)

  • 在断言时,接收设备将其内部的LMFC 与输入的 SYSREF 信号对齐,并将 SYNC~信号拉高;
  • 当发送设备检测到 SYNC~ 信号变为高电平时,它会等到下一个 LMFC才开始发送数据(如果支持 ILA 生成,就发送 ILA 序列;否则发送正常帧数据)
  • 当接收设备检测到所有通道都输入有效数据时,会对输入数据进行缓存;在下一个 LMFC 的交叉点时,会从缓存中获取数据

Rx example仿真

IP核设置

在这里插入图片描述

仿真

产生ILA序列

产生ILA序列的仿真代码如下,基本和AD9680要求的一致,
在这里插入图片描述

以下摘自《AD9680手册》
CGS是JESD204B接收设备找到数据流中10位符号间界限的过程;在CGS阶段,JESD204B传送模块传送/K28.5/字符;接收设备必须使用时钟数据恢复(CDR)技术,在输入数据流中定位/K28.5/字符。
CGS阶段之后是ILAS阶段,它在下一LMFC边界开始;ILAS由4个多帧组成,/R/字符表示开始,/A/字符表示结束。ILAS从发送/R/字符开始,然后发送一个多帧的0至255斜坡数据。在第二个多帧发送链路配置数据,从第三个字符开始。第二个字符是/Q/字符,用以确认随后是链路配置数据。所有未定义数据时隙都用斜坡数据填充。ILAS序列从不加扰。
在这里插入图片描述

仿真如下图,接收数据的时候,先接收的数据放在低位字节
在这里插入图片描述

产生各个lane的数据;接收各个lane的数据

在这里插入图片描述
在这里插入图片描述

博文链接

JESD204接口调试总结——Xilinx JESD204B IP testbench解析
【Xilinx JESD204B】针对JESD204B的一些问题解答
Xilinx JESD204B数据手册的理解
jesd204b高速ad/da ad9172 AD9689调试记录


http://chatgpt.dhexx.cn/article/7yNty96U.shtml

相关文章

【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…

Spark中flatMap的操作

Test 1: package test.wyh.wordcountimport org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext}object TestFlatMap {def main(args: Array[String]): Unit {//建立Spark连接val sparkConf new SparkConf().setMaster("local&quo…

flatMap底层实现

上篇:Transformation的map使用 第一种方式重写flatMap方法实现 实现需求:根据字符串在nc -lk 8888的窗口命令下输入的数据,在控制台打印输出发现:在同一行数据输入的单词字符串自动换行,按每个单词独立换行并且若输入…

java7 flatmap_flink学习之七-map、fliter、flatmap

看完了Flink的datasource、sink,也就把一头一尾给看完了,从数据流入到数据流出,缺少了中间的处理环节。 而flink的大头恰恰是只在这个中间环节,如下图: source-transform-sink-update.png 中间的处理环节比较复杂&…

Stream之flatMap

一、flatMap简介 flatMap:将小Stream转换为大Stream 二、示例转换要求 目标:将如下对象中的分类category提取出来,去重。其中如"哲学,爱情",需要解析为两个分类,["哲学","爱情"] [{"age":33,"…