1. 为什么我要花两周时间啃透802.3ck第一次接触IEEE 802.3ck是在一个400G光模块的选型评审会上。当时供应商的FAE拍着胸脯说我们的模块完全符合ck标准我问了一句那你们CDR的均衡架构是怎么处理COM的对面愣了三秒然后开始翻数据手册。那一刻我就意识到这个规范虽然只有薄薄几十页但真正吃透它的人并不多而它恰恰是当下400G/800G高速互连绕不过去的一道门槛。IEEE 802.3ck是什么简单说它是IEEE在2018年前后启动、2021年正式发布的一个补充规范全称是Physical Layer Specifications and Management Parameters for 100 Gb/s, 200 Gb/s, and 400 Gb/s Electrical Interfaces Based on 100 Gb/s Signaling。翻译成人话就是它定义了基于单通道100Gbps电气信号的100G、200G、400G电接口的物理层规范。注意关键词是电气接口和100G/lane这跟802.3cd定义50G/lane的200G/400G和802.3bs定义400G的MAC层是互补关系。它能解决什么问题在ck之前400G电接口要么用8路50G如400GAUI-8要么用4路100G但缺乏统一的电气规范。8路50G的问题是通道数太多、布线密度高、功耗大而4路100G虽然通道数减半但100G/lane的奈奎斯特频率到了26.56GHz以53.125GBd PAM4为例信号完整性挑战陡增。ck就是来给4路100G这条路线定规矩的让不同厂商的芯片、模块、连接器、线缆能互操作。适合谁来读如果你在做数据中心交换机、光模块、AEC/DAC线缆、SerDes IP、或者测试仪表的硬件/信号完整性/系统架构工作这个规范就是你的必修课。哪怕你是刚入行的SI工程师把ck啃下来对理解高速串行链路的设计逻辑会有质的提升。我下面就把这两周梳理的东西按我的理解重新组织一遍尽量说人话把那些藏在表格和公式背后的为什么挖出来。2. 规范的整体框架与设计思路拆解2.1 ck在802.3家族里的位置要理解ck先得把802.3这棵大树理清楚。802.3是IEEE的以太网标准总集底下有无数个补充文件amendment。跟高速电接口相关的几个关键节点是这样的802.3bj定义了100G背板和铜缆的电气规范用的是4x25G或10x10G的NRZ信号。802.3bs定义了400G的MAC层和200G/400G的物理层框架但电接口部分留了缺口。802.3cd补上了50G/lane的电气规范于是有了200GAUI-4、400GAUI-8这些接口。802.3ck补上了100G/lane的电气规范于是有了100GAUI-1、200GAUI-2、400GAUI-4。所以ck的核心贡献就一句话把单通道电气信号的速率从50G推到100G并给出完整的通道、发送端、接收端指标。它定义的接口包括接口名称通道数单通道速率典型应用100GAUI-11100G单通道100G直连200GAUI-22100G200G模块/芯片互连400GAUI-44100G400G模块/芯片互连400GAUI-8850G兼容cd的过渡方案注意最后一行400GAUI-8虽然速率是50G/lane但ck里也把它纳进来了主要是为了兼容已有的cd生态让设备能平滑过渡。这个设计思路很务实——新规范不能把老设备一脚踢开。2.2 为什么是100G/lane而不是别的这个问题我琢磨了很久。从25G到50G再到100G每一步都是翻倍但每一步的难度不是线性增长的。100G/lane用PAM4调制符号率53.125GBd奈奎斯特频率26.5625GHz。这个频率下FR4板材的损耗已经到了每英寸约1dB的量级一个20英寸的背板通道插损轻松超过30dB。这就是为什么ck对通道的要求极其苛刻也是为什么它引入了很多新的测量和均衡概念。那为什么不直接上200G/lane因为200G/lane的奈奎斯特频率到53GHzPCB材料得换成更贵的低损耗板材连接器、过孔、封装都得重新设计成本会飙升。而且200G/lane的SerDes功耗和面积也是问题。所以100G/lane是当前工艺和成本下比较平衡的选择。ck的制定者们显然算过这笔账。另一个关键决策是PAM4调制。NRZ在50G以上就力不从心了因为同样的符号率下NRZ只能传1bitPAM4能传2bit。但PAM4的代价是信噪比要求高了约9.5dB理论值眼高只有NRZ的1/3。这就逼着整个链路必须用更强的均衡和更精细的指标控制。ck里大量的篇幅都在讲均衡、讲COM、讲通道指标根源就在这里。2.3 规范的核心逻辑把链路拆成可测量的模块ck最聪明的地方是它没有试图去规定整个链路必须怎样而是把链路拆成几个可独立测量的模块然后给每个模块定指标。这样芯片厂商、模块厂商、线缆厂商各管一段最后拼起来能work就行。具体拆法是发送端TX规定输出幅度、上升下降时间、眼图模板、回波损耗等。通道Channel规定插入损耗、回波损耗、串扰、阻抗等。接收端RX规定输入回波损耗、均衡能力、误码率等。互连Interconnect包括连接器、线缆、过孔等通常归到通道里一起算。这种模块化设计的精髓在于**COMChannel Operating Margin**这个指标。COM把TX、通道、RX的特性综合起来算出一个裕量值。只要COM大于3dBck里的典型要求链路就认为能工作。这个思路比单纯看眼图要科学得多因为它考虑了均衡和噪声的实际影响。提示COM不是ck发明的802.3bj和cd里就有但ck把COM的计算方法和参数要求细化了很多。如果你要仿真400GAUI-4链路COM是必须掌握的。3. 核心电气指标与实操要点3.1 发送端指标眼图模板与幅度ck对发送端的要求主要集中在几个参数上。我先把关键指标列出来然后逐个解释为什么这么定。参数100GAUI-1要求单位说明差分输出幅度0.4 - 1.2Vpp可调取决于通道损耗上升/下降时间≥ 8ps20%-80%太快会加剧EMI眼高TX≥ 30mV在TP0a测量眼宽TX≥ 0.25UI在TP0a测量回波损耗≤ -10dB0.05-26.56GHz共模噪声≤ 30mVrms影响EMI和串扰这里最容易被忽视的是上升下降时间。很多工程师觉得信号越快越好其实不然。ck规定上升时间不能小于8ps原因是如果边沿太陡高频分量会激增导致EMI超标和串扰恶化。我见过一个案例某厂商为了优化眼图把上升时间调到5ps结果辐射测试直接挂了最后不得不加缓冲电路把边沿拉回来。所以这个下限是有道理的。眼图模板方面ck用的是PAM4眼图有三个眼上、中、下。每个眼的模板要求不一样中间眼通常最严因为它的幅度只有上下眼的一半。测量时要注意眼图必须在TP0a点测也就是发送端芯片的输出引脚处不能在线缆另一端测。这个点很多人搞错导致测试结果对不上。注意TX眼图测试需要用到高带宽示波器至少50GHz和专门的PAM4分析软件。普通NRZ的测试方法不适用因为PAM4的眼图分析涉及三个眼的分别统计。3.2 通道指标插入损耗与COM通道是ck里最复杂的部分。因为100G/lane的信号在PCB上跑损耗、反射、串扰全来了。ck对通道的核心要求是插入损耗IL和COM。插入损耗的典型要求是在26.5625GHz处通道IL不能超过某个值。具体值取决于应用场景比如芯片到模块C2M通常要求IL ≤ 15dB 13.28GHz或者用COM来综合评估。背板BackplaneIL可能到30dB以上这时必须靠RX的均衡来补。线缆DAC/AECIL相对小但要注意线缆的阻抗一致性和屏蔽。这里有个关键概念叫奈奎斯特频率。对于53.125GBd的PAM4信号奈奎斯特频率是26.5625GHz。但ck的IL要求通常看13.28GHz奈奎斯特频率的一半因为PAM4的主要能量集中在这个频段。不过COM计算会考虑整个频段所以不能只看一个点。COM的计算是个体力活。它需要通道的S参数S21、S11、S31等。TX的输出特性幅度、上升时间、抖动。RX的均衡特性CTLE、DFE、FFE的配置。噪声和串扰的统计模型。然后通过一个复杂的公式算出COM值。ck里给出了参考的MATLAB代码在IEEE的网站上能下到但实际用的时候通常会用商业工具如ADS、HyperLynx或专门的COM计算器。我自己的经验是COM计算最容易出错的地方是S参数的端口定义和参考阻抗。有一次我算出来COM是5dB结果同事用同样的S参数算出来是2dB查了半天发现是他把端口顺序搞反了。所以做COM之前一定要确认S参数的端口映射和规范里定义的一致。提示ck要求COM ≥ 3dB。但这个3dB是包含了很多假设的比如TX和RX的抖动、噪声。实际设计中最好留到4-5dB的裕量因为仿真和实测总有偏差。3.3 接收端指标均衡与误码率接收端是ck里最软的部分因为均衡器的架构和算法各家不同规范只能规定结果而不能规定过程。ck对RX的核心要求是输入回波损耗≤ -10dB跟TX类似。均衡能力必须能处理规范定义的最坏情况通道。误码率≤ 1e-15经过FEC之前或者≤ 1e-13某些场景。这里的关键是最坏情况通道的概念。ck定义了一个参考通道模型这个模型的IL、回波损耗、串扰都是最坏但合理的。RX必须能在这个通道下达到要求的误码率。这就给了芯片厂商一个明确的设计目标。RX的均衡通常包括CTLE连续时间线性均衡模拟均衡主要补高频损耗。DFE判决反馈均衡非线性均衡用反馈消除码间干扰。FFE前馈均衡有时在TX端也用预加重。DFE的tap数是个关键参数。ck里没有硬性规定tap数但通过最坏情况通道间接约束了。一般来说100G/lane的RX至少需要10-15个DFE tap才能覆盖典型的通道响应。我见过一些低功耗设计只用了5个tap结果在长通道下误码率飙升。注意DFE有个固有缺陷叫错误传播即一个判决错误会影响后续几个bit。在PAM4下这个问题更严重因为每个符号有4个电平判决错误概率更高。所以ck的误码率要求里其实隐含了对错误传播的容忍度。4. 实操过程从仿真到测试的完整链路4.1 链路建模与S参数提取做ck合规设计第一步是建模。你需要把整个链路拆成几段芯片封装BGA、过孔、封装走线。PCB走线微带线或带状线注意阻抗控制和损耗。连接器背板连接器或模块连接器。线缆如果是DAC/AEC还要加上线缆的模型。每段都要提取S参数。封装和PCB通常用3D电磁仿真工具如HFSS、CST提取连接器和线缆一般用厂商提供的Touchstone文件。这里有个坑不同工具提取的S参数在相位上可能不一致。因为参考面不同或者端口校准方式不同。我建议在拼接S参数之前先检查各段的相位是否连续。如果发现跳变可能是参考面没对齐。拼接S参数用**级联cascade**操作在ADS里用S参数级联控件在Python里可以用scikit-rf库。级联之后得到整个通道的S参数然后就可以算IL和COM了。import skrf as rf # 读取各段S参数 pkg rf.Network(package.s4p) pcb rf.Network(pcb.s4p) conn rf.Network(connector.s4p) # 级联 channel pkg ** pcb ** conn # 画插入损耗 channel.plot_s_db(m0, n1) # 假设端口1到端口2是差分对这段代码很简单但实际用的时候要注意端口顺序。差分对的S参数通常是4端口端口1/2是输入差分对端口3/4是输出差分对。级联时要确保前一级的输出端口对应后一级的输入端口。4.2 COM计算与参数调优COM计算是ck合规的核心。我通常用IEEE提供的MATLAB脚本或者用ADS里的COM计算器。计算前需要准备通道S参数.s4p或.s8p等。TX参数幅度、上升时间、抖动Rj、Dj。RX参数CTLE峰值增益、DFE tap数、噪声系数。串扰参数ICN集成串扰噪声或直接给串扰S参数。COM的公式很复杂但核心思想是信号经过通道和均衡后眼高与噪声的比值。COM 20*log10(眼高/噪声)单位dB。调优的时候我一般先扫CTLE的峰值增益。CTLE增益太低高频损耗补不回来增益太高低频噪声被放大。通常有个最优点在COM曲线上是个峰值。然后调DFE tap数tap越多COM越高但功耗和面积也越大。最后看TX幅度幅度高了眼高大但功耗和EMI也大。我做过一个400GAUI-4的背板链路初始COM只有1.2dB不达标。后来把CTLE增益从6dB调到9dBCOM升到3.5dB。再增加DFE tap从10到15COM到4.2dB。最后把TX幅度从0.8Vpp提到1.0VppCOM到5.1dB。但代价是功耗增加了约15%。所以COM调优是个折中过程。提示COM计算里的抖动参数很关键。Rj随机抖动通常用ps rms表示Dj确定性抖动用ps pp表示。如果TX的抖动指标给得太乐观算出来的COM会虚高实测可能不达标。我一般会在TX抖动上留20%的裕量。4.3 实测验证眼图、BER与一致性测试仿真过了不代表实测能过。ck的合规测试包括TX眼图测试用示波器在TP0a测看是否满足模板。TX回波损耗测试用VNA测S11。通道IL测试用VNA测S21。RX压力眼测试用误码仪加压力看BER是否达标。COM验证用实测S参数重新算COM。实测里最容易出问题的是测试夹具的影响。夹具本身的损耗和反射会叠加到被测件上导致结果偏差。所以ck里定义了**去嵌入de-embedding**的方法把夹具的影响去掉。去嵌入可以用TRL校准、AFR自动夹具移除等方法。我用AFR做过一次400GAUI-4的模块测试。夹具在26GHz处有约2dB的损耗去嵌入后模块的TX眼高从28mV升到35mV刚好过了30mV的模板。如果不去嵌入就会误判为不合格。所以去嵌入不是可选项是必选项。另一个坑是示波器的带宽。ck要求示波器带宽至少能覆盖26.56GHz的奈奎斯特频率实际上推荐用50GHz以上的。但带宽太高会引入更多噪声所以有些工程师会用带宽限制功能把示波器带宽降到35GHz左右。这个取舍要看具体情况我一般会先用全带宽测如果噪声太大再限制。5. 常见问题与排查技巧实录5.1 COM不达标怎么办COM不达标是最常见的问题。排查思路我总结成一个表现象可能原因排查方法解决措施COM低IL正常回波损耗差看S11曲线优化过孔、连接器阻抗COM低IL也差通道损耗大看S21斜率换低损耗板材、缩短走线COM低串扰大走线间距小看S31/S41增加间距、加屏蔽COM低TX抖动大TX指标差测TX眼图调TX均衡、换芯片COM低RX均衡不足CTLE/DFE不够扫均衡参数增加tap数、调CTLE我遇到过一个典型案例某400GAUI-4链路的COM只有0.8dB但IL和回波损耗都正常。后来查串扰发现相邻通道的ICN高达-30dB远超预期的-40dB。原因是走线间距只有3倍线宽而ck建议至少5倍。把间距加到5倍后ICN降到-38dBCOM升到3.8dB。所以串扰在100G/lane下是个大问题不能忽视。5.2 眼图测试的常见误区眼图测试看似简单但坑很多。我列几个我踩过的参考点不对ck要求TP0a但很多人测的是TP1连接器处。TP1的眼图因为通道损耗会小很多导致误判。示波器设置不对PAM4眼图需要专门的软件不能用NRZ的模式。而且触发方式、采样率、平均次数都有讲究。夹具没去嵌入前面说过夹具影响很大。抖动分离不对PAM4的抖动分离比NRZ复杂因为有三个眼。有些软件默认只分析中间眼但ck要求三个眼都看。我建议眼图测试前先做一次直通校准用一条已知良好的短电缆把TX和示波器连起来看眼图是否正常。如果直通都不好那肯定是示波器设置或TX本身的问题。5.3 均衡器调试的经验RX均衡调试是个细活。我的经验是先调CTLE把CTLE增益从低到高扫看BER曲线。通常有个最优点BER最低。再调DFEDFE tap数从少到多看BER改善。但tap太多会引入噪声放大所以不是越多越好。最后调TX FFE如果TX有FFE可以预加重。但预加重会增加TX功耗和EMI要谨慎。注意自适应很多RX的均衡是自适应的会自动调整。但自适应算法可能收敛到局部最优所以有时需要手动给个初始值。我遇到过一个DFE错误传播的问题BER在1e-12附近徘徊怎么调都下不去。后来发现是DFE的tap权重太大导致错误传播严重。把权重调小后BER降到1e-15。所以DFE不是越激进越好。注意ck的BER要求是1e-15但实测时不可能测到这么低要测1e15个bit时间太长。通常测到1e-12然后用统计方法外推。外推的置信度取决于测试的bit数和抖动模型一般至少测1e13个bit才比较可靠。6. 工具选型与效率提升6.1 仿真工具怎么选做ck合规仿真工具选型很重要。我列几个我用过的工具优势劣势适用场景ADSCOM计算成熟S参数处理强贵学习曲线陡通道仿真、COM计算HyperLynx易用集成度高高频精度一般PCB前期评估HFSS3D电磁精度高慢吃内存封装、连接器提取CST时域仿真快频域精度略逊线缆、连接器Pythonscikit-rf免费灵活需要自己写脚本快速分析、批量处理我的习惯是封装和连接器用HFSS提取S参数PCB用ADS或HyperLynx仿真COM用ADS或Python算。这样精度和效率比较平衡。6.2 测试仪表的选择测试仪表方面ck合规测试需要示波器至少50GHz带宽支持PAM4分析。我用过的是某品牌的UXR系列性能不错但价格感人。误码仪支持53.125GBd PAM4能加压力抖动、噪声、ISI。某品牌的MP1900A是常用选择。VNA至少50GHz用于S参数测试。某品牌的PNA系列。探头差分探头带宽要够。而且探头本身的负载效应要小。这些仪表都很贵小公司可能买不起。我的建议是关键测试可以外包给第三方实验室比如做COM验证和一致性测试。自己买的话优先买示波器和误码仪VNA可以租。6.3 自动化脚本提升效率ck合规测试有很多重复性工作比如扫参数、算COM、生成报告。我写了一些Python脚本来自动化import skrf as rf import numpy as np def calc_com(s4p_file, ctle_gain, dfe_taps): # 读取S参数 ch rf.Network(s4p_file) # 这里简化了实际COM计算要复杂得多 il ch.s_db[:, 1, 0] # 插入损耗 # 假装算COM com 10 - np.mean(il)/5 ctle_gain*0.1 dfe_taps*0.05 return com # 扫参数 for ctle in [3, 6, 9, 12]: for taps in [5, 10, 15, 20]: com calc_com(channel.s4p, ctle, taps) print(fCTLE{ctle}dB, DFE{taps}taps, COM{com:.2f}dB)这个脚本是示意性的实际COM计算要调用IEEE的参考代码。但思路是一样的把参数扫描和结果分析自动化能省很多时间。我做过一个项目手动扫COM要两天自动化后两小时搞定。提示自动化脚本要注意版本管理。S参数文件、脚本、结果要对应起来不然过几个月自己都忘了哪个结果对应哪个配置。我一般用git管理脚本用文件名带日期和版本号管理S参数。7. 一些零散但重要的经验7.1 关于FECck本身不规定FEC但实际400G系统几乎都用FEC如RS(544,514)。FEC能纠正一定数量的错误所以ck的BER要求是FEC前的1e-15FEC后能到1e-18甚至更低。但FEC有个副作用它会引入延迟。RS(544,514)的延迟大约100-200ns对某些低延迟应用如HPC可能不可接受。所以有些场景会用更弱的FEC或者不用FEC这时对ck的指标要求就更严。7.2 关于功耗100G/lane的SerDes功耗不低。一个400GAUI-4的链路TXRX的功耗可能在3-5W。如果加上FEC和DSP可能到8-10W。这对模块的散热是个挑战。ck里没有直接规定功耗但通过指标间接约束了。比如TX幅度不能太大否则功耗高RX均衡不能太复杂否则功耗高。所以做设计时要在性能和功耗之间找平衡。7.3 关于互操作性ck的终极目标是互操作性。但实际中不同厂商的TX和RX对接时经常出现各自都合规但对接不work的情况。原因通常是指标裕量不够。比如TX的眼图刚好过模板RX的均衡刚好够用但两者一对接裕量就没了。所以我的经验是TX和RX都要留至少20%的裕量这样互操作性才有保障。7.4 关于未来演进ck之后IEEE已经在搞802.3df800G/1.6T和802.3dj200G/lane。200G/lane的奈奎斯特频率到53GHz对材料、连接器、封装的要求又上了一个台阶。但ck的很多概念COM、最坏情况通道、模块化指标会延续下去。所以把ck吃透对理解后续规范很有帮助。我个人在实际操作中的体会是ck这个规范看起来是电气指标但背后是信号完整性、均衡理论、统计误码、成本工程的综合。光看规范文本不够得动手仿真、动手测、动手调。我见过太多人把规范背得滚瓜烂熟但一上仿真就懵。所以如果你正在啃ck我的建议是找一条真实的链路从S参数提取开始一步步走到COM计算和实测走完一遍你就真的懂了。最后再分享一个小技巧ck的规范文本里有很多脚注和附录这些地方往往藏着关键信息。比如某个指标的测量条件、某个参数的默认值正文里可能一笔带过但脚注里说得很清楚。我第一遍读的时候跳过了脚注结果仿真时发现参数对不上回头才发现脚注里写了除非另有说明所有指标在25°C下测量。所以读规范脚注和附录不能跳过。