
1. 项目缘起与整体设计思路1.1 为什么我会去啃这份800G规范最早接触800G这个话题是因为手头一个数据中心互联的仿真项目需要评估下一代光模块的链路预算。当时市面上能查到的公开资料要么停留在400G的架构上要么就是厂商宣传稿里一堆漂亮数字但缺少可复现的细节。真正让我下决心系统整理这份笔记的是发现很多同行在讨论800G时把电气侧接口和光侧参数混为一谈导致方案评审时经常鸡同鸭讲。这份笔记的核心目标很明确把800G以太网规范中与工程落地最相关的部分抽出来形成一份能直接指导选型、仿真和测试的参考。它解决的不是“800G是什么”这种科普问题而是“当我要设计一个800G链路时哪些参数必须卡死、哪些地方容易踩坑、不同实现路径的取舍逻辑是什么”。适合有一定高速信号基础、正在做数据中心网络规划或光模块评估的工程师参考也适合想从400G平滑过渡到800G的团队作为技术预研材料。1.2 整体架构的取舍逻辑800G规范最核心的变化不在于速率数字本身而在于它把“通道数×单通道速率”这个乘法拆成了多种组合。400G时代主流是8×50G PAM4到了800G规范层面同时认可8×100G和16×50G两种电气接口方案。这个设计背后有很现实的工程考量8×100G对SerDes和封装的要求极高但端口密度和功耗更优16×50G可以复用部分400G时代的成熟IP但走线复杂度和连接器体积会上去。我在整理时把内容分成三大块电气接口参数、光侧链路预算、以及前向纠错与链路训练。这样分的理由是实际项目中这三块分别对应不同的责任方——芯片选型看电气接口光模块采购看光侧预算系统联调看FEC和训练。如果混在一起讲读者很难快速定位到自己关心的部分。提示很多团队在预研阶段只关注速率和功耗忽略了FEC模式对延迟的影响。800G规范里FEC从RS(544,514)向更高速率演进时纠错能力和延迟的平衡点会变化这个必须在架构设计早期就纳入考量。1.3 与400G规范的继承关系800G并不是凭空冒出来的它在很多基础机制上直接继承了400G的框架。比如PAM4调制、RS-FEC的基本结构、以及链路训练的状态机逻辑都能在400G规范里找到影子。但继承不等于照搬800G在通道绑定、偏斜容忍和误码率分配上做了明显调整。我特意在笔记里用了一张对照表来梳理这些差异因为实际调试时很多问题就是因为工程师默认“800G就是400G翻倍”而忽略了这些细节。比如400G时代每个通道的偏斜预算相对宽松到了800G由于单通道速率翻倍同样的物理走线差异会导致更大的UI偏移规范对通道间偏斜的要求实际上收紧了。2. 核心参数拆解与实操要点2.1 电气接口的关键参数800G电气接口最核心的参数是每通道速率、调制方式和通道数。8×100G方案里每个通道跑106.25Gbps的PAM4信号这个数字不是随便定的——它是在扣除FEC开销和编码效率后刚好能承载800G有效载荷的最小整数通道配置。16×50G方案则是53.125Gbps每通道对SerDes的奈奎斯特频率要求从约26.5GHz降到约13.3GHz这个差异直接决定了芯片选型范围。实际选型时我习惯先算一个“通道裕量”用规范给出的发送端眼图模板和接收端容忍度反推PCB走线能承受的最大插入损耗。8×100G方案在FR4板材上的有效走线长度通常比16×50G短不少如果背板走线超过一定长度要么换更低损耗的板材要么就得考虑16×50G方案。这个计算过程我在笔记里写了详细步骤包括如何从规范里的S参数模板推导损耗预算。另一个容易被忽视的参数是回波损耗。800G规范对连接器和过孔的回波损耗要求比400G更严因为更高速率下反射对眼图的干扰更明显。实测中一个设计不良的过孔在26.5GHz处可能产生几dB的谐振直接吃掉链路裕量。2.2 光侧链路预算的构成光侧部分800G规范定义了多种PMD类型对应不同的传输距离和光纤类型。以常见的2km和10km场景为例预算构成包括发送光功率、光纤损耗、连接器损耗、以及接收灵敏度。这里的关键是800G的接收灵敏度指标通常是在特定FEC模式下给出的脱离FEC谈灵敏度没有意义。我在笔记里整理了一个预算计算模板把每个环节的典型值和最坏值都列出来。比如2km场景下光纤损耗按0.35dB/km算连接器按每个0.5dB算再留出一定的老化裕量。这个模板的好处是当你换用不同厂商的光模块时可以直接把规格书里的数字填进去快速判断链路是否可行。注意光模块规格书里的灵敏度往往是在理想消光比和特定温度下测的实际部署时温度变化会导致灵敏度劣化。我在多个项目里见过夏天机房温度升高后链路误码率飙升的情况所以预算里一定要留温度裕量。2.3 FEC模式的选择逻辑800G规范里FEC的选择直接影响到有效载荷速率和链路延迟。常见的RS(544,514)模式开销约5.8%能纠正一定数量的符号错误。但到了800G由于单通道速率更高同样的FEC模式在相同误码率下可能不够用所以规范里也引入了更强的FEC选项。选择FEC时我通常考虑三个因素链路误码率基线、延迟敏感度、以及芯片支持情况。如果链路基线误码率在1E-5左右RS(544,514)通常够用如果超过1E-4可能就需要更强的FEC或者考虑降低单通道速率。延迟方面更强的FEC意味着更长的码块和更多的处理时间对某些实时性要求高的场景需要权衡。2.4 链路训练的状态机要点链路训练是800G里比较复杂的部分它负责在链路建立初期协商双方的能力、调整均衡参数、以及确认FEC模式。状态机从发送训练序列开始经过系数交换、均衡收敛、到最后进入正常数据模式每一步都有超时和重试机制。实操中常见的问题是训练卡在某个状态反复重试。根据我的经验这通常指向三个方向一是通道间偏斜超出容忍范围导致训练序列无法正确对齐二是均衡系数收敛到边界值说明信道条件比预期差三是双方能力集不匹配比如一方只支持8×100G而另一方配置成了16×50G。排查时我会先用训练状态寄存器读出当前卡在哪个子状态再针对性检查物理层参数。3. 实操过程与核心环节实现3.1 从规范到仿真模型的建立拿到规范后第一步不是急着跑仿真而是把关键参数提取成一张参数表。我通常按电气、光、FEC三列来组织每列下面再分发送端、接收端、信道。这张表的作用是作为后续所有工作的单一数据源避免不同文档里参数不一致。建立仿真模型时电气部分我用IBIS-AMI模型来模拟发送端和接收端的行为信道部分用实测或厂商提供的S参数。这里有个细节规范里的眼图模板是理想条件下的实际仿真时要把封装和过孔的寄生参数加进去否则结果会过于乐观。我一般会先用一个简单的通道模型跑通流程再逐步替换成更精确的模型。光侧仿真相对简单主要是用预算表做链路可行性判断。但如果要做误码率曲线就需要把光模块的噪声模型和FEC解码器一起建模。这部分我通常用简化的高斯噪声近似虽然不够精确但对于方案筛选足够用了。3.2 通道偏斜的测量与补偿通道偏斜是800G调试里绕不开的问题。测量方法是在发送端发送已知的测试图案在接收端用示波器或误码仪抓取各通道的到达时间。我习惯用PRBS31图案因为它能覆盖较长的游程更容易暴露偏斜问题。补偿手段主要有两种一是在PCB设计阶段通过走线等长来被动补偿二是在芯片里通过可编程延迟线来主动补偿。被动补偿的精度受限于板材的介电常数均匀性和制造公差通常只能做到几个ps的精度。主动补偿更灵活但需要芯片支持而且延迟线本身会引入抖动。实测中我发现即使走线等长由于过孔和连接器的差异通道间仍可能有几ps的残余偏斜。这时候就需要用主动补偿来微调。调整时我会先扫一遍延迟线代码找到误码率最低的区间再在这个区间里细调。3.3 FEC性能的实测验证FEC性能不能只看规范里的理论曲线必须实测。我的做法是在链路里注入可控的误码然后观察FEC解码后的误码率。注入误码可以用噪声源或者故意劣化发送端信号质量来实现。测试时要注意FEC解码器需要一定数量的码块才能统计出有意义的误码率。我通常至少采集1E8个码块对于低误码率场景甚至要采集1E10个。这个时间成本不低所以我会先用短时间测试做粗略判断确认方向后再做长时间验证。另一个经验是FEC的纠错能力在突发错误和随机错误面前表现不同。规范里的指标通常是针对随机错误的但实际链路里突发错误更常见比如电源噪声引起的周期性干扰。所以我在测试时会特意加入一些突发错误模式看看FEC的余量够不够。3.4 链路训练的调试流程链路训练调试我一般按这个顺序来先确认双方能力集匹配再检查训练序列的发送和接收是否正常然后看均衡系数收敛情况最后验证进入数据模式后的误码率。能力集匹配是最容易出问题的环节。800G规范里有很多可选特性如果双方配置不一致训练就会卡住。我通常会先把双方配置都设成最保守的模式确认能通之后再逐步开启高级特性。均衡系数收敛情况能反映信道质量。如果系数收敛到边界值说明信道条件比预期差可能需要调整发送端预加重或接收端均衡强度。我一般会记录收敛后的系数值作为链路健康度的参考。进入数据模式后的误码率验证是最后一步也是最重要的一步。这时候要跑长时间测试观察误码率是否稳定。如果误码率随时间漂移可能是温度或电源问题需要进一步排查。4. 常见问题与排查技巧实录4.1 训练失败类问题速查训练失败是800G调试里最高频的问题。我把常见原因和排查方法整理成了下面这张表方便快速定位。现象可能原因排查方法训练卡在能力协商阶段双方配置不匹配读取双方能力寄存器对比配置训练卡在系数交换阶段通道偏斜过大测量各通道到达时间检查偏斜训练卡在均衡收敛阶段信道损耗过大检查S参数确认插入损耗是否超预算训练反复重试信号质量差抓取眼图检查眼高眼宽训练成功但误码率高FEC模式不匹配确认双方FEC配置一致这张表是我从多个项目里总结出来的基本上覆盖了八成以上的训练问题。实际排查时我会先用训练状态寄存器确定卡在哪个阶段再对照表格缩小范围。4.2 误码率偏高的排查思路误码率偏高但训练能成功这种情况往往更棘手因为问题可能出在多个环节。我的排查顺序是先看发送端眼图再看信道损耗然后看接收端均衡最后看FEC。发送端眼图主要看眼高和眼宽以及是否有明显的确定性抖动。如果眼图闭合可能是预加重设置不当或者驱动器供电有问题。信道损耗用矢量网络分析仪测S参数重点看奈奎斯特频率处的插入损耗和回波损耗。接收端均衡主要看CTLE和DFE的配置是否合理有时候默认配置并不适合当前信道。FEC方面如果误码率在FEC纠错能力边缘稍微改善一点信道就能大幅降低误码率。但如果误码率远超FEC能力就需要从物理层找原因了。4.3 温度与电源引起的偶发问题有些问题只在特定温度或电源条件下出现排查起来很费劲。我遇到过夏天机房温度升高后某条链路误码率从1E-12飙升到1E-6的情况。后来发现是光模块的消光比随温度漂移导致接收端灵敏度劣化。这类问题的排查方法是做温度循环测试从低温到高温逐步变化同时监测误码率。如果误码率在某个温度点突然恶化就重点检查该温度下光模块和芯片的关键参数。电源方面我会用示波器监测电源纹波特别是在大流量突发时电源噪声可能耦合到信号上。提示偶发问题最难复现所以一旦出现要尽可能记录当时的环境条件、配置参数和误码率曲线。这些数据对后续分析至关重要。4.4 互操作性问题的处理经验不同厂商的设备互操作时经常出现“各自单独测试都正常连在一起就不行”的情况。这通常是因为规范里有些参数是“可选”或“建议”的不同厂商实现程度不同。处理互操作问题我的经验是先做最小化配置只开启双方都强制支持的必选特性确认能通之后再逐步开启可选特性。如果某个可选特性开启后出问题就重点检查双方对该特性的实现差异。有时候需要抓取训练过程的详细日志对比双方的状态机跳转是否一致。另一个技巧是准备一套“黄金配置”也就是经过验证的、最保守的参数组合。当互操作出问题时先用黄金配置确认物理链路没问题再逐步调整到目标配置。5. 工具选型与测试环境搭建5.1 仿真工具的选择电气仿真我主要用两种工具一种是通用的电路仿真器适合做通道级仿真另一种是专门的SerDes仿真工具内置了IBIS-AMI模型支持。选择时主要看模型库是否齐全以及仿真速度是否满足迭代需求。对于800G这种高速信号仿真精度和速度的平衡很重要。我通常先用快速仿真做方案筛选确认几个候选方案后再用高精度仿真做详细验证。高精度仿真时要把封装、过孔、连接器的模型都加进去否则结果参考价值有限。光侧仿真相对简单用预算表加简单的噪声模型就够了。但如果要做系统级误码率分析就需要把光模块和FEC一起建模这时候可能需要专门的系统仿真工具。5.2 测试仪表的配置要点800G测试对仪表带宽要求很高。示波器至少需要33GHz以上带宽才能较好地观察100G PAM4信号。误码仪需要支持PAM4图案生成和分析以及FEC解码功能。我配置测试环境时会特别注意仪表的校准。高速测试里电缆和连接器的损耗会直接影响测量结果。我通常会用电子校准件做端口校准把参考面推到被测件接口处。另外仪表的抖动本底噪声也要提前测一下避免把仪表噪声误判为信号问题。对于链路训练测试还需要仪表支持训练序列的发送和接收。有些仪表内置了训练状态机模拟功能可以模拟对端设备的行为这对单独测试一端设备很有用。5.3 测试夹具的设计注意事项测试夹具在800G测试里很关键设计不好会引入额外的损耗和反射。我设计夹具时遵循几个原则走线尽量短且等长过孔尽量少连接器选高频性能好的。板材选择上800G测试夹具通常需要用低损耗板材比如Megtron 6或类似等级的材料。普通FR4在26.5GHz处损耗太大会导致测试结果偏悲观。夹具的接地设计也很重要不良的接地会引入谐振影响高频性能。我一般会先用仿真验证夹具设计确认插入损耗和回波损耗在可接受范围内再投板。投板后先用矢量网络分析仪测S参数和仿真结果对比确认夹具本身没问题再用于正式测试。6. 从规范到落地的经验总结6.1 参数裕量的分配策略800G链路设计里裕量分配是个艺术。规范给出的指标通常是“最坏情况”下的最低要求实际设计时如果只按规范卡线量产时很容易出问题。我的经验是在规范基础上留出至少20%的裕量关键环节比如FEC和光预算甚至要留30%。裕量分配要区分“设计裕量”和“制造裕量”。设计裕量是留给仿真和实测差异的制造裕量是留给批次波动的。我通常在设计阶段就把这两部分分开算避免后期因为制造波动导致整体裕量不足。另一个经验是裕量不要平均分配。信道损耗、连接器、FEC这几个环节里FEC的裕量最宝贵因为它是最后一道防线。如果FEC裕量不足前面环节稍微劣化就会导致误码率飙升。所以我会优先保证FEC有足够裕量其他环节可以适当压缩。6.2 从400G迁移的注意事项从400G迁移到800G最大的陷阱是“想当然”。很多在400G上验证过的设计直接搬到800G上会出问题。比如PCB走线400G时代能用的长度800G时代可能就超损耗了。连接器也是400G能用的连接器800G时代回波损耗可能就不达标了。我的建议是迁移时把800G当成一个全新项目来做不要假设400G的经验都能复用。当然400G时代积累的测试方法、调试流程、以及团队协作模式是可以继承的但具体参数和设计规则必须重新验证。迁移过程中我会先做一个“差异分析”把400G和800G规范逐条对比找出所有变化点。然后针对每个变化点评估影响制定应对措施。这个分析看起来费时间但能避免后期大量返工。6.3 团队协作与文档管理800G项目通常涉及芯片、光模块、PCB、系统等多个团队协作复杂度高。我的经验是一定要有一个“单一数据源”的文档把所有关键参数、接口定义、测试结果都记录在里面。这个文档由系统工程师维护各团队更新自己负责的部分。文档管理上我习惯用版本控制工具来管理规范笔记和测试报告。每次规范更新或测试完成都提交一个新版本并记录变更内容。这样后期追溯问题时能快速定位到是哪个版本引入的变化。团队沟通方面我会定期组织跨团队的技术评审重点对齐接口参数和测试标准。800G项目里很多问题都是因为接口理解不一致导致的定期对齐能提前发现这些隐患。6.4 后续演进方向的思考800G不是终点规范本身也在演进。从目前的趋势看下一步可能会在单通道速率和通道数上继续做文章同时FEC和链路训练机制也会进一步优化。我在笔记里留了一些扩展接口方便后续补充新内容。对于正在做800G预研的团队我的建议是不要只盯着当前规范要留出一定的前瞻性。比如PCB设计时可以按更高频率的要求来选板材和连接器这样后续升级时不用重新设计。芯片选型时也可以考虑支持更高通道速率的型号给未来留出空间。当然前瞻性也要适度过度设计会增加成本和复杂度。我的做法是在关键环节留出可升级的余地比如用可编程的均衡器和FEC这样后续可以通过固件升级来适配新规范而不需要换硬件。