基于YT8521S的RGMII转SERDES光口硬件设计详解
简介这是一份面向硬件工程师与网络接口设计人员的PHY芯片参考设计图围绕裕太微YT8521S的RGMII转SERDES应用完整给出与WX1860AL4网卡芯片的互联原理图、YT8521S功能配置及电压配置。资料为单个PDF文件压缩包大小182KB内容精炼但覆盖从芯片引脚连接到电源、复位、时钟等关键电路设计要素。复位信号既可由板卡CLPD控制也可用RC电路实现上拉建议采用3.3VSERDES接口需连接至光笼子与SGMII有明显区别避免混淆时需要修改功能配置。该设计已通过实际生产测试元件参数、磁珠/电容选型和布局布线要点均直观呈现。当前已有2030人学习下载适合从事交换机、网卡或光口模块等高速网络硬件开发的工程师参考复用可有效降低设计试错成本。1. 需求与选型为什么这块板卡需要 RGMII 转 SERDES做过网络接口卡硬件的人应该都有体会MAC 侧芯片选好了PHY 侧却往往要折腾好几轮。某项目里用的主控是 WX1860AL4 这款网卡芯片它对外提供的是 RGMII 接口而产品形态偏偏要出光口——也就是说MAC 和光模块之间必须经过一层 PHY 转换把并行 RGMII 变成串行 SerDes 差分信号再送到光笼子里。当时摆在面前的选择不少但真正敢说“参考设计直接拿来用、已经过生产测试”的并不多。YT8521S 是裕太微电子的一款 RGMII 转 SERDES PHY 芯片恰好填补了这个位置。这篇方案梳理的就是基于 YT8521S 的完整硬件电路设计从 WX1860AL4 的 RGMII 口如何接到 YT8521S到电源、复位、时钟、MDIO 管理通道怎么搭再到 SERDES 差分对怎么连光笼子、layout 上有什么讲究。适合正在做网卡、交换机板卡、光口扩展模块的同学直接照搬框架也适合要评审别人原理图的工程师拿来当检查清单。尤其是“SERDES 接光笼子、别和 SGMII 搞混”这类细节项目里真的有人踩过坑后面会专门展开。2. 总体架构设计WX1860AL4 与 YT8521S 的接口分工与电源树2.1 系统链路RGMII 并行口到 SerDes 光口的完整信号流从框图上可以很清楚地看到整条链路的分工WX1860AL4 是 MAC 侧芯片它输出的 RGMII 信号包括 TX/RX 数据各 4 bit、TX_CLK、RX_CLK、TX_CTL、RX_CTL以及管理接口 MDC/MDIO。这些信号全部接到 YT8521S 的 MAC 侧YT8521S 内部完成并行到串行的转换后从 SerDes_TX/TX 差分对输出到光模块笼子。反向的光信号接收路径则是 SerDes_RX 差分对进入 YT8521S再解出 RGMII 信号送回 WX1860AL4。这里要特别强调一个容易想当然的点YT8521S 的 SerDes 口是给光模块用的不是给电口用的。设计里光模块直接连接的是光笼子比如 SFP 笼子如果你的产品想走电口那应该考虑的是 SGMII 到电口 PHY 的路线而不是这套 SerDes 方案。原图上也明确标注了“SERDES 接口应连接至光笼子与 SGMII 不同注意不要混淆”。2.2 电源设计三路电压的分工与去耦策略电源树是这套设计里最值得抄作业的部分。从原理图里能提取出三路核心电压电压域去向典型值VCC_3V3YT8521S 数字 IO、LED 上拉、复位上拉3.3VVCC_1V8YT8521S 内核/模拟域由 LDO 输出1.8VDVDD_RGMIIRGMII 接口电平3.3V这里有个容易被忽略的配置点DVDD_RGMII 的电平是通过 CFG_LDO[1:0] 配置引脚在芯片上电时锁存的。原理图上写的是 CFG_LDO[1:0]2b00对应 DVDD_RGMII3.3V。如果你做的是 1.8V 的 RGMII 接口就需要把这两个引脚的电平组合改掉同时把 DVDD_RGMII 的供电也调整到 1.8V。另外要注意CFG_LDO1 和 CFG_LDO0 分别对应原理图上的 LED1/CFG_LDO0、LED2/CFG_LDO1上电时是高电平和 LED 指示功能是复用的。去耦电容的选型也值得照着抄每个电源引脚附近都放了一颗 100nF/10%/25V 的陶瓷电容核心电压处再配一颗 4.7uF/10%/25V 的大电容做储能。电源入口处还用了磁珠BLM118SD220SN21D 和 BLM118SFDB25260SN21D做隔离把模拟电源 AVDD33 和数字电源 DVDD 分开避免数字开关噪声窜到 PHY 的模拟电路里。这个做法在高速 PHY 设计里几乎是标配但很多初次做板卡的人会为了省几颗料把它省略掉结果就是眼图质量差、误码率高还找不到原因。2.3 时钟方案25MHz 晶振的选型与精度要求YT8521S 的参考时钟用的是 25MHz原理图上标注了“25MHZ/3.3V/25ppm/CMOS”和供应商“晨晶”。这个选择是有讲究的RGMII 的 TX_CLK 是从 25MHz 倍频出来的如果晶振精度不够时钟抖动会直接影响 SerDes 接口的眼图裕量。选型时三个参数不能妥协频率 25MHz、精度 25ppm、输出电平 3.3V CMOS。25ppm 这个指标意味着 25MHz 下最大频偏约 625Hz对应到千兆 SerDes 的 1.25Gbps 速率上能保证接收端 CDR 不丢锁。如果你的设计里 PHY 和 MAC 共用一个时钟源比如板上已经有一颗 25MHz 晶振也可以直接接到 YT8521S 的 XTAL_IN/EXT_CLK 引脚上原理图里同样预留了 REFCLK_PHY_G1_25M 的走线。这种情况下晶振要靠近 PHY 摆放走线不超过 500mil避免时钟信号被其他高速线干扰。XTAL_IO/EXT_CLK 引脚还有一个隐藏用法如果这颗 25MHz 时钟不是由晶振产生而是由板上其他芯片比如时钟发生器提供可以直接从 EXT_CLK 输入此时晶振的 XTAL_OUT 悬空即可。不过要注意输入时钟的摆率要求太慢的边沿会导致 PHY 内部时钟质量下降正规做法是加一个 RC 滤波或缓冲器再送进来。3. 关键电路模块实现复位、LED 配置与 MDIO 管理通道3.1 复位电路CPLD 控制优先RC 电路兜底复位是这颗 PHY 上最容易出问题的地方原因在于 YT8521S 的配置引脚是在复位释放瞬间采样的。原理图里标注得很清楚复位信号由板卡上的 CPLD 控制也可以设计 RC 电路控制复位信号上拉建议选择 3.3V 电压。实际项目里我一般这样处理如果有 CPLD/FPGA 在板上优先用 CPLD 的 GPIO 控制 RESET_N这样能精确控制复位释放时序保证上电顺序正确。如果板卡上没有可编程逻辑器件就用 RC 电路一颗 10K 电阻上拉到 VCC_3V3一颗 1uF 电容到地时间常数约 10ms满足 YT8521S 需要的复位低电平时间大于 10ms 的要求。原理图里明确写了“G1_RESET_N A 复位 CPLD 控制或者设计 RC 电路”这句话就是这颗 PHY 的复位设计金标准。另外一个细节LED2/CFG_LDO1 和 LED1/CFG_LDO0 这两个引脚在复位时也会被采样。原理图里标注“CFG_LDO1 上电时为高电平LED2 低电平有效”说明这两个引脚通过 4.7K 电阻上拉到 VCC_3V3复位采样时读到高电平。如果你想要不同的 LDO 配置就得改变上拉/下拉电阻的连接方式而不是简单地在软件里改寄存器。3.2 LED 与配置引脚复用上拉电阻决定了启动行为YT8521S 的 LED0/PHYAD0_G1 引脚比较特殊它既做 LED 指示又做 PHY 地址 bit0 的配置。原图里 LED0 串联了 1K 电阻到 LED 灯同时还通过 R1124 上拉/下拉设置地址。设计时一定要先查数据手册里 PHYAD[2:0] 的采样逻辑——从图里看PHYAD 的地址默认是 0b000PHYAD[2:0]0这个地址就是 MDIO 访问时的 PHY 地址。这里有个常见的翻车场景有人画原理图时直接把 LED 指示和 PHY 地址配置分开处理结果 LED 串联电阻选得太大上拉不到位导致 PHY 上电后地址不对MDIO 怎么读写都失败。正确的做法是LED 串联电阻选 1K限流配置上拉电阻选 4.7K两个电阻并联后的逻辑电平才是 PHY 实际采样的值。如果 LED 灯的压降导致高电平低于 VIH 阈值就得改 LED 的连接方式比如串到电源和引脚之间而不是引脚到地之间。3.3 MDIO 管理通道上拉电阻与电平匹配RGMII_MDC 和 RGMII_MDIO 是配置 PHY 的管理通道。原理图里这两根线都有 4.7K 上拉到 DVDD33_G1这是标准做法——MDIO 是开漏信号必须外部上拉才能读。WX1860AL4 侧同样有 MDC/MDIO 引脚连接关系是 N3_RGMII_MDC 到 N1_RGMII_MDC、N3_RGMII_MDIO 到 N1_RGMII_MDIO。数据手册里 MDIO 的读写时序是固定的MDC 高电平期间 MDIO 数据有效。设计上要留意 MDC 的频率PHY 一般支持最高 12.5MHz 的 MDC但实际的 MDC 频率取决于 MAC 侧的配置。如果 MDIO 通信不稳定先检查上拉电阻是否过大10K 以上在长走线时会有 RC 延迟问题再检查 MDC 是否有毛刺。我遇到过一次 MDIO 读回全 0 的情况最后定位是 MDC 走线太长且没有端接反射导致 PHY 收不到有效时钟边沿。解决方式是让 MDC 走线尽量短并加 22Ω 串联电阻吸收反射。# 验证 MDIO 通信的常用操作以调试串口直接访问为例 # 读寄存器 0x00基本模式控制寄存器期望 bit150正常模式 phy_reg_read 0x00 # 返回值应为 0x3900 类似值表示千兆全双工已配置 # 若读回 0xFFFF 或 0x0000说明 MDIO 通道有问题这段操作对应的设计含义是在板卡调试阶段通过 MDIO 读回基本模式控制寄存器能确认 PHY 的链路模式和速度配置是否正确。如果 PHY 没有正常复位读回的值往往是 0xFFFF如果 MDIO 线路短路或上拉缺失读回 0x0000。这两种情况在硬件调试时是最高频的故障。4. 接口设计与信号完整性RGMII 布线、SerDes 差分对与光笼子连接4.1 RGMII 接口的等长与串阻设计RGMII 是并行接口信号完整性设计的关键是等长约束。原理图上可以数出 12 根关键信号TX_0~TX_3、TX_CTL、TXC以及 RX_0~RX_3、RX_CTL、RXC。WX1860AL4 到 YT8521S 之间的走线数据线按组做等长组内偏差控制在 50mil 以内组间TX 组和 RX 组偏差控制在 100mil 以内。RGMII 的时钟信号 TXC/RXC 是 DDR 时序上升沿和下降沿都采样数据所以 TXC 到 TX_data 的延时偏差最敏感。原图里用了串阻方案每个 RGMII 信号串联一个 22Ω 电阻比如 R1100目的是抑制振铃。这个做法在 MAC 芯片输出阻抗接近 50Ω、走线阻抗 50Ω 的情况下能把信号质量调得比较干净。如果你在调试时看到数据线上的过冲超过 10%优先检查串阻值是否偏小而不是急着改走线。一个容易忽略的点RGMII 的 DVDD_RGMII 电源域要单独走线不能和数字 IO 的 VCC_3V3 混用——原理图里 RGMII 电源用了 DVDD_RGMII 专用网络配合磁珠隔离。如果 RGMII 电平是 3.3V而 MAC 侧 WX1860AL4 的 IO 是 2.5V就需要额外的电平转换芯片但本设计里两边都是 3.3V直接连接即可。4.2 SerDes 差分对的连接规则光笼子不是 SGMII这是整个设计里最要命的一个区别。YT8521S 的 SerDes_TX 和 SerDes_RX 是高速差分对速率是 1.25Gbps千兆光口必须连接到光模块笼子的差分引脚上。而 SGMII 虽然也是串行接口但它连接的是电口 PHY比如百兆/千兆变压器两者协议完全不同。如果把 SerDes 信号接到 SGMII 接口的 PHY 上结果是完全不通。原理图上 SerDes_TX_P/N 和 SerDes_RX_P/N 直接标注了“FIBER”和“SFP 笼子”的连接方向。具体实现时差分对要注意以下几点差分阻抗 100Ω走线要严格控制差分对内等长偏差不超过 5mil远离其他高速信号和时钟避免串扰在 PHY 和笼子之间加交流耦合电容0.1uF位置靠近连接器如果设计的板卡需要同时支持光口和电口通常的做法是设计一个复用电路SerDes 差分对和 SGMII 差分对都从 PHY 引出通过拨码开关或者 CPLD 配置选择信号路径。但 YT8521S 本身只有 SerDes 接口想走 SGMII 需要改变 PHY 的配置模式比如切换为 SGMII 转电口模式。具体切换方法要参考芯片数据手册的功能配置章节本文的参考设计是纯光口方案SGMII 的问题不做展开。4.3 光模块笼子部分的实战布线回流过孔与电源去耦光模块笼子SFP 座子的电源设计也是容易翻车的环节。笼子本身需要 3.3V 供电同时还有 Mod_ABS、TX_Disable、TX_Fault、RX_LOS 等控制信号。这些信号要从 PHY 或 CPLD 引出电平逻辑要和 PHY 的引脚定义对齐。原理图里虽然没有画完整的笼子电路但 SerDes 连接标注明确写了“连接至光笼子”。实际项目里我一般在笼子附近放一组 100nF 10uF 的去耦电容电容位置尽量靠近笼子的电源引脚。SerDes 差分对从 PHY 出来到笼子中间不能有 stubs分支走线否则会产生反射。如果 PCB 层数允许差分对走内层带状线外层用地包裹。回流过孔一定要打在差分对换层位置的旁边不能隔着很远否则回流路径被破坏EMI 测试会很难看。# 差分对布线检查清单以 Allegro 或 PADS 为例 1. 确认差分对网络名含 _P/_N 后缀便于规则识别 2. 设置差分规则线宽 4mil间距 8mil100Ω 差分阻抗 3. 对内等长约束5mil 以内 4. 换层处必须添加回流地过孔 5. SerDes 走线两侧 3W 范围内不走其他信号线 6. 检查交流耦合电容位置是否靠近笼子连接器这个清单是每次评审 SerDes 设计时必跑的检查项。前四项是硬性规定违反了基本等于返工后两项是为了信号质量虽然不会导致完全不通但会表现为高温下误码率增高、眼图裕量不足这种问题在功能调试阶段往往发现不了到了量产测试才暴露。5. 常见问题排查从 SGMII 混用、上拉电平到复位时序的避坑指南5.1 现象SerDes 口对接光模块后 Link 不起来原因最常见的是把 SerDes 接口接到了电口 PHY 或者 SGMII 接口上。很多人看到“串行接口”就想当然地认为一样实际上 SerDes 是 1.25Gbps 的 8B/10B 编码串行信号SGMII 也是 1.25Gbps 的串行信号两者速率相同但协议不同。YT8521S 默认配置是 SerDes 模式接到 SGMII 电口 PHY 上必然不通。还有一种情况是光模块的速率不匹配——你把千兆光模块插到了实际工作在百兆模式的 SerDes 上也会 Link 失败。解决先确认板卡的设计意图。如果确实要接光笼子检查 SerDes 差分对是否连到了 SFP 座子上而不是板上的变压器如果要做电口设计回到 YT8521S 的功能配置引脚把模式切换为 SGMII 模式并且重新配置 SerDes 接口的电平。原图里已经标注了“SERDES 接口应连接至光笼子与 SGMII 不同”这句话要刻在脑门上。5.2 现象PHY 地址读不到MDIO 全部超时原因PHYAD[2:0] 配置引脚的上拉/下拉电阻值不对。LED0/PHYAD0_G1 这个引脚是复用的如果你在 LED 灯上串联了过大电阻比如 10K实际上拉能力不足PHY 上电采样时读到的电平不对实际的 PHY 地址和预设的不一致。另一个隐蔽原因是复位信号上的干扰毛刺导致 PHY 反复复位总在错误的时间点采样配置。解决把 PHYAD 相关的上拉电阻都按 4.7K 配置LED 串联电阻单独走 1K。用示波器抓复位信号和 PHYAD 引脚的电平确认在复位释放前 10ms 内 PHYAD0 的电平稳定。如果板上没有 CPLD 控制复位RC 电路的时间常数一定要算对——10K 1uF 是 10msPHY 要求复位低电平大于 10ms这个参数不能减。5.3 现象MDIO 读出的寄存器值是 0xFFFF 或 0x0000原因0xFFFF 通常是 PHY 未响应也就是 MDIO 地址不对或者 PHY 没有正常上电复位0x0000 通常是 MDIO 数据线被拉死比如某个引脚短路到地或者 MDIO 上拉了 4.7K 后又被外部强行拉低。解决先用万用表量 MDIO/MDC 对地电阻确认没有短路。再核对 PHYAD[2:0] 的实际电平——用万用表量引脚电压3.3V 为逻辑 10V 为逻辑 0算出实际地址。最后用示波器抓 MDIO 波形看读命令发出后 PHY 是否在应答位拉低 MDIO。这套排查流程能定位 90% 以上的 MDIO 通信问题。5.4 现象Link 起来但丢包严重眼图闭合原因SerDes 差分对的信号完整性问题常见于差分走线不等长、换层没有回流地孔、差分对旁边有干扰源。还有一个容易忽略的点光模块笼子的电源去耦不够导致光模块供电纹波过大影响了 SerDes 接收端的灵敏度。解决先用示波器或带眼图功能的示波器看 SerDes 接收端的眼图确认眼高眼宽是否满足千兆光口规范。如果眼图明显闭合重点检查差分走线的等长和回流孔。再用频谱仪或示波器测光模块电源纹波如果超过 50mV增加笼子附近的大电容和磁珠隔离。这个问题的排查往往是最耗时的因为功能上链路是通的但就是不稳定属于典型的“信号完整性的玄学”实际上还是设计细节没做对。5.5 现象PHY 工作正常但功耗异常高芯片发热严重原因DVDD_RGMII 电压配置错误。如果芯片的 RGMII 接口实际工作在 1.8V 电平但你配置成了 3.3VIO 驱动器的功耗会明显增大反过来如果配置成了 1.8V 而供电是 3.3V可能损伤芯片。另一个原因是 SerDes 输出端的端接阻抗不匹配反射功率被 PHY 内部吸收转化为热量。解决确认 CFG_LDO[1:0] 的配置组合是否和 DVDD_RGMII 的实际供电电压一致。按原图配置 CFG_LDO[1:0]2b00配 3.3V 供电这个组合不能随意改。如果改了电压配置必须同时核对所有 RGMII IO 的电平标准否则对端 MAC 芯片可能读不到正确电平。6. 验收与调试方法从原理图审查到硬件实测的完整流程6.1 原理图阶段五项强制检查在投板之前我习惯把原理图按下面这个顺序过一遍缺一项都不发出去检查项判定标准不合格的动作电源域完整性VCC_3V3、VCC_1V8、DVDD_RGMII 全部正确连接修改电源连接重新评审复位时序复位低电平大于 10ms上拉 3.3V改 RC 参数或 CPLD 逻辑PHY 地址/MDIOPHYAD 配置电阻正确MDC/MDIO 有上拉修改电阻网络SerDes 差分对连接到光笼子100Ω 差分阻抗交流耦合修改布线规划时钟方案25MHz/25ppm/3.3V靠近 PHY 摆放调整原理图时钟电路这套检查项是从 YT8521S 参考设计的工程实践中总结出来的每一项都对应过真实的返工案例。其中 SerDes 连接对象光笼子还是 SGMII审查时最容易走神所以这一项我每次都单独问一句。6.2 硬件调试阶段三步定位法板卡贴片回来之后调试顺序建议按这个来第一步先量电源。VCC_3V3 和 VCC_1V8 是否正常纹波是否在允许范围内。如果电源有问题后续所有调试都没有意义。第二步量时钟。用示波器确认 YT8521S 的 25MHz 输入是否有稳定波形频率误差在 25ppm 以内。第三步量复位。抓复位信号释放瞬间确认 PHYAD 配置引脚电平稳定。这三步都过了再进入 MDIO 调试。# 调试验证步骤 # Step 1: 检查电源电压和纹波 万用表量 VCC_3V3 - 3.3V ±5% 万用表量 VCC_1V8 - 1.8V ±5% # Step 2: 确认 25MHz 时钟 示波器通道接 REFCLK_PHY_G1_25M - 25MHz 方波/正弦波 # Step 3: 确认复位信号 示波器抓 G1_RESET_N - 低电平 10ms 后拉高 # Step 4: MDIO 读 PHY 寄存器 读 0x00 - 非 0xFFFF/0x0000 即为成功6.3 链路测试与验收标准MDIO 通了之后插上光模块和光跳线连接对端设备这时看 YT8521S 的 Link 状态寄存器。如果 Link 起来了可以接着跑业务流量验证长时间稳定性。验收标准我一般定三条丢包率24 小时 ping 大包1500 字节丢包率为 0误码率双端口 iperf 打流 30 分钟无 CRC 错误计数的增长眼图裕量SerDes 接收端眼高不低于 400mV眼宽不低于 0.6UI这三条是硬件设计的及格线。如果眼图裕量不足但功能正常也要引起重视——现在的产品可能偶尔出问题温度一高、电源一波动就原形毕露。这也是我强调 SerDes 走线等长和电源去耦的原因功能调试通过只是开始产品稳定性才是设计的目标。这个项目做完之后我把这套 YT8521S 的参考设计整理成了两页纸的 checklist每次画 PHY 相关的板卡都强制先过一遍。从那以后遇到 RGMII 转光口的设计我再也没有因为 SGMII 和 SerDes 混淆翻过车。希望这份参考图和解说也能帮你把光口 PHY 的设计一次做对。本文还有配套的精品资源点击获取