del jones adi公司
在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。
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所示。
多块可以是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个样本)。
图3.jesd204c多块和扩展多块的格式。
lmfs = 2.8.6.1
n = 12
n’ = 12
lmfs = 2.8.6.1
n = 12
n’ = 12
2 lanes
(l = 2)
2个通道
(l = 2)
8 converters
(m = 8)
8个转换器
(m = 8)
1 sample per
converter per
frame (s = 1)
每转换器每帧一个样本(s = 1)
12-bit
nibble group
(n’ = 12)
12位
半字节组
(n’ = 12)
6 octets per
lane (f = 6)
每通道6个
八位位组(f = 6)
adc7
d11…d0
adc7
d11…d0
nib. grp 3
半字节组3
cnv7smpl0
cnv7smpl0
lane1, octet 5
通道1,八位位组5
1 frame of data has 6 octets, so 2 more octets
needed from subsequent frame to fill the block
1个数据帧有6个八位位组,
所以需要从后续帧获取2个八位位组,以填充块
scramble
加扰
serialize/sh insert
序列化/sh插入
transport layer
传输层
64b/66b link layer
64b/66b链路层
图4.传输层映射,lmfs = 2.8.6.1,n’ = 12,e = 3。
图5显示了如何使用来自传输层的数据帧来形成块和多块。如图所示,可以看到帧边界与每三个块的块边界对齐。由于多块由32个块组成,所以要在第三个多块之后才能和多块对齐。因此,e = 3。
lemc是扩展多块计数器,大致相当于8b/10b链路层中的lmfc。sysref对系统中的所有lemc进行对齐,并使用lemc边界来确定同步和通道对齐。
scramble
serialize/sh insert
加扰
序列化/sh插入
block 0
sh
octet0
块0
sh
八位位组0
lane1, block0 contain sample 0 from converters 7:4, sample 1 from converter 4, and bits 11:8 of converter 5 sample 1. these 64 bits are scrambled to form a scrambled block of data.
通道1、块0包含来自转换器7:4的样本0、来自转换器4的样本1,以及来自转换器5样本1的位11:8。这些64位都已加扰,以形成加扰数据块。
lane0, block0 contain sample 0 from converters 3:0, sample 1 from converter 0, and bits 11:8 of converter 1 sample 1. these 64 bits are scrambled to form a scrambled block of data.
通道0、块0包含来自转换器3:0的样本0、来自转换器0的样本1,以及来自转换器1样本1的位11:8。这些64位都已加扰,以形成加扰数据块。
frame 0
帧0
block 2
块2
frame boundaries align with block boundaries on every third block.
帧边界与每三个块的块边界对齐。
frame 3
帧3
mb
mb
emb = 3
emb = 3
frame boundaries near a multiblock boundary occur at 33 and 63 – blocks, not aligned.
多块边界附近的帧边界出现在块33和63边界处,没有对齐。
serdout1±
serdout1±
multiblock and frame alignment occurs at the end of 96th block (block 95) and 128th frame (frame 127). so, e = 3.
多块和帧对齐出现在第96个块(块95)和第128个帧(帧127)的末端位置。因此,e = 3。
serdout0±
serdout0±
frame 127
帧127
图5.串行输出多块/帧对齐,lmfs = 2.8.6.1,n’ = 12,e = 3。
同步字
32位同步字由多块中32个块的每个同步头位组成,其中第一个传输的是位0。同步字用于提供通道同步,并使能确定性延迟。此外,它还可以选择性地提供crc错误校验、前向纠错,或者提供一个命令通道,供发射器与接收器通信。
32位同步字有三种不同的格式选项。在每种情况下,都需要多块序列的结束,因为它用于获得多块同步和通道对齐。
64b/66b链路操作
当使用64b/66b链路层时,链路的建立过程从同步头对齐开始,然后是扩展多块同步,最后是扩展多块对齐。
同步头对齐
同步头中的同步转换位确保在每个块边界(66位)都有一个数据转换。jesd204c接收器中的状态机检测到一个数据转换,在66位后再查找另一个转换。如果状态机检测到64个连续以66位间隔进行的位转换,则会实现同步头锁定(sh_lock)。如果没有检测到64个连续转换,则重新启动状态机。
图6.jesd204c扩展多块(通道)对齐。
扩展多块同步
一旦实现同步头对齐,接收器就会在转换位中查找扩展多块结束(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之后,会触发释放所有通道的接收缓冲区,所以现在所有通道都是对齐的。
错误监测和前向纠错
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通信、雷达和电子战应用都大有裨益。再加上纠错功能,先进的仪器仪表和其他应用都能够无错运行多年。
有关jesd204及其在adi公司产品中的实现的更多信息,请访问adijesd204串行接口页面。有关adi高速转换器的更多信息,请访问我们的rf转换器页面和28 nm rf 数据转换器页面。有关adi收发器产品的更多信息,请访问我们的radioverse页面。
作者简介
del jones是位于美国北卡罗来纳州格林斯博罗的高速转换器团队的应用工程师。他自2000年以来一直为adi工作,负责支持adc、dac和串行接口。加入adi之前,他曾在电信行业担任电路板和fpga设计工程师。del毕业于德克萨斯大学达拉斯分校,获电气工程学士学位。