5G光模块误码率优化:晶振相位噪声影响与选型设计指南
1. 从一个让人头疼的误码率问题说起搞过5G光模块硬件设计的人大概都有过这种经历链路预算明明算得绰绰有余眼图看着也还行可一上系统跑流量误码率就是压不下去偶尔还冒出一两个莫名其妙的突发错误。你换光器件、调均衡、改驱动幅度折腾一圈下来发现收效甚微。最后把频谱仪接上参考时钟一看相位噪声底噪高得离谱——问题出在那颗不起眼的晶振上。晶振相位噪声对通信系统的影响尤其是对5G光模块信号误码率的影响是一个典型的“小器件引发大问题”的案例。5G前传、中传对光模块的速率要求已经从10G、25G一路推到100G、200G甚至400GSerDes通道的符号率越来越高留给时钟抖动的裕量越来越窄。参考时钟的相位噪声会通过SerDes的CDR电路、PLL倍频链路逐级放大最终体现在采样时刻的偏移上直接吃掉时序裕量误码率自然就上去了。这篇内容适合几类人看一是正在做5G光模块硬件设计的工程师尤其是负责时钟树和电源完整性的二是做SerDes信号完整性分析的想搞清楚参考时钟抖动到底怎么折算到误码率上三是选型阶段纠结晶振参数的想知道哪些指标真正关键、哪些是厂商宣传噱头。我会从相位噪声的物理本质讲起拆解它到误码率的传递路径然后给出可落地的晶振选型、电路设计和布局方案最后分享几个实际调试中踩过的坑。2. 相位噪声与误码率之间的传递链条2.1 相位噪声到底是什么为什么它比频率精度更致命很多人选晶振第一眼看的是频率精度比如±10ppm、±20ppm觉得精度够了就行。但在高速SerDes场景下频率精度只决定了你和对方能不能对上频率真正决定链路能不能稳定工作的是相位噪声也就是短期频率稳定度。打个比方频率精度好比你的手表一天下来总共差了几秒而相位噪声好比你的手表每一秒走得是不是均匀——是匀速走还是忽快忽慢地抖。对于SerDes来说它每个UI单位间隔都要在正确的位置采样如果参考时钟在短时间内抖动很大采样点就会偏离最佳位置眼图张开度变小误码率上升。相位噪声在频域上的定义是偏离载波频率f处1Hz带宽内的单边带功率与载波功率之比单位是dBc/Hz。它描述的是载波频谱的“裙摆”有多宽。这个裙摆越宽说明时钟的短期抖动越大。在时域上相位噪声积分后对应的是相位抖动通常用RMS飞秒fs或皮秒ps来表示。关键点在于不同频段的相位噪声对误码率的贡献是不一样的。低频偏比如1kHz到100kHz的相位噪声主要影响CDR的跟踪能力高频偏比如1MHz到10MHz的相位噪声则直接恶化采样时刻的确定性抖动。所以你不能只看一个点的相位噪声值要看整个频段的分布。2.2 从晶振到SerDes采样点相位噪声的传递路径一颗晶振的相位噪声要影响到最终的误码率中间要经过好几级电路。以典型的5G光模块架构为例参考晶振输出给SerDes芯片内部的PLLPLL倍频到高速时钟后驱动发送端和接收端的CDR。这条链路上每一级都会对相位噪声进行“整形”。PLL本身是一个闭环系统它有一个环路带宽。在环路带宽以内PLL会跟踪参考时钟的相位参考晶振的相位噪声会按比例传递到输出在环路带宽以外PLL的VCO自由振荡参考时钟的相位噪声被抑制但VCO自身的相位噪声开始主导。所以晶振相位噪声对输出的影响主要集中在PLL环路带宽以内的频段。这里有一个容易被忽略的细节PLL对参考时钟相位噪声的传递函数是20log(N)的关系N是倍频比。比如你用一个100MHz的晶振倍频到10GHzN100那么参考时钟在环路带宽内的相位噪声会被放大40dB。这意味着晶振在100kHz频偏处的相位噪声如果是-140dBc/Hz到了PLL输出端就变成了-100dBc/Hz。这个数值已经相当可观了。再往后CDR电路会进一步处理。CDR的环路带宽通常比PLL窄它主要跟踪低频抖动对高频抖动进行抑制。但CDR的抑制能力有限而且CDR自身的抖动容限是固定的。如果参考时钟引入的抖动超过了CDR的容限误码率就会急剧恶化。2.3 相位噪声到误码率的折算方法把相位噪声折算成误码率工程上有几种常用的方法。最直接的是通过抖动预算先算出SerDes接收端的总抖动容限然后减去器件抖动、通道抖动、电源噪声等各项剩下的就是参考时钟允许的抖动。再把这个抖动折算成相位噪声积分值反推晶振的指标要求。具体折算时RMS相位抖动单位弧度和相位噪声的关系是σ_φ² 2 × ∫ L(f) df其中L(f)是单边带相位噪声积分范围从CDR环路带宽到奈奎斯特频率。得到σ_φ后再乘以UI/2π就得到以秒为单位的RMS抖动。举个例子假设CDR环路带宽是2MHzSerDes速率是25GbpsUI40ps。如果晶振在2MHz到12.5GHz积分范围内的RMS相位抖动是0.5ps那么它占UI的比例是0.5/401.25%。对于典型的SerDes总抖动预算可能是0.3UI左右参考时钟占1.25%看起来不大但别忘了还有其他抖动源而且这0.5ps是RMS值峰峰值要乘以一个系数通常按14倍RMS估算实际峰峰值可能到7ps占UI的17.5%这就很危险了。所以选晶振的时候不能只看厂商给的“典型相位噪声”曲线要自己根据系统抖动预算反推要求并且留足裕量。3. 晶振选型哪些参数真正决定误码率3.1 有源晶振还是无源晶振选错方向全盘皆输在5G光模块里参考时钟通常用有源晶振OSC而不是无源晶体。原因很简单无源晶体需要芯片内部或外部搭建振荡电路这个振荡电路的起振条件、负载电容匹配、驱动能力都会影响最终相位噪声。而且无源晶体的相位噪声对PCB布局和电源噪声极其敏感调试起来非常痛苦。有源晶振内部集成了振荡电路和输出缓冲出厂时相位噪声已经调好了你只需要给它干净的电源和良好的接地就能得到稳定的输出。对于25G、100G光模块这种对时钟要求苛刻的场景有源晶振是更稳妥的选择。但也不是所有有源晶振都一样。市面上有普通XO、TCXO、OCXO还有专门针对低抖动优化的差分输出晶振。普通XO的相位噪声在100kHz频偏处可能在-130dBc/Hz左右而低抖动晶振能做到-150dBc/Hz以下。价格差好几倍但为了误码率达标这笔钱不能省。3.2 相位噪声指标怎么看哪些频段最关键拿到一颗晶振的相位噪声曲线不要只看某一个点。要关注三个频段10Hz到1kHz这个频段主要影响CDR的长期跟踪如果这里相位噪声太高CDR可能会失锁或者产生低频漂移。对于5G光模块这个频段通常不是主要矛盾因为CDR环路带宽一般不会低到这个程度。1kHz到1MHz这是最关键的频段。PLL环路带宽通常在这个范围内参考时钟的相位噪声会直接传递到输出。特别是100kHz到1MHz这一段对采样抖动的影响最大。1MHz以上这个频段PLL已经开始抑制参考时钟噪声但如果你用的PLL环路带宽比较宽或者CDR带宽也比较宽这个频段仍然会有贡献。实际选型时我一般要求晶振在100kHz频偏处相位噪声优于-145dBc/Hz在1MHz处优于-155dBc/Hz。对于400G光模块要求还要再严3到5dB。另外要注意厂商数据手册上的相位噪声通常是在特定电源电压、特定负载、25℃条件下测的。实际工作时电源噪声、温度变化都会让相位噪声恶化。所以选型时要留至少6dB的裕量。3.3 电源噪声对晶振相位噪声的调制效应晶振的相位噪声对电源噪声非常敏感。电源上的纹波会通过晶振内部的振荡电路调制到输出频率上产生杂散和相位噪声恶化。这个效应在低频段尤其明显因为电源纹波频率通常比较低正好落在PLL环路带宽以内。我实测过一颗晶振在干净电源下100kHz频偏相位噪声是-148dBc/Hz换成有50mV纹波的电源后恶化到了-138dBc/Hz。10dB的恶化足以让误码率从1E-12掉到1E-6。所以给晶振供电的LDO要选PSRR高的而且在晶振电源引脚旁边要放足够的高频去耦电容。通常我会放一个10uF的钽电容加一个0.1uF的陶瓷电容再并一个1nF的覆盖不同频段。如果空间允许再加一个铁氧体磁珠做二级滤波。3.4 负载电容和输出匹配的坑有源晶振的输出通常是方波但输出阻抗和负载匹配会影响边沿速率和过冲。如果输出走线太长或者负载电容太大边沿变缓等效于增加了时钟的确定性抖动。更糟糕的是如果输出端有反射会在时钟沿上产生振铃CDR可能会误判。我的经验是晶振输出到SerDes参考时钟输入的走线尽量短最好在10mm以内。如果必须走长线要用差分输出晶振并且做好端接。单端输出的话串联一个22Ω到33Ω的电阻做源端匹配能有效抑制反射。负载电容方面有源晶振的输出驱动能力通常足够不需要额外加负载电容。但如果你用的是无源晶体负载电容的匹配就至关重要了。负载电容偏差会导致频率偏移虽然不直接恶化相位噪声但会让PLL的工作点偏离最佳状态。4. 电路设计与布局把相位噪声摁在源头4.1 晶振电路原理与关键元件选择有源晶振的电路看起来很简单电源、地、输出。但每个环节都有讲究。电源部分我通常用两级滤波第一级是LDO选PSRR在100kHz处大于60dB的型号第二级是RC或LC滤波截止频率设在100kHz左右把LDO输出的高频噪声再压一压。注意LDO的负载调整率要好因为晶振的电流虽然不大但如果有突发变化LDO响应慢会导致电源波动。去耦电容的布局比选型更重要。电容要尽量靠近晶振电源引脚回流路径要短。我见过很多设计把去耦电容放在晶振背面过孔绕了一大圈效果大打折扣。正确的做法是电容和晶振在同一层引脚直接连到晶振的电源和地焊盘。输出端如果走差分要注意差分对的对称性。两条走线要等长、等宽、间距一致否则差分信号会转换成共模信号增加EMI和抖动。如果走单端要保证参考地平面完整不要跨分割。4.2 PCB布局中的晶振隔离与屏蔽晶振是敏感器件也是干扰源。它对外界的电磁干扰敏感同时它的输出谐波也会干扰其他电路。所以在PCB布局时晶振要远离DC-DC电源、高速SerDes走线、射频电路。我的做法是在晶振周围画一个禁布区至少2mm内不放其他元件和走线。晶振下方要挖空不要走任何信号线地平面可以保留但要用过孔阵列围起来形成一个屏蔽腔。如果空间允许在晶振上方加一个金属屏蔽罩能进一步降低外部干扰。晶振的输出走线也要包地处理两侧加地线并打过孔减少串扰。如果晶振和SerDes芯片距离较远中间不要经过任何连接器或过孔直接走PCB内层参考完整地平面。4.3 电源完整性与地回流路径设计电源完整性对晶振相位噪声的影响前面已经讲了。这里补充一点地回流路径同样重要。晶振的接地点要直接连到主地平面不要经过细长的地线。如果晶振的地引脚和SerDes的地引脚之间有地平面分割回流会绕远路引入额外电感恶化高频相位噪声。我通常会在晶振地引脚旁边打至少4个过孔直接连到主地平面。如果PCB层数多可以在晶振下方专门设一层地平面通过多个过孔连接到主地。另外晶振的电源和地要走成一对尽量靠近减少电源回路的面积。回路面积越小对外部磁场的敏感度越低电源噪声耦合越小。4.4 实测验证相位噪声测试与误码率关联设计完成后一定要实测验证。相位噪声测试用频谱分析仪加相位噪声选件或者专用的相位噪声分析仪。测试时要注意探头要靠近晶振输出但不要加载过大电容否则会影响振荡器工作。测试环境要屏蔽好避免外部干扰。分别测试常温、高温、低温下的相位噪声温度变化对晶振影响很大。误码率测试用误码仪配合光模块和光纤。测试时先不加光衰减测背靠背误码率然后逐步加衰减看误码率曲线。如果发现误码率在某个衰减点突然恶化很可能是时钟抖动导致的。我一般会把相位噪声测试结果和误码率测试结果对照看相位噪声积分得到的RMS抖动是否和误码率恶化趋势一致。如果一致说明问题确实在时钟上如果不一致要排查其他因素。5. 常见问题与排查技巧实录5.1 误码率压不下去怎么判断是不是晶振的问题这是最常被问到的问题。我的排查思路是先换一颗已知低相位噪声的晶振看误码率有没有改善。如果有明显改善说明原晶振有问题。用频谱仪测晶振输出的相位噪声和手册对比。如果实测比手册差很多检查电源和布局。在晶振电源上叠加不同频率的干扰看误码率是否敏感。如果敏感说明电源滤波不够。用示波器测时钟的峰峰值抖动和周期抖动和SerDes的抖动容限对比。如果换晶振后误码率没变化那问题可能不在时钟上要查光器件、通道、均衡设置等。5.2 晶振相位噪声测试中的常见陷阱测相位噪声时有几个坑我踩过探头接地不良探头地线太长引入了额外电感测出来的高频相位噪声偏高。要用短地线弹簧或者直接焊接同轴电缆。频谱仪设置不当RBW设得太大相位噪声曲线被平滑掉了看起来很好实际很差。RBW要设得足够小至少比频偏小两个数量级。忽略测试电缆的损耗长电缆对高频信号衰减大测出来的相位噪声偏低。要校准电缆损耗。环境温度变化测试过程中温度变化会导致晶振频率漂移相位噪声曲线跟着变。要在恒温环境下测或者快速测完。5.3 晶振布局中的典型错误与修正我见过很多晶振布局的错误这里列几个典型的错误做法后果修正方法晶振放在DC-DC旁边电源噪声耦合相位噪声恶化至少远离10mm加屏蔽去耦电容放在背面过孔电感大高频去耦失效电容和晶振同层直接连接输出走线跨分割回流路径断裂抖动增加参考完整地平面不跨分割晶振下方走信号线耦合噪声相位噪声恶化晶振下方挖空不走线地引脚只打一个过孔地电感大高频性能差至少4个过孔直接连主地5.4 晶振参数选型速查表最后给一个选型速查表方便快速对比参数普通XO低抖动XO差分低抖动XO选型建议100kHz相位噪声-130dBc/Hz-145dBc/Hz-150dBc/Hz25G以上选低抖动1MHz相位噪声-145dBc/Hz-155dBc/Hz-160dBc/Hz400G选差分RMS抖动12kHz-20MHz1ps0.3ps0.15ps按UI的1%以内选电源抑制比差中好电源噪声大选高PSRR输出类型单端单端/差分差分长走线选差分价格低中高按误码率要求权衡实际选型时我一般先根据SerDes的抖动容限算出允许的RMS抖动然后反推相位噪声要求再在满足要求的晶振里选价格合适的。不要盲目追求最低相位噪声够用就好省下的成本可以花在电源滤波和PCB布局上整体效果可能更好。6. 几个实战中总结的硬核经验做5G光模块这几年我在晶振和误码率这个问题上踩了不少坑有几个经验值得分享。第一不要迷信厂商的相位噪声曲线。厂商测试条件通常是理想电源、常温、特定负载。实际系统中电源噪声、温度变化、负载变化都会让相位噪声恶化。我一般会在厂商指标基础上留6到10dB裕量尤其是工业级温度范围的应用。第二电源滤波比晶振选型更重要。我遇到过好几次换了更贵的晶振误码率没改善结果在电源上加了一级LC滤波误码率直接达标。晶振的相位噪声对电源噪声的敏感度远超一般人想象尤其是100kHz到1MHz这个频段正好是DC-DC开关噪声的谐波范围。第三PCB布局要舍得花面积。晶振周围留禁布区、下方挖空、加屏蔽罩这些都会增加PCB面积和成本但比起误码率不达标导致的反复改板这点代价微不足道。我现在的设计里晶振区域至少留5mm×5mm的净空下方两层不走线。第四测试要覆盖全温度范围。常温下误码率达标不代表高低温下也达标。晶振的频率温度特性会导致PLL工作点偏移相位噪声跟着变。我一般会在-40℃、25℃、85℃三个点分别测误码率确保都有足够裕量。第五SerDes的配置也很关键。同样的硬件CDR环路带宽设得不一样对参考时钟抖动的抑制能力差别很大。如果晶振相位噪声偏高可以适当调窄CDR带宽但要注意窄带宽会降低对低频抖动的跟踪能力。这个需要根据实际链路情况权衡。最后再分享一个小技巧如果误码率问题一时找不到原因可以先用一个外部的高性能信号源代替晶振给SerDes提供参考时钟。如果误码率明显改善说明问题在晶振或电源上如果没改善问题在SerDes配置或光链路上。这个方法能快速定位问题方向省去很多盲目排查的时间。