SerDes技术解析:从并行到串行的核心原理、架构与高速设计实践
1. 从并行到串行为什么我们需要SerDes如果你在硬件设计、高速通信或者芯片领域工作SerDes这个词你肯定不陌生。它就像数字世界里的“高速公路收费站”负责把原本并排行驶的车辆并行数据高效地组织成一条单行线串行数据快速通过到了目的地再恢复原状。简单说SerDes就是串行器Serializer和解串器Deserializer的合称它的核心任务就两个把多路低速并行数据变成一路高速串行数据发出去再把收到的高速串行数据还原成多路低速并行数据。为什么非得这么折腾这得从我们熟悉的并行通信说起。早期的计算机内部比如CPU和内存之间用前端总线FSB动辄就是64位、128位宽的数据总线再加上地址线、控制线引脚数量庞大。这种“人海战术”在低速时没问题但速度一上去麻烦就来了。首先这么多信号线要保证同时到达时序对齐极其困难时钟抖动Jitter和信号偏移Skew会成为性能瓶颈。其次密密麻麻的走线占用宝贵的PCB面积产生严重的电磁干扰EMI功耗和成本也居高不下。这就好比一个合唱团人少了可以唱齐人一多稍微有人慢半拍整个和声就乱了。SerDes技术就是来解决这些痛点的。它采用串行差分传输只用一对或几对差分线比如TX_P/TX_N就能传输原来几十根线才能承载的数据量。这样做的好处显而易见引脚数锐减布线难度和成本大幅下降差分信号抗共模噪声能力强传输距离更远最关键的是它摆脱了并行总线对同步时钟的严苛依赖通过时钟数据恢复CDR技术从数据流中“挖”出时钟从而突破了速率瓶颈。如今从你手机里的PCIe接口到数据中心里服务器间的光模块背后都是SerDes在支撑。商用SerDes单通道速率已经冲到了112Gbps并且向224Gbps迈进它已经成为现代高速互连毋庸置疑的基石。2. SerDes核心架构与分类不止是8B/10B很多人一提到SerDes就想到8B/10B编码这确实是经典但SerDes的家族远比这丰富。根据其时钟处理方式和编码方案主要可以分为四大类各有各的应用场景。2.1 并行时钟SerDes简单直接的扩展方案这种结构可以理解为“并行搬运工”。它直接将一个宽位宽的并行总线比如32位串行化到多个差分对上进行传输并且会单独传送一个与数据并行的参考时钟。它的优点是结构相对简单成本较低。想象一下你要搬运一堆整齐的箱子并行时钟SerDes就像同时派好几队人马多个差分对每队搬一部分并且有一个统一的哨声并行时钟来协调步伐。这种方案非常适合在板内或通过背板、短电缆扩展宽总线例如一些早期的背板互联和摄像头传感器接口。但它的缺点也很明显仍然需要传输独立的时钟信号时钟的抖动和偏移问题没有得到根本解决因此其速率和传输距离受到限制。2.2 8B/10B编码SerDes经典永流传的均衡大师这是最常见、最经典的SerDes类型PCIe、SATA、千兆以太网等协议都在使用。它的核心在于8B/10B编码。为什么要做这种“浪费”20%带宽的编码主要有三个黄金目的直流平衡DC Balance编码机制保证在任意一段数据流中“0”和“1”的数量基本相等。这对于交流耦合的传输通道至关重要可以防止电荷累积导致信号基线漂移。提供足够的跳变密度确保数据流中有充足的“0-1”或“1-0”跳变这样接收端的时钟数据恢复CDR电路才能有稳定的参考边沿来锁定相位提取出时钟。控制字符K码10位编码空间中除了256个数据字符D码还定义了一些特殊的控制字符K码如帧起始、帧结束、空闲状态、对齐标记等用于链路管理和数据对齐。注意8B/10B编码的“浪费”是值得的。它用20%的带宽开销换来了信号可靠性和时钟恢复的稳定性这对于高速、长距离、交流耦合的传输来说是性价比极高的选择。许多SerDes的接收端逻辑就靠检测特定的K码如PCIe的COM符号来确定数据流的边界。2.3 嵌入式时钟SerDes将时钟“藏”在数据里这种结构更进了一步它将数据总线和时钟一起串行化到一个差分信号对中。具体做法是在每个数据块的开始和结束嵌入特定的时钟位模式。例如在每个传输字的开头放一个“1”结尾放一个“0”这样就在数据流中人为地创造了周期性的跳变沿。它的优点是真正实现了单对线传输所有信息包括时钟非常适合那些需要极致简化连线、且数据包长度不固定的应用。一些专有的芯片间互联协议会采用这种方式。但缺点是需要复杂的成帧和去帧逻辑来剥离时钟信息并且嵌入的时钟位会占用有效数据带宽。2.4 位交错SerDes聚合小流成为大江这种结构常用于需要将多个较低速的串行通道聚合为一个更高速通道的场景。比如四个10Gbps的串行流通过位交错可以合并为一个40Gbps的流。它在发送端将多个输入流的位按顺序交叉排列在接收端再进行解交错。这在光通信和高端网络设备中很常见是实现端口汇聚和带宽升级的重要手段。选择哪种SerDes这完全取决于你的应用需求。追求通用性和兼容性8B/10B是安全牌需要极简互联且数据格式灵活可以考虑嵌入式时钟要做背板扩展或成本敏感并行时钟可能合适而位交错则是带宽聚合时的利器。3. 深入SerDes收发器内部三层PHY结构详解一个完整的SerDes收发器Transceiver是一个复杂的数模混合信号系统。为了便于理解和设计通常采用分层模型最主流的是基于8B/10B编码的SerDes其物理层PHY可分为三层物理编码子层PCS、物理媒介适配层PMA和物理介质相关子层PMD。这三层协同工作完成了从逻辑数据到物理信号的完整转换。3.1 物理编码子层PCS数字逻辑的舞台PCS层是纯数字逻辑的世界通常由可综合的RTL代码实现。它的核心职责是数据编解码和链路层逻辑。在发送方向TXPCS接收来自上层如数据链路层的并行数据。首先它会进行8B/10B编码或其他编码如64B/66B将8位数据映射成10位符号并插入必要的控制字符K码。接着可能还会进行加扰Scrambling用一个伪随机序列与数据流进行异或运算。加扰的目的不是加密而是为了进一步打乱数据模式避免出现长连“0”或长连“1”从而降低信号频谱中的尖峰能量减少EMI并帮助接收端均衡器工作。在接收方向RXPCS首先进行字对齐Word Alignment。串行数据被PMA解串后是一连串的10位符号流但边界是未知的。接收逻辑通过搜索特定的对齐标记通常是K码中的逗号字符如K28.5来确定10位符号的起始边界。对齐之后再进行解扰Descrambling和8B/10B解码恢复出原始的8位数据并检查编码规则如不一致性错误和通道绑定状态。实操心得在调试SerDes链路时如果发现链路训练失败或误码率高PCS层是首要的排查点。可以通过读取PCS层的状态寄存器检查“对齐锁定Alignment Lock”、“编码错误Code Error”等标志。很多时候链路不通仅仅是因为对齐字符没配置对或者PCS逻辑的时钟域没有处理好。3.2 物理媒介适配层PMA数模转换的桥梁PMA层是SerDes的“心脏”也是理解其高速性能的关键。它是一个数模混合电路模块负责完成高速串行信号最核心的模拟处理。并串转换Serializer与串并转换Deserializer这是PMA的核心功能。发送端将PCS层输出的低速并行字如16位或20位宽用一个高速时钟通常由片内PLL产生将其逐位打出变成串行比特流。接收端则相反利用恢复出的时钟将串行流采样拼装成并行字。这个速度转换的倍数就是SerDes的齿轮比Gear Ratio。时钟数据恢复CDR这是接收端最关键的模块。串行数据流中没有独立的时钟线CDR电路的任务就是从数据跳变沿中实时恢复出与数据同频同相的采样时钟。它通常是一个复杂的锁相环PLL或延迟锁定环DLL通过相位检测器比较恢复时钟与数据跳变沿的相位差并反馈控制压控振荡器VCO或相位插值器动态调整时钟相位使其始终对准数据眼图的中心眼图张开最大的地方以实现最佳采样。发送均衡与接收均衡为了补偿信道如PCB走线、电缆、连接器对高频信号的衰减表现为低通滤波特性必须使用均衡技术。发送端均衡通常采用预加重Pre-emphasis或去加重De-emphasis。简单说就是在发送信号的跳变瞬间人为地增大其幅度预加重或者在跳变后降低其幅度去加重以预先补偿信道的高频损耗使接收端收到的信号眼图更清晰。接收端均衡更为复杂通常包括连续时间线性均衡器CTLE和判决反馈均衡器DFE。CTLE是一个可调的高通滤波器提升信号的高频分量。DFE则更智能它利用之前已判决出的数据位来预测并消除当前数据位受到的码间干扰ISI是一种非线性均衡对长距离、损耗大的信道补偿效果极佳。3.3 物理介质相关子层PMD与物理介质的接口PMD层是SerDes与外部物理世界的接口主要是模拟前端电路。发送驱动器TX Driver将PMA串行化后的单端数字信号转换为适合长距离传输的**差分电流模式逻辑CML**信号。CML驱动器具有输出阻抗可控、摆率快、功耗相对较低的特点非常适合高速串行传输。接收缓冲器RX Buffer接收来自信道可能是经过AC耦合电容后的微弱差分信号进行初步放大并可能集成一部分简单的线性均衡功能然后将信号送给PMA层的RX均衡器。三层之间的协作流程以发送为例上层协议数据送入TX PCS。PCS进行可选加扰和8B/10B编码输出10位宽的并行符号。并行符号送入TX PMA的串行器Serializer。串行器在由TX PLL提供的极高频率时钟如5GHz for 5Gbps驱动下将并行数据转换为串行比特流。串行比特流经过发送均衡如预加重处理。处理后的信号送入TX PMD的驱动器。驱动器将信号转换为差分CML电平通过AC耦合电容输出到PCB走线或电缆上。4. 关键电路模块深度解析时钟、均衡与驱动理解了分层架构我们再聚焦几个最核心、也最容易出问题的电路模块。它们的性能直接决定了SerDes链路的稳定性和最高速率。4.1 TX PLL低抖动时钟的源泉发送端锁相环TX PLL的任务是生成串行器所需的高质量、低抖动时钟。例如要产生一个5Gbps的串行数据流串行时钟频率就是5GHz。PLL以一个低频、低抖动的参考时钟如156.25MHz为输入通过倍频产生这个高频时钟。为什么抖动Jitter如此重要时钟抖动会直接传递给数据导致数据边沿位置不确定。在接收端采样时如果数据边沿抖动过大就可能侵入到采样窗口内部造成误码。对于高速SerDes要求TX PLL输出的时钟抖动通常在几百飞秒fs到1皮秒ps量级。设计一个低抖动PLL需要考虑VCO的相位噪声、环路带宽的优化以及电源噪声的隔离。注意事项在PCB设计时必须为SerDes的模拟电源特别是PLL的电源提供极其干净的供电。任何电源纹波都会调制VCO转化为时钟的周期性抖动PJ。务必使用高性能的LDO为PLL供电并搭配精心设计的π型滤波网络且电源走线要短而粗远离数字噪声源。4.2 RX CDR从数据流中“雕刻”出时钟时钟数据恢复CDR电路是接收端的“大脑”。它不像PLL那样有一个干净的参考时钟输入它的输入是经过信道损伤后、充满抖动和畸变的串行数据。CDR必须从这个数据流中实时地恢复出一个干净的、相位最优的时钟来采样数据。主流CDR架构有两种基于相位插值器PI的CDR它有一个本地PLL产生一个多相位的时钟组如0°, 90°, 180°, 270°。CDR逻辑通过一个相位检测器PD判断数据跳变沿与当前采样时钟相位的早晚关系然后动态地选择或插值出最合适的时钟相位来采样数据。这种架构锁定速度快适合包数据业务如以太网。基于PLL的CDR将压控振荡器VCO的控制电压与数据跳变沿的相位差关联起来构成一个反馈环路。它更像一个传统的PLL只是参考时钟被数据边沿替代了。这种架构抖动容忍性好更适合连续模式的数据流如SATA。CDR的关键参数是“抖动容限Jitter Tolerance”。它描述的是CDR环路能跟踪并纠正多大频率和幅度的输入抖动。设计时必须确保CDR的抖动容限曲线能覆盖信道和发送端带来的总抖动预算。4.3 均衡器对抗信道损耗的武器随着速率提升PCB走线的趋肤效应和介质损耗会急剧增加信号高频分量衰减严重导致码间干扰ISI眼图几乎闭合。均衡技术是打开眼图的唯一手段。发送端预加重/去加重这是一种简单有效的频域补偿。通过在发送端预先对信号的高频部分进行增益可以部分抵消信道的低通特性。其强度通常可编程用几个抽头Tap的FIR滤波器来实现。调试时需要结合接收端眼图逐步增加预加重直到眼图垂直和水平张开度达到最佳过度预加重反而会增大噪声和EMI。接收端CTLE它是一个连续时间线性滤波器其传递函数在频域上有一个“零点”和一个“极点”形成一个高频增益提升的曲线。CTLE的增益和零点频率通常可调需要根据信道损耗特性通常通过S参数模型获得来优化设置。接收端DFE当信道损耗非常严重时线性均衡CTLE可能不够。DFE是一种非线性均衡它利用前面已经判决正确的数据位乘以相应的系数Tap系数然后从当前接收信号中减去以消除前面数据位对当前位造成的拖尾干扰。DFE的抽头系数需要自适应算法来训练和更新。DFE的强大之处在于它能抵消由信道引起的后光标Post-cursorISI而发送端均衡主要影响前光标Pre-cursorISI。均衡策略的配合在实际系统中往往是多级均衡协同工作。例如TX端采用轻度的去加重RX端先由CTLE进行初步的线性补偿打开一部分眼图再由DFE进行精确的非线性消除最终得到一个干净、张开度大的眼图供判决器采样。5. 高速信号电平CML为何成为主流SerDes的电气接口经历了从LVDS到CML的演进。理解它们的区别对硬件设计至关重要。LVDS低压差分信号标准为ANSI/TIA/EIA-644使用约3.5mA的恒流源在100欧姆终端电阻上产生约350mV的差分摆幅。其优点是功耗低、噪声小但速率通常限制在1.25Gbps左右再往上走其开关速度和共模噪声抑制能力就显得吃力了。CML电流模式逻辑这是当前高速SerDes1Gbps事实上的标准。CML驱动器本质上是一个差分电流舵开关。它通过一个尾电流源通常16mA或更高和一对差分晶体管将电流导向输出正端或负端在50欧姆的终端电阻通常片上集成或外置上产生约800mV的单端摆幅差分1600mV。CML的优点是摆率高、带宽极宽、输出阻抗易于匹配非常适合数Gbps到数十Gbps的速率。为什么CML取代了LVDS核心在于带宽和功耗的权衡。在低速时LVDS的低功耗优势明显。但当速率进入多Gbps时代信号上升/下降时间极短几十皮秒要求驱动器有极高的摆率。CML的电流开关结构能轻松提供所需的摆率而LVDS的电压切换模式则变得效率低下。此外CML的输出阻抗更接近理想的50欧姆有利于在宽频带内实现良好的阻抗匹配减少反射。重要提示电平互连虽然CML和LVDS电平不兼容但它们都是差分信号且直流偏置点不同CML偏置高LVDS偏置约1.2V。在极端情况下可以通过外接交流耦合电容和偏置电阻网络实现互连但这会引入额外的损耗和反射点不是推荐做法。设计时应确保收发两端使用相同的电平标准。6. 实战SerDes链路设计、调试与问题排查掌握了原理最终要落到设计和调试上。这里分享一些从实际项目中总结的硬核经验。6.1 PCB设计要点为信号铺好“高速公路”差分对布线必须严格等长、等宽、同层、紧密耦合。长度匹配公差通常要求在5mil0.127mm以内以减少时序偏移。走线阻抗必须控制为目标值通常100欧姆差分。参考平面为高速差分线提供完整、无分割的参考平面通常是地平面。严禁跨分割否则会导致阻抗不连续和信号回流路径突变产生严重EMI和信号完整性问题。过孔与连接器过孔是阻抗不连续的主要来源。使用背钻Backdrill技术去除无用的过孔残桩Stub或采用微型过孔。连接器要选择专门的高速型号并关注其在整个工作频段内的S参数尤其是插入损耗和回波损耗。电源完整性这是高速设计成败的关键。SerDes的模拟部分PLL RX/TX AFE对电源噪声极其敏感。必须使用独立的电源层或分割区域并通过磁珠或0欧电阻与数字电源隔离。每个电源引脚附近都要放置高质量的去耦电容形成从高频到低频的完整去耦网络。AC耦合电容SerDes接口通常需要外接AC耦合电容如100nF以隔离收发两端的直流偏置。电容必须靠近接收端放置。要选择高频特性好的电容如NP0/C0G材质并且注意电容的寄生电感会影响高频性能有时需要并联两个小电容如10nF和100nF来覆盖更宽的频段。6.2 链路调试流程从通到优基础检查上电后首先确认电源电压、参考时钟是否正常。通过芯片寄存器检查PLL是否锁定、收发器是否使能。链路训练对于PCIe、SATA等协议链路两端会进行自动训练协商速率、均衡参数等。通过读取状态寄存器确认链路是否进入“L0”等正常工作状态。如果训练失败检查参考时钟频率精度、AC耦合电容、PCB阻抗是否在要求范围内。眼图测试这是最直观的性能评估手段。使用高速示波器配合眼图软件或BERT误码率测试仪进行测试。连接时需要使用高质量的同轴电缆和探头并在接收端使用夹具或焊接测试点尽量减少对信号的干扰。观察眼图关注眼高、眼宽、抖动TJ RJ DJ。对照芯片手册或协议规范如PCIe Base Spec的眼图模板看是否合规。调整均衡如果眼图未张开在发送端逐步调整预加重/去加重设置在接收端调整CTLE增益和零点频率观察眼图改善情况。如果芯片支持DFE自适应确保其使能。误码率测试眼图合格不代表链路绝对可靠必须进行BER测试。使用PRBS伪随机二进制序列码型发生器产生测试图案用误码仪测量。行业标准通常要求BER低于1E-12某些应用要求1E-15。长时间测试如24小时可以捕获到极低概率的误码事件。6.3 常见问题排查速查表问题现象可能原因排查思路与解决方法链路无法训练无连接1. 物理连接不通虚焊、线缆坏2. 参考时钟缺失或频率不准3. 电源/复位异常4. AC耦合电容缺失或损坏5. 芯片配置错误如速率、模式1. 检查焊接用万用表测量通路。2. 用示波器测量参考时钟幅度、频率、抖动。3. 测量所有相关电源电压确认复位信号已释放。4. 检查AC电容是否贴装容值是否正确。5. 重新核对芯片初始化配置脚本。链路训练不稳定时通时断1. 信号完整性差阻抗不连续反射大2. 电源噪声大特别是PLL电源3. 参考时钟抖动过大4. PCB板材损耗过大超出SerDes均衡能力1. 检查PCB走线避免过孔、锐角弯、跨分割。2. 用近场探头或示波器检查电源纹波优化去耦。3. 更换更低抖动的时钟源或时钟发生器。4. 降低传输速率或更换更低损耗的PCB板材如M6以上。眼图模糊眼高眼宽不足1. 信道损耗过大线太长板材差2. 发送端输出幅度不足或预加重未开启3. 接收端均衡未正确配置或能力不足4. 外部噪声干扰串扰、电源噪声1. 测量或仿真信道S参数确认插入损耗在芯片预算内。2. 检查发送驱动强度设置逐步增加预加重观察效果。3. 检查并调整RX CTLE/DFE设置或使能自适应均衡。4. 检查相邻信号线间距确保3W原则加强电源滤波。误码率高BER高1. 采样点不在眼图中心CDR未锁定好2. 抖动过大特别是周期性抖动3. 码间干扰严重均衡不充分4. 芯片本身或环境温度过高1. 检查CDR锁定状态有些芯片可手动微调采样相位。2. 分析眼图中的抖动成分定位抖动源如电源、时钟。3. 使用更复杂的测试码型如PRBS31暴露ISI问题优化均衡。4. 加强散热检查芯片结温是否在规格范围内。特定数据模式误码1. PCS层加扰/解扰或编码/解码错误2. 通道绑定Channel Bonding错误多通道应用3. 数据相关抖动DDJ1. 检查PCS层加扰器种子、对齐字符等配置是否正确。2. 检查多通道间的偏移补偿Skew Compensation逻辑。3. 这通常与均衡不足有关调整均衡参数或检查信道对称性。最后一点个人体会SerDes调试是一个系统工程需要“先静后动由表及里”的思路。先确保静态的电源、时钟、配置无误再动态观察眼图和误码。很多时候问题不是单一的比如电源噪声大会同时导致时钟抖动增加和接收端灵敏度下降。因此拥有一套清晰的调试流程和一份详尽的检查清单远比盲目尝试有效得多。另外不要完全依赖芯片的“自适应”功能理解其原理并学会手动干预关键参数是在遇到棘手问题时破局的关键。