High Speed Serdes 技术概述(二)-FPGA常见问题社区-FPGA CPLD-ChipDebug

High Speed Serdes 技术概述(二)

1.3 高速Serdes

高速串行器/解串器(HSS)设备是速度为2.5Gbps及以上的I/O接口的主要实现方式。这种设备与源同步接口的区别在于,接收设备包含一个时钟和数据恢复(CDR)电路,该电路根据发送信号的边缘动态地确定数据信号的最佳采样点。换句话说,时钟信息是直接从数据中提取的,而不是依赖一个单独的时钟。

 

图片[1]-High Speed Serdes 技术概述(二)-FPGA常见问题社区-FPGA CPLD-ChipDebug

图1.8 典型高速serdes的基本框图

 

图1.8说明了HSS设备的发送和接收通道的基本框图。发送器将并行数据串行化,并对其进行均衡化,其原因将在不久后解释,然后将串行数据输出到互连线(信道)的差分信号对。前馈均衡器(FFE)通常用于高速串行设备,这一点在第1.3.2节中讨论。接收器由差分接收器和CDR电路组成,CDR电路也可以集成一个均衡器,并根据CDR建立的采样点对数据进行反序列化(解串)。峰值放大器和/或决策(裁决)反馈均衡器(DFE)通常用于高速Serdes接收装置的均衡。

 

请注意,通常把多个发送和/或接收通道的Serdes核心集成到一个设备中(一个区域)。各个通道通常独立运行。分组通道允许一些电路跨通道共享(例如下面提到的PLL),因此所产生的模块在芯片面积、成本和功率方面更有效率。

 

只包含发送或只包含接收通道的Serdes核被称为单工核;同时包含发送和接收通道的Serdes核被称为全双工核。请注意,术语”全双工”并不意味着电气接口是双向的。任何给定的电气互连通道都有一个固定的数据传输方向。如果一个协议应用需要”全双工”通信,那么就用独立的发送和接收互连(信道)来实现接口。使用单工与全双工核心的理由可能包括:

(1) 芯片布图规划,以尽量减少封装设计或电路板设计中的布线交叉;(2)由于发送信号对接收信号的近端串扰而产生的信号完整性问题;(3)或发送和接收通道数量不相等的应用。

 

本节的其余部分一般性地详细描述了上面提到的各种电路,并对高速Serdes核中常见的其他电路和功能进行了一般性描述。

1.3.1 Serializer/Deserializer

从概念上讲,输入到串行器发射器的是一个n位数据通路,它被串行化为一个1位的串行数据信号,以应用到FFE和驱动输出设备。一般来说,n的值是8或10的倍数,这个数值在某些应用上可能是可编程的。8的倍数的n值对要发送但未编码或未加扰的数据字节很有用;10的倍数的n值对使用8B/10B编码的协议很有用(8B/10B编码器通常由Serdes核心以外的逻辑实现)。

 

为简单起见,图1.8中的框图说明了串行器将一比特数据送入发送模块的均衡模块。实际实现可能有所不同,这个数据通路可能是一个或几个比特宽。如果通过均衡器模块有更宽的数据通路会导致更复杂的设计,但需要更低的工作频率。一些实施方案可以在均衡器之前将n位输入复用到m位数据通路(m<n),并在驱动器发送信号阶段执行剩余的串行化。

 

串行化阶段以波特率/n的频率锁存n位输入的数据。Serdes中的高速时钟被分频为更低时钟频率,以产生一个用于并行数据的采样时钟。因为这个时钟的相位是由串行器的内部状态决定的,Serdes通道一般将这个时钟作为一个输出,供逻辑驱动数据到发送通道使用。

 

从概念上讲,反序列化(解串)接收块执行的是序列化块(串行)的逆向功能。串行数据被解串到一个宽度与串行器相似的n位数据总线上。通过对内部高速时钟进行分频,产生一个采样时钟,这个时钟被作为输出,供逻辑锁存并行数据使用。以类似于串行器的方式,实际的实现可以在前一阶段进行部分解串。

 

许多Serdes接收器还包括一个功能,以协助输出的数据对齐。大多数应用将数据组织成字节或字(字节组)。对于8B/10B编码的应用,数据被组织成10位编码的符号。解串器中的时钟分频器的初始化是任意的,在并行数据总线上收到的数据将有一个任意的排列,不太可能与协议的字节或符号边界相匹配。这可以通过下游逻辑来纠正,将数据引导到适当的字节、符号或字边界。另外,许多Serdes接收器提供了一个输入,迫使解串器 “滑动”一个比特。下游逻辑检测数据没有对准适当的边界,并反复触发解串器控制,直到数据”滑落”到所需的对准。

1.3.2 均衡器

发送器和接收器设备之间的互连(也称为信道)在典型的波特率下起着滤波器的作用,并在不同程度上扭曲了串行数据信号。图1.9说明了这种失真。输入的波形是一个干净的数字信号,但输出的波形却明显失真。图示信道的频率响应函数是一个低通滤波器的特征。发生信号失真是因为信号波特率高于该滤波器的截止频率。

 

图片[2]-High Speed Serdes 技术概述(二)-FPGA常见问题社区-FPGA CPLD-ChipDebug

图1.9 典型通道应用的信号失真

 

对信号完整性的关注常常要求数据信号在发送器和/或接收器处被均衡化,以抵消信道的影响并正确解码信号。图1.10说明了在发射器处增加一个均衡器,其传递函数大致为信道频率响应的逆值。这个均衡器扭曲了发射器输出的信号,从而使接收器输入的信号是一个干净的波形。

 

图片[3]-High Speed Serdes 技术概述(二)-FPGA常见问题社区-FPGA CPLD-ChipDebug

图1.10 发送器均衡的典型信道应用

 

大多数Serdes发射器的实现包括一个FFE。图1.11显示了一个三抽头FFE的框图。串行数据信号被几个触发器延迟,这些触发器实现了滤波器的抽头。每个抽头被乘以一个抽头权重值(也叫滤波器系数),结果被加起来并驱动到串行数据输出。

 

滤波器上FFE抽头的数量,这些抽头相对于波特率的间隔,以及这些抽头权重值的颗粒度,都根据实现情况而变化。术语预加重(preemphasis)或去加重(deemphasis)是指FFE结构,表示数据信号的振幅与FFE抽头的非强调值相比是增加还是减少。术语前导抽头(precursor taps)和后置抽头(postcursor taps)是指 FFE 滤波器抽头是对相对于 t = 0 抽头的超前信号还是延迟信号(分别)进行操作。波特间隔抽头定义为从一个滤波器抽头到相邻抽头的延迟为一位时间间隔的抽头;抽头的分数间隔也是可能的。

 

图片[4]-High Speed Serdes 技术概述(二)-FPGA常见问题社区-FPGA CPLD-ChipDebug

图1.11 三抽头前馈均衡器操作

 

选择FFE抽头权重是为了生成一个具有信道传递函数的反传递函数的滤波器。有各种算法来确定最佳的FFE系数值;有些算法选择滤波器系数以使接收端的信号振幅最大化,而另一些则是优化眼宽(即,最小化抖动)。更复杂的算法可以搜索振幅和抖动之间的最佳平衡,以优化一个更复杂的参数(如预测误码率)。在许多应用中,FFE抽头权重是通过设计确定的,并在系统软件中设定为固定值,然而,在一些应用中,FFE抽头权重由协议根据接收器的信号特性动态调整。

 

如图1.12所示,均衡也可以在接收器处进行。尽管在接收器的输入端有信号失真,但这个均衡器可以纠正失真并产生一个干净的波形。对于低速或低损耗链路,最普遍的方法是使用峰值放大器的某些变体。峰值放大器电路对高频信号分量的放大比对低频分量的放大更大。如果峰值量与高频损耗(高频和低频之间的差异)相匹配,那么信道就会被均衡,眼图就会被打开。一些Serdes设备允许可编程的峰值水平;这种峰值放大器在各种规定设置下的频率响应如图1.13所示。

 

图片[5]-High Speed Serdes 技术概述(二)-FPGA常见问题社区-FPGA CPLD-ChipDebug

图1.12 接收端均衡的典型信道应用

 

图片[6]-High Speed Serdes 技术概述(二)-FPGA常见问题社区-FPGA CPLD-ChipDebug

图1.13 峰值放大器设置的接收器频率响应

 

对于更高的波特率,信道的传递函数可能会导致抖动(jitter)超过数据的位宽,并在更高的频率下造成信号振幅的显著损失。DFE 级通常包含在这些波特率的接收器中,以便在“关闭”眼图的情况下恢复数据。

 

DFE 电路的概念框图如图 1.14 所示。串行数据信号被施加到限幅器电路,该限幅器电路决定输入信号是“0”还是“1”。接收到的串行数据随后被多个执行滤波器抽头的触发器延迟。每个抽头乘以相应的抽头权重值,并将结果相加。然后使用该总和来校正输入信号的幅度,从而影响限幅器电路做出的决定。因此,限幅器决策受到基于接收到的先前数据的反馈的影响。虽然图 1.14 中未显示,但一些 DFE 架构使用反馈来影响限幅器电路的幅度和采样时间。此类架构基于有关接收到的最后几个位的反馈,逐位调整 CDR 采样时间。

 

图片[7]-High Speed Serdes 技术概述(二)-FPGA常见问题社区-FPGA CPLD-ChipDebug

图1.14 决策反馈均衡器架构

 

就像FFE电路一样,滤波器上DFE抽头的数量,这些抽头相对于波特率的间隔,以及这些抽头权重值的颗粒度都是不同的。DFE的实现通常也包含训练DFE的逻辑,并将DFE抽头权重动态地设置为最佳值。

 

使用 DFE,图 1.5b 中所示的闭合眼被清理以产生图 1.15 中所示的虚拟眼。请注意,此图中的眼图是由 DFE 架构产生的,该架构可逐位校正 CDR 采样时间。DFE 校正仅对一个时间实例有效(基于先前位的历史记录)。因此,一旦 DFE 决定该位是“0”还是“1”,DFE 就会继续对下一个位时间进行调整,这些调整对于复合波形的各种信号轨迹来说是不同的。出于这个原因,图中所示的信号眼对相关的位是打开的,但对于相邻的位似乎没有打开。

 

图片[8]-High Speed Serdes 技术概述(二)-FPGA常见问题社区-FPGA CPLD-ChipDebug

图1.15 均衡后的虚拟眼

 

存在许多关于均衡器结构的变化。随着波特率的增加,均衡器结构变得越来越复杂。在某些情况下,协议标准规定了所需均衡器功能的基本水平。

1.3.3 时钟和数据恢复(CDR)

从概念上讲,CDR电路监测数据信号的转换,并在边缘之间的中间点为数据选择一个最佳采样阶段。由于数据转换的时间包括抖动成分,CDR必须进行一些平均化,以提供从一个比特到下一个比特的这个采样点的稳定性。符号间干扰(Intersymbol interference/ISI)和确定性抖动(deterministic jitter/DJ)的其他成分取决于数据信号的频谱内容,而这个频谱确实基于数据内容而变化。这个频谱的变化持续了数百位或更多,会让CDR动态地调整最佳采样相位。

1.3.3.1 最大运行长度

Serdes的一个重要参数主要是CDR设计的结果,即在CDR的采样点有错误采样的风险之前,可以接收到的最大连续”0 “或”1″位数。相同值的连续比特的过长运行意味着CDR没有检测到任何数据转换,因此不能恢复任何时钟信息以确保数据继续在“眼”的中心被采样。采样点相对于数据波特率的微小漂移可能导致CDR采样的 “0 “位或”1″位比实际传输的多。另外,当数据转换恢复时,采样点可能需要重新定位,当这种调整发生时,额外的比特可能被错误地采样。一些CDR实施方案将接收数据驱动到一个PLL,并使用PLL的输出作为采样时钟;PLL的时钟输出可能会影响CDR系统。当这些CDR在持续的时间内没有收到数据转换时,接收器可能会改变频率或停止。

 

必须容忍的连续 “0 “或”1″位的最大运行长度取决于协议应用和为特定协议定义的数据编码。例如,使用8B/10B编码的协议,保证数据转换之间的时间不超过5位。使用另一种常见编码的协议,64B/66B,保证运行长度不超过66位时间。加扰协议可能会遇到更长的运行长度,必须使用统计分析确定要求。对于例如,Sonet/SDH是一个加扰协议,规定系统必须满足1×10(-12)的误码率。人们普遍认为,从统计学上看,加扰的Sonet/SDH数据的运行长度超过80比特的频率要低于指定的误码率。因此,用于接收Sonet/SDH数据的Serdes必须能容忍80比特的运行长度。

 

CDR设计可以容忍的运行长度与两个时钟源之间的频率公差有关。在一个使用多同步时钟的系统中,接收器(和CDR电路)使用的参考时钟的运行频率可能与发射器使用的参考时钟略有不同,这将在以后进一步描述。两个时钟源之间的频率公差通常以百万分率(ppm)为单位规定。在多同步系统中,CDR必须不断修正采样时钟的相位以保持在数据眼的中心。在没有接收到数据转换的时期,相位的误差会增加。因此,随着系统频率容限的增加(对应于时钟源之间较大的允许频率差),在给定的性能(误码率/BER)目标下,CDR设计所能容忍的运行长度会减少。

1.3.3.2 系统初始化期间的时钟操作

在上面的讨论中,我们注意到一些CDR架构使用PLL从接收到的数据中获取采样时钟。在系统初始化期间或在拔掉电缆等的系统运行期间,在相当长的时间内没有收到数据转换。对于某些Serdes,这导致接收器的时钟输出改变频率或停止。任何由这些时钟输出时钟化的下游逻辑必须被设计成能够容忍这种频率变化,或者假定在这些期间逻辑没有被时钟化。

 

图片[9]-High Speed Serdes 技术概述(二)-FPGA常见问题社区-FPGA CPLD-ChipDebug

点个 在看你最好看

图片[10]-High Speed Serdes 技术概述(二)-FPGA常见问题社区-FPGA CPLD-ChipDebug
请登录后发表评论

    没有回复内容