前文简要介绍了GTX的发送通道、接收通道和时钟结构,过程中讲到了眼图、预加重、去加重、DFE等概念,当并未对其详细讲解,本文就对这些概念进行简要讲解,文中参考了B站很多示波器厂家测试高速信号的内容。 01眼图 通常用示波器观察接收信号波形的眼图来分析码间串扰和噪声对系统性能的影响,从而估计系统优劣程度,因而眼图分析是高速互连系统信号完整性分析的核心。 另外也可以用此图形对接收滤波器的特性加以调整,以减小码间串扰,改善系统的传输性能。 首先需要了解一下什么是码间串扰,如下图所示,本来发送端传输的序列是二进制1011,由于信道传输过程中的干扰,最终效果如下。 从第二个数据(码元)开始,每个码元都会受到前后码元的影响,导致抽样点不仅有本码元的值,还有前后码元值的干扰。 图1 码间串扰下图是在网上找的一张示波器的眼图测试结果。 图2 示波器眼图 形成眼图的原理如下所示,眼图是通过测量三bit数据的采样结果,绘制而成的图形。 下图左侧表示三位二进制数据的各种采样结果,在实际传输中,边沿不是是垂直的,会有一定弧度。最终将左侧的8种状态叠加,得到右侧的波形图,被称为眼图。 图3 眼图原理 眼图的中间部分被称为眼睛,眼睛张开越大,表示上升沿和下降沿变化的越快,码间串扰越小。在实际测试中,主要关心眼图的眼高和眼宽。 图4 眼图 可以根据眼图的结果,去判断码间串扰和噪声对系统的影响,下图左侧是没有串扰的示波器眼图,右侧是有串扰的示波器眼图。 图5 有无码间串扰的眼图 02加重 首先需要知道为什么高速信号在发送端需要做加重处理,是因为信号在传输的过程中有衰减? 如果信道对所有频率分量的衰减是相同的,或者信道传输的是单频的正弦波,那么是不需要做加重、均衡等处理的,接收端只需要减小门限电压就行了。 然而信道对各个频段信号的衰减程度是不一样的,类似低通滤波器,对传输的高频分量衰减的比较大。另一个原因在于信道传输的信号是方波信号,含有多个频率分量,而高频分量衰减幅度很大,从而需要在发送端去通过加重来补偿信道的衰减。 如下图所示,左侧发送端的眼图比较标准,但是经过实际传输后,到达接收端时,眼图变得很混乱,已经无法准确采集信号。 图6 高速信号传输 如下图所示,上边没有进行预加重的信号在发送端的眼图虽然比较好,但是经过PCB传输之后,接收端的眼图已经闭合了。而经过加重处理的信号,在发送端的眼图虽然不好看,但是经过PCB传输后,在接收端眼图还是存在的,只不过指令不怎么好。 图7 加重改变接收端眼图质量 加重是一种在发送端对输出信号高频分量进行补偿的信号处理方式,分为预加重(Pre-Emphasis)和去加重(De-Emphasis),目的都是尽量平衡高频分量和低频分量,减少传输链路对高频分量衰减大于低频分量对最终结果的影响。 预加重(Pre-Emphasis):保持信号低频分量幅度不变,增强信号的高频分量。由于信号的高频分量主要集中在上升沿和下降沿,因此就是增大上升沿和下降沿处的幅度。 去加重(De-Emphasis):保持信号的高频分量幅度不变,衰减信号的低频分量,即减小电平的幅度。 图8 加重原理 预加重(Pre-Emphasis)和去加重(De-Emphasis)区别在于去加重(De-Emphasis)的最大摆幅是恒定的,而预加重(Pre-Emphasis)的最大摆幅与加重有关。 如下图所示,是一个12Gb/S的信号,经过板卡传输前后的眼图信号,左侧表示发送端的眼图,右侧表示经过板卡传输后接收端的眼图,接收端的眼图已经完全闭合了。 图9 眼图扫描 在上述信号的发送端进行预加重处理,如下图所示,左侧是发送端原始眼图,中间是预加重之后眼图,最大电压由600mv增大到1V以上了,右侧是接收到的眼图。 图10 预加重处理 如下图所示,在发送端使用去加重,中间是经过去加重处理后的眼图,最大电压减小到400mv,而右侧是接收端的眼图信号,依旧能够使眼睛睁开。 图11 去加重 处理加重的原理如下所示,Feed-Forward Equalizer(FFE)前向反馈均衡器,原理类似于FIR滤波器。前后多个bit的输入电压乘以抽头系数(校准因子),校准当前bit的输出电压。 图12 FFE C0表示当前位的抽头系数,控制信号的幅度,而C-n前n位的抽头系数,C+n后n位的抽头系数,发送端最常用的是3个抽头系数的加重。 使用上述参数来设置FFE的参数会比较麻烦,一般会使用Pre-Cursor和Post-Cursor来设置加重的参数。 Pre-Cursor是跳变沿的前一bit幅度与值为1或0的幅度的增益比值,一般是正数。Post-Cursor是值为1或0的幅度与跳变沿的后一bit幅度的增益比值,一般是负数。 图13 Pre-Cursor与Post-Cursor计算 相关公式如下所示,Vb表示值为1或0时的幅度值,Vc表示边沿前一bit的幅度,Va表示边沿后一bit的幅度。 上述公式只需要了解即可,在FPGA实际使用时,可以直接通过软件对Pre-Cursor与Post-Cursor的所有取值进行扫描,得到最好的值作为实际工作的数值,用户不需要手动计算参数值。 对于加重,用户需要掌握加重的原因,加重的作用,其余的东西了解即可。 03均衡 为了弥补信道对传输信号的不同频段衰减程度不一样,在发送端通过加重进行补偿,那么接收端呢? 如下图所示,接收端有CTLE和DFE来弥补信道传输的缺陷。 图14 信号传输PART 3.1线性均衡器CTLE 如下图所示,红色曲线是信道的频率响应曲线,呈现低通滤波器的特性,而CTLE(continuous time linear equalization)是一个模拟的高通滤波器,用于补偿信道对高频的衰减。 将信道和一个高通滤波器串联就能得到一个全通的滤波器,在实际的模拟电路中并不存在高通滤波器,但只要保证用户关心的带宽内呈现高通特性就能满足均衡的要求。 图15 CTLE及信道频谱图 CTLE的模拟参考电路如下所示,CTLE的变化特性要尽可能与信道损耗随频率变化特性刚好相反,即当信道发生变化时,CTLE的参数可能需要进行修改,以适应新的信道的频率响应。 另外CTLE会放大高频信号,同时会放大高频噪声。 图16 CTLE电路原理 前文使用预加重和去加重使12Gb/S速率的信号经过板卡后的眼睛睁开,下图使采用CTLE的方式使眼睛睁开。 左侧是发送端的眼图,中间是接收端接收的眼图,右侧是接收端的信号经过CTLE处理后的眼图,CTLE恢复的结果比较好。 图17 CTLE处理后的眼图PART 3.2判决反馈均衡器DFE DFE(Decision Feedback Equalizer)是一种非线性均衡器,将接收到的信号经过判决后,将判决信号延迟输入到滤波器中,通过滤波器输出的加权和来抵消码间串扰。 图18 DFE原理框图 与FFE类似,DFE也是通过数字高频滤波器实现的,各个支路的权重决定均衡的强度。DFE可以对高频信号进行补偿且不会放大高频噪声。 DFE原理如下图所示,左图是采集的二进制010的波形,由于信道的影响,导致高电平之后的一段时间内,信号并不能马上衰减为0,DFE会把0.223、0.073这些值直接变为0,结果如右侧图形。 图19 DFE原理 DFE是通过检测前面波形状态来补偿后续波形,导致其不能对前面的波形进行补偿。因此DFE能够消除Post-Cursor导致的码间串扰,不能消除Pre-Cursor导致的码间串扰问题,可以和接收端的FFE配合使用,来移除Pre-Cursor带来的码间串扰问题。 如下图所示,左侧是发送端眼图,中间是接收端没有经过处理的眼图,右侧是经过两个抽头的DFE处理后的眼图,眼睛张开了,但是边沿区域会有突起,这是因为DFE会将信号强行变为1或0,导致该区域比较尖锐。 图20 DFE处理后的眼图 下图是在接收端同时使用CTLE和一个抽头系数的DFE眼图,使用CTLE之后,眼睛只张开了一点,在经过一级DFE之后,眼睛已经张开,并且边沿区域也没有上图尖锐。 图21 接收端同时加CTLE和DFE后的眼图 在使用FPGA的GTX收发数据时,也需要设置Pre-Cursor、Post-Cursor、接收幅度、滤波器类型等等,但是xilinx给用户提供了眼图扫描IP,只需要将所有参数扫描一遍,选择最优参数即可,不需要用户去计算各个参数的数值。 即使工具能够得到最佳参数,用户也需要知道眼图的原理,码间串扰的原因、为什么要进行加重、均衡处理。 |