问:什么是8b/10b编码,为什么JESD204B接口需使用这种编码?
答:无法确保差分通道上的直流平衡信号不受随机非编码串行数据干扰,因为很有可能会传输大量相反的1或0数据。通过串行链路传输的随机数据还可能长时间无活动状态,并在相对较长的时间内为全1或全0。
发生这种情况时,未编码串行数据流的直流平衡被隔离,产生两种极端情况中的一种。此时,若链路上再次传输有效数据,则很有可能发生位错误,因为线路重新开始偏置。另外,一个长期的问题是电子迁移,因为相对差分对的另一侧,会保持一侧的差分直流电压。为了克服这些问题,通常在差分串行数据流中(包括JESD204B)采用8b/10b编码方案。
8b/10b编码采用10个数据位,通过查找表方式从源端发送器发送8位初始信息。这种方式具有25%的固有开销(10b/8b = 1.25),效率较低。此外,编码允许每个10位符号传输至少3位(但不超过8位)数据。这样可确保接收器有足够的转换数据来恢复内嵌的时钟信息,而无论底层数据的动态活动状态如何。
使用8b/10b编码时,串行数据流中二进制0和1之间的偏差保持在±1以内,因此信号长期保持直流平衡。然后,必须在接收器端的数据流上执行10位到8位的反向解码,才能 利用反向查找表恢复原始数据。更为高效的64b/66b编码工作原理与此相似,但开销仅为3.125%。这种方式更为先进,可能会用于未来的JESD204发布版中。
问:我为转换器分配的JESD204B通道在系统板上无法顺利路由至FPGA。交叉对太多,非常容易受串扰影响。能否重新映射 JESD204B的通道分配,改善布局?
答:虽然转换器的JESD204B串行通道可能由数字、字母或其他术语指定其完整链路的特定关系,但这种关系并非一定要保持固定不变。规范允许在初始配置数据中重新映射分配关系,只要每个通道和器件都有独特的识别号即可。链路配置数据包含器件和通道识别号,可识别其操作。利用该信息,通过纵横式多路复用器,多通道发送器就可方便地重新分配任何数字逻辑串行数据至任何物理输出通道。
虽然这只是规范许可的一个可选功能,但如果ADC供应商 提供纵横式多路复用器功能,可将逻辑输出重新分配给物理输出,那么链路I/O就能重新配置为最佳顺序,为布局布线提供最大程度的便利。FPGA接收器可接收相同的初 始配置数据,并改变预期通道分配,恢复数据。有了这一功能,从一个器件到另一个器件的通道路由便简单得多,并可独立于硅片供应商在数据手册中分配的初始名称。
问:我正尝试在我系统中设计一个使用JESD204B多点链路的转换器。它与单点链路有何不同?
答:JESD204B规范提供称为“多点链路”的接口。它是一种连接三个或三个以上JESD204B设备的通信链路。取决于转换器的使用方式,相比单点链路,这种链路配置在某些情况下 更为有效。
比如,使用JESD204B的双通道ADC。大部分情况下,双通道ADC针对两个转换器提供单个时钟输入。它将迫使ADC以同样的频率进行模拟采样。但对于某些特定的应用而 言,这类器件也可能采用两个独立的输入时钟,每个时钟可单独驱动对应的ADC。这样,两个ADC之间便有可能产生采样相位差,甚至每个ADC单独以相互不相干的频率进行采样。在后一种情况中,单个JESD204B链路上存在来自所有两个转换器的数据,若不采用复杂的后端FIFO方案,则无法正常工作。
该问题的一种解决方案是让双通道转换器使用多点链路JESD204B接口,其中每个转换器都使用各自独立的串行链路输出。然后便可针对每个ADC使用非相干时钟,且每个串行链路的输出可方便地单独路由至独立的FPGA或ASIC。多点链路配置还可用于将单个FPGA的多路数据流发送至多个DAC。随着链路上器件数目的增加,在多点配置中最小化器件的时钟分布偏斜将会是非常具有挑战性的任务。
问:JESD204B中的确定延迟到底是什么?它是否就是转换器的总延迟?
答:ADC的总延迟表示其输入一个模拟样本、处理、并从器件输出数字信号所需的时间。类似地,DAC的总延迟表示从数字样本数据输入器件直到模拟输出相应样本的时间。通常,对这两者都以分辨率为采样时钟周期进行测量,因为它们与频率有关。这在原理上与JESD204B链路部署中描述 的确定延迟的定义有所不同。
JESD204B链路的确定延迟定义为数据从发送器(ADC或源端FPGA)的并行帧数据输入传播至接收器(DAC或接收端FPGA)并行去帧数据输出所需的时间。该时间通常以分辨率为帧时钟周期或以器件时钟进行测量(图1)。该定义不包括ADC的模拟前端内核或DAC的后端模拟内核。不仅两个 器件在这种延迟计算中作为函数使用,与两个器件接口的串行数据信号路由也将作为函数参与计算。这意味着确定 延迟在多转换器系统或多点链路中,可能大于或小于确定 延迟,具体取决于JESD204B通道的路由长度。接收器的缓冲器延迟有助于弥补路由造成的延迟差异。
问:JESD204B如何使用结束位?结束位存在的意义是什么?
答:JESD204B链路允许分配多于实际需要的信息空间,用来发送转换器数据和控制位。如果某个特定转换器或配置的数据未填满整个空间,则以定义中的结束位填充。例如,N' = 16的空间大于打包后的13位实际数据(N = 13 + CS = 0)。这种情况 下,将使用3个结束位填充未使用的数据空间(图2)。
结束位是无信息内容的伪数据位,仅用于完全填充未使用的空间。如果以重复静态值填充结束位,它们可能会产生干扰杂散噪声;但也可用来代表伪随机序列。发送器和接收器都必须根据链路配置了解这些位不含信息,从而接收器可方便地将它们从相关数据流中去除。
问:我的链路模式没有任何问题,但在正常工作模式下发送器不发送数据。在历代转换器中,低压差分信号(LVDS)和并行接 口允许对DAC或ADC的最低有效位(LSB)或最高有效位(MSB)进 行简单探测/调试,检查函数转换器是否正在工作。使用JESD204B接口时如何探测MSB或LSB?
答:这是JESD204B接口的少数几个弊端之一。对LSB或MSB I/O进行电探测以便查看转换器两个方向的链路上是否存在正确的活动并不容易。这是因为,采样数据以通道为单位进 行串行化,因此无法轻易电探测特定的加权数据位。然而,如果您希望快速了解转换器是否正在发送或接收任何有效数据(如果确实存在这些数据的话),那么依然可以采用某些方法实现。
某些示波器供应商提供实时数据处理以便串行解码8b/10b数据,并在示波器屏幕上显示未编码数据流。采用这种方法可以探测未加扰数据,从而确定链路上正在进行何种活动。 FPGA供应商提供内部探测软件工具,通过一个USB加密狗将其与计算机相连,为系统设计人员提供一种观察FPGA内发送和接收I/O数据的方法。另外,某些ASIC和转换器提供内部串行回送自测模式,可用于辨认链路上的数据问题。
问:假设其他链路参数已知,如何计算转换器的通道速率?
答:如果已知转换器、ASIC或FPGA的其他关键参数,则使用JESD204B的系统设计人员能方便地计算出链路的通道数或通道速率。所有基本链路参数都有如下所示的数学关系,可以据此计算未知变量。根据计算结果,系统设计人员能够在转换器或FPGA限定的架构内选择其他参数,改变链路操作。
通道速率 = (M × N' × [10⁄8] × Fs) ∕ L
其中: M表示链路上转换器的数量。
N'表示单个样本内信息位的数量(包括样本分辨率、控制和 结束位)。
Fs表示是器件或采样时钟。
L表示通道数。
通道速率表示单个通道的位速率。
10⁄8表示8b⁄10b编码的链路开销。
例如,考虑双通道ADC的情况:N' = 16,Fs = 235 MHz使用两个通道。什么是通道速率?
通道速率 = [2 × 16 × 1.25 × 235 MHz] ∕ 2
通道速率 = 4700 Mbps或4.7 Gbps
问:什么是应用层,它能做什么?
答:应用层是JESD204B提供的一种方法,允许样本数据映射到普通规格之外。这对于某些需要传送数据样本尺寸不同于链路N'的转换器模式而言非常有用。
使用应用层,可将链路上原本通道数较低或通道速率较小的低效率配置变得更为高效。发送器和接收器都需要进行配置才能了解特定的应用层,因为特定的转换器模式会定制或有针对性地对应用层进行设计。图3显示了一个示例,其中5个样本被分配到通常仅能为4个样本所占据的空间。
使用上一个问题中的等式进行应用层计算时,需使用有效N' 而非实际N'。例如,下文所示的应用层示例中,虽然实际的JESD024B样本N'参数为16,但可算出ADC样本的有效N', 因为该例中以64位发送5个样本。因此,Ne = 64/5 = 12.8。
由于其他变量保持不变,通道速率将下降20%:
Ne ∕ N' = 12.8 ∕ 16 = 0.8。
问:前景如何?
答:随着JESD204B在数据转换器市场上的不断普及,FPGA平台对知识产权(IP)的保护能力将推动这种趋势。虽然这项威廉希尔官方网站
更为复杂,但由于更多的工程师开始使用JESD204B来设计新系统,未来有关这一话题的讨论还将继续。
|