JESD204B是最近批准的JEDEC标准,用于转换器与数字处理器件之间的串行数据接口。它是第三代标准,解决了先前版本的 一些缺陷。该接口的优势包括:数据接口路由所需电路板空间更少,建立与保持时序要求更低,以及转换器和逻辑器件的封装更小。多家供应商的新型模拟/数字转换器采用此接口,例如ADI的 AD9250 。
与现有接口格式和协议相比,JESD204B接口更复杂、更微妙,必须克服一些困难才能实现其优势。像其他标准一样,要使该接口比单倍数据速率或双倍数据速率CMOS/LVDS等常用接口更受欢迎,它必须能无缝地工作。虽然JESD204B标准由JEDEC 制定,但某些特定信息仍需要阐明,或者可能散布于多个参考文献中。另外,如果有一个简明的指南能概要说明该标准、工作原理以及如何排除故障,无疑对使用者将极为有帮助。
本文阐释JESD204B标准的ADC与FPGA的接口,如何判断其是否正常工作,以及可能更重要的是,如何在有问题时排除故障。文中讨论的故障排除技术可以采用常用的测试与测量设备,包括示波器和逻辑分析仪,以及 Xilinx®的ChipScope或 Altera®的 SignalTap等软件工具。同时阐明了接口信号传输,以便能够利用一种或多种方法实现信号传输的可视化。
JESD204B概述
JESD204B标准提供一种将一个或多个数据转换器与数字信号处理器件接口的方法(通常是ADC或DAC与FPGA接口),相比于通常的并行数据传输,这是一种更高速度的串行接口。该接口速度高达12.5 Gbps/通道,使用帧串行数据链路及嵌入式时钟和 对齐字符。它减少了器件之间的走线数量,降低了走线匹配要求,并消除了建立与保持时序约束问题,从而简化了高速转换器数据接口的实施。由于链路需要在数据传输之前建立,因此存在新的挑战,必须采用新的技术来确定接口是否正常工作,以及在接口故障时怎么办。
JESD204B接口通过三个阶段来建立同步链路:代码组同步(CGS)、初始通道同步(ILAS)和数据传输阶段。链路需要以下信号:共享参考时钟(器件时钟),至少一个差分CML物理数据电连接(称为"通道"),以及至少一个其他同步信号(SYNC~和可能的SYSREF)。使用哪些信号取决于子类:
子类0使用器件时钟、通道和SYNC~。
子类1使用器件时钟、通道、SYNC~和SYSREF。
子类2使用器件时钟、通道和SYNC~。
子类0在许多情况下足以满足需求,因而是本文的重点。子类1和子类2提供了建立确定性延迟的方法,这在需要同步多个器件或需要系统同步或固定延迟的应用中非常重要,例如一个系统的某个事件需要已知的采样沿,或者某个事件必须在规定时间内响应输入信号。
图1显示了从发射器件(ADC)到接收器件(FPGA)的简化JESD204B链路,数据从一个ADC经由一个通道传输。
虽然JESD204B规范有许多变量,但某些变量对于链路的建立特别重要。这些关键变量如下所示(注:这些值通常表示为"X − 1"):
M: 转换器数。
L: 物理通道数。
F: 每帧的8位字节数。
K: 每个多帧的帧数。
N和N':分别表示转换器分辨率和每个样本使用的位数(4的倍数)。N'的值等于N值加上控制和填充数据位数。
子类0:同步步骤
如上所述,许多应用可以采用相对简单的子类0工作模式,这也是建立和验证链路的最简单模式。子类0通过三个阶段来建立和监控同步:CGS阶段、ILAS阶段和数据阶段。各阶段相关的图表以不同格式显示数据,可以在示波器、逻辑分析仪或FPGA虚拟I/O分析仪(如Xilinx ChipScope或Altera SignalTap)上观察到这些数据。
可以在链路上观察到的CGS阶段最重要部分如图2所示,图中5个突出显示的点说明如下。
接收器通过拉低SYNC~引脚,发出一个同步请求。
收发器从下一个符号开始,发送未加扰的/K28.5/符号(每个符号10位)。
当接收器收到至少4个无错误的连续/K28.5/符号时同步,然后将SYNC~引脚拉高。
接收器必须接收到至少4个无错误8B/10B字符,否则同步将失败,链路留在CGS阶段。
CGS阶段结束,ILAS阶段开始。
/K28.5/字符在JESD204B标准中也称为/K/,如图3所示。标准要求直流平衡。利用8B/10B编码,可以实现平均而言包含等量1和0 的平衡序列。每个8B10B字符可能具有正(1较多)或负(0较多)偏差,当前字符的奇偶性由先前发送的字符的极性偏差决定,这通常是通过交替发送正奇偶性字与负奇偶性字来实现。图中显示了/K28.5/符号的两种极性。
重点注意以下几点:
串行值表示通过通道传输的10位的逻辑电平,可通过测量物理接口的示波器看到。
8B/10B 值表示通过通道传输的逻辑值(10位),可通过测量物理接口的逻辑分析仪看到。
数据值和数据逻辑表示8B/10B编码前JESD204B收发器模块内符号的逻辑电平,可通过Xilinx ChipScope或Altera SignalTap等FPGA逻辑分析工具看到。
符号 表示要发送的字符的十六进制值,注意PHY层的奇偶性。
字符 表示JEDEC规范中所指的JESD204B字符。
ILAS阶段
ILAS阶段有4个多帧,允许接收器对齐来自所有链路的通道,以及验证链路参数。为了调和不同长度的走线以及接收器导致的字符偏斜,通道必须对齐。4个多帧紧紧相连(图4)。无论启用加扰链路参数与否,ILAS始终是无加扰传输。
SYNC信号从低电平变为高电平后,便进入ILAS阶段。发送模块内部跟踪到(ADC内部)一个完整多帧后,便开始发送4个多帧。在所需的字符中插入填充数据,以便传送完整的多帧(图4)。4个多帧包括:
多帧1:以/R/字符[K28.0]开始,以/A/字符[K28.3]结束。
多帧2:以/R/字符开始,后接/Q/ [K28.4]字符,然后是14个配置8位字的链路配置参数(表1),最后以/A/字符结束。
多帧3:与多帧1相同。
多帧4:与多帧1相同。
表1. ILAS多帧2的CONFIG表(14个JESD204B配置参数 8位字)
帧长度可以利用JESD204B参数计算:
(S) ×(1/采样速率)。
含义:
(样本数/转换器/帧)×(1/样本速率)
示例:
采样速率为250 MSPS、每帧每转换器一个样本的转换器(注:在本例中"S"为0,因为它被编码为二进制值-1),其帧长度为4 ns。
多帧长度可以利用JESD204B参数计算:
含义:
(样本数/转换器/帧)×(帧数/多帧)×(1/采样速率)
示例:
采样速率为250 MSPS、每帧每转换器一个样本、每多帧有32帧的转换器,其多帧长度为128 ns。
数据阶段(使能字符替换)
在数据传输阶段,通过控制字符监控帧对齐。在帧的结尾处执行字符替换。在数据阶段,数据或帧对齐不会造成额外开销。字符替换允许在帧边界处发送对齐字符,唯一条件是当前帧的最后一个字符可以替换为上一帧的最后一个字符。这有利于(间或)确认自ILAS序列后,对齐未改变。
出现下列情况时,会对发送器执行字符替换:
若禁用了加扰,帧或多帧的最后一个8位字等于上一帧的8位字。
若使能了加扰,多帧的最后一个8位字等于0x7C,或帧的最后一个8位字等于0xFC。
发射器和接收器各自保持一个本地多帧计数器(LMFC),它持续计数到(F × K) − 1,然后绕回到"0"重新开始计数(忽略内部 字宽)。向所有发送器和接收器发送一个公共(源)SYSREF,这些器件利用SYSREF复位其LMFC,这样所有LMFC应互相同步(在一个时钟周期内)。
释放SYNC(所有器件都会看到)后,发送器在下一次(Tx) LMFC绕回0时开始ILAS。如果F × K设置适当,大于(发送器编码时间)+(线 路传播时间)+(接收器解码时间),则接收数据将在下一个LMFC之前从接收器的SERDES传播出去。接收器将把数据送入FIFO,然后 在下一个(Rx) LMFC边界开始输出数据。发射器的SERDES输入和接收器FIFO输出之间的这种已知关系称为确定性延迟 。
哪些方面会出错?
JESD204B可以说是一个复杂的接口标准,操作上有许多微妙之处。要找出不能正常工作的原因,需要对可能的情形有良好的了解:
检查电路板,不上电:
SYSREF和SYNC~信号应直流耦合。
在电路板未上电的情况下,检查从SYNC~源(通常来自FPGA或DAC)到SYNC~输入(通常是ADC或FPGA)的电路板SYNC~连接是否良好且具有低阻抗。
确保下拉或上拉电阻不是信号传输的主导因素,例如:值太小或短路就会导致无法正确驱动。
确认JESD204B链路的差分对走线(及电缆,若使用)匹配。
确认走线的差分阻抗为100 Ω。
检查电路板,上电:
如果SYNC路径中有一个缓冲器/转换器,确保它正常工作。
确认SYNC~源和板上电路(SYNC+和SYNC-,若为差分)配置正确,产生符合SYNC~接收器件要求的逻辑电平。如果逻辑电平不兼容,应检查源和接收配置以找出问题,否则,请咨询器件制造商。
确认JESD204B串行发送器和板电路配置正确,产生符合JESD204B串行数据接收器要求的正确逻辑电平。如果逻辑电平不兼容,应检查电路的来源和接收配置以找出问题。否则,请咨询器件制造商。
检查SYNC~信号:
如果SYNC~为静态逻辑电平,链路将停留在CGS阶段。可能是所发送的数据有问题,或者JESD204B接收器未对样本进行 正确解码。确认发送的是/K/字符,确认接收配置设置,确认SYNC~源,检查板电路,考虑过驱SYNC~信号并强迫链路进入ILAS模式,从而找出链路接收器和收发器问题。否则,请咨询器件制造商。
如果SYNC~为静态逻辑高电平,确认源器件是否正确配置了SYNC~逻辑电平。检查上拉和下拉电阻。
如果SYNC~脉冲变为高电平,然后返回逻辑低电平状态且持续时间少于6个多帧周期,则JESD204B链路会从CGS阶段前进 到ILAS阶段,但会停留在后一阶段。这可能意味着/K/字符正确,CDR的基本功能正常。请参阅"ILAS故障排除"部分。
如果SYNC~变为高电平且持续时间大于6个多帧周期,则链路 会从ILAS阶段前进到数据阶段,但会在后一阶段发生故障;相关故障排除提示请参阅"数据阶段"部分。
检查串行数据
确认收发器的数据速度和接收器的预期速率是否相同。
用高阻抗探头(如果可能,使用差分探头)测量通道;如果字符看起来错误,确保通道差分走线匹配,PCB上的返回路 径未中断,并且器件正确焊接到PCA上。与ILAS和数据阶段的(看似)随机字符不同,CGS字符很容易在示波器上识别(如果使用速度足够高的示波器)。
用高阻抗探头验证/K/字符。
如果/K/字符正确,则表示链路的收发器端工作正常。
如果/K/字符不正确,则表示收发器器件或电路板通道信号有问题。
若是直流耦合,确认发送器和接收器共模电压在器件的要求范围内。
根据实施情况,发射器共模电压范围可能为490 mV至1135 mV。
根据实施情况,接收器共模电压范围可能为490 mV至1300 mV。
确认数据通道上的发射器CML差分电压(注意,CML差分电压等于信号各侧电压摆幅的两倍)。
对于3.125 Gbps及以下的速度,发射器CML差分电压范围为 0.5 V p-p至1.0 V p-p。
对于6.374 Gbps及以下的速度,发射器CML差分电压范围为 0.4 V p-p至0.75 V p-p。
对于12.5 Gbps及以下的速度,发射器CML差分电压范围为 0.360 V p-p至0.770 V p-p。
确认数据通道上的接收器CML差分电压(注意,CML差分电压等于信号各侧电压摆幅的两倍)。
对于3.125 Gbps及以下的速度,接收器CML差分电压范围为 0.175 V p-p至1.0 V p-p。
对于6.374 Gbps及以下的速度,接收器CML差分电压范围为 0.125 V p-p至0.75 V p-p。
对于12.5 Gbps及以下的速度,接收器CML差分电压范围为 0.110 V p-p至1.05 V p-p。
如果存在预加重选项,应启用该选项并观察数据路径上的数据信号。
确认发射器与接收器的M和L值一致,否则数据速率可能不匹配。例如,M = 2且L = 2这种情况的预期串行接口数据速率是 M = 2且L = 1这种情况的一半。
确保进入发射器和接收器的器件时钟已锁相且频率正确。
链路参数冲突
确认链路参数未偏移1(许多参数规定为值减1)。
确认ILAS多帧传送正确,确认收发器件、接收器件和ILAS第二多帧传送的链路参数正确。
计算预期ILAS长度 (tframe, tmultiframe, 4 × tmultiframe),确认ILAS已 尝试大约4个多帧。
确认所有通道工作正常。确保不存在多通道/多链路冲突。
进入数据阶段但链路偶尔会复位(先返回CGS和ILAS阶段,再进入数据阶段):
周期性或带隙周期性SYSREF或SYNC~信号的建立和保持时间无效。
链路参数冲突。
字符替换冲突。
加扰问题(如果启用)。
通道数据损坏、噪声或抖动可能迫使眼图闭合。
杂散时钟或器件时钟的抖动过大。
关于排除链路故障的其他一般提示:
以允许的最低速度运行转换器和链路,这样就可以使用较容易获得的低带宽测量仪器。
设置允许的最少M、L、K、S组合。
可能时使用测试模式。
使用子类0来排除故障。
排除故障时禁用加扰。
本故障排除指南并未穷尽所有可能,但为使用JESD204B链路以及希望了解更多信息的工程师提供了一个很好的基本框架。
以上是JESD204B规范的概述,并提供了链路相关的实用信息。希望涉及到这一最新高性能接口标准的工程师能从中获益,并对排除故障有所帮助。