
做芯片电源验证这行最怕的就是“测了等于没测”。明明load step数据都合格可芯片一到用户手里在某个特定负载工况下突然复位。后来复现才发现实际工作负载下的电压跌落比我们用单步负载压出来的要深得多——问题就出在单步负载只压了低频droop而高频droop和中频droop在同一次事件里叠加时电压谷值才是真正的最低点。最近读到一篇芯片压测论文专门讲高低频droop叠加以最大化voltage droop我照着思路在自己负责的一颗SoC上做了完整复现整个过程很有代表性写出来给做PI验证、电源完整性测试的同行参考。这篇文章不只是解释论文的方法论还会结合我的实测记录把droop三个频段怎么拆、怎么用频谱确定激励参数、怎么构造复合波形、怎么避开测量环节的坑一整套流程走一遍。如果你正在做芯片的电压应力测试、电源轨压测方案设计或者正在调试“为什么load step测出来和仿真对不上”这类问题这篇应该对你有用。1. 压测的真正目的把电压推到最坏状态而不是模拟日常运行1.1 一个让我印象深刻的现场故障去年年底我负责的一颗边缘计算SoC在做量产前验证。按照常规流程我们用电子负载跑了一遍Vcore的load step测试电流从10A瞬间跳到25A上升沿大概5ns示波器测出来的电压跌落约62mV离芯片规格书的复位门限90mV还有一段距离。当时所有人都觉得没问题结果在系统级测试时芯片在高负载运行中出现了两次复位——用逻辑分析仪抓到的现场Vcore最低点已经掉到了0.792V也就是跌了108mV远超之前测到的62mV。我后来分析现场数据发现那个复位场景根本不是简单的load step。芯片内部多个模块同时唤醒数字逻辑翻转频率非常高负载电流上叠加了一个非常高频的纹波分量同时片外PMIC和板级去耦电容组成了一个中频谐振回路在负载突变后产生了一个明显的振荡谷。也就是说实际复位事件的电压谷值是高频、中频、低频三个droop分量在同一时间段内连续叠加的结果。单步负载测不出来是因为它在频域上对高频段的激励不足。step的上升沿虽然快但能量只集中在沿上那一下之后的平顶电流几乎不包含高频动态成分。而真实芯片工作时负载电流是持续动态变化的高频分量一直都在。1.2 压测对象的界定与方法论在做droop最大化压测之前先要明确几个关键参数被测电压轨是哪一个Vcore、Vmem、Vio各有不同的PDN特性峰值电流和最大di/dt是多少复位门限或欠压门限在哪里。以我的实践为例测试对象是一颗28nm工艺的边缘SoCVcore标称0.9V最大负载电流25A复位门限按0.78V算即允许最大droop约120mV。论文里提到一个核心观点droop最大化压测不是为了模拟真实负载而是主动构造一个“比真实更严苛”的电流激励把PDN在一个较宽频带内的最坏响应全部激发出来。这和传统的load step测试有本质区别——传统测试验证的是“典型最坏情况”droop叠加测试验证的是“物理极限情况”。1.3 droop叠加测试的适用范围这个方法最适合用在两个阶段一是芯片bring-up阶段的电源电压裕量评估这时候需要快速知道当前供电方案能覆盖多少电压跌落余量二是量产前的老化测试和压力测试需要把芯片电压往极限推验证长期可靠性。它不太适合用来做功能验证因为波形本身是人为构造的不代表真实软件工作负载。我建议把droop最大化测试作为“补充压测”放在常规load step测试之后跑而不是替代常规测试。2. 拆开droop的三个频段每一段都由谁主宰2.1 高频droopdie电容和封装电感的纳秒级博弈高频droop通常指频率在100MHz以上、时间尺度在几纳秒到几十纳秒的电压跌落。它主要由芯片裸片die上的寄生电容、封装引脚电感和裸片内部供电网络共同决定。当内部逻辑发生大量翻转时瞬间的大di/dt会在封装电感上产生压降频率越高、电流变化越快这个压降幅度越大。这个频段的droop幅度通常不大——可能只有几十毫伏——但它出现的时间极快是三个频段中最早到达谷值的也是很多瞬态复位事件的导火索。高频droop有个明显的特征它跟芯片本身的时钟频率和逻辑翻转密度强相关跟板级去耦电容和VRM的关系不大。你换再多的板上电容高频droop也纹丝不动因为它发生在芯片封装和裸片层面。2.2 中频droop封装谐振与板级去耦的微秒级较量中频droop在1MHz到100MHz之间时间尺度在零点几微秒到几微秒。它主要由封装电感、板级去耦电容网络组成在负载电流突变时封装电感与板级电容之间发生LC谐振形成一个衰减振荡。中频droop是三个频段中幅度潜力最大的一个。因为中频段往往是PDN阻抗曲线最高的区域——板上电容和封装电感构成的谐振回路的Q值通常不低。在我的实测案例里中频谐振阻抗峰值到了0.35Ω左右而低频VRM输出阻抗只有不到0.02Ω。中频droop的谷值出现在负载突变后的第一个振荡周期内如果激励脉冲宽度恰好能“踩住”这个谐振半周期中频谷值就会比较深。2.3 低频droopVRM环路带宽的毫秒级迟滞低频droop在几十kHz以下时间尺度从几十微秒到毫秒。它主要受VRM电压调节模块的环路带宽控制。VRM环路带宽通常在1kHz~50kHz之间当负载电流发生大幅跳变时VRM的输出电容需要先放电等环路响应后VRM才慢慢补充电流这个过程中间电压会持续跌落。低频droop的特点是持续时间长、变化缓慢但幅度可观。它和VRM的环路稳定性、输出电容容量、环路带宽直接相关。在很多实际设计中低频droop决定了基线的下移——就是整个波形的大趋势往下走叠加在上面的高频/中频droop只是在这个下移基线上再产生局部尖峰。2.4 三频段特性对比频段时间尺度主要决定因素波形特征影响手段高频ns级die电容、封装引脚电感尖峰状衰减快基本不可调取决于芯片设计中频μs级封装电感、板级去耦电容衰减振荡谷值明显调整去耦电容布局、MLCC数量低频ms级VRM环路、输出电容缓慢下降后恢复调整VRM环路补偿、大容量电容理解这几个频段的划分是读懂高低频droop叠加方法的前提。因为不同频段的droop“老板”不同优化手段也完全不同。你不可能通过在板上多加电容来解决高频droop也不可能靠改die布局来解决低频droop。同样的道理压测时你也需要一个能同时覆盖三个频段的激励才能把每个频段的最坏情况都逼出来。3. 高低频droop叠加的原理为什么简单激励测不出极限值3.1 从目标阻抗曲线看最坏激励频率电源完整性设计里有一个核心概念叫目标阻抗target impedance定义为允许的最大电压波动除以最大瞬态电流变化Z_target ΔV_max / ΔI_max比如说Vcore允许跌落120mV、瞬态电流变化15A那么目标阻抗就是8mΩ。PDN实际阻抗需要在关注的频率范围内都低于这个值。但实际PDN阻抗在频率上是有起伏的低频段VRM输出阻抗很低中频段因为LC谐振会出现峰值高频段die封装寄生也会抬升阻抗。阻抗峰值所在的频率就是最坏激励频率——如果你让负载电流在这个频率附近产生足够强度的扰动电压droop就会非常明显。我复现论文方法的第一步就是先获取这颗SoC的PDN阻抗曲线。没有VNA条件的话用仿真模型也可以但如果你手上有VNA直接测板级PDN阻抗会更准我实测时在77MHz附近看到一个明显的阻抗峰值约0.35Ω这就是中频谐振点。3.2 各频段droop峰值的时序差异理解droop叠加的关键是要清楚三个频段的电压谷值不是同一时刻出现的。拿一次从低到高的电流阶跃来举例t ≈ 1~10ns高频droop先到谷值。这是die电容开始放电、封装电感瞬间承受大di/dt的结果时间极短跌得快、弹得也快。t ≈ 100ns~2μs中频droop到第一个谷值。这是封装电感和板级去耦电容谐振的第一圈能量转换效率最高谷值最深。t ≈ 10μs~1ms低频droop到谷值。VRM的环路补偿需要时间从检测到电压跌落、到环路调整、再到输出电流跟上这段时间里电压会持续下探。所以一次简单的load step测试之后示波器上看到的电压波形实际上是这三个谷值在一个时间轴上的序列。如果三个谷值挨得足够近、跌得足够深电压包络线的最低点就会非常低。3.3 让谷值对齐叠加才是最大droop的关键论文方法的精妙之处在于“叠加”二字。既然三个频段的droop谷值发生在不同时刻那么最大化droop的思路就是调整激励波形让尽可能多的谷值在时间上连续出现形成“谷值接力”。换句话说在低频droop把电压整体压低的同时高频和中频的尖峰恰好也在这个低谷区间里出现三者叠加成一个更深的包络谷。我用一个类似的场景帮助理解三个不同大小的水桶摞在一起往外倒水大桶的水位下降最慢、最后见底中桶居中小桶最快。如果你想让总水位最低最好让小桶的枯水位出现在中桶和大桶也在低位的时候。芯片压测就是这个道理用波形参数控制“各桶的相位”。具体到波形设计上关键参数有三个激励电流的上升沿速率、脉冲宽度、重复频率。上升沿速率决定高频激励强度脉冲宽度需要匹配中频谐振的半周期重复频率决定低频段VRM有没有时间恢复。这三个参数不是独立的它们共同决定了各频段droop谷值的相对位置也就是“相位关系”。4. 复现论文方法的完整流程从load step到复合激励4.1 第1步单步负载测试建立基线不要一上来就搞复合波形那等于跳过了基础数据的收集。先从标准的单步负载开始记录当前供电方案的“基准droop”。这一步有两个目的第一确认测试平台和示波器设置正常第二拿到常规测试下的droop数据作为对比基线。具体操作上用电子负载或者芯片内部集成的可编程负载有些SoC有专门的高频负载注入模块比如Intel的DTS、AMD的SVI2接口带stress tool产生一个阶跃从10A到25A、上升沿调到最快、保持10μs以上。用示波器抓Vcore电压波形读取包络线最低点。我的实测基线是62mV低于90mV复位门限。这个数据说明常规设计余量还行但也为后面“为什么真实工况会复位”埋下伏笔。4.2 第2步用阻抗曲线确定各频段的激励参数在跑复杂波形之前必须先知道PDN的阻抗峰值在哪些频率上。没有这个信息后面所有波形参数都是瞎调。我是这样做的先用VNA测了Vcore平面到0Ω参考之间的输入阻抗频率范围100Hz到1GHz。从测到的曲线里挑出三个关键点低频阻抗最低点约在3kHz附近对应VRM环路带宽边界这里决定了低频droop的发展时间中频阻抗峰值在77MHz约0.35Ω这是板级谐振点对应中频droop的最坏激励频率高频阻抗在400MHz以上开始爬升到800MHz约0.15Ω这说明die封装寄生在高频段开始起主导。基于这三个频率点确定激励参数中频激励的脉冲宽度取77MHz谐振的半周期约6.5ns——这太窄了实际上你是用一个快速阶跃的沿去激发这个谐振让谐振自己发展。所以关键是让阶跃沿足够陡同时后续脉冲保持时间跨过中频频段。4.3 第3步构造复合激励波形有了阻抗曲线和目标复合激励波形可以分了。我用的是“快沿长保持快速关闭”三段式结构第一段是快速上升沿di/dt尽量大用来激发高频droop。第二段是长保持时间把电流维持在满载25A这个时间段内板级去耦电容持续放电、中频LC谐振自由振荡发展出第一和第二谷同时VRM尚未完全响应低频droop持续加深。第三段是快速关闭沿电流回落这时候看的是overshoot和后续恢复情况。需要注意的是保持时间不是越长越好。VRM环路响应时间大概在10μs左右如果保持时间超过这个值VRM会逐渐把电压拉回来低频droop的谷值反而变浅。我实测的一段数据对比保持时间5μs时droop最深点出现在4.8μs附近深度约85mV保持时间50μs时VRM在15μs附近把电压拉回了大部分最低点反而只有80mV——因为低频谷没能和前面中频的振荡谷连续叠加。4.4 第4步相位扫描与优化复合波形的初始参数只是把三个频段都覆盖到了想要拿到最大droop还需要对参数做细调。这一步我建议用一个自动化的扫描方案手动转旋钮效率太低而且眼睛分辨波形谷值偏差的精度也不够。我的做法是写了一个简单的Python脚本控制电子负载和示波器循环改变保持时间从1μs到30μs、上升沿压摆率从1ns到50ns、以及脉冲间隔从1μs到100μs每次用示波器自动读取包络线最低点电压汇总成一个二维热力图。扫描结果很有意思最大droop出现在保持时间约6.5μs、上升沿最陡1ns、脉冲间隔30μs的组合下包络线最低点低至108mV比单步负载的62mV深了74%。这基本复现了论文里说的“高低频droop叠加最大化”的效果。4.5 复现过程的关键设置几个容易被忽视的细节必须提一下示波器的采样率和带宽要足够。Vcore波形里的高频分量到几百MHz所以示波器带宽至少1GHz采样率至少5GS/s否则高频droop的尖峰细节会被平滑掉测出来的数值偏小。电子负载的带宽和压摆率要匹配测试需求。如果电子负载最快上升沿只能到50ns那你就别指望能测到die级的高频droop测试平台本身就不支持。探头的地线要尽量短。地线一长探头环路就大拾取的噪声就多测出来的droop里面混入了不可控的噪声成分。这一点在下一章展开细说。5. 实测记录在0.9V Vcore电源轨上的一次完整扫描5.1 测试环境与仪表配置为了避免“纸上谈兵”的观感我把这次复现的实测环境和数据记录下来。被测DUT是一颗28nm工艺的边缘计算SoC工作在大电流场景下Vcore 0.9V、峰值电流25A复位欠压门限为0.78V。供电方案是PMICBuck转换器输出端挂了6颗22μF MLCC和2颗470μF钽聚合物电容。仪器方面我用了4GHz带宽示波器12bit模式采样率10GS/s。测量探头用的差分探头带宽3.5GHz。电子负载是可编程的最快上升沿1ns最大峰值电流30A。探头焊接点直接放在Vcore测试点和Vss测试点过孔上地环控制在2mm以内。5.2 每一阶段的droop数据为了完整呈现droop叠加的效应我按四个阶段记录了包络线最低点电压数据阶段激励方式包络线最低点mV说明基线单step负载 10→25A62常规测试的标准结果高频强化step负载高频小扰动 100MHz71高频分量产生额外尖峰但基线未变中频强化step负载脉宽匹配77MHz谐振89中频谐振谷被激发包络线下移复合激励快沿6.5μs保持30μs间隔108三频段谷值连续包络线最低可以看出从单step到复合激励droop从62mV加深到108mV提升了74%。这个深度的droop已经非常接近芯片的复位门限120mV了也就解释了为什么真实工作负载下芯片偶尔会复位——真实负载的激励形态在某些时刻恰好接近了复合激励的效果。5.3 波形形态的解读看复合激励下的Vcore波形能清晰观察到三个阶段的演进。上升沿之后10ns内一个窄尖峰先出现深度约15mV这就是高频droop的印记紧接着在100ns到2μs区间电压开始出现明显的谐振衰减振荡振荡频率约77MHz幅度先增后减这就是中频谐振在发展在这段振荡的同时包络线整体还在缓慢下行直到约6μs时抵达最低点这是低频VRM响应延迟导致的。最低点之后电压开始回升先是因为VRM环路开始补偿再是中频振荡能量耗尽最后在10μs左右回到稳态。整个波形看起来像是一个“尖峰振荡缓降”三合一的大包络最深的谷值出现在中频振荡的某一个谷与低频缓降到最深处交汇的时刻。这一步其实验证了论文的核心判断要让droop最大化关键是让低谷的“相位”对齐而不是单纯增加激励幅度。5.4 扫描中发现的一个意外这次扫描过程中还发现了一个之前没注意到的现象保持时间在6.5μs附近时droop最深但在保持时间到7μs时droop有时候反而会浅掉10mV左右。仔细分析后发现这是因为板级去耦电容的谐振周期在6.5μs时中频振荡的某个谷恰好与低频缓降的最低点同相到了7μs协议耦合状态变了谷值错开包络线就变浅了。这个现象提醒我droop最大化不是一个可以“大致估计”的参数它对波形的相位敏感度非常高。做这一类测试时必须要做连续扫描而不是只在几个粗略的离散点上试。6. 测量环节的隐形杀手common mode电压和探针细节6.1 差分探头的common mode电压陷阱做droop测量示波器探头的选择直接影响结果的可信度。Vcore测量的标准做法是用差分探头因为Vcore是浮地信号而且高频噪声非常大单端探头测出来的波形里混入了大量共模噪声。这里有个常被忽略的点差分探头测量的是两个输入端的电压差但它本身对“两个输入端的共同电压”——也就是common mode电压——也有承受范围。Vcore的DC工作点是0.9V在压测过程中Vss参考点也会因为地弹而波动所以差分探头的两个输入端之间既有我们想测的差分信号还有一个较大的common mode信号。如果探头的common mode rejection ratioCMRR不够高common mode信号会被部分转换成差模误差混进测量结果里。在几百MHz的高频段很多探头的CMRR会显著下降这就导致高频droop的测量值里可能包含了虚假的成分。我实测对比过用同一个探头把common mode电压从0.5V调到1.0V模拟Vcore从0.5V到1.0V的不同电源轨Vcore波形测量值几乎没有变化说明这颗探头的CMRR在这个频段内表现还行。但如果你用的探头带宽只有500MHz、CMRR在高频段只有20dB那测出来的droop数据就要打个问号。6.2 探头连接方式对droop测量的影响探头连接方式对droop测量的影响比很多人想象中大得多。最典型的错误是用一条10cm的地线鳄鱼夹来连参考点地线的寄生电感约10nH/cm在100MHz以上会产生显著的谐振让测量波形出现虚假的过冲和振铃。我在实际测试中极少用鳄鱼夹都是用探头尖端的两个针脚直接点焊到PCB的测试过孔上地环长度控制在2mm之内。这样做出来的波形干净很多测出来的droop谷值也比用长地线时少10mV左右——多出来的那部分其实就是地线环拾取的磁场噪声。还有一个细节探头尖端焊接到PCB之前最好先在过孔上涂一层助焊剂焊点要饱满不能有虚焊。虚焊会导致接触电阻变化造成波形轻微闪烁影响自动读取包络线最低点的准确性。6.3 验证数据可信度的小技巧测完一版数据后不要急着采信我会做三个快速验证第一把示波器带宽限制打开到500MHz对比和4GHz带宽下测到的droop谷值差异。如果差异超过5mV说明高频成分对测量结果影响很大需要用更高带宽的探头重新测。第二在完全相同条件下连续触发10次波形看包络线最低点的重复性。好的测试环境下10次数据的离散度应该小于2mV。如果离散度过大多半是探头接触不良或者触发设置不对不是真的物理现象。第三把探头从Vcore点到Vss点反过来测一次也就是把差分输入的正负端互换。测出来的波形成像但数值应该一致。如果不一致说明探头本身有偏置或者探针接入点有电势差问题。这些验证做下来输出的droop数据才有说服力。特别是当你拿着这个数据去和芯片设计团队争论是否需要增加去耦电容时一个可信的测量结果比什么都重要。6.4 关于差分对DC common mode voltage的延伸理解顺带说一句在高速信号完整性测量里差分对的DC common mode voltage是一个容易踩坑的参数。很多人做高速串行信号测试时习惯性关注差分幅度和眼图而忽略common mode电压漂移对信号的影响。其实和droop测量是同一个道理差分信号测量系统里common mode成分必须落在探头允许的范围内并且探头的CMRR必须足够高否则测量结果就会失真。我处理Vcore的0.9V common mode电压时采用的是宽共模范围的差分探头并且在探头的sense端并联了一个10nF的MLCC到最近的地平面帮助旁路掉高频共模噪声。这个方法对改善波形质量很有帮助但要注意MLCC不能太大——太大了会改变被测节点的高频阻抗特性反而引入新的测量误差。7. 这个测试方法的价值边界它到底能证明什么7.1 droop叠加测试与真实工作负载的关系做了大量droop叠加测试之后一个不可避免的问题是这种人为构造的最大droop和真实工作负载下看到的droop到底有多大关系我的理解是droop叠加测试提供了一个上界估计——它告诉你这个供电方案在物理极限下最多能跌到多深。真实工作负载下的droop一定是小于等于这个极限值的但具体接近多少取决于芯片实际运行的负载模式。如果芯片运行的是类似AI神经网络计算那样的大电流、高di/dt工作负载那么真实droop可能非常接近极限值如果芯片在轻负载或空闲模式下真实droop可能只有极限值的几分之一。所以droop叠加测试不是用来做系统功能验证的而是用来做设计余量确认的。如果叠加测试下的droop仍然低于复位门限那说明供电方案有足够的余量不管真实负载怎么变化都不会触发欠压复位。7.2 何时该用这个测试方法根据我的实践建议在以下几个场景使用droop叠加测试芯片bring-up阶段需要快速确认供电方案可行性时跑一次完整的droop叠加测试比调一整天的load step参数更有说服力。量产前的压力测试需要给芯片做极限电压应力时用这套方法把电压压到最恶劣状态可以提前暴露潜在的时序违例或复位风险。去耦电容网络设计调整之后用droop叠加测试验证改动是否有效因为中频段的droop优化效果在droop叠加测试里比常规load step看得更清楚。7.3 不要过度解读测试结果最后也要提醒一句droop最大化测试是把PDN往极限里推测出来的数据天然“偏悲观”。不要把测试结果直接等同于芯片一定会遇到的电压跌落更不要因为叠加测试的droop接近门限就紧张到要改版。我在实际工作中遇到很多次某个设计在droop叠加测试下的数据看起来“很吓人”接近甚至超过复位门限但产品实际运行完全正常。原因在于触发最大droop的那个特定激励波形在真实负载模式下极难出现。你需要做的是记录这个极限值和设计团队讨论PDN的优化空间然后结合系统级测试的综合判断做决策。从工程效率角度来说一次droop叠加测试省去了大量盲目的load step参数尝试。当你的load step怎么调都测不出新的droop深度时就应该换一套思维方式从频域入手主动把所有频段的激励都加满看看这个供电方案的真实底线到底在哪里。配合测量环节的common mode排查这套方法完全值得放进每个PI验证工程师的日常工具箱。