高速接口电平标准全解析:从LVDS到SerDes的选型与调试指南
1. 高速接口电平标准的前世今生1.1 为什么电平标准是高速设计的命门做硬件设计十几年我越来越觉得高速接口电平标准这东西就像武侠小说里的内功心法——招式协议层再花哨内功物理层电平不到家一掌推出去照样软绵绵。很多刚入行的朋友一上来就盯着协议规范看什么链路训练、均衡算法、前向纠错结果板子打回来一测眼图眼睛闭得比熬夜加班还快。问题出在哪十有八九是电平标准没吃透。所谓高速接口电平标准说白了就是芯片管脚之间用什么电压范围来区分“0”和“1”以及收发两端怎么在电气层面达成默契。它规定了输出端的驱动能力、输入端的判决门限、共模电压范围、端接方式、差分摆幅等一系列电气参数。你可能会问不就是高低电平吗TTL和CMOS那套我熟啊。但速率一旦上了吉赫兹事情就完全变了——传输线效应、反射、串扰、抖动、损耗全冒出来了电平标准必须跟着进化否则信号还没到接收端就已经面目全非。我见过太多项目在选型阶段忽略电平标准的兼容性比如把LVDS的输出直接怼到CML的输入端结果共模电压对不上接收端要么完全没反应要么误码率飙到没法看。也见过有人用普通FR4板材跑十几Gbps的差分信号电平标准选的是低摆幅的结果损耗大到眼图完全闭合。这些坑说到底都是对电平标准的理解停留在“电压高低”层面没有深入到电气规范的细节里。这篇文章我打算把高速接口电平标准这件事掰开揉碎讲清楚。从最基础的CMOS、LVTTL到差分体系里的LVDS、CML、LVPECL再到如今高速串行链路里常见的SSTL、HSTL、POD以及SerDes常用的可编程摆幅架构我会把每种标准的电气特性、适用场景、端接方式、互连注意事项都过一遍。不管你是刚接触硬件设计的新手还是已经做过几个高速项目但总觉得信号质量差口气的老手应该都能从里面找到对自己有用的东西。1.2 从单端到差分电平标准演进的底层逻辑要理解电平标准为什么有这么多花样得先回到信号传输的基本矛盾上。单端信号用一根线对地传输接收端比较的是信号线和参考地之间的电压差。这种方式简单、省管脚但致命弱点是抗干扰能力差——任何串到信号线上的噪声、任何地平面上的波动都会直接叠加到判决结果上。速率低的时候无所谓几十兆赫兹以下噪声容限足够大TTL和CMOS就能应付。但速率一高噪声容限被压缩单端信号就力不从心了。差分信号用两根线传输一对极性相反的信号接收端比较的是两根线之间的电压差。外部耦合的共模噪声在两根线上几乎相同相减之后就被抵消掉了。而且差分信号的摆幅可以做得很低因为接收端只需要检测两根线之间的微小差异不需要像单端那样把信号摆到满电源轨。摆幅低意味着边沿爬升快、功耗低、电磁辐射小。这就是为什么高速接口几乎清一色采用差分电平标准。但差分也不是万能的。差分对的两根线必须严格等长、等距、对称否则差分信号会转换成共模信号反而制造麻烦。差分对的端接电阻必须精确匹配差分阻抗否则反射照样发生。而且差分标准之间也不是随便互连的LVDS和CML的共模电压范围、摆幅、端接方式都不一样直接对接往往需要交流耦合或者电平转换。再往深了说电平标准的演进还跟半导体工艺的进步紧密相关。早期CMOS工艺只能做3.3V、5V的器件电平标准自然就是LVTTL、LVCMOS这些。后来工艺进步到1.8V、1.2V甚至更低核心电压降下来了但接口电压还得兼容旧标准于是出现了SSTL、HSTL、POD这些专门为存储器接口设计的电平标准它们的特点是参考电压和端接电压可以独立设置方便在低电压下实现高速传输。2. 主流高速接口电平标准深度拆解2.1 单端标准LVTTL、LVCMOS与SSTL的适用边界LVTTL和LVCMOS是大家最熟悉的老朋友了。LVTTL的输入高电平门限一般是2.0V输入低电平门限是0.8V输出高电平在2.4V以上输出低电平在0.4V以下供电3.3V。LVCMOS的门限跟供电电压成比例比如3.3V供电时门限大约是供电的一半。这两种标准速率一般不超过200MHz再高就力不从心了。它们的优点是简单、便宜、兼容性好适合低速控制信号、复位信号、中断信号这些场合。但到了DDR存储器接口SSTL就登场了。SSTL的全称是Stub Series Terminated Logic翻译过来就是“短截线串联端接逻辑”。它的核心特点是接收端有一个参考电压VREF通常是供电电压的一半输入信号跟VREF比较来判决。输出端通过一个串联电阻连接到端接电压VTTVTT也等于供电电压的一半。这种端接方式的好处是阻抗匹配好反射小适合DDR这种多负载、总线式的拓扑。SSTL有很多变种SSTL-2、SSTL-3、SSTL-15、SSTL-135等等数字代表供电电压。比如SSTL-15就是1.5V供电对应DDR3SSTL-135是1.35V供电对应DDR3LSSTL-12是1.2V供电对应DDR4。每一代的VREF、VTT、摆幅、端接电阻都有细微差别设计的时候必须严格按照对应的JEDEC标准来不能想当然。HSTL跟SSTL类似也是参考电压判决、端接电压匹配的结构但主要面向高速SRAM和某些专用接口。HSTL的摆幅比SSTL更小速率更高但驱动能力相对弱一些。POD是后来出现的全称是Pseudo Open Drain伪开漏。它的特点是输出高电平时不需要驱动电流只有输出低电平时才拉电流所以功耗比SSTL低。POD主要用于DDR4和DDR5的数据接口。这里要特别提醒一点SSTL和POD的VREF不是随便设的必须跟供电电压严格对应而且VREF的噪声要控制得非常低。我见过一个项目VREF直接用电阻分压从电源上取结果电源上的纹波全部耦合到VREF上DDR误码率居高不下。后来改用专用的VREF芯片问题才解决。VREF的旁路电容也要足够大而且要靠近接收端放置。2.2 差分标准LVDS、CML、LVPECL的电气特性对比差分标准里LVDS应该是大家最熟悉的。LVDS的全称是Low Voltage Differential Signaling低电压差分信号。它的差分摆幅典型值是350mV共模电压典型值是1.2V接收端内部有一个100欧姆的差分端接电阻。LVDS的速率可以跑到几百Mbps到几个Gbps功耗低抗干扰好适合中短距离的板内和板间传输。CML是Current Mode Logic电流模式逻辑。它的输出级是一个差分对通过电流舵来控制输出。CML的摆幅典型值是400mV到800mV共模电压一般是供电电压减去一个压降比如1.8V供电时共模可能在1.2V左右。CML的速率可以跑到十几Gbps甚至更高是SerDes接口的标配。CML的端接方式通常是接收端对供电做50欧姆端接或者差分端接100欧姆。LVPECL是Low Voltage Positive Emitter Coupled Logic低电压正射极耦合逻辑。它的输出级是射极跟随器需要外部下拉电阻来提供偏置电流。LVPECL的摆幅比LVDS大典型值是800mV左右共模电压一般是供电电压减去1.3V左右。LVPECL的速率也很高但功耗比CML大而且端接方式比较麻烦需要戴维南等效端接或者交流耦合。这三种标准之间互连的时候要特别小心。LVDS到CML如果共模电压不匹配可能需要交流耦合。CML到LVPECL因为LVPECL的共模电压比较高直接直流耦合可能会让CML接收端饱和也需要交流耦合或者电平转换。LVDS到LVPECL同样存在共模和摆幅的差异交流耦合是最稳妥的方案。我个人的经验是板内短距离互连优先用LVDS因为它的摆幅适中、功耗低、端接简单。芯片间高速互连用CML因为它的速率上限高、驱动能力强。LVPECL现在用得越来越少了主要是一些老式光模块和时钟分配网络还在用。如果非要用LVPECL一定要仔细计算端接电阻的值确保射极跟随器的偏置电流在合适范围内。2.3 SerDes时代的可编程电平架构到了SerDes时代电平标准的概念变得模糊了。因为SerDes的发送端和接收端都是可编程的摆幅、共模、预加重、均衡都可以通过寄存器配置。你不再需要选择一个固定的电平标准而是根据信道特性来优化发送端的输出波形和接收端的均衡参数。SerDes发送端通常采用电压模式驱动或者电流模式驱动。电压模式驱动的输出阻抗低摆幅由供电电压和分压网络决定。电流模式驱动的输出阻抗高摆幅由电流和端接电阻决定。两种模式各有优劣电压模式功耗低但驱动能力弱电流模式驱动能力强但功耗高。接收端通常包含连续时间线性均衡器、判决反馈均衡器、时钟数据恢复电路。CTLE用来补偿信道的低频损耗DFE用来消除码间干扰CDR用来从数据里恢复时钟。这些模块的参数都需要根据信道实测的S参数来调优。SerDes的电平优化是一个迭代过程。先用仿真工具提取信道的插入损耗和回波损耗然后根据损耗曲线设置CTLE的零极点位置和DFE的抽头系数。仿真通过之后再在实测中微调。实测的时候要用误码仪或者示波器看眼图眼高和眼宽都要留足够的余量。温度、电压、工艺角的变化也要考虑进去最好在最坏情况下都能满足误码率要求。3. 电平标准选型与互连的实操要点3.1 选型决策树从速率、距离、功耗三个维度切入选电平标准我一般从三个维度来考虑速率、距离、功耗。速率决定了你能不能用电平标准本身距离决定了你要不要用差分功耗决定了你能不能用低摆幅。速率方面单端标准里LVTTL和LVCMOS一般不超过200MbpsSSTL和HSTL可以到1Gbps以上POD可以到3Gbps以上。差分标准里LVDS可以到3Gbps左右CML可以到10Gbps以上SerDes可以到56Gbps甚至112Gbps。如果你的速率超过5Gbps基本上只能选CML或者SerDes。距离方面板内几厘米的互连单端和差分都可以。板间几十厘米的互连建议用差分。电缆或者背板上米的互连必须用差分而且要考虑均衡。距离越长信道损耗越大需要的均衡越复杂。功耗方面单端标准的功耗一般比差分高因为摆幅大。差分标准里LVDS的功耗最低CML中等LVPECL最高。SerDes的功耗跟速率和均衡复杂度相关速率越高、均衡越复杂功耗越大。我一般会画一个简单的决策树先看速率超过5Gbps直接进SerDes5Gbps以下看距离超过30厘米进差分30厘米以内看功耗功耗敏感进LVDS不敏感进SSTL或者POD。当然这只是一个粗略的指引实际选型还要考虑芯片支持情况、成本、供货周期等因素。3.2 端接方案设计电阻选型与布局的细节端接是高速接口设计里最容易出问题的地方。端接电阻的值、精度、布局位置都会影响信号质量。LVDS的端接最简单接收端差分端接一个100欧姆电阻就行。这个电阻要靠近接收端放置走线要短最好直接跨接在差分对上。电阻的精度建议用1%的温度系数要小。如果差分阻抗不是100欧姆端接电阻的值要跟着调整比如差分阻抗是90欧姆端接电阻就用90欧姆。CML的端接稍微复杂一点。如果接收端是CML输入通常内部已经有50欧姆对供电的端接外部不需要再加。如果接收端是其他标准可能需要外部端接。CML的输出端一般需要50欧姆对供电的端接或者差分100欧姆端接。端接电压要跟CML的共模电压匹配否则会影响输出摆幅。LVPECL的端接最麻烦。因为LVPECL的输出是射极跟随器需要外部下拉电阻来提供偏置电流。常见的端接方式有两种戴维南端接和Y型端接。戴维南端接是用两个电阻分压一个接供电一个接地等效出一个端接电压和端接电阻。Y型端接是用三个电阻两个分别接供电和地一个跨接在差分对之间。两种方式各有优劣戴维南端接简单但功耗大Y型端接功耗小但计算复杂。SSTL和POD的端接是串联电阻到VTT。VTT的电压等于VREF通常是供电的一半。端接电阻的值要跟传输线阻抗匹配一般是50欧姆。VTT的电源要能吸收和灌出电流所以不能用普通的LDO要用专用的VTT稳压器或者大电容旁路。注意端接电阻的布局比选值更重要。我见过一个项目端接电阻的值算得完全正确但放在离接收端两厘米远的地方结果反射照样严重。端接电阻必须尽可能靠近接收端走线长度控制在几毫米以内。3.3 互连与耦合交流耦合电容的选取与放置不同电平标准之间互连交流耦合是最常用的手段。交流耦合电容隔断了直流共模电压只让交流信号通过接收端自己重新建立共模偏置。交流耦合电容的值怎么选这取决于信号的频率成分和接收端的输入阻抗。电容和接收端的输入阻抗构成一个高通滤波器截止频率要低于信号的最低频率成分。对于8b/10b编码的信号最低频率成分大约是速率的1/20。比如10Gbps的信号最低频率成分大约是500MHz截止频率要低于500MHz。如果接收端输入阻抗是50欧姆电容值至少要是1/(2pi500MHz*50)≈6.4pF。实际选的时候要留余量一般用10nF到100nF。交流耦合电容的放置位置也有讲究。一般放在发送端附近这样电容之前的走线是直流耦合的电容之后的走线是交流耦合的。如果放在接收端附近电容之前的走线是交流耦合的可能会因为共模电压不匹配导致问题。电容的封装要小0402或者0201最好寄生电感小。电容的耐压要足够虽然高速信号摆幅不大但上电瞬间可能会有浪涌。提示交流耦合电容的焊盘要尽量小焊盘越大寄生电容越大对信号的高频成分影响越大。如果速率超过10Gbps建议用0201封装的电容并且把焊盘优化到最小。4. 常见问题与排查技巧实录4.1 眼图闭合从电平标准角度找原因眼图闭合是高速接口最常见的问题。眼图闭合的原因很多从电平标准角度来找主要有这么几个方向。第一是摆幅不够。发送端的输出摆幅低于接收端的灵敏度要求眼高自然不够。这时候要检查发送端的驱动配置看看摆幅设置是不是太小了。有些SerDes的摆幅是可编程的默认值可能偏小需要根据信道损耗来调大。第二是共模电压不匹配。发送端的共模电压超出了接收端的输入共模范围接收端的输入差分对可能进入非线性区眼图会严重变形。这时候要检查两端的共模电压规格如果不匹配要么调整发送端的共模要么加交流耦合。第三是端接不匹配。端接电阻的值跟传输线阻抗不匹配反射会导致眼图出现振铃或者台阶。这时候要用TDR测量传输线阻抗然后调整端接电阻的值。端接电阻的布局也要检查看看是不是离接收端太远。第四是VREF噪声。SSTL和POD接口的VREF如果噪声太大判决门限就会抖动眼图会横向和纵向都闭合。这时候要用示波器测量VREF的纹波如果纹波超过几毫伏就要加强旁路或者换用低噪声的VREF源。我一般排查眼图问题的顺序是先看摆幅再看共模再看端接最后看VREF。这个顺序是从简单到复杂从发送端到接收端能快速定位大部分问题。4.2 误码率偏高电平标准相关的排查清单误码率偏高但眼图看起来还行这种情况往往更棘手。从电平标准角度我整理了一个排查清单。排查项可能原因检查方法解决措施摆幅余量发送摆幅偏小或信道损耗过大测量接收端眼高增大发送摆幅或加均衡共模偏移两端共模电压不匹配测量接收端共模电压调整共模或加交流耦合端接误差端接电阻值偏差或布局不当TDR测量阻抗更换电阻或调整布局参考电压噪声VREF纹波过大示波器测量VREF加强旁路或换VREF源电源噪声供电纹波耦合到信号测量电源纹波加强电源滤波串扰相邻信号耦合测量受害线噪声增加间距或加屏蔽抖动时钟质量差或电源噪声测量抖动成分优化时钟或电源这个清单我用了很多年基本上能覆盖八成以上的误码率问题。剩下的两成可能是芯片本身的问题、信道模型不准确、或者测试方法有误需要更深入的调试。注意误码率测试一定要跑足够长的时间。我见过有人跑了几秒钟没误码就认为通过了结果批量生产的时候误码率超标。误码率10的负12次方意味着每10的12次方个比特才错一个跑几秒钟根本说明不了问题。至少要跑几分钟到几小时最好能跑24小时。4.3 互连兼容性不同标准对接的避坑指南不同电平标准对接最容易出的问题是共模电压不匹配和摆幅不匹配。我整理了一个对接兼容性表格供大家参考。发送端接收端直流耦合交流耦合备注LVDSLVDS可以可以共模和摆幅都匹配LVDSCML不建议推荐共模电压不同LVDSLVPECL不建议推荐共模和摆幅都不同CMLCML可以可以共模和摆幅都匹配CMLLVDS不建议推荐摆幅可能过大CMLLVPECL不建议推荐共模电压不同LVPECLLVPECL可以可以需要正确端接LVPECLCML不建议推荐共模电压不同LVPECLLVDS不建议推荐摆幅可能过大SSTLSSTL可以不适用需要VREF和VTTPODPOD可以不适用需要VREF和VTT从表格可以看出同种标准之间直流耦合一般没问题不同标准之间最好用交流耦合。交流耦合虽然多加了电容但省去了共模匹配的麻烦而且电容还能起到隔直保护的作用。还有一个坑是摆幅过大导致接收端饱和。比如CML发送端摆幅800mVLVDS接收端灵敏度虽然够但输入级可能因为摆幅过大而进入非线性区反而导致误码。这时候可以在接收端加衰减网络或者把发送端摆幅调小。4.4 实测案例一个DDR4接口的调试记录去年我参与了一个DDR4接口的调试项目速率3200Mbps电平标准是POD12。板子回来之后写操作正常读操作误码率很高。用示波器看读数据的眼图眼高只有几十毫伏眼宽也很窄。我先检查了VREF。POD12的VREF应该是0.6V实测是0.6V没错但纹波有30mV明显偏大。VREF的旁路电容是0.1uF我换成了1uF并联0.01uF纹波降到5mV以内。眼图有所改善但误码率还是偏高。接着检查端接。POD12的端接是串联40欧姆到VTTVTT是0.6V。我测量了端接电阻的值发现实际是39欧姆偏差不大。但端接电阻的布局离DRAM颗粒有点远大概有5毫米。我把端接电阻移到靠近DRAM颗粒的位置走线缩短到1毫米以内。眼图明显改善眼高增加到150mV。最后检查了走线阻抗。用TDR测量发现差分阻抗是85欧姆而不是设计的80欧姆。虽然偏差不大但在3200Mbps的速率下5欧姆的偏差也会导致明显的反射。我调整了走线宽度把差分阻抗拉到80欧姆。眼图进一步改善误码率终于达标。这个案例告诉我高速接口调试是一个系统工程VREF、端接、阻抗、布局任何一个环节出问题都会影响最终性能。而且这些问题往往不是孤立的VREF噪声会放大端接不匹配的影响端接不匹配又会放大阻抗偏差的影响。调试的时候要有耐心一个一个排除不要指望一步到位。5. 高速接口电平标准的未来走向5.1 更低摆幅与更高集成度的趋势随着速率继续提升电平标准的摆幅还在往下降。SerDes的发送摆幅已经从早期的800mV降到现在的400mV甚至更低接收端的灵敏度也相应提高。低摆幅的好处是功耗低、边沿快、辐射小但对噪声和串扰的容忍度也更低。集成度方面越来越多的电平转换和端接功能被集成到芯片内部。比如很多FPGA的IO Bank支持多种电平标准通过配置寄存器就能切换不需要外部电平转换芯片。SerDes的发送端和接收端也集成了可编程的均衡和端接简化了板级设计。但集成度高也带来了新的问题芯片内部的端接电阻精度可能不如分立电阻而且芯片内部的电源噪声可能耦合到端接网络上。所以即使芯片内部有端接外部有时候还是需要加一些辅助电路来优化信号质量。5.2 光电共封装对电平标准的冲击光电共封装是最近几年比较热的话题。它把光引擎和电芯片封装在一起电信号不用出封装就能转换成光信号大大缩短了电信号的传输距离。这对电平标准的影响是深远的。传统的可插拔光模块电接口要经过连接器、PCB走线、金手指等多个环节信道损耗大需要复杂的均衡。光电共封装之后电接口的距离缩短到几毫米信道损耗几乎可以忽略均衡可以大大简化甚至不需要均衡。这意味着电平标准可以进一步简化摆幅可以进一步降低功耗和延迟都能改善。但光电共封装也带来了新的挑战封装内的散热、光纤的耦合、测试的便利性等等。这些挑战不是电平标准本身能解决的需要封装、光器件、测试等多个领域协同进步。5.3 对硬件工程师的新要求高速接口电平标准的发展对硬件工程师提出了更高的要求。以前画个原理图、连个网表、做个PCB布局就算完事现在不行了。你得懂传输线理论得会看S参数得能做通道仿真得会调均衡参数。电平标准不再是一个简单的选型问题而是一个需要综合权衡的系统工程。我个人的建议是硬件工程师要尽早建立“信号完整性”的思维框架。不要等到板子回来才发现问题要在设计阶段就用仿真工具把风险识别出来。仿真工具不需要多高级ADS、HyperLynx、SiWave这些都能用。关键是要理解仿真结果背后的物理意义知道哪个参数影响哪个指标这样才能在调试的时候有的放矢。另外多跟芯片厂商的FAE沟通也很重要。他们对自家芯片的电平标准最熟悉知道哪些配置是推荐的哪些是坑。我很多调试技巧都是从FAE那里学来的比自己闷头摸索效率高多了。最后再分享一个小技巧如果你不确定某个电平标准能不能直接对接最稳妥的办法是先用交流耦合试一下。交流耦合虽然多两个电容但能隔断共模电压的差异让接收端自己建立偏置。如果交流耦合能通再考虑要不要改成直流耦合来省成本。如果交流耦合都不通那说明问题不在共模电压上得从摆幅、端接、阻抗这些方面继续排查。这个技巧帮我省了很多调试时间希望对你有用。