ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

800G CPO硬件设计实战:从SerDes链路到热仿真的关键问题

800G CPO硬件设计实战:从SerDes链路到热仿真的关键问题 1. 开局先聊清楚一件事CPO到底解决了什么以及800G时代的真实需求先说个我自己的判断这两年凡是做光模块硬件的人几乎没人能绕开CPO这个话题。从400G到800G单通道速率从50G逐步往100G、200G推进传统可插拔光模块的处境越来越尴尬面板宽度有限、散热空间有限、信号完整性损耗预算有限再想靠QSFP-DD或者OSFP塞进更高密度的交换机PCB走线的物理极限会先卡住你。CPOCo-Packaged Optics共封装光学把光引擎直接和交换芯片放进同一个封装基板本质上是用封装级互连替代板级长走线把电信号从交换芯片到光引擎的传输距离从十几厘米缩短到几厘米甚至更短。这个思路在800G时代不是“要不要做”的问题而是“谁先做得稳”的问题。我参与过的一款800G CPO参考设计最初是从400G方案改过来的。原以为就是把SerDes速率提高、光引擎换一下、电源多加几路结果真正动起来才发现电路设计层面的坑远比想象中密集。这篇文章不打算给你讲教科书式的原理而是把我实际踩过、拆过、仿真过的几个关键问题摊开讲SerDes链路预算怎么做才不翻车、电源树要怎么布局才能扛住光引擎的动态电流、PCB叠层和过孔残桩能把眼图吃掉多少、热仿真数据怎么和你的电源与SI设计互相制约以及最后DFT和耦合对准为什么是量产最头疼的环节。这篇文章适合谁看正在做CPO或类CPO封装项目的高速硬件工程师、想把光模块方案切换到共封装架构的系统架构师以及刚入行但对SerDes、电源完整性和热仿真怎么协同工作特别好奇的硬件新人。如果你是那种只看了几篇概念文章、觉得CPO就是把光模块焊在芯片旁边的状态那我建议你先把我下面写的SerDes预算部分读两遍这一块最容易被忽略也最容易被想当然。说句实在话CPO设计的难点从来不在于“光”本身而在于“电”和“热”怎么一起伺候好。光引擎的工作特性决定了它比传统可插拔模块对电源纹波更敏感、对热更敏感、对信号路径的阻抗连续性更敏感。后面所有章节的技术细节最终都绕不开这三个字敏感、敏感、还是敏感。2. 电路设计的第一个坑SerDes链路预算与重定时器retimer取舍2.1 先搞懂CPO里SerDes到底在传什么速率从400G到800G这个跨度最核心的变化就是SerDes速率上一台阶。400G时代主流的方案是单通道50G PAM48个通道凑400G到了800G如果还是8路单通道就要跑到100G PAM4如果是16路那就是单通道50G跑两倍通道数。这里有个最实在的工程问题通道数翻倍意味着基板布线资源翻倍、电源引脚翻倍、封装尺寸和热仿真都要重来速率翻倍则意味着链路损耗预算、串扰预算、反射预算全部要按指数级严苛的指标重新算。我做的这个项目起初选的是8路100G PAM4方案逻辑上很性感因为光引擎和交换芯片之间的DIE-to-DIE接口数量最少基板走线压力小。但真正打开链路预算表的时候才发现8路100G对基板材料、过孔背钻、连接器如果还有的话的要求会苛刻到让人头皮发麻。后来改成了16路50G PAM4虽然布线资源占用变大但每一个通道的SI余量都明显舒服了而且在热仿真和电源动态响应上都更好收拾。这里给个最直白的经验不要看着速率越高越兴奋800G设计里“够用”比“超前”值钱得多。2.2 链路预算要算哪些东西怎么算链路预算是CPO电路设计里第一个必须较真的地方。我习惯用一套完整的预算表格来做把每一段物理路径的损耗、反射、串扰、抖动都列出来然后逐项加总最后看眼高眼宽余量。以16路50G PAM4为例从交换芯片的TX引脚到光引擎的RX输入中间至少经过交换芯片封装内走线C4 bump到BGA ball典型0.5~1.5dB封装基板即CPO的有机基板或硅基板走线这取决于走线长度和基板材料50G PAM4下25mm走线在MEGTRON6上约1.0~1.8dB光引擎的基板进入段包含过孔和阻抗不连续点约0.5dB整个链路中还有耦合电容AC coupling cap带来的损耗每颗高质量0402电容约0.1~0.3dB把这些加总8路100G方案下整个链路预算通常要控制在12dB以内包含各种噪声和抖动代价而16路50G方案可以放到15~18dB这个差距在实际调试时是完全不同的体验。100G PAM4的接收端对眼图闭合容忍度很低你必须加CTLE和DFE来打开眼图但这些均衡器要吃功耗也会带来额外的码间干扰补偿极限问题。50G PAM4则留给后端均衡更大的余量甚至在少量场景下可以依赖线性直驱LPOLinear-drive Pluggable Optics的CPO变体设计简化解码和功耗。2.3 retimer到底放不放放哪一段实测经验这是好多团队吵过架的话题。传统可插拔光模块方案里主机板上可以加retimer来重塑信号但在CPO共封装架构里交换芯片到光引擎的链路那么短加retimer反而有一种“脱裤子放屁”的嫌疑。但是当你做800G CPO时如果光引擎本身不带DSP只是线性驱动方案线性光引擎那么从主机板到交换芯片之前的PCB走线部分仍然需要有一种手段来均衡。这里必须区分两种链路一种是“外部接口到交换芯片”这段通常还是板级走线长度可能到10~20英寸需要强大的均衡另一种是“交换芯片到光引擎”这段在封装基板内长度很短。很多人把这两段混为一谈然后跑去问要不要retimer其实真正需要retimer的通常只有前一段。我给一个实际用下来比较稳的组合外部接口部分如果系统侧还用PCB走线连接物理层PHY那就在接口处加retimer或者把均衡功能集成到PHY里而芯片到光引擎的封装内链路优先使用交换芯片自带的SerDes TX均衡和光引擎RX的CTLE来cover不建议再引入retimer因为封装基板内的retimer需要额外供电、额外热源还会增加延迟对于本身就是短距的CPO来说是纯负收益。要用一句话总结CPO场景下retimer是“能不加就不加”除非你确认光引擎RX端的均衡能力不够否则它只会给你增加热密度和功耗预算的压力。3. 电源树设计从“够用”到“能用”的差距到底在哪3.1 光引擎电源域的特殊性很多做数字电路出身的硬件工程师第一次碰CPO都会低估电源设计的难度。光引擎里面不仅有TIA跨阻放大器、驱动器的模拟电路还有微控制器、温度传感器、MPD监控光电二极管的偏置电路。最要命的是这些电路对电源噪声的容忍度极低。TIA的输出直接决定接收灵敏度如果电源纹波耦合到TIA的供电端灵敏度立刻劣化表现在系统上就是误码率上升、接收功率预算撑不住。以我们这款800G CPO为例光引擎的模拟电源域要求纹波通常要控制在10mV以内甚至更严而数字电源域可以放宽到30~50mV。如果按传统可插拔模块的设计思路给整个模块供一路0.8V然后靠LDO局部降噪确实能解决一部分问题但在共封装架构里光引擎和交换芯片靠得很近开关电源的开关噪声和交换芯片的数字开关噪声很容易通过共享的供电网络耦合进来。所以电源树设计的第一原则是把所有模拟敏感电源域和数字噪声源物理隔离包括PCB层、过孔区域、磁珠位置、甚至参考地平面的分割。3.2 PDN阻抗目标怎么定PDNPower Distribution Network供电网络设计本质上是做阻抗控制。一个常见误区是只按最大电流算直流压降而忽略交流阻抗。光引擎的TIA和驱动器的瞬态电流变化很快特别是突发模式或高摆幅驱动时瞬态电流的变化率di/dt很吓人。PDN的交流阻抗一旦在某个频段上出现尖峰纹波就会顺着供电网络传到敏感模拟电路。我的习惯是先把光引擎的瞬态电流模型拿到然后定义PDN目标阻抗。一个粗略的方法如果允许的纹波是10mV瞬态电流变化是1A那么从电源模块输出到负载点的整个供电网络阻抗在关注频段内应该低于10mΩ10mV / 1A 10mΩ。这个目标看似简单真做起来相当难因为你要在封装基板、焊球、PCB走线、过孔、去耦电容多个维度同时压阻抗。实际操作中我会用“分层去耦”的思路布局第一层是封装基板上的高密度小容值电容比如0.1uF、0.01uF X7R用来压低高频阻抗第二层是PCB上的中容值电容比如1uF、4.7uF放在BGA焊盘背面附近第三层是板级大容值电容比如100uF钽电容或聚合物电容负责中低频瞬态响应。这三层缺一不可少了任何一层你去看PDN阻抗曲线都会发现某个频段凸起对应的纹波问题会在系统测试中暴露出来。3.3 电源时序和软启动别在最后一刻才想起来还有一个特别容易被忽略但极容易出问题的细节供电时序。CPO系统里面交换芯片、光引擎、SerDes、时钟芯片各自的供电轨很多上电时序如果不对轻则器件进入闩锁状态重则直接损伤光引擎内部的激光器驱动电路。激光器的偏置电路尤其敏感如果驱动器的电源已经起来而偏置电源还没稳定激光器可能短时间内流过非预期电流这个在可靠性测试里是会死芯片的。我一般控制上电时序的方法是先用CPLD做时序控制把所有电源轨按“先数字后模拟、先低压后高压、先核心后IO”的顺序打开。比如Core电源先上、然后SerDes的AVDD、再然后光引擎的VCSEL驱动电源、最后激光器偏置电源。每一级之间延迟至少1~2ms避免同时切换造成的大电流冲击。软启动也不可忽略。电源模块的软启动时间如果太短上电瞬间的浪涌电流会造成输入电源跌落严重时甚至拉垮同一块单板上其他电路的供电。我的习惯是把软启动时间设置在3~5ms并通过示波器抓取每一路上电波形确认无过冲。这个工作看起来琐碎但量产阶段出现的很多“死机”“不启动”问题最终都能在电源时序这块找到根源。4. 信号完整性设计过孔残桩、耦合与谐振都是怎么吃掉你的眼图的4.1 封装基板走线材料、线宽、间距的三角关系CPO的信号完整性设计核心战场已经从PCB转到了封装基板。我们用过的基板材料有两类ABFAjinomoto Build-up Film和MEGTRON6类的高速材料。ABF在常规BGA封装里用得很多损耗中等价格相对友好MEGTRON6或类似材料在高速SerDes场景下损耗更低但加工难度和成本更高。做800G时如果你走的是8路100G方案基板材料基本锁死到MEGTRON6级别ABF的损耗会很吃紧16路50G方案则还能在ABF和MEGTRON6之间犹豫一下。线宽和间距也在基板设计里互相拉扯。更宽的线意味着损耗更低但布线密度下降更难在有限的基板面积里把16对差分线布出来。更宽的间距意味着串扰更小但对基板尺寸要求更高直接推高成本。我在这款设计里最终采用了差分线宽/间距7.5mil/7.5mil约190μm/190μm的折中方案配合参考地平面优化在50G PAM4下预算内做到了单端16dB的链路预算余量。有条件的团队建议在基板设计阶段就做全链路S参数仿真别省这个时间。4.2 过孔残桩一个只能靠背钻解决的“定时炸弹”基板内走线总会有需要换层的时候而过孔就是信号完整性最大的变数。尤其糟糕的是Stub残桩也就是过孔钻完之后从信号层到目标层之间那段没有连接任何线路的多余过孔段。残桩在高频下会形成阻抗不连续并在特定频率上产生谐振而这个谐振频率恰恰可能落在你信号带宽附近。50G PAM4的信号基频在25GHz左右100G PAM4则到50GHz以上。这个频率段里哪怕只有5~10mil的残桩都会在S参数上看到明显的回波损耗恶化和谐振坑。解决办法有两个方向一个是做背钻back drilling把不用的过孔段钻掉另一个是从设计上就减少换层所有高速信号尽量走同一层。实操中我见过最多的问题是背钻精度不够导致残桩还是留了2~3mil实际效果大打折扣。这里给一个经验值背钻后的残桩长度应该控制在8mil以内如果基板厚度允许最好做到5mil以内。在仿真阶段就要把背钻深度公差代入模型做最坏情况分析不要用理想值去骗自己。4.3 串扰控制间距、隔离地过孔、以及“我踩过的耦合坑”CPO基板上的差分线间距非常近16对或者8对高速线并行走线串扰控制不好就会在接收端看到明显的眼图垂直方向收窄。串扰分为近端串扰NEXT和远端串扰FEXT在高速PAM4信号里FEXT对眼图闭合的贡献尤其明显因为远端串扰会叠加在信号上且幅度随耦合长度增加而上升。我之前在一个400G项目的测试中发现两对相邻差分线之间只要间距小于3倍线宽远端串扰就能把眼高吞掉接近15%。后来加了一排接地过孔ground via fence在两组差分线之间串扰改善明显但同时接地过孔阵列也会占据宝贵的基板面积而且如果过孔排列不当反而会形成新的谐振腔。这里需要微调仿真参数来确定过孔间距和排列方式一般建议接地过孔间距小于信号上行波长的1/20对于25GHz大约0.6mm以内。另外一个容易踩的坑是参考平面不连续。高速差分线跨过电源平面的分割槽时回流电流会被迫绕行产生严重的共模噪声和辐射这在眼图上表现为随机抖动变大。我的经验是所有高速差分信号一定要保证完整的参考地平面不可避免要跨分割时必须在分割处就近放置缝合电容stitching capacitor让回流电流有低阻抗路径。4.4 谐振与封装模式别让你的基板变成一个谐振腔封装基板里有很多层电源平面和地平面之间就构成一个天然平板电容但同时也可能在某些频率上形成谐振模式。如果你的SerDes工作频率或者它的谐波恰好在谐振频率附近你会在电源网络上看到明显噪声增强这个噪声再耦合到信号线上眼图立刻劣化。解决手段除了前面说的分层去耦电容还有很重要的一条在基板设计阶段对电源/地平面布局做谐振分析。通常用场仿真工具提取整个PDN的谐振模式然后在仿真中看到电压分布热点在这些热点位置放置去耦电容来抑制谐振。这个工作在800G CPO里几乎是必须的因为工作频率高基板尺寸也大谐振模式数量明显增多光靠经验去猜电容位置纯粹是赌运气。5. 热仿真数据解析我实测的几组结果和对应的设计折中5.1 热源模型怎么建立才靠谱做CPO热仿真第一件事是把热源拆清楚。整个封装体内有几大热源交换芯片本身几百瓦级别、光引擎里的驱动芯片和TIA、基板上的电源转换损耗、以及激光器VCSEL或硅光方案里的激光器自身的热耗。每个热源的功率密度、面积、位置都不相同必须分别建模不能笼统地设一个“总功耗”。我用Flotherm搭了一个简化模型把交换芯片设成块状热源尺寸17.5mm x 17.5mm功耗280W光引擎一共四个每个里包含driver和TIA热源合计约10W再加上电源模块的热耗整个封装体的总热耗约320W。这里面有个容易被忽视的点光引擎和交换芯片之间的距离如果太近交换芯片的热会通过基板横向传播到光引擎区域导致光引擎温度升高而光引擎的光电性能对温度极其敏感VCSEL的斜率效率和阈值电流随温度变化很明显。5.2 实测热仿真数据几个关键场景的结果我整理了我们项目里几个关键场景的热仿真结果这些数据都是在环境温度55℃、风速3m/s的机箱条件下跑的场景交换芯片功耗W光引擎功耗W芯片结点温度℃光引擎基板温度℃最大温差℃400G低速模式1802482.474.67.8800G满载-原始布局2804096.888.28.6800G满载-优化布局12804094.381.512.8800G满载-优化布局22804093.779.813.9看这个表能得出几个重要信息。第一交换芯片结点温度在800G满载时逼近97℃这已经非常接近硅器件通常125℃结温上限的一半以上了考虑长期可靠性降频运行几乎是必然的。第二光引擎基板温度从74.6℃升到88.2℃对光引擎的性能影响很大尤其是激光器的波长漂移和调制效率变化。第三优化布局把光引擎放得更靠近出风口或热通孔区域能显著降低光引擎基板温度但同时拉大了与交换芯片的温差热机械应力风险上升。5.3 热仿真数据如何反哺电路设计热仿真如果做出来不好看第一反应不要是加风扇或者加散热器而是先回去看电源效率。CPO整个封装体功耗里很大一部分是电源转换损耗如果电源效率从85%提到92%总热耗能降下来一大截。比如我们原来用三路独立的buck给光引擎供电每路效率88%左右后来换成两路高效率buck加一路低噪声LDO组合整体热耗下降了约7W散热压力立刻缓解不少。热仿真还能指导电源PCB布局发热大的电源芯片应该靠近散热路径放置但又要远离光引擎的敏感模拟电路。这个矛盾经常让布局工程师头疼。我的做法是电源芯片放在基板边缘靠近散热通孔区域光引擎放在另一侧两者之间用一组接地过孔和电源滤波电路做隔离带。既有隔离效果又在热通路上。这里我特别想强调热仿真的价值不只是“出一份报告”而是帮你在SI、PI、热三者之间找到折中点。比如基板走线要短要宽但太宽会阻挡散热通孔的布置去耦电容要靠近引脚但电容太大又会影响基板热阻。这些都需要反复迭代最终拿出来的很可能不是每一项最优的设计而是综合下来最可靠的。6. 可测试性与量产良率DFT和耦合对准最容易拖延交付进度的两件事6.1 为什么CPO的DFT比传统模块难做十倍CPO共封装之后光引擎已经和交换芯片在同一个封装体内了传统的“先测交换芯片、再测光模块、最后联调”的流程全部被打乱。你不能用常规的QSFP-DD测试治具去测光引擎因为它已经没有可插拔接口了。这时必须提前设计DFTDesign For Test方案。我遇到的最实际问题是光引擎内部的TIA输出信号怎么测试。共封装基板上留测试焊盘probe pad是可以的但50G PAM4信号在probe点测的时候探针本身的寄生电容和电感就会加载到信号路径上导致测试到的眼图和实际工作状态差别很大。针对这个我们的做法是设计一条独立的环回测试路径在光引擎输入端加入一个测试用信号源然后通过片上环回把电信号引出来在静态测试阶段验证SerDes的TX/RX功能光路的插损和光纤耦合对准则单独使用光学测试设备验证。建议所有做CPO设计的团队在项目Kickoff阶段就把DFT方案纳入设计评审范围而不是等板子打样回来才发现“没法测”。6.2 光纤耦合对准精度、工艺、以及一条非常隐晦但致命的坑光纤耦合对准是CPO量产阶段最大的工艺变量。光引擎里每一个通道的光都需要和光纤阵列fiber array或波导进行耦合对准这个对准精度通常在亚微米级别。电路设计在这里能做的不多但有几件事工程师必须提前考虑。首先基板上要预留对准标记alignment mark而且这些标记不能和高速走线、参考地平面冲突。其次耦合区域附近不能放置高发热元件否则热膨胀会导致对准偏移产品在温度循环测试里容易偶发性能劣化。最后光纤阵列的固定胶水通常是紫外固化胶固化时会带来微小收缩这个收缩量虽然极小但在亚微米对准精度的尺度上可能就是致命的。我们遇到过一批样品的灵敏度测试结果陆续超标排查到最后发现是胶水固化工艺的紫外光强度不够导致收缩不一致。这块给硬件工程师的建议是尽早和工艺工程师、封装厂对齐对准方案PCB/基板设计要为耦合工艺留出足够空间和机械支撑不要把光纤阵列直接悬空贴在基板表面时间长了一定会有应力问题。6.3 量产测试覆盖率哪些测试必须做哪些可以省量产测试是一道成本关。CPO封装体的成本极高任何一颗不良品流到系统集成阶段再被发现整体损失都会放大很多倍所以测试覆盖率不能太低。我的经验是以下几项测试必须做常温Full-loop误码率测试覆盖SerDes和光引擎链路、高温下的灵敏度测试确认温度余量、电源纹波测试确认PDN工作正常、以及激光器工作电流和背光监控二极管的读数校准确认激光器健康状态。可选的测试包括全温度范围的误码率扫测时间太长抽样即可、单通道极致压力测试通过软件配置PRBS31、加大抖动源来摸底极限余量。有些团队喜欢在量产阶段跑很长时间的长时间稳定性测试来证明设计余量但从成本和产能角度出发这种测试更适合在Design Validation阶段做足量产阶段只保留抽测即可。最后说一个几乎每个人都踩过但我们花了很久才彻底解决的坑光纤耦合后的清洁工艺。耦合点附近总是残留微量有机污染物在激光器工作发热时这些污染物会缓慢挥发并沉积在VCSEL出光面或光纤端面上导致光功率缓慢下降。这个问题在传统模块里也有但在CPO共封装架构里清洁难度大得多返工代价也大得多。建议从BOM选型阶段就选择低挥发、耐高温的胶水和清洁剂并在DFM评审时把清洁工序纳入产线流程。7. 写在最后的一点体会我做这个800G CPO项目最大的收获不是把眼图调开、把温度压住而是想明白了一件事CPO这类把多个不同工艺、不同敏感度的器件放进同一个封装的架构所有问题都是相互缠绕在一起的。SI排布影响热分布热分布反过来改变材料损耗特性电源纹波会被基板谐振放大谐振又和去耦电容的摆放位置强相关。你不可能像传统板级硬件设计那样把“电源”“信号”“结构散热”分给三个团队各管一段最后再拼起来就完事。所以我的建议是如果你决定做CPO从一开始就建立一个跨电源、SI、热、工艺、测试的联合评审机制。每一个设计决策都会在上述几个维度里有连锁反应这一点上CPO比传统可插拔光模块苛刻得多。如果真的要说一句最核心的经验那就是在设计的每一个关键节点都逼自己问一句“如果这个参数到量产时偏了20%我还能不能兜住”。只要这个答案始终是肯定的你的设计大概率不会在产线上出大乱子。
返回列表