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

article/2025/10/17 21:48:14

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

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

  • JESD204B建链的步骤

本节内容摘抄于网络上,写的比较明了,故转载于此
内容来源:理解JESD204B协议

JESD204B建链的步骤

我们来考虑一种由 ADC 等数字源向 FPGA 发送数字数据的简单情况。在正确发送或接收数据之前,有几件事必须要做,如图 1 所示以及下文所说明的那样。
JESD204B 协议状态图

1. 代码组同步 (CGS) — 不需要接口时钟,因此 RX 必须将其数位及字边界与 TX 串行输出对齐。RX 可向 TX 发送 SYNC 请求,让其通过所有信道发送一个已知的重复比特序列,本例中每字符每 K 是 K28.5。确切的字符比特序列可在标准中找到。RX 将移动每个信道上的比特数据,直到找到 4 个连续的 K28.5 字符为止。这时,它不仅将知道比特及字边界,而且已经实现了 CGS。随后,它会取消对 SYNC 的断言,而 TX 和 RX 则都会进入下一个状态:初始信道对齐序列 (ILAS)。
2. ILAS — JESD204B 协议的一个良好特性可实现通过 RX 模块中的一些 FIFO/缓冲器吸收信道偏移。在实现 CGS 后,TX 可在每个信道上发送已知的字符帧集合,称为信道对齐序列(以每字符每 R K28.0 开始,以每字符每 A K28.3 结束)。收到对齐序列后,RX 会对数据进行 FIFO 缓冲,直到所有信道都收到完整的对齐序列。由于已经知道了整个序列,因此信道随后可重新对齐,这样每个信道上的任何信道偏移都可通过 FIFO 存储器吸收,而且,信道随后还可在相同的时间点、在 RX 模块内释放该数据。这可缓解为串行解串器信道提供匹配布局的需求,因为信道偏移可通过 FIFO 存储器吸收。
3. 用户数据— 在代码组同步及信道对齐后,就可正确接收用户数据。如果在该最后状态时用户数据无效,则需要重新启动本过程,RX 会发送一个 SYNC 请求重新开始该过程。

构建JESD204B 链路的第一步是RX 发信号通知TX 开始代码组同步 (CGS):
a.) RX 针对 TX 降低 SYNC 信号,请求执行 CGS。
b.) TX 的回应将是开始发送 K28.5 字符(8b/10b 编码之前的 0xBC 十六进制)。
c.) RX 接收到并最少解码 4 个 K28.5 字符后,它会提高 SYNC 信号,让 TX 开始发送 ILAS 序列。
在这里插入图片描述
a) 从RX 到TX 的SYNC 低信号请求;b) TX 以K28.5(0xBC 八位位组)作为回应;c) 在RX 收到K28.5 字符后,SYNC 被提高,使TX 开始发

下一步是初始信道对齐序列 (ILAS):

d.) 一旦 SYNC 升高,TX 就会在本地多帧时钟(LMFC,LMFC 在图中未显示)的上升沿位置的每个信道上发送 ILAS 信号。所有信道都将从源头与该 LMFC 边沿对齐。
e.) ILAS 总是包含 4 个多帧数据。每个多帧数据都以一个 K28.0 字符开始,以一个 K28.3 字符结束。链路配置数据在第 3 个八位位组开始的位置通过第二个多帧数据发送。
在这里插入图片描述
d) SYNC 被RX 提高,以告知TX 开始ILAS;e) 通过所有信道发送ILAS

图 4 概括说明了 ILAS 多帧数据的结构,这可在 TX 发出的 ILAS 八位位组数据流中证实。K28.0=R 和 K28.3=A 字符可用来对齐多点链路中的所有信道。
在这里插入图片描述
完成 ILAS 后,TX 将通过串行信道发送有效用户数据。

在 RX 内部,每个信道都会在每个信道的弹性缓冲器中存储 ILAS 序列的最后一个 A 字符以及紧跟其后的任何用户数据。弹性缓冲器中用户数据的释放点通常是在检测到每个信道弹性缓冲器中最后一个 A 字符后的下一个 LMFC 上升沿。接收到的用户数据就像在 TX 侧一样,将需要通过传输层的背面,将串行位重新排列为有意义的并行样片。

在这里插入图片描述
该信道对齐特性可确保来自每个信道的所有数据都可对齐。


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

相关文章

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,"…

flatmap使用

使用场景 适用于嵌套list数据结构&#xff0c;想把内部的list数据合并成一个list.。 举例如下&#xff1a; public class Test {public static void main(String[] args) {List<List<String>> list new ArrayList<>();List<String> list1 new Arr…

Java8中map与flatMap用法

目录 1 概述 2 map与flatMap 3 常用写法 1 概述 Java8中一些新特性在平时工作中经常会用到&#xff0c;但有时候总感觉不是很熟练&#xff0c;今天特意将这个Java8中的映射记录一下。 2 map与flatMap map---对集合中的元素逐个进行函数操作映射成另外一个 flatMap---接收一…

如何使用flatMap

1. 什么情况下用到flatMap 当使用map&#xff08;&#xff09;操作时&#xff0c;不是返回一个值&#xff0c;而是返回一个集合或者一个数组的时候&#xff0c;这时候就可以使用flatMap解决这个问题。举个例子&#xff0c;你有一个列表 [21,23,42]&#xff0c;然后你调用getPr…