前言
许多行业的数据密集型应用持续突破界限,需要快速高效地传输有效载荷数据。5G通信网络系统要求基础设施及其连接器件具有更大带宽。在航空航天和防务行业中,这相当于雷达应用和复杂数据分析仪器要在更短的时间内处理更多信息。相应地,对快速增长的高带宽进行测试与分析便意味着需要使用速度更快、容量更大的电子测试设备。
对数据不断增长的需求导致JEDEC固态技术协会需要引入新的JESD204标准,以实现数据转换器和逻辑器件之间的高速串行链路。该标准B版于2011年发布,串行链路数据速率提高至12.5Gbps,并确保了从一个供电周期到下一个供电周期有确定性延迟,同时满足当时基于转换器的应用的更高带宽需求。该标准的最新版本JESD204C于2017年底发布,以继续支持当前和下一代多千兆数据处理系统性能要求的上升趋势。
JESD204C 小组委员会为该标准的新修订版制定了四个高水平目标:提高通道速率以支持更高带宽应用的需求,提高有效载荷传输的效 率,改进链路稳健性。
此外,他们希望编写一个比JESD204B更清晰的规范,同时修复该版本标准中的一些错误。他们还希望提供向后兼容JESD204B的选项。完整的JESD204C规范可通过 JEDEC获得。
本入门文章由两部分组成,旨在介绍JESD204C标准,着重说明其与JESD204B的不同之处,并详细阐明为达成上述目标、提供对用户更友好的接口、实现各行各业的带宽能力需求而引入的关键新特性。本系列的第一部分概述版本差异和新特性,第二部分将深入探讨最重要的新特性。
JESD204C变化总结
JESD204C规范通过合理的章节架构提高了可读性和清晰性,包括五个主要部分。“引言和通用要求”部分涵盖了适用于实施方案所有层的要求。针对物理、传输和各数据链路层(8b/10b、64b/66b和64b/80b)的部分涵盖了专门适用于实施方案这些层的要求。
标准中引入了几个新术语,主要与新的64b/66b和64b/80b链路层以及这些链路层的新同步过程相关。虽然传输层与JESD204B无异,但物理层发生了相当大的变化。上述变化、时钟和同步的细微变化以及前向纠错(FEC)的增加,都会在以下部分中加以总结。
新术语
JESD204C引入了几个新术语和配置参数,主要用于描述与64b/66b和64b/80b链路层相关的功能。表1列出了最相关的一些术语和参数,以及每个术语和参数的简要说明。后续部分会对此做进一步说明。
表1. 新术语和参数
传输层
JESD204C的传输层与JESD204B相同。传输层中组装的数据帧以8个八位字块的形式通过链路发送。对标准这一部分的章节结构、文本和图片有所更改,以提高清晰性。
由于64位编码方案本身的一些特性,在有些配置中,帧边界会不与块边界对齐(帧可能不是恰好包括八个八位字)。详细信息及其含义将在本系列的第二部分中说明。
数据链路层
如前所述,该标准有两个主要部分涵盖不同的数据链路层方案。JESD204标准先前版本中的8b/10b编码方案,包括使用SYNC~引脚和使用K.28字符进行同步、通道对齐、错误监控,作为向后兼容选项保持不变。
但从长远来看,大多数应用可能会使用JESD204C中新增的64位编码方案中的一种。基于IEEE 802.3的64b/66b编码方案能提供最高效率。虽然称其为编码方案,但实际上并没有任何编码(比如类似于8b/10b的编码)。
该方案仅在64位有效载荷数据前添加了两个报头位。由于这种情况,必须进行加扰,以便保持直流平衡并确保有足够的数据变化,从而使得JESD204C接收器中的时钟和数据恢复(CDR)电路 能够可靠地恢复时钟。
本系列的第二部分将对此进行更详细说明。此外还增加了64b/80b选项,其时钟比与8b/10b方案相同,而且允许使用前向纠错等新特性。两种64位编码方案都不兼容JESD204B中使用的8b/10b编码。
物理层
JESD204C已将通道速率上限提高到32Gbps,而早期版本中确定的312.5Mbps下限保持不变。JESD204B的上限为12.5Gbps。
虽然并未严格禁止,但建议不要将8b/10b编码用于16Gbps以上的通道速率;对于6Gbps以下的通道速率,也建议不要使用64b方案。
JESD204C引入了两个分类来定义物理接口的特性。
表2列出了与每类相关的通道速率。表3列出了C类中的通道类型以及相关的加重和均衡特性。
表2. 数据接口类对应的通道数据速率
表3. JESD204C 32 Gbps接口器件类特性
JESD204C还引入了JESD204通道工作裕量(JCOM)的概念,用于确认是否符合C类物理层标准。这种工作裕量计算是对应用B类物理层实施方案(标准的该版本和先前修订版有说明)的眼图模板的补充。
时钟和同步
JESD204C将保留使用JESD204B中定义的SYSREF和器件时钟。但是,当使用任一种64位编码方案时,SYSREF不是对齐LMFC,而是用于对齐本地扩展多块时钟(LEMC),以提供一种实现确定性延迟和多芯片同步的机制。
64位编码方案的同步过程与JESD204B中使用的完全不同。SYNC信号已被去掉,同步初始化和错误报告现在将在应用层软件中处理。
因此,新版本没有码组同步(CGS)或初始通道对齐序列(ILAS)。同步报头同步、扩展多块同步和扩展多块对齐是与同步相关的用于描述同步过程的新术语。这些同步阶段中的每一个 都是使用32位同步字实现。
本系列的第二部分将对此加以详细讨论。
请注意,对于8b/10b编码,SYNC引脚和ILAS均予以保留。
确定性延迟和多芯片同步
如上所述,实现确定性延迟和多芯片同步的机制大部分与JESD204B相同。当使用64位编码方案中的一种时,没有子类2选项,仅支持子类1操作,SYSREF信号用于对齐JESD204子系统中所有器件的LEMC。
前向纠错
为了实现在更高通道速率下提供更稳健链路的目标,JESD204C 包含了FEC选项。该算法基于法尔码(fire code),对仪器仪表应用可能特别有用。这是一项可选特性,仅在使用64位编码方案之一时才可使用。
法尔码是纠正单突发错误的循环码。循环码的优点是其码字可以表示为有限域上的多项式,而非向量。法尔码使用的校验子(syndrome)可分为两部分以支持更快速解码。
第二部分
在JESD204C入门系列的第1部分中,通过描述它解决的一些问题,对JESD204标准的新版本进行了说明。通过描述新的术语和特性来总结B和C版本标准之间的差异,然后逐层概述这些差异。
因为第1部分已经奠定了理解基础,现在我们来进一步研究一下JESD204C标准几个更值得注意的新特性。
64b/66b和64b/80b链路层
对于64b/66b链路层,66位数据块由两个同步头位,后接八个八位位组的样本数据组成,其中部分是基于IEEE 802.3第49条定义的数据块格式。与IEEE标准不同的是,它没有编码——有效载荷数据只是转换器样本数据,由传输层打包到数据帧中。
由于没有编码来确保发生一定数量的数据转换来提供dc平衡,因此必须对样本数据进行加扰。这些加扰的八位位组的帧数据被直接放入链路层,两个同步头位附加在其中。
64b/66b数据块的格式如图1所示。该示例展示了这样的情况:一个数据通道由帧组成,每个帧包含来自一个转换器的一个样本。块映射规则与来自JESD204B标准的帧映射规则非常相似。
按顺序完成八位位组到64位数据块的映射,其中D0表示帧的第一个八位位组。例如,如果F = 8,D0表示JESD204C帧的第一八位位组,D7表示JESD204C帧的最后一个八位位组。该帧的第一个八位位组的MSB是Converter0的Sample0的MSB(与JESD204B一样)。例如,如果F = 2,D0和D1代表第一个帧,D2和D3代表第二个帧,以此类推。
为了与JESD204B中使用的方法保持一致,多块中的八位位组按MSB到LSB的顺序被转移到加扰器/解扰器中。
在E = 1的情况中,每个多块都从帧边界开始。如果E > 1,扩展多块将从(必须从)帧边界开始。有关更多信息,请参考多块 (MB)和扩展多块(EMB)章节。
图1. 64b/66b数据块格式示例,LMFS = 1.1.2.1,N = N’ = 16
同步头是一个2位未加扰值,位于每个数据块的开始位置,其内容经过解析之后,用于解码单个同步转换位。这些位要么采用0-1序列,表示逻辑1,要么采用1-0序列,表示逻辑0。表1列举了同步头的转换位值。
表1. 同步头位值
64b/80b数据块的格式如图2所示。除了样本数据的八个八位位组和两个同步头之外,还具有两个填充位,位于每个八位位组之间。
填充位的值由17位PRBS序列决定,以减少杂散,并确保适当数量的数据转换以保持dc平衡。未加扰的填充位在样本数据加扰之后插入到块中。
图2. 64b/80b数据块格式示例,LMFS = 1.1.2.1,N = N’ = 16
提供64b/80b选项是为了与8b/10b保持相同的时钟比,帮助简化锁相环(PLL)设计,同时最小化杂散。对于希望通过使用前向纠错或利用同步字提供的其他功能的应用,相比8b/10b,更应该选择64b/80b,稍后将就这一问题进行详细讨论。
多块(MB)和扩展多块(EMB)
JESD204C多块中包含32个块。每个多块中的32个同步转换位构成一个32位同步字。稍后,我们将就此进行详细讨论。扩展多块是一个E多块容器,必须包含整数数量的帧。当多帧不包含整数数量的帧时,要求E > 1。多块和扩展多块的格式如图3所示。
图3. JESD204C多块和扩展多块的格式
多块可以是2112(32×66)位,或者是2560 (32×80)位,具体由所用的64位编码方案决定。对于大多数场景,扩展多块只是一个多块。
JESD204C中引入了E参数,确定了扩展多块中的多块数 量。E的默认值为1。如上所述,当帧F中的八位位组的数量不是2的倍数时,该配置要求E > 1。E的公式为:E = LCM(F, 256)/256。发送12位样本且N’ = 12时,一般选择这些配置,以最大化链路中的带宽效率。这一要求确保EMB边界与帧边界一致。
图4和图5所示为E > 1的JESD204C配置示例。所示的JESD204C配置适用于以下情况:LMFS = 2.8.6.1,N’ = 12,E = 3。
图4显示了传输层的映射情况。在这个配置中,每个通道有4个12位样本,相当于6个八位位组。由于多块的每个块都需要8个八位位组,因此该块中填充了来自后续帧的2个八位位组(1.33个样本)。
图4. 传输层映射,LMFS = 2.8.6.1,N’ = 12,E = 3
图5显示了如何使用来自传输层的数据帧来形成块和多块。如图所示,可以看到帧边界与每三个块的块边界对齐。由于多块由32个块组成,所以要在第三个多块之后才能和多块对齐。因此,E = 3。
图5. 串行输出多块/帧对齐,LMFS = 2.8.6.1,N’ = 12,E = 3
LEMC是扩展多块计数器,大致相当于8b/10b链路层中的LMFC。SYSREF对系统中的所有LEMC进行对齐,并使用LEMC边界来确定同步和通道对齐。
同步字
32位同步字由多块中32个块的每个同步头位组成,其中第一个传输的是位0。同步字用于提供通道同步,并使能确定性延迟。此外,它还可以选择性地提供CRC错误校验、前向纠错,或者提供一个命令通道,供发射器与接收器通信。
32位同步字有三种不同的格式选项。在每种情况下,都需要多块序列的结束,因为它用于获得多块同步和通道对齐。表2和表3显示了两个最常见用例中可用的不同位字段。
表2. CRC-12同步字
表3. FEC同步字
64b/66b链路操作
当使用64b/66b链路层时,链路的建立过程从同步头对齐开始,然后是扩展多块同步,最后是扩展多块对齐。
同步头对齐
同步头中的同步转换位确保在每个块边界(66位)都有一个数据转换。JESD204C接收器中的状态机检测到一个数据转换,在66位后再查找另一个转换。
如果状态机检测到64个连续以66位间隔进行的位转换,则会实现同步头锁定(SH_lock)。如果没有检测到64个连续转换,则重新启动状态机。
扩展多块同步
一旦实现同步头对齐,接收器就会在转换位中查找扩展多块结束(EoEMB)序列(100001)。同步字的结构确保此序列只能在适当的时间发生。
一旦确定EoEMB,状态机将检查每32个同步字,以确保存在多块结束导频信号(00001)。如果E = 1,EoEMB位也会存在导频信号。
如果E > 1,那么每个E × 32转换位,导频信号都将包含EoEMB位。一旦检测到四个连续的有效序列,就可以实现扩展多块结束锁定(EMB_LOCK)。继续监测每个E × 32转换位,如果没有检测到有效的序列并重置对齐过程,则EMB_LOCK丢失。
扩展多块(通道)对齐
使用64b/66b链路层时的通道对齐与使用8b/10b链路层时的通道对齐非常相似,每个通道上的JESD204C接收器都使用一个弹性缓冲区来存储传入的数据。
这被称为扩展多块对齐,缓冲区开始在EoEMB边界(而不是在使用8b/10b链路层时ILAS期间的/K/至/R/边界)存储数据。图6说明了如何实现通道对齐。
每个通道的接收缓冲区在接收到EoEMB的最后一位之后开始缓冲数据(最后一个接收通道除外)。接收到最后一个接收通道 EoEMB之后,会触发释放所有通道的接收缓冲区,所以现在所有通道都是对齐的。
图6. JESD204C扩展多块(通道)对齐
错误监测和前向纠错
JESD204C同步字选项让用户能够监测或纠正JESD204数据传输中可能发生的错误。纠错会导致额外的系统延迟。对于大多数应用,使用CRC-12同步字进行错误监测是可行的,因为它提供了大于 1 × 10–15的误码率(BER)。
JESD204C发射器中的CRC-12编码器接收每个多块的加扰数据位,并计算12个奇偶校验位。这些奇偶校验位在随后的多块中传输到接收器。
接收器同样将从接收到的每个数据多块中计算12个奇偶校验位,并与同步字中接收到的位进行对比。如果所有奇偶校验位都不匹配,则接收到的数据中至少存在一个错误,可以触发错误标志。
对于对额外延迟不敏感但对错误敏感的应用(例如测试和测量设备),使用FEC可以得到优于10 × 10–24的误码率。
JESD204C发射器中FEC电路计算多块中已加扰数据位的FEC奇偶校验位,并在下一个多块的同步头位流上对这些奇偶校验位编码。
接收器计算接收位的校验子,本地生成的奇偶校验位和接收到的奇偶校验位之间的差异就在于此。如果校验子为0,则假定接收到的数据位正确。如果校验子非0,则可以用它来确定最可能的错误。
FEC奇偶校验位的计算方法与CRC相似。FEC编码器接收多块的 2048 位加扰数据位,并添加26位奇偶校验位,以构建一个缩短的二进制循环码。该码的发生器多项式为:
对于每个多块,这个多项式可以纠正最多9位突发错误。
总结
为了满足未来几年数据密集型应用更快处理数据的需求,JESD204C将多千兆位接口定义为数据转换器和逻辑器件之间必需的通信通道。
高达32 GSPS的通道速率和64b/66b编码使超高带宽应用能以最小的开销来提高系统效率。这些和其他标准改进对于5G通信、雷达和电子战应用都大有裨益。再加上纠错功能,先进的仪器仪表和其他应用都能够无错运行多年。
本文转载自: FPGA技术联盟微信公众号