ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

4-PLL时钟发生器:多时钟域隔离与抖动控制的工程实践

4-PLL时钟发生器:多时钟域隔离与抖动控制的工程实践 1. 一个真实场景四个时钟域同时把SoC逼到死角先说一个我实际遇到的项目。去年做一块带USB 3.2、PCIe Gen4、2.5G以太网和HDMI 2.1的多功能主机板主控SoC的参考时钟要求是三个不同频率以太网PHY又要一路独立的25MHzHDMI retimer还要一路原声时钟。本来计划用一颗二路PLL的时钟发生器再外挂两个无源晶振凑合结果一测USB端口的眼图在长走线条件下老是不达标。原因不复杂为了迁就仅有的两路PLL输出我把USB和PCIe的参考时钟共用了同一个PLL通道虽然频率都能配出来但PCIe接收端的扩频时钟SSC一开USB上游端口的抖动预算立刻被吃掉一大截两路链路互相拉扯怎么调电源、怎么调布线都压不下去。后来换成一颗4-PLL的时钟发生器USB、PCIe、以太网、HDMI各占一路独立的PLL同一颗芯片搞定全部四个时钟域问题当场消失。回头看这件事最启发我的不是四路比二路多两个输出这么浅层而是——一颗4-PLL时钟发生器解决的根本不是引脚数量问题而是时钟域隔离问题。1.1 为什么单颗PLL撑不住新一代平台时钟发生器Clock Generator和时钟缓冲器Clock Buffer是两码事。缓冲器只负责把一路输入复制成多路输出本质上做的是扇出不做频率变换也不做抖动净化。而时钟发生器内部有真正的PLL锁相环能把低频参考时钟倍频到高频再通过分频器得到多种输出频率。早年间一颗芯片做一到两路PLL就够用因为那时候系统里主要的高速接口就那么一两个其他都是低速外设随便分频分出来就能跑。新一代消费电子和网络产品不是这个玩法了。一台WiFi 7路由器内部可能有SoC主时钟、10G PHY参考时钟、交换芯片的SerDes时钟、AI加速单元的独立时钟一台8K电视里可能同时存在HDMI 2.1、USB 3.2、DisplayPort 1.4、蓝牙/WiFi组合模块的参考时钟各自频率不同、时序需求不同、对抖动的敏感度也不同。如果这些时钟域共享同一个PLL就要被迫接受同一个环路带宽、同一个VCO频率范围。但实际系统中PCIe Gen5的附加抖动要求比SATA严格一个数量级以上把两者绑在同一个PLL环路上相当于用一个环路的脾气去服务两个性格完全不一样的人结果必然有一方被迁就坏。4-PLL方案的本质就是给每一个性格迥异的时钟域配上独立的环路控制权。1.2 从2-PLL到4-PLL多出来的不是两条路而是自由度再往深一层说4-PLL相比2-PLL多出来的不是两个通道而是设计自由度。举个例子。2-PLL芯片的两个PLL通常各自能配置不同的输入参考源和输出分频看起来已经很灵活了但在实际产品里有一个常见约束某个PLL的输入只能从特定的参考引脚进入。如果板子上已经有一颗TCXO接在REF0上而你想让CPU和GPU分别用独立的PLL但第二路PLL的输入引脚已经被另一个设计占用了那只能做板级妥协。4-PLL芯片往往提供更灵活的输入复用矩阵路数多了以后从哪个参考源给哪个PLL喂信号的决定权回到你手上而不是被引脚定义绑架。另外多路PLL还能解决一个非常现实的工程问题——不同接口要求SSC扩频时钟的档位不同。PCIe要求向下扩频-3000ppm或-5000ppmSATA要求-5000ppm而某些以太网PHY干脆不让扩频。如果你只有两路PLL一路被SSC占住另一路就得同时服务几个不许扩频的接口。4-PLL芯片允许你按接口分别配置SSC开或关、扩多少这个灵活性在EMI整改阶段能救命。别问我怎么知道的我花过大半个月跟一颗2-PLL芯片的方案死磕EMI最后换4-PLL一天就过了。2. 拆开4-PLL芯片的内心架构没错坑全在隔离很多工程师选型时只看输出频率范围和抖动指标这个习惯在做4-PLL选型时容易踩坑。4-PLL芯片的datasheet上写的那几个抖动数字都是在某一种特定配置、特定电源条件下测出来的真实表现跟你的供电环境、参考源质量、输出负载关系极大。要理解为什么先得看这颗芯片内部是什么架构。2.1 四路PLL内部到底长什么样虽然各家芯片架构有差异但4-PLL时钟发生器的典型内部框架大致是这样一组输入参考前端通常是多路参考输入引脚支持单端或差分经过可编程的输入缓冲、分频和丢失检测后送到一个输入复用矩阵四组PLL核心每一组由PFD鉴频鉴相器、电荷泵、环路滤波器、VCO压控振荡器和反馈分频器组成一个输出分配网络每个PLL后面接若干路输出分频器和输出驱动器一串控制寄存器通过I2C或SPI接口配置各路分频系数、相位偏移、输出格式、SSC参数等。看起来四组PLL是并联的但实际上它们共享同一个半导体衬底、共享同一颗封装、共享同一组电源引脚或部分共享。这就是所有深层问题的来源。打个比方四组PLL就像同一个宿舍里的四个室友各自有独立的小房间、独立的学习计划但共享一个卫生间、共用水电、墙壁还是隔音不算好的那种。你给室友A开个party室友B在隔壁复习考试肯定受影响只是影响大小取决于墙的隔离和装修水平。2.2 串扰才是四路设计真正的敌人4-PLL设计中最容易被低估的参数是通道间隔离度channel-to-channel isolation严格说应该叫串扰抑制。当一个PLL的VCO在某个频率振荡时它的能量会通过衬底、电源网络、封装引线耦合到旁边那路PLL的VCO、PFD或输出驱动器上产生杂散spur反映在频域上就是相位噪声曲线在某几个频偏位置冒尖。典型的现象是你单独测A路输出时相噪曲线很干净但把B路打开、B路的VCO恰好工作在某个频点A路的相噪曲线在对应频率处就拱起来一个包。这个拱包如果能被你看到说明串扰还算轻的严重的时候直接在频谱仪上看到明显的杂散信号接收端眼图立刻劣化。那怎么控制串扰三大方向第一选型时留意外围引脚排列。尽可能选择A/B/C/D四路PLL的输出引脚在封装上分居两侧、而不是挤在同一侧的型号这样PCB上你还可以拉开布线距离。同一个封装里引脚靠得越近板级耦合越难消除。第二电源去耦要按路分开设计。很多4-PLL芯片有几个电源引脚不要图省事全接一起打几个电容就完。仔细看datasheet里的电源引脚定义哪些是模拟PLL供电AVDD、哪些是输出驱动器供电DVDD/OVDD每一路尽量单独走线、单独并联一组去耦电容回到芯片下方的统一地过孔区域。电源平面上的共享阻抗是串扰的主要传输通道之一把各路电源物理隔离的效果比加电容明显得多。第三输出负载要对称。每路输出驱动器的开关电流会在电源网络上造成压降纹波如果你给A路接了很重的容性负载、而B路空载电源纹波的幅度就不对称串扰表现会更差。尽量让各路输出的负载接近即使那个接口暂时没用到也建议把输出使能打开或至少保留匹配电阻。2.3 参考时钟到了PLL输入之前命运就已经注定很多人把抖动问题全归咎于时钟发生器但实际上一颗4-PLL芯片的输出抖动由三部分构成参考输入抖动、PLL环路自身贡献、输出缓冲附加抖动。其中参考输入抖动往往占大头。这里有个常见误区以为4-PLL芯片内部有PLL输入抖动就会被环路滤掉所以参考源可以随便选。理论上确实部分低频抖动会被环路滤除但带外的高频抖动、以及参考端的噪声底会直接影响输出近端相噪。还有一个容易忽略的点输入参考沿的转换速率slew rate不够快时PFD的鉴相死区效应会让相位噪声明显恶化。实际项目里给4-PLL芯片喂参考时钟的晶振或者TCXO要按这路参考源本身就要能直接当接口时钟用的标准来选不能因为它后面还有PLL就降低标准。我踩过这个坑用一颗普通晶振给4-PLL做参考输出端相噪在100Hz到1kHz频偏范围内翘起约7dB换同频率的低相噪TCXO后立刻改善。这个改善幅度靠调环路参数是补不回来的。3. 选型阶段的四件事想清楚再画原理图很多工程师直接拿厂商的选型向导筛参数输入频率范围、输出频率范围、供电电压、输出路数、封装筛出来就下单了。实话说这样筛选出的芯片大概率能用但离好用有差距。我建议在选型阶段多花半天把下面四件事想清楚。3.1 输出类型用电平标准匹配而不是看接口名字4-PLL芯片的输出格式没有那么玄就是几种LVCMOS、LVDS、LVPECL、HCSL。但选错输出电平的代价极大因为后端的端接方式完全不同。LVCMOS单端功耗低走线短、速率低时最方便但仍要注意源端串联匹配电阻LVDS差分电流模式驱动350mV摆幅功耗适中适合PCB上走中长距离的差分时钟LVPECL差分摆幅大功耗大通常需要并联端接适合高频、长距离传输但对电源噪声更敏感HCSL差分电流源驱动专为PCIe参考时钟设计需要50Ω到地的下拉匹配禁止直接并联端接。特别提示不要以为某路输出是给USB用的就随手选LVCMOS。如果SoC的USB PHY要求参考时钟是HCSL差分输入你用LVCMOS硬接即使电平阈值勉强满足共模抑制能力也差很多EMI和抖动都会恶化。选型时先拉一张表把每个接口需要的电平标准列清楚再对到芯片的输出引脚配置上。3.2 抖动预算拆解与计算思路这颗芯片的RMS抖动是0.3ps够用了吧每次听到这种问题我都头疼。因为不结合具体接口的抖动预算谈绝对抖动值等于不看菜谱剂量就凭感觉放盐。以PCIe Gen4为例接收端总抖动预算大约是0.15ps RMS附加抖动不同规范细节有差异这是从参考时钟到SerDes引脚的整条通路预算芯片本身的输出抖动必须远小于这个数否则留给物理PCB走线、电源噪声的余量就没了。合理的做法是把产业链路上每个环节的附加抖动平方和开根号RSS方式叠加看总预算不超标才选型。如果4-PLL芯片标称0.15ps RMS但你的参考源已经贡献了0.1psPCB走线串扰再算0.05ps加起来就是0.19ps已经超了这还没算DC-DC电源纹波的贡献。所以选一个标称抖动看起来小于接口要求的芯片远远不够必须做整条链路的抖动预算。对于消费电子里不会用到特别严苛的接口比如2.5G以太网、SATA这类预算就不必卡得那么死但要给EMI整改留余地。接口速率越高速率越依赖差分输出、干净的电源、短布线这些条件在选型前就要想清楚别等到Layout完成后才意识到某路输出的位置太差。3.3 环路带宽不是越大越好4-PLL芯片的环路带宽通常可通过寄存器或外部环路滤波器元件来调整。很多人以为环路带宽越大就能滤掉越多的VCO噪声实则不然——这里有一个环路带宽与参考源噪声的平衡问题。PLL环路本质是一个低通滤波器在环路带宽以内输出相噪跟随参考源和PFD噪声在环路带宽以外输出相噪跟随自由振荡的VCO随着频偏增大而下降。打个比方你有一个MP3播放器参考源和一对音箱VCO音箱本身会有底噪。如果播放器输出的底噪很高你把音量开得越大播出来的噪声就越大如果音箱本身的底噪很高你把音量调小又会把MP3里正常的音乐细节丢掉。环路带宽就是那个音量旋钮关键在于找到参考源噪声和VCO噪声曲线的交点。如果参考源用的是一颗普通晶振、高频相位噪声不是特别好那环路带宽可以设得宽一些比如100-400kHz让PLL尽量跟踪晶振因为VCO在中等频偏范围内的相位噪声可能更差如果参考源是一颗高性能TCXO或OCXO低偏频相噪极好那么环路带宽可以相对窄一些比如50-100kHz以确保VCO在带外的噪声被隔离出去。现实中很多4-PLL芯片支持可编程环路带宽就是为了兼容不同质量的参考源。但切记环路带宽不是软件里随便填一个数就完事的参数它直接关系到系统对振动、电源低频噪声的敏感度改完必须实测。3.4 配置接口与上电时序的隐藏约束4-PLL芯片的配置方式大体分三类纯引脚配置strap pin、I2C/SPI运行时配置、内部OTP/EEPROM预烧录。这三类各有坑。引脚配置最简单但灵活性低只适合固化不变的设计I2C/SPI灵活但芯片上电后到CPU完成初始化配置之间输出是什么状态是高阻、是关闭、还是按默认寄存器输出某个频率这直接决定了系统里其他器件在上电瞬间会不会收到一个错误频率的时钟。我印象最深的一次事故是某颗SoC在时钟发生器完成配置前就检测到外挂PCIe设备并尝试发起链路训练结果因为参考时钟还没切换到正确的频率SerDes直接进入错误状态怎么复位都起不来。后来在时钟芯片的使能引脚上加了RC延时并且改用了上电默认输出就是目标频率的配置问题才解决。选型时务必看这几项上电默认寄存器值deterministic output on power-up、输出使能引脚极性、时钟输出在配置前的状态以及各路输出的同步释放机制同时上电时各路输出相位对齐还是各自自由运行。如果产品需要多路输出之间保持确定的相位关系这最后一条尤其关键。4. 同一个芯片消费电子和网络产品的打开方式完全不同4-PLL时钟发生器这个品类横跨两个大市场消费电子和网络通信。同一个型号的芯片在这两类产品里被关注的指标维度截然不同。我同时做过这两类产品梳理下来差异非常明显。4.1 消费电子功耗、小封装和开机时间消费电子产品的形态决定了它最在意的三件事电池续航/整机功耗、PCB面积、开机速度。功耗方面4-PLL芯片虽然比不上单PLL芯片省电但选型时仍然要关注每路输出的电流消耗。一些芯片在未使用的输出通道上如果不显式关闭会白白多烧几十毫瓦。几十毫瓦在桌面设备上不值一提在TWS充电盒这类设备里就是大事。所以选型时要求固件在初始化时把不用的输出通道全部关掉并确认芯片有相应的低功耗待机模式。PCB面积方面4-PLL芯片的封装从QFN-32到QFN-48不等QFN-48在消费电子里已经属于大器件了。实际Layout时它周围需要的去耦电容、匹配电阻、电源滤波电路占地面积往往比芯片本身还大。评估面积时一定要把配套电路总占地算进去别只盯着封装尺寸。开机时间上消费电子对按下电源键到出现画面/联网的体验要求在不断提高。时钟发生器如果上电初始化要几十毫秒甚至上百毫秒内部PLL锁定需要时间某些产品就受不了。特别是电视、机顶盒这类对冷启动时间敏感的设备PLL锁定时长lock time是一个要重点对比的指标。4.2 网络产品长寿命、严抖动和同步协议网络产品的设计逻辑完全不一样。设备要7x24小时运行工作温度范围宽、老化工况严酷、生命周期长达五年以上。时钟发生器在这种场景里的核心地位更高——因为网络设备对时钟的要求不只是频率对还包括频率精度和长期稳定性。在支持SyncE同步以太网或IEEE 1588 PTP的设备里时钟发生器需要能跟踪远端恢复的参考时钟并且在整个跟踪过程中输出的频率漂移要极低。这意味着芯片需要一个外部高精度参考源输入且PLL环路带宽要配合同步协议做窄带滤波。某些4-PLL芯片专门提供数字PLL/DPLL模式或者时钟清洗功能能把带抖动的参考时钟净化后输出这类功能在4-PLL选型时比单纯的RMS抖动值更有价值。网络产品还有一个消费电子很少考虑的需求冗余参考时钟切换。当主参考时钟源失效时4-PLL芯片要能自动切换到备用参考源并且切换过程中输出频率和相位不能发生大的跳变。这种无中断切换hitless switching是电信级设备的基本要求普通消费级芯片根本没有这个功能。如果产品定位是运营商级设备选型时一定要确认芯片是否支持多个输入参考的无中断切换以及切换时相位是否保持连续。4.3 扩频时钟SSC的两极用法SSC是一个能把EMI峰值能量摊平的神奇功能但在消费电子和网络产品里的用法反着来。消费电子为了过EMI几乎一定会启用SSC。比如PCIe接口开-3000ppm或-5000ppm的向下扩频把能量摊到约30-33kHz的调制频率上辐射峰值能降好几个dB。4-PLL芯片因为各路独立能给USB开SSC、给HDMI不开灵活度很高。但要注意SSC不是免费的它会增加时钟的瞬时抖动。有些存储设备如U盘在SSC使能时会拒绝协商高速模式所以消费电子做兼容性测试时SSC档位的选择要在EMI收益和兼容性之间做权衡。网络产品对SSC的态度往往是能不开就不开。因为网络设备里的PHY和交换芯片对参考时钟的频率精度有明确要求而扩频会让瞬时频率偏移超过规范。尤其是支持SyncE的设备参考时钟哪怕短期内也不允许有几千ppm的偏移。所以网络产品中的4-PLL芯片通常所有通道都关SSC换来的是整机的频率稳定性。4.4 两类产品的评估重点对比评估维度消费电子网络产品首要指标功耗、面积、成本长期稳定性、切换能力、可靠性抖动要求满足接口预算即可严苛且关注带外相噪参考源普通晶振/TCXO成本优先高稳TCXO/OCXO甚至外部BITS参考SSC强烈需要用于EMI通常禁用配置方式引脚或I2C/SPI上电快寄存器配置支持复杂同步逻辑工作温度0~70℃商用级-40~85℃工业级甚至更宽生命周期1~2年迭代5~10年供货这张表是选型时间极好的过滤网。同一颗芯片如果同时宣称面向消费和网络市场你要警惕它的指标取向——往往在其中一个市场里只是能用而非好用。真做网络产品时不要图便宜选消费向的4-PLL芯片哪怕标称抖动数值看起来差不多。5. 调试过程中翻车概率最高的三个场景讲完了选型策略最后整理几个我在4-PLL芯片调试过程中踩过、也帮别人排查过的典型问题。这些问题在查阅datasheet时通常不会直接看到但它们几乎每一代产品都会遇到。5.1 场景一电源纹波让相噪曲线莫名翘起现象某路输出在频谱仪上看除了时钟基波外在 200kHz 和 2MHz 处各有一个杂散spur幅度大约 -45dBc虽然没到功能失效的程度但眼图余量明显变小。排查链路先排除参考源问题。把参考输入拔掉让PLL自由振荡如果芯片支持的话杂散仍然在说明问题在芯片内部或供电用近场探头扫芯片周边的电源网络发现2MHz处有强辐射顺着源头找是一颗DC-DC降压芯片的开关频率就是2MHz200kHz杂散怎么来的再往上看那颗DC-DC的工作模式是PFM脉冲频率调制轻载时会跳到约200kHz的突发频率。两个杂散全都能对上电源纹波来源处理给时钟芯片的电源加一级LC滤波磁珠22uF电容并把DC-DC强制改成PWM模式杂散从-45dBc压到-70dBc以下。教训4-PLL芯片的电源对纹波极其敏感尤其是VCO的供电。很多芯片的PSRR电源纹波抑制比只有20-30dB200mV峰峰值的开关纹波就能在输出端产生几ps的抖动。所以时钟芯片供电不要直接挂在DC-DC输出上至少加一级RC或LC滤波。更稳妥的做法是如果板上有LDO余量给时钟芯片单独用一个低噪声LDO供电3.3V或2.5V都行关键是纹波要压到5mV以下。5.2 场景二配置顺序不对输出相位跳了一下现象系统启动时记录以太网PHY的同步状态偶尔会出现一次RX时钟相位跳变导致PHY重新进行链路同步丢几十毫秒的流量。不是每次启动都复现十次里有两三次。排查链路一开始怀疑PHY或交换芯片但在PHY入口示波器抓参考时钟发现每次启动时芯片输出频率的相位会在初始化过程中发生一次明显的阶跃大约几百皮秒用逻辑分析仪抓I2C配置时序发现时钟芯片的初始化代码先使能输出再配置SSC参数。使能输出时PLL按默认SSC状态输出随后写入SSC开启寄存器瞬时的频率和相位调整引发了相位跳变修正把所有寄存器参数包括SSC、分频比、输出格式先写入最后再写输出使能位。启动时也检查芯片是否支持输出disable状态下完成全部配置的模式结果修改初始化顺序后问题彻底消失。教训4-PLL芯片的输出使能不是最后一步开关而是配置完成后才允许打开的闸门。很多芯片的寄存器是可实时更新的但如果顺带改变了PLL分频比或SSC状态输出频率和相位必然跳变。在PLL锁定且配置稳定之前保持输出关闭或高阻这是通用原则。5.3 场景三SSC一开链路协商就失败现象一块PCIe Gen3 x4的扩展卡接在主机上系统启动过程中偶尔识别不到设备或者识别到但跑在Gen1速率。关掉SSC后问题不再复现。排查链路用频谱仪看参考时钟输出波形确认SSC调制深度和调制频率是否符合PCIe规范。发现调制频率不是常规的30-33kHz而是约22kHz调制深度超过-5000ppm查芯片配置发现该型号的SSC调制频率和扩展比绑定在某个固定配置组里用户可选组合有限恰好选中的组合超出了PCIe Gen3接收端的容忍范围处理把SSC参数调整到符合规范的档位同时适当降低参考时钟链路上串联电阻值改善时钟上升沿接收端的抖动余量回来后就稳定了。教训PCIe对SSC的调制频率和扩展比有明确限制不是开了就行。不同芯片的SSC参数组合范围不同选型时要把你需要的SSC档位是否能精确配置作为硬性条件。另外一旦SSC参数修改一定要做完整链路的老化测试因为扩频后的瞬时频率变化对接收端CDR的跟踪能力是持续的考验。5.4 我习惯配的调试工具链做4-PLL芯片调试我通常准备的设备和方法实时示波器带宽至少是参考时钟基波的3-5倍配合时钟恢复功能看长期抖动和眼图信号源分析仪/相位噪声仪用于看相噪曲线和杂散这是判断串扰和电源问题的最直接工具近场探头配合频谱仪可以做板级EMI定位对找电源干扰源特别有效逻辑分析仪抓I2C/SPI时序确认初始化代码的配置顺序是否符合预期。这些工具不一定要全部配齐但至少示波器和频谱仪是必须的。我见过太多工程师只拿万用表量电压、拿示波器看频率发现频率对的呀但眼图就是打不开——因为抖动和杂散这种细节万用表看不出来只有频谱仪或相噪仪才能揭露真凶。做4-PLL时钟方案久了你会发现这颗芯片在一台整机里就像人的心脏起搏器——它不直接干活但所有干活的高速模块都依赖它来数拍子。花在产品设计初期的选型和拓扑规划上的时间永远比后期在示波器前苦熬要划算。我自己现在做方案一定会先拉一张时钟需求表哪个接口要几路、什么频率、什么电平、要不要SSC、抖动预算多少、上电时序怎么走然后拿着这张表去筛选4-PLL芯片基本不会翻车。这套方法论你们可以直接抄走用省下来的调试时间才是真正的价值所在。
返回列表