简介面向服务器硬件工程师、网卡设计与验证人员的 OCP NIC 3.0 设计规范Version 1.5.0 - Release技术文档由 OCP 服务器工作组下属网卡子组于 2024 年 9 月 20 日发布。全文以卡侧机械要求为主线先给出机械总览再分别界定 SFF、TSFF、DSFF、TDSFF 四种形态的卡尺寸与禁布区并对卡槽、重量、材料、散热与安装方式提出明确约束概述、非网卡使用场景、约定、参考文献与缩略语等章节则交代了适用范围、术语口径与引用来源。尺寸、公差与禁布区被放在同一体系中描述便于对照结构图逐项复核。压缩包内为 1 个 PDF 文件约 20.73MB页面排版完整、目录层级清晰便于检索与打印。目前已有 425 人学习下载适合在网卡选型、结构评审、散热评估与兼容性核对时按章节查阅也可作为设计评审、来料检验与供应商对齐的技术依据。1. 一块网卡为什么值得单独出一本规格书机箱只有 1U后面板被两个 2.5 寸盘位和一堆线缆占满PCIe 插槽上方只剩不到 20 mm 净空——这是很多整机项目第一次想把 100G/200G 网卡塞进去时遇到的真实局面。OCP NIC 3.0 就是在这个夹缝里长出来的一套网卡形态标准它把网卡从传统的全高半长 PCIe 卡改成一块平躺在主板上的夹层板用统一的 4C 连接器盲插去掉挡板支持热插拔把面板空间和风道还给整机。v1.5.0 这个 Release 版本的意义在于它是一份可以拿来冻结结构、电源和走线设计的文本而不是还在讨论阶段的草稿。这篇笔记面向三类人要画板子的硬件工程师、要配风道和结构件的整机 NPI、以及要写 BMC 侧带管理固件的工程师。读完之后你应该能判断自己的项目该选哪种板型、电源怎么分档、侧带怎么接以及哪些坑是别人已经踩过的。2. 先把机械尺寸链钉死SFF 与 TSFF 的板型选择和连接器落位机械是 OCP NIC 3.0 项目里最早出问题、也最贵的一环。板子画完、器件选完装进机箱发现散热器顶到内存条、连接器差 0.3 mm 压不到位、面板开孔和指示灯对不上——这类问题在样机阶段返工一次结构件和 PCB 一起改周期直接按周算。我的习惯是先把 v1.5.0 的机械章节当成一张尺寸链图来读把「连接器中心线—定位孔—板边—散热器最高点—面板开孔」这五段串起来每一段都留出公差再谈电气。电气可以飞线、可以改版机械一旦开模后悔药很贵。2.1 SFF 还是 TSFF先看功耗和风道再看 PCB 面积OCP NIC 3.0 常见两种板型短卡 SFF 和加长、加强散热的 TSFF。标称平面尺寸大致是 76 mm × 58 mm 和 76 mm × 88 mm 两档开模前务必对着 v1.5.0 的机械图逐项核对别拿旧版图直接抄——这类规格书从早期版本一路走到 1.5.0孔位、板边让位和连接器区域都有过微调抄错一版就是整套结构件重来。维度SFF短卡TSFF长卡 / 加强散热平面尺寸量级76 mm × 58 mm76 mm × 88 mm典型功耗区间中低功耗单口 25G/100G高功耗多口 100G/200G/400G散热器高度受限于整机净空通常压得很低多出的长度主要留给散热器和导风结构支撑单端固定为主需要双端或加强支撑防板子翘选型信号PCB 面积够、风道直、功耗可控芯片 TDP 高、光模块多、风道要绕选型不能凭感觉先算芯片 TDP 加光模块功耗再看整机给这块区域留的净空和风量最后才看 PCB 面积够不够。SFF 的优势是省空间劣势是散热器高度被限制得很死芯片结温容易达到上限TSFF 多出来的那 30 mm本质上是在为散热器和导风结构争取空间。另一个容易忽略的点是板厚和层数高功耗卡通常 12 层以上厚板对连接器压接、回流焊平整度和螺钉锁附扭矩都有影响结构评审时要把板厂的能力一起拉进来。如果项目是 1U 且风道已经定型我的建议是先用 SFF 做一版热仿真结温余量小于 15 ℃ 就直接上 TSFF不要强行节省那 30 mm。2.2 4C 连接器的引脚分组与盲插公差4C 是这类夹层卡常用的高密度连接器四排触点把电源、地、PCIe 差分对和侧带信号塞进一个很小的截面里。读规格书时不要从头看到尾先看引脚分组表把「哪些针先接触、哪些针后接触」搞清楚再去对原理图。分组主要内容设计关注点电源与地12V 主电、3.3V 辅助电、大量回流地载流能力、压降、温升地针要足够多高速差分PCIe TX/RX 对按 lane 分组对内等长、对间等长、参考平面完整侧带NC-SI、SMBus、复位、在位检测、LED上拉位置、电平匹配、走线远离高速区预充与检测长短针、presence 针先接地、再预充、最后上主电盲插的关键是「先导向、后接触」。连接器外壳有导向结构板端要配定位销触点是长短针设计地和预充针最长先接触泄放静电和浪涌再是电源最后才是高速信号。装配顺序错了热插拔那一下的浪涌就能把主控打掉而且这种损坏往往不是当场失效是跑几天之后开始出现无法解释的链路降速查起来像黑匣子。公差方面常见盲插在 ±0.5 mm 量级能吸收但这是连接器本身的容差不是给你累积公差用的。机箱导轨、托盘、PCB 定位孔三段公差要单独算别指望连接器来承担全部偏差。我的做法是在装配体里把三段公差都按最坏情况叠加算出来的偏移量如果超过连接器容差的一半就加定位销或者改导轨。2.3 固定孔、面板开孔与插拔力的三步校核机械校核我一般分三步走顺序不能反。第一步定中心线。以连接器中心为基准向两侧对称布置定位孔孔径比螺钉大 0.20.3 mm给装配留余量。中心线一旦定错后面所有尺寸都是错的所以这一步要用连接器厂商给的 3D 模型不要自己按 2D 图重建。第二步做插拔包络。沿插拔方向拉一个扫掠体检查卡在插入和拔出过程中与内存条、风扇、线缆、导风罩的干涉。这一步最容易漏的是线缆静态不干涉插拔时线缆被顶开装回去的时候压到连接器上接触不良就是这么来的。第三步算插拔力。按触点数乘以单触点法向力再乘摩擦系数估算总插入力和导轨、螺钉、面板的承受能力对比。M2 螺钉按厂商给的扭矩上限打顺序先中间后两边别一次锁死一颗。插拔力偏大的时候优先改导向结构不要靠加大螺钉扭矩硬压压多了连接器塑料本体开裂外观还看不出来。提示机械图一定要以 v1.5.0 的 Release 文本为准并且把版本号写进结构图纸的标题栏。样机阶段最常见的事故就是结构用了旧版图、PCB 用了新版图两边单独看都对装一起就是差 0.5 mm 装不进去。3. 供电与上电时序12V 主电、3.3V 辅助电和热插拔的分寸电源这块很多团队的做法是「先按经验给个 150W不行再加」。在小批量阶段这招能用到了量产就是灾难连接器选小了、板子铜厚不够、DC-DC 余量不足满载跑十分钟开始掉卡现场还复现不了。OCP NIC 3.0 把供电边界写进规格书就是为了让板端和整机端在同一个功耗假设下对话。我的做法是先把功耗档位算清楚再倒推连接器、铜箔和散热最后才画原理图。3.1 功耗档位怎么定从芯片 TDP 倒推 12V 电流功耗预算要从负载端往输入端推而不是拍一个总数。主控 TDP 查 datasheet光模块按壳温最高时的功耗算DDR 和板上其他负载单独列最后除以 DC-DC 的平均效率得到 12V 输入电流。# 按最坏情况估算 OCP NIC 3.0 卡的 12V 输入电流 p_chip 150.0 # 主控 TDPW取 datasheet 的持续功耗而非峰值 p_optics 2 * 12.0 # 两个光模块W按高温工况取值 p_ddr 18.0 # DDR、时钟、BMC 等板上负载W eff_dcdc 0.90 # 板载多级 DC-DC 的平均效率一般取 0.88~0.92 p_out p_chip p_optics p_ddr p_in p_out / eff_dcdc i_12v p_in / 12.0 i_margin i_12v * 1.2 # 留 20% 余量给瞬态和老化 print(f板端负载 {p_out:.1f} W) print(f12V 输入功率 {p_in:.1f} W) print(f12V 持续电流 {i_12v:.1f} A选型按 {i_margin:.1f} A)这段脚本算出来的结果是板端负载约 192 W输入约 213 W12V 持续电流约 17.8 A选型按 21 A 左右。参数里最容易被低估的是eff_dcdc多级降压串起来每一级都掉一点按 0.95 算会明显偏乐观p_optics也不能按常温典型值算光模块壳温到 70 ℃ 以上时功耗会往上走。余量 1.2 是经验值如果整机风道差、环境温度高加到 1.3 也不过分。按这个结果去对规格书的功耗档位表卡落在哪一档、连接器那几根电源针够不够、PCB 上 12V 铜箔要铺多宽就有依据了。常见档位大致分 75 W、150 W、300 W 三级具体上限取决于板型、风冷条件和连接器额定值不要跨档硬撑。档位典型场景连接器与铜箔要求散热形态75 W 级单口 25G/100GSFF电源针少铜箔 2 oz 可满足小散热器靠整机风道150 W 级双口 100GSFF/TSFF电源针加多局部铺铜加厚中等散热器需要导风300 W 级双口 200G/400GTSFF多针并联连接器温升要实测大散热器或均热板3.2 上电时序AUX 先到、PERST# 后放时序是另一个容易被忽略的地方。原理图上看3.3V 辅助电和 12V 主电都接上了实际上电顺序错了BMC 就识别不到卡或者识别到了但侧带不通。顺序信号约束违反后的现象13.3V 辅助电先于主电建立给 BMC 侧带和 presence 电路供电BMC 扫不到卡在位检测一直为低212V 主电在辅助电之后缓启动带载上电浪涌大可能触发整机保护3时钟主电建立后输出主控采样异常链路训练失败4PERST# 释放时钟和主电都好了之后再放开主控在时钟未稳时启动表现为随机不识别5NC-SI 初始化在 PERST# 之后由 BMC 侧发起侧带通但拿不到链路状态AUX 先到的原因很实际BMC 要通过侧带去读卡的在位和功耗信息如果卡上的侧带电路还没供电BMC 读到的一直是低电平就会认为槽位是空的。PERST# 的释放时间要有明确约束常见做法是主电和时钟都达到阈值后再延迟一段时间放开具体数值按规格书和主控 datasheet 取两边取严的那个。3.3 热插拔与预充电长短针不是摆设支持热插拔的槽位插拔瞬间的浪涌电流能到持续电流的好几倍。预充针的作用是在主电针接触之前先通过一个限流电阻给板上的大电容充电把电压拉到一个接近的水平主电针接触时就不会产生大的冲击电流。设计上有两个点要确认预充电阻的阻值和功率要按最坏情况算插拔频繁的场合还要考虑电阻的老化板上要有热插拔控制器或者软启动电路不能只靠电阻硬扛。我见过一个项目为了省成本去掉了热插拔控制器样机阶段插拔几十次没事量产之后现场反馈偶发整机重启查了两周才定位到插拔浪涌。3.4 电源树核对表最后把所有电源轨列成一张表逐项和规格书对一遍这张表也是后面调试时的第一手依据。电源轨电压最大电流来源监测点主电12 V按 3.1 计算连接器电源针连接器两端压差辅助电3.3 V小于 1 A连接器辅助针BMC ADC主控核心0.81.0 V按主控板载多相 DC-DC远端采样DDR1.11.2 V按颗粒数板载 DC-DC电源良好信号光模块3.3 V按模块板载 LDO/DC-DC模块温度4. 高速与侧带PCIe lane 映射、NC-SI 和 SMBus 的接法高速部分决定这块卡能不能跑满带宽侧带部分决定整机能不能管好这块卡。两者在连接器上挨得很近布线的时候互相干扰这是 OCP NIC 3.0 板子最考验布局的地方。4.1 PCIe x16 的 lane 映射与走线预算x16 的卡在连接器上分成四组 x4lane 0 到 lane 15 按顺序排。做原理图的时候不要自己重排顺序按规格书的映射表一一对应重排之后要么链路训练不到 x16要么能训练但带宽对不上排查起来非常费时间。lane 组连接器位置对应主控通道注意事项lane 0–3第一组通道 0通常也用于低速枚举优先保证lane 4–7第二组通道 1与第一组等长lane 8–11第三组通道 2注意过孔 stublane 12–15第四组通道 3靠近侧带区注意隔离走线预算按速率分档。Gen4 的 16 GT/s主板加油卡加连接器的合计插损一般控制在 2025 dB 以内到了 Gen5 的 32 GT/s同样的拓扑就很难收敛通常要用低损耗板材、背钻过孔或者干脆加 retimer。连接器本身的插损是固定的能优化的是 PCB 段走线尽量短、少换层、参考平面完整、过孔背钻到位。注意侧带信号和高速差分对在连接器上是相邻的布线时侧带要走内层并包地不要和 PCIe 对并行太长。NC-SI 的时钟是连续翻转的串到高速对上就是无法解释的误码。4.2 侧带信号一张表NC-SI、SMBus、复位与在位检测侧带是 OCP NIC 3.0 和普通 PCIe 卡最大的区别之一。普通卡只管跑数据这张卡还要让 BMC 通过侧带读温度、读功耗、控制链路、点灯。信号方向作用设计注意NC-SI TX/RX双向BMC 与网卡之间的管理通道差分走线远离高速区NC-SI CLKBMC 到网卡侧带时钟由 BMC 侧提供板上不要重复驱动SMBus SCL/SDA双向读 EEPROM、传感器上拉电阻只放一处阻值按总线电容算SMBus ALERT网卡到 BMC异常上报开漏上拉在 BMC 侧PERST#整机到网卡复位释放时间要晚于时钟稳定PRSNT#网卡到整机在位检测长短针设计先于主电接触LED网卡到面板链路与活动指示限流电阻靠近 LED上拉电阻的位置是高频出错点。SMBus 的上拉如果两边都放总线电容翻倍高速下波形就塌了NC-SI 的时钟如果网卡侧再加一个驱动器BMC 那边就会看到双驱动冲突。常见做法是上拉和时钟源都放在 BMC 侧网卡侧只做接收和开漏输出。4.3 上电后的第一轮自检lspci、ethtool 和 BMC 侧带卡装上去、上电、进系统第一轮自检不要急着跑流量先确认三件事PCIe 枚举对不对、驱动绑定对不对、侧带通不通。# 1. 确认卡被枚举到重点看 LnkCap 和 LnkSta 的速率与宽度 lspci -vv -s 3b:00.0 | grep -E LnkCap|LnkSta # 2. 看驱动是否绑定固件版本是否符合预期 ethtool -i eth0 # 3. 读链路状态和误码计数确认没有持续增长 ethtool -S eth0 | grep -iE crc|error|drop # 4. BMC 侧确认侧带通道能读到卡的在位和功耗 ipmitool sdr list | grep -i nicLnkSta里的宽度如果是 x8 而不是 x16先查 lane 映射和连接器压接再查走线速率如果是 8 GT/s 而不是 16 GT/s先查 retimer 配置和参考时钟再查插损。ethtool -S的 CRC 计数如果在空闲状态下也持续增长基本可以判定是物理层问题不是驱动问题。BMC 侧读不到卡先看辅助电和 PRSNT#再看 NC-SI 时钟。5. 避坑与排查五个让样卡点不亮的现场问题样机阶段的问题百分之八十集中在机械接触、供电和侧带这三块。下面五条是我自己或者身边团队真实遇到过的按「现象 → 原因 → 解决」写遇到类似情况可以直接对照。第一条卡插上去不识别LnkSta 掉到 x4 甚至 x1。现象是系统能枚举到设备但链路宽度不对跑流量带宽只有预期的四分之一。原因通常是连接器没压到位或者固定螺钉只锁了一侧板子轻微翘起部分触点接触不良。解决方法是先松开所有螺钉重新对准定位销按先中间后两边的顺序均匀锁附如果还是不行用塞尺检查连接器端面间隙超过 0.1 mm 就要查结构件平面度。第二条满载跑流量十分钟掉卡重启后又能认到。现象很典型轻载正常一跑满带宽就掉温度越高越容易复现。原因多半是 12V 压降或者连接器温升超标负载一上来接触电阻上的压降变大主控欠压复位。解决方法是实测连接器两端的压差和触点温度压差超过 200 mV 就要加电源针并联或者加厚铜箔触点温度接近连接器额定值就要改散热或者降功耗档位。第三条BMC 看不到网卡系统里一切正常。现象是操作系统能识别、能跑流量但 BMC 的传感器列表里没有这张卡。原因通常在侧带NC-SI 的时钟没有从 BMC 侧提供或者 SMBus 上拉电阻放错了位置总线被拉死。解决方法是先量 NC-SI CLK 有没有波形再量 SMBus 的空闲电平是不是高两边都放过上拉的话拆掉网卡侧那一组。第四条风扇全速芯片还是过温降频。现象是散热器摸上去很烫风量也够但结温就是下不来。原因往往是散热器高度受限于 SFF 板型或者导风罩和内存条之间漏风风从旁边走了。解决方法是先做一次风道可视化确认气流真的穿过散热器鳍片短期可以换 TSFF 板型长期要在整机层面改导风结构。这件事在 SFF 上尤其常见选型阶段把热仿真做足比后面加风扇便宜得多。第五条同一块卡在 A 机型正常在 B 机型偶发不识别。现象是卡本身没问题换机型就出问题而且不是每次都出。原因通常是公差累积B 机型的导轨、托盘、面板开孔三段公差叠加后连接器插入深度差了一点或者面板开孔偏了导致卡插不到底。解决方法是做 3D 扫描对比两个机型的装配状态把公差链重新算一遍必要时在托盘上加可调定位结构。提示这五条里有四条最终都落到机械和电源而不是高速信号。排查顺序建议先机械、再电源、再侧带、最后才怀疑 SI否则很容易在走线上白花一周时间。6. 把 v1.5.0 变成可交付一份设计冻结检查表和三个复核习惯规格书读完之后真正决定项目成败的是「冻结」这一步。我的做法是在投板前拉一张检查表把机械、电源、高速、侧带、热、管理六块逐项打勾每项都要有对应的证据不能只写「已确认」。检查项具体内容证据形式机械板型、孔位、连接器落位、面板开孔3D 装配体 公差链计算电源功耗档位、12V 电流、电源树、时序预算表 时序仿真高速lane 映射、插损预算、参考平面走线报告 SI 仿真侧带NC-SI、SMBus、复位、在位检测原理图评审记录热散热器高度、风道、结温余量热仿真 样机实测管理BMC 侧带读写、点灯、告警联调记录三个复核习惯是我吃过亏之后养成的。第一个版本号写进每一张图纸和每一份 BOM。OCP NIC 3.0 走到 1.5.0中间改过的地方不少结构、PCB、连接器选型三份文件如果版本不一致装配阶段一定出问题。我现在的做法是图纸标题栏、BOM 表头、原理图首页三处都写版本号评审的时候第一件事就是核对这三个地方。第二个任何「差不多」的地方都要实测。插损仿真说余量 3 dB那就实测热仿真说结温 95 ℃那就用样机跑满载测。仿真和实测差 10% 是常态差 30% 也不稀奇尤其是风道这种边界条件很难设准的东西。第三个把每一次问题的现象、原因、解决写进项目的问题库不要只写在聊天记录里。上面那五条避坑记录每一条背后都是一次真实的返工写下来是为了下一个项目不再犯。这套东西值不值得投入如果项目只做一两百台、风道宽松、功耗不高用标准 PCIe 卡加转接板也能凑合但只要涉及高密度部署、频繁维护、功耗上到 150 W 以上OCP NIC 3.0 这套形态带来的面板空间、盲插和维护效率是能算得回来的。真正要投入的是前期那两三周的机械和电源校核省下来的是后面几个月的返工。我现在的习惯是拿到任何一版规格书先翻机械图和引脚表把尺寸链和电源树在纸上画一遍再打开原理图工具。画完这一遍后面很多问题在纸面上就暴露了不用等到样机。希望帮到你。本文还有配套的精品资源点击获取