现在的高速电路设计中,SerDes的应用几乎无处不在,如下图所示的一款SoC,其外设接口除了少量普通的IO,几乎都是SerDes专用接口,因此,电路设计中对于SerDes接口电路的熟知程度,几乎就决定了设计的成败。
本文以概述的形式,陈述了SerDes电路设计中的关键技术元素,让读者了解这些基本概念的同时,也为后续的系列文章进行铺垫。
SerDes有四种架构: 并行时钟、嵌入式时钟、8b/10b编码、位交错,常见的架构是一种基于8b/10b编码并且时钟嵌入进数据流中的架构。
8b/10b编码
8b/10b编码是由IBM于1983年发明的,旨在解决系统互联以及吉比特(Gbit)数据传输问题。 是指将8bit的数据通过某种编码规则扩展成10bit,保证数据流中的“0”和“1”数量基本一致,通过降低效率来增加传输的数据恢复的可靠性。8b/10b 主要具有以下优点:
1. 保证直流(DC)平衡:由于串行链路中会有交流耦合电容,信号频率越高,阻抗越低,反之频率越低,阻抗越高。当码型是高频的时候,基本上可以无损耗的传输,但是当码型为连续“0”或者“1”的情况时,电容的损耗就很大,导致幅度不断降低,带来的严重后果是无法识别到底是“1”还是“0”。因此编码就是为了尽量把低频的码型优化成较高频的码型,从而保证低损耗的传输过去。8b/10b编码方式总输出位数是10个,其中“0”与“1”出现组合总共存在三种,分别为“5个位0与5个位1”、“4个位0与6个位1”、“6个位0与4个位1”;
2. 有利于提取时钟:时钟恢复依赖于“电平跳变沿“(后面会介绍),所以平衡”0“和”1“的数量,可以简化时钟恢复,降低接收机成本;
3. 方便错误检查:8b/10b编码采用冗余方式,将8位的数据和一些特殊字符按照特定的规则编码成10位的数据,根据这些规则,能检测出传输过程中单个和多个比特误码。
如图所示,为8b/10b编码的实例展示:
一个完整的8b/10b SerDes模块,串行器(Serializer)由8b/10b编码器、PRBS码生成器、并串转换电路、差分信号发送器、PLL等模块构成;解串器(De-serializer)包括差分信号接收器、CDR(时钟数据恢复电路)、串并转换电路及8b/10b解码器。
SerDes是典型的复杂数模混合系统,除编解码实现外,还有PRBS生成和检查、环回测试、自适应算法实现、系统状态控制数字实现等等,需要数字电路和模拟电路、信号与系统、通信原理、微波和射频电路、电磁场、信号和电源完整性等背景知识,对设计者的综合知识要求比较高。
扰码功能
扰码是一种将数据重新排列或者进行编码以使其随机化的方法,但是必须能够解扰恢复。目的是为了打乱长的连“0”和长的连“1”序列,将数据随机化。扰码产生是通过循环移位寄存器来实现的,而扰码生成多项式决定循环移位寄存器的结构。 这样做的好处还有:能量被分散开,降低了EMI问题,同时又扩展了基带信号频谱,起到了加密的效果。
对齐逻辑
接收端除了De-serializer之外,一般还有对齐功能逻辑(Aligner)。相对SerDes发送端,SerDes接收端起始工作的时刻需要判断从什么bit位置开始(哪里开始算是第一个数据),以分解组成正确的并行数据。对齐逻辑通过在串行数据流中搜索特征码字(Alignment Code)来决定串并转换的起始位置,这就需要用到了8b/10b的控制字符集,也就是我们常说的“K”字符,常见的K28.5、K28.0、K28.3、K28.4等。
前向反馈均衡(feed-forward equalization/equalizer)
SerDes信号从发送芯片到达接收芯片所经过的路径称为信道(channel),包括芯片封装、PCB走线、过孔、电缆、连接器等元件。
从频域看,信道可以简化为一个低通滤波器(LPF)模型(趋肤效应及介质损耗的影响),如果SerDes的速率大于信道的截止频率,就会一定程度上损伤信号(高频被滤掉了,数字信号边沿会变得平滑)。均衡器的作用就是补偿信道对信号的高频损伤。发送端的均衡器采用FFE(Feed forward equalizers)结构,从频域上看,FFE是一个高通滤波器(容易理解,信道损伤是一个低通滤波器,会抑制高频,那么均衡就补偿高频)。从时域上看,又叫加重器(emphasis)。加重分为去加重(De-emphasis)和预加重(Pre-emphasis)。De-emphasis 降低差分信号上升下降沿处的摆幅(swing)。Pre-emphasis增加差分信号上升下降沿处的摆幅。大部分应用会使用De-emphasis的方式,因为去加重补偿后的信号摆幅小,眼图高度低,从而功耗小、EMC辐射量小。
接收均衡器
接收端均衡器的目标和发送均衡器是一致的。对于低速(<5Gbps)SerDes,通常采用连续时间域、线性均衡器(CTLE)实现,如尖峰放大器(peaking amplifier), 均衡器对高频分量的增益大于对低频分量的增益,增益补偿一般在10dB左右。对于高速(>5Gbps)SerDes,由于信号的抖动(如ISI相关的确定性抖动)可能会超过或接近一个符号间隔(UI,Unit Interval),单单使用线性均衡器不再适用。线性均衡器将噪声和信号一起放大,并没有改善信噪比(SNR)或者误码率(BER)。
对于高速SerDes,采用一种称作判决反馈均衡(Decision Feedback Equalizer - DFE)的非线性均衡器。DFE通过跟踪过去多个UI的数据(history bits)来预测当前bit的采样门限,从而预测码间干扰。DFE只对信号放大,不对噪声放大,可以有效改善SNR。目前常见的CTLE+DFE均衡的最大增益在20dB左右。
DFE设计的关键是确定DFE系数,如果DFE的系数接近信道的脉冲响应,就可以获取比较理想的结果。但是信道是一个时变的媒介,比如温度电压工艺的快慢(PVT corner)变化等因素会改变信道的特性。因此DFE的系数需要自适应算法(Self adaptive algorithm),自动补获和跟随信道的变化。这也是实际应用中DFE功能开启的时候,做环境试验的结果很多时候会出问题,因为DFE在信道特性变化的时候,自适应的速度没有跟上。DFE系数自适应算法非常学术,每个厂商的算法都是保密的,不对外公布。
实际设计中,可以根据通道的插入损耗程度,进行大致的设计评估和功能预判:
不论是发送端还是接收端的均衡器,本质上都是高通滤波器,因为数字信号采样都希望边沿越抖越好,边沿变缓之后就会产生码间干扰ISI。
时钟数据恢复(CDR)
CDR( Clock and Data Recovery)即时钟和数据的恢复,是SerDes设计中非常重要的环节。CDR常用的技术有基于数字锁相环(PLL)和基于相位插值器两种。当数据经过时,CDR就会捕获数据边沿跳变的频率,如果数据长时间没有跳变,CDR就无法得到精确的训练,CDR采样时刻就会漂移,可能采到比真实数据更多的“0”或“1”。这就是前文所述为什么在发送的时候采用8b/10b编码或扰码来避免重复出现“0”或“1”,原因之一也在此。所以CDR有一个指标叫做最长连“0”或连“1”长度容忍(Max Run Length或者Consecutive Identical Digits)能力。 恢复了时钟之后,需要恢复数据。首先要将恢复出来的时钟与数据进行对齐(通过调整本地时钟的相位完成对带有通道损伤和各级模块噪声的TX 串行数据的重定时,找到最佳的采样时刻,以使RX本地时钟边沿与TX数据中心位置对齐,实现最佳采样,同时减小Jitter ),然后再将数据给读出来。在硬件原理上,就是使用PLL电路以及触发器。