光口网卡硬件设计避坑:RGMII转SERDES接口与PHY strap配置详解
发布时间:2026/10/26 14:36:40 锦皓数字建站

简介面向硬件设计工程师的裕太微YT8521S PHY芯片硬件电路设计参考图专门用于RGMII转SERDES场景覆盖WX1860AL4网卡与PHY连接、功能配置和电压配置。资源为单个PDF文件压缩包约182KB所有原理图与配置说明集中在一份文档中适合网络接口、光模块电路开发时直接参考。参考图明确复位信号可由板卡CPLD控制也可用RC电路实现上拉建议3.3V同时提醒SERDES接口应连接光笼子与SGMII接口不同若接错需修改YT8521S功能配置避免传输速率和协议错误。图中还标注了电容电阻选型参数如4.7uF、100nF及耐压规格并兼顾电源管理、信号完整性和高速布线要求对延迟和回流路径等设计细节也有参考价值。该电路已经过实际生产测试能帮读者避开接口混淆、复位不稳等常见问题加速硬件设计验证目前已有2030人学习下载适合中高级硬件工程师复用参考。1. RGMII转SERDES光口网卡里最容易被忽略的中间人做过光口网卡的人几乎都遇到过这种玄学原理图明明照着参考设计改的上电后PHY地址却读出来是7或者光模块插上后链路速率在千兆和百兆之间反复横跳。排查到最后问题往往不在PHY本身而在于RGMII、SGMII、SERDES这三个名字都带“千兆”的接口各自有着完全不同的链路管理约定。YT8521S这颗PHY芯片在参考图里扮演的角色就是从WX1860AL4的RGMII并行口接下MAC帧再转成接光笼子的SERDES串行lane。搞懂这张硬件设计图不是去记几个电阻电容而是理解PHY芯片在上电瞬间的strap采样、复位时序和电压域配置是如何共同决定一块板卡能不能稳跑千兆的。2. 三种接口的维度差RGMII、SGMII与SERDES到底谁在管链路有些反直觉YT8521S名字叫PHY但在这张图里它既没直接面对网口变压器也没直接面对MAC而是被夹在RGMII和SERDES中间。真正承载千兆数据的是两段物理形态完全不同的链路MAC到PHY这一段是4位并行、源同步、双沿采样的RGMIIPHY到光模块这一段是单差分对、自时钟、8b/10b编码的SERDES。一段千兆业务要跨三种接口约定这是“让MAC保持便宜、让PHY保持灵活”的硬件分工必然结果。2.1 RGMII四条数据线靠DDR塞进125MHzRGMII里的Reduced是相对于上一代GMII说的。GMII用8位数据线加125MHz时钟RGMII把数据线砍到4位但让接收端在时钟的上升沿和下降沿各采一次等效带宽不变引脚数砍半。参考图里那串N3_RGMII_TX_0到TX_3、RX_0到RX_3就是这么来的TXC和RXC是源同步时钟发送端给出数据的同时给出采样时钟接收端直接拿这只钟去抓数据。真正的坑在TX_CTL这个控制位。RGMII规定它上升沿发TX_EN下降沿发TX_EN与TX_ERR的异或正常传数据时TX_EN为1两个沿都是1一旦出现传输错误TX_ERR拉高下降沿就变成0。接收端要从这一个引脚里恢复出两个控制信号常见的做法是芯片内部延迟半拍或者靠PCB上给CTL单独做等长。这就是为什么参考图里CTL和数据线一样不允许随便走线四根数据线组内要等长TXC和它们之间还得控相位差差一颗走线长度接口就会开始随机丢包。MAC侧出现了N3和N1两组RGMII说明WX1860AL4这颗网卡芯片本身有多个RGMII口。每一组都带独立的TXC/RXC、CTL和一对MDC/MDIO管理线。MDIO是开漏结构参考图里给了4.7K/1%/1/16W上拉电阻——开漏总线必须靠外部电阻提供高电平不然总线浮空MDC时钟来了也读不回任何寄存器。2.2 SGMII与SERDES同样是1.25G串行管链路的方式完全不同SGMII和SERDES在物理层几乎一样都是1.25Gbps的差分对都用8b/10b编码线速也相同。单看示波器波形你分不清谁是SGMII谁是SERDES。真正区分它们的是协议行为。SGMII是IEEE定义的MAC-PHY串行接口它在链路上会周期性地插入配置帧做自协商PHY通过管理帧告诉MAC自己能跑10M/100M/1000MMAC再确认。这套协商发生在PHY与MAC之间本质上是把并行RGMII的链路训练压进串行流里。SERDES则完全没有这层它是一段透明的串行化/解串化通道数据进来就原样出去不插管理帧也不做速率协商。在光口场景里SERDES对端是SFP光模块光模块不需要也不理解MAC管理帧。参考图里专门标了一句话SERDES接口应连接至光笼子与SGMII不同。这句话翻译成人话是——如果YT8521S的串行侧被配成SGMII模式却接到只认裸数据的光模块前面PHY周期性插入的配置帧会被光模块当成用户数据解出来对端看到一段段“伪数据”塞在帧与帧之间轻则协商不上重则link起来又掉。YT8521S的串行侧是寄存器或strap可配的SGMII和SERDES不是换根线就能切换必须改PHY的功能配置。2.3 SerDes_PN1这组差分对从PHY到光笼子还有多少讲究参考图里的SerDes_TX_PN1和SerDes_RX_PN1是PHY到光笼子的两对差分线。PN1表示正负引脚加第1路SERDES物理上按100Ω差分对处理。这段信号有几个定死的规矩差分阻抗控100Ω、链路里必须有交流耦合电容常见0.01uF到0.1uF、电容放置位置要靠近发送端或接收端中的某一侧并全板统一。为什么一定要隔直光模块接收端内部通常是CML结构输入共模电平由模块自己产生PHY的输出共模和它对不上时直连会导致共模电流倒灌严重时直接把模块输入级打坏。交流耦合电容把直流分量挡在PHY侧只让差分交流分量过去共模由两端各自决定。参考图里光笼子电源引脚旁边的100nF去耦电容就是给光模块瞬态电流提供就近的低阻抗储能避免SERDES速率的电流跳变在电源上砸出纹波。2.4 一张对比表看懂三者分工接口数据形态编码链路管理典型连接RGMII4bit并行DDR无编码管理走独立MDIOMAC到PHYSGMII1对差分串行8b/10b周期配置帧自协商MAC到PHYSERDES1对差分串行8b/10b无管理透明传输PHY到光笼子这张表值得贴在工位旁边。三者差别不在线速而在“谁负责链路的训练与维护”RGMII把管理甩给MDIOSGMII把管理塞进数据流SERDES干脆不做管理。设计网络接口时先想清楚这一段需不需要协商再决定用哪个接口比对着引脚图连线省太多事。3. strap管脚与电压域上电那一瞬间板卡如何给自己“定格”参考图里最容易被新手当装饰忽略的是那些标着LED0/PHYAD0、LED1/CFG_LDO0、LED2/CFG_LDO1的引脚和旁边的4.7K电阻。这些引脚在上电复位释放的一瞬间决定PHY的地址、内部LDO输出电压和部分工作模式等到系统跑起来它们又变成LED驱动或者中断引脚。一根引脚两个身份靠的是芯片内部的strap采样机制。3.1 一根引脚两个身份strap采样是怎么“定格”的strap配置带采样的思路是复位释放前PHY内部把这些复用引脚切换成输入模式采样外部电阻拉出的电平锁存进内部寄存器锁存完成后再切回LED或中断功能。因为采样发生在上电后的极短时间内外部上下拉电阻必须在这之前就把电平稳定到位所以strap电阻通常选1%精度且要接到确定的电源域或地不能浮空。参考图里LED0/PHYAD0接了4.7K/1%/1/16W下拉LED1/CFG_LDO0接了4.7K/1%/1/16WLED2/CFG_LDO1那位号标了NC_4.7K。NC在这里不是“没有”而是“预留给切换选项、默认不贴”。给strap引脚做设计时最稳的态度是把所有复位口默认值都想一遍想清楚不贴电阻时芯片内部默认电平是什么再决定哪个位置留NC。直接抄图却不看默认电平是strap配置翻车的第一来源。为什么必须用电阻而不用跳线或直接接地因为strap引脚在采样结束后还要当LED用直接接地会把LED驱动钳死。4.7K这个数值是权衡结果足够小到能盖过内部弱上下拉、稳定建立strap电平又足够大到不影响后续LED的灌电流。1%精度保证不同板卡采样逻辑一致——strap电平只在阈值附近时0.1V的偏差就能让PHY地址或者LDO配置跳变。3.2 PHY地址2MDIO总线上的身份证参考图标注PHYAD[2:0]3b010对应十进制2并注明可用地址范围在0x01到0x07之间。PHY地址的意义在于MDIO总线上可以挂多个PHY共享同一对MDC/MDIO线靠地址区分寄存器空间。MAC发管理帧时前导码之后就是PHY地址和寄存器地址地址对不上的PHY不会响应。这张图里WX1860AL4带了N3和N1两组RGMII如果两组都接到不同PHY上每个PHY的PHYAD必须错开。地址不能靠软件改是物理决定的MDIO协议本身没有广播寻址机制地址0在一些PHY里特殊处理PHY只有在知道“自己是谁”之后才能响应总线。所以在硬件设计阶段把strap电阻贴对比上电后折腾驱动有用得多。PHYAD0这颗下拉电阻除了定地址还兼职LED0。这又回到strap复用的本质一个引脚在上电瞬间是配置输入之后是LED输出。用4.7K而不是0R去接地就是防止LED被直连地短路。反过来如果你用PHY的LED功能阳极接电源、阴极接PHY引脚低电平点亮和strap下拉完全不冲突。3.3 电压域CFG_LDO[1:0]2b00为什么对应DVDD_RGMII3.3V参考图里CFG_LDO[1:0]2b00标注对应DVDD_RGMII3.3V。这个DVDD_RGMII是PHY侧RGMII IO的供电电压它必须和MAC侧的DVDD_RGMII_G1一致。IO电压失配是硬件设计里比短路更难查的问题两边都还能工作但高电平阈值对不上信号质量差到临界时就开始偶发丢包而且不是每次上电都复现。PHY内部有LDO可以从主电源生成不同的IO电压CFG_LDO这两个strap位就是选择器。参考图显式把这个组合设成3.3V和WX1860AL4的RGMII bank电压对齐。如果你改版把MAC侧换成1.8V的RGMII这里的strap电阻组合也必须跟着改否则IO域之间等于做了一个慢速的、时好时坏的电平转换。再看电源树。AVDD33_G1这路供给PHY内部模拟电路参考图里给它挂了磁珠BLM118SD220SN21D再配4.7uF和100nF两级去耦。磁珠的作用是隔离模拟电源域与数字电源域之间的高频噪声4.7uF负责低频储能100nF负责高频低阻抗路径。100nF这颗电容的谐振频率大约在几十兆赫兹到百兆赫兹区间正好覆盖PHY工作时的开关噪声频段而4.7uF这种大电容在低频段有效不能互相替代。VCC_1V8这路来自板上开关稳压器的1.8V输出供给PHY数字内核。开关稳压器效率高但是纹波比LDO大所以参考图在它输出端同样布置了大容量电容加陶瓷电容的组合。数字内核电源对纹波的要求没有模拟那么苛刻但也不能随便——内核电压跌落超过一定比例PHY内部状态机就跑飞。补一张电源简表电源域去向参考图上怎么处理VCC_3V3PHY主电源、LED上拉、复位上拉直接供电VCC_1V8数字内核板上开关稳压器输出AVDD33_G1模拟PLL/串行收发器磁珠加两级去耦DVDD33_G1数字IO去耦电容DVDD_RGMIIRGMII IO电平由CFG_LDO配置为3.3V这块板子做过生产测试所以这个电源划分不是随便画的。模拟域和数字域分开供电、模拟域单独走磁珠是所有PHY硬件设计的通用底线。4. 复位与25MHz参考钟让PHY按剧本醒来PHY是硬件里典型的“上电看时序”设备电源要稳、时钟要准、复位要宽、strap要早。参考图里对复位的处理把这份剧本写得明明白白G1_RESET_N低有效由板卡上的CPLD控制或者用RC电路实现复位信号上拉建议3.3V复位低电平时间要大于10ms。每一个数字背后都是一次故障的教训。4.1 复位控制CPLD是首选RC电路自带玄学复位信号用CPLD控制本质是把上电时序变成可编程的CPLD可以等各路电源都爬升到位、参考钟起振之后再释放复位还能按软件指令随时硬复位PHY。这在多电源系统里尤其重要——YT8521S的DVDD_RGMII、VCC_1V8、AVDD33_G1上升速度不一样如果复位在某个电源还没到位时就释放strap采样的电平就是错的PHY会以一个错误的地址或错误的LDO配置启动而且这种错误不会自动恢复只能断电再来。RC电路是退而求其次的方案但它有天然的局限时间常数由电阻和电容决定而电源上电本身有个爬坡过程RC延时的起算点跟复位阈值、电源稳定点之间没有严格的因果关系。换句话说RC能保证“复位晚一点释放”但保证不了“复位一定在电源稳定之后释放”。如果外部电源上电很慢RC可能在电源刚到阈值时就提前放行PHY内核还没稳定就开始采样。上拉选3.3V而不是更低电压是因为复位引脚在复位释放后还要维持高电平而3.3V和PHY的IO电平域最匹配抗干扰能力也强。用1.8V上拉的话一旦板上某个负载把1.8V拉低复位线就可能跌到逻辑低电平临界区PHY被反复复位。这个现象很隐蔽因为正常工作时看不出来只有在重载瞬态下才偶发。RC的具体取值也是有讲究的。参考图里复位引脚本身带了一颗4.7K/1%/1/16W上拉RC方案通常是在这个上拉基础上再并一颗电容到地让复位脚的电平爬升变慢。常见做法是10K电阻加1uF电容得到10ms量级的时间常数。这里要特别提醒RC时间常数不能只按“够用”算要按上电最慢的电源来算再留一倍余量。曾经遇到过RC设计得刚刚好换了一版电源模块后上电变慢PHY就随机起不来的情况。提示最简单的验证方法是拿示波器同时抓VCC_3V3和RESET_N的上升沿确认复位释放时所有电源都已进入稳压区间。4.2 复位释放前后的三个时间窗从PHY的角度上电后要经历三个窗口每个窗口都有自己的规矩时间窗要求不满足的后果电源建立各路电源先于复位释放稳定strap采样电平错误时钟建立25MHz参考钟起振并稳定PLL锁不定SERDES无速率strap采样复位释放前配置电阻电平稳定PHY地址/LDO配置错误且不可在线改这三个窗口的顺序不能颠倒。特别注意strap采样发生在复位释放的瞬间释放沿一到PHY立刻把引脚电平锁存之后这些引脚就变成LED或中断功能你再改外部电阻也没用了。这就是硬件设计里“上电定型”的逻辑——PHY不像MCU可以等软件跑起来再配寄存器它的第一口“气”是硬件电阻给的。所以参考图才特意标注“10ms”的复位脉冲宽度。太短的复位脉冲可能让内部寄存器来不及清空PHY带着上一次的残留状态启动而CPLD方案可以精确保证这段低电平时间RC方案则需要按最坏情况算RC的时间常数要覆盖电源爬升、时钟稳定、strap稳定三者中最长的那个再留一倍余量。常见做法是10K电阻加1uF电容得到10ms量级的时间常数再自己实测确认。4.3 25MHz/25ppm/CMOS参考钟的每个参数都是安全边际REFCLK_PHY_G1_25M这颗时钟规格是25MHz、3.3V CMOS摆幅、25ppm精度。25MHz是PHY内部PLL的基准频率PLL把它倍频到125MHz的MAC时钟和1.25Gbps的串行速率所以这颗钟的精度直接影响SERDES侧每个bit的时长。25ppm意味着最大误差是25MHz的百万分之二十五也就是625Hz。SERDES接收端靠CDR从数据流里恢复时钟CDR的跟踪范围通常能容忍几百ppm级别的频偏25ppm在它看来是小意思。但如果有人图便宜用了100ppm的晶振再叠加长期老化频偏就可能逼近CDR极限表现为光口链路长时间运行后偶发失步。千兆速率下一次失步就是连续好几个bit的错误对端CRC一查就丢包。25ppm不是一个玄学参数它是SERDES链路稳定性的底线。3.3V CMOS摆幅说明这颗钟不是差分钟而是单端方波。单端时钟对PCB走线更敏感走线太长会振铃振铃会变成时钟沿上的抖动抖动进PLL后会被放大到串行数据上最终表现为眼图闭合。参考图把晶振放在PHY引脚附近、走线尽量短且远离SERDES差分对这些布局约束的本质都是给时钟抖动留余地。还要注意参考钟的输入形式。参考图里XTAL_IO/EXT_CLK这个复用引脚标了NC说明这块设计走的是外部CMOS时钟注入没有用无源晶体。如果换成晶振方案XTAL_I和XTAL_O两端都要接负载电容且晶振本身和PHY的距离要更近。外部时钟注入的好处是时钟源可以和其他芯片共享坏处是单端时钟的走线噪声会直接进PLL所以它对PCB布局的要求反而更高。5. 避坑指南光口板上最容易翻车的五个位置这段写的是我在光口板设计里见过最多的五个坑全部来自生产测试或现场返修的真实案例。现象、原因、解决一条条说。这些坑有个共同点都不是原理图“画错”而是原理图“太容易让人理解错”——接口名字相近、电阻位号含义不清、极性标注藏在注释里。5.1 SERDES当SGMII用接口名像工作模式完全不同现象光模块插上后链路经常在1000M和100M之间来回跳或者干脆起不来查驱动、查光模块都没问题。原因YT8521S的串行侧被配置成了SGMII模式而SGMII会在链路上周期插入自协商配置帧光模块不理解这些帧把它们当用户数据转发。解决核对YT8521S的功能配置把串行侧切到SERDES模式再接光笼子同时确认SerDes_TX_PN1/RX_PN1这对差分线确实接在光笼子上而不是误接到某个SGMII座子。这条是参考图里特别点名过的属于最容易踩的坑。5.2 复位上拉电压选错PHY地址静悄悄地变现象上电后MDIO读不到PHY或者读到的地址和原理图上标的对不上。原因复位引脚用了1.8V上拉而PHY的复位阈值和strap采样窗口由3.3V域决定1.8V在电源爬升阶段还没稳定strap引脚采样到了中间电平。解决复位上拉统一用3.3V和参考图一致如果板卡只有1.8V也要在复位信号上加电平转换或专用复位IC不要直接拿1.8V去上拉。5.3 NC电阻留空当无事发生改版时的后悔药被扔了现象量产阶段想改PHY地址或调整DVDD_RGMII电压发现板上没有预留电阻位只能飞线。原因NC_4.7K/1%/1/16W这类位号被当成“没有”划掉了但NC的意思是“默认不贴位置保留”。解决原理图里凡是标NC的电阻PCB上都要留焊盘改配置时只需要换贴装组合不用改板。这点成本换来的是可配置性也是参考图“NC_4.7K”这个写法真正的价值。5.4 LED低电平有效却按高电平点灯接现象LED0/PHYAD0上的灯不亮或者常亮而且PHY地址还不稳。原因strap引脚在采样后切到LED功能参考图明确写“LED低电平有效”意思是引脚拉低时灯亮有人按习惯把LED负极接地就成了灌高电平驱动方向反了。解决LED阳极接3.3V、阴极接PHY引脚串限流电阻常见1K左右这样既满足低电平点亮又和strap下拉电阻不打架。5.5 去耦电容只放100nF低频纹波没人管现象SERDES链路在长时间高负载时报错率上升示波器看电源纹波有低频成分。原因只放了100nF电容去耦低频段的电源阻抗不够低100nF的谐振点在高频对开关稳压器的低频纹波几乎不起作用。解决按参考图用4.7uF加100nF的组合大电容负责低频储能小电容负责高频旁路模拟电源域再加磁珠隔离。不要省那几颗电容的物料成本返修一次比全板电容都贵。6. 设计取舍绕一圈RGMII比SERDES直通更划算现在回到开头那个问题WX1860AL4的SERDES口明明可以直接接光模块为什么还要外挂一颗PHY从RGMII绕一圈再转成SERDES。从布线上看RGMII是并行源同步接口信号数量多但单根速率低PCB等长控制、阻抗匹配的要求都相对宽松SERDES差分对则要求100Ω阻抗、隔离电容、靠近连接器放置走线层次和参考平面都有讲究。把RGMII这段留在MAC附近、只让SERDES延伸到光笼子等于把“高速串行的难布线区”压缩到最短的一段。这是硬件设计里常见的取舍把麻烦集中在PHY周围其他地方用低速并行总线解决。从产品线上看外挂PHY让同一颗MAC可以面对两种介质需要电口时换一颗带网络变压器的PHY需要光口时用这颗RGMII转SERDES的方案。MAC的RGMII接口电平可以通过DVDD_RGMII_G1调整PHY的串行侧模式通过寄存器切硬件改动被限制在PHY周边很小范围。全集成方案看着简洁但一旦光模块接口标准变化整板都要动外挂PHY等于把“不确定性”隔离在一块局部区域。从电源角度看这个取舍也在重复出现PHY内部的模拟PLL、串行收发器需要独立的模拟电源域如果MAC直接出SERDESMAC的模拟域噪声和数字逻辑耦合在一起调试难度成倍上升。外挂PHY后AVDD33_G1可以单独走磁珠、单独去耦信号完整性和电源完整性的职责边界非常清楚。我一般会这么理解RGMII转SERDES不是“多此一举”而是把MAC的通用性、PHY的介质适配性和布线的可制造性三件事拆开各管一段。做硬件设计最怕的是把一个简单问题做成全板耦合而那圈RGMII布线恰恰是解耦最有效的一刀。从那以后我每做一块带光口的板都会先把“哪段需要协商、哪段透明传输、哪段并行DDR”列成一张表再动原理图希望帮到你。本文还有配套的精品资源点击获取
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。