ARTICLE DETAIL

资讯详情

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

Power SI AC阻抗仿真全攻略:从PDN建模到目标阻抗曲线解读

Power SI AC阻抗仿真全攻略:从PDN建模到目标阻抗曲线解读 做电源完整性的那几年我发现一个很常见的现象设计评审时讨论最多的往往是电容有没有多加、平面有没有铺满、过孔是不是够粗但真要有人问一句“这条供电通路在某个频段下的阻抗是多少”多数人答不上来。凭经验堆料当然也能干活可一旦芯片功耗密度上来、纹波裕量变紧经验就不太够用了。我现在的习惯是每次改动完叠层或者去耦方案都打开Cadence Sigrity Power SI跑一遍AC阻抗仿真让Z曲线替自己回答“PDN到底合不合格”。这篇文章就是冲着AC阻抗仿真来的从为什么非要看这条曲线到Power SI里的建模准备、仿真的关键参数再到目标阻抗怎么定、曲线怎么读、发散不收敛怎么查一次说透。适合刚开始接触电源完整性、手里有板子却不太确定怎么用仿真验证的硬件工程师也适合把PDN当成黑盒、想搞明白阻抗曲线背后物理原理的同行。1. 为什么PDN合不合格得靠AC阻抗曲线说话1.1 电源噪声的根子在“瞬态电流×PDN阻抗”电源噪声这件事很多工程师第一反应是“换一个更好的DC-DC模块”但实际项目里真正导致纹波超标的往往是PCB这一段供电网络。所谓PDN就是从电源模块的输出端起到芯片die内部供电网络结束中间所有电容、走线、过孔、平面、封装引线等组成的整体。它在电气上绝对不是一个零电阻零电感的导体而是一个随频率剧烈变化的阻抗网络。芯片负载变化时核心电流会突然增加或减小比如从空闲到满载几十安培的电流可能在几微秒内变化完成。按照频域的基本关系ΔV(f)Z_PDN(f)×ΔI(f)只要PDN在某个频率下阻抗足够大相同的电流变化就会产生更大的电压波动。这个波动叠加在电源轨上轻则影响信号时序裕量重则直接引起误动作或者复位。所以PDN设计的本质并不是“多放几个电容”这么简单而是在所有可能被激励到的频率上把这个网络的阻抗压到足够低。这也是为什么只看手册里的“最大负载电流”远远不够。真正的关键是瞬态电流变化量和PDN阻抗曲线的乘积。你甚至可以把PDN理解成一条水管水压就是电压水管本身有一定阻力阻抗当用水量突然变大瞬态电流时阻力越大龙头处的水压波动就越大。AC阻抗仿真要干的事就是把这条水管在不同“抽水频率”下的阻力一条一条测出来。1.2 频域阻抗比时域响应更适合当“及格线”PDN验证其实有几种手段可以用示波器在板上直接测纹波也可以做时域瞬态仿真看电压跌落还可以跑TDR看反射。但作为设计阶段的判据大家最常用的还是频域AC阻抗曲线。原因很简单目标阻抗是一个频域指标芯片厂商给出的往往是某几个频点对应的最大阻抗值而时域纹波既依赖负载电流波形又依赖具体激励场景不太好定义一条所有人都能复现的及格线。相比之下“这条PDN在所有关注频率下都低于Z_target”这句话每个参与评审的人都能理解都能核对都能签字。AC阻抗仿真本质上就是在端口注入一个1A的交流激励扫描频率测电压响应ZV/I物理图像非常直观。你拿到曲线后做的事情就是把它和目标值比较。曲线压线放心冒头就得查。1.3 AC阻抗仿真在整套PDN验证流程里的位置经常会有人问我TDR仿真能不能替代AC阻抗仿真。我的理解是两者解决的是不同层面的问题TDR告诉你这条通道的阻抗突变点出现在物理位置上的哪里适合排查过孔、连接器、跨分割这类局部不连续AC阻抗仿真告诉你从某个端口看进去的整体频域阻抗是否满足要求。PDN合格性判定靠AC阻抗断案定位靠TDR。项目评估时先用AC阻抗做筛查快、直观、容易对标如果曲线出现异常再拿TDR或其他场分析手段去定位具体位置。整个PDN验证流程里AC阻抗仿真永远是先跑起来的那一项。2. Power SI建模绕不开的三件事叠层、电容模型和VRM2.1 叠层数据介质厚度、Dk和铜箔粗糙度打开Power SI第一件事先别急着跑仿真把叠层数据完整核对一遍。叠层数据里最容易出问题的有三个参数介质厚度、介电常数Dk、损耗因子Df还有铜箔厚度。这些参数直接决定平面上电源层和地层之间寄生电容的大小而平面电容恰恰是高频段去耦的重要来源。举个例子同样面积的一对电源地平面介质厚度从4mil减到2mil平面电容几乎翻倍。如果你仿真叠层里还是4mil但实际制板已经改成了2mil低频段可能看不出什么差别到了几十兆赫兹以上仿真曲线会比实测悲观一截。别小看这几百pF的差异在某些没有单独去耦电容覆盖的高频频段它就是决定阻抗高低的关键。还有材料Dk如果你用默认值1去仿真那基本等于把介质当成空气算出来的平面电容只有真实值的几分之一高频阻抗曲线整体走高完全失真。高频段还要考虑铜箔粗糙度。趋肤效应使得高频电流贴着铜箔表面走粗糙表面会明显增加导体损耗。跑GHz级别的反谐振峰时粗糙度模型开不开结果可能差出20%到30%。Power SI里面有对应的粗糙度模型选项仿真前建议和板厂确认你用的铜箔类型别拿一个陌生的表面粗糙度参数硬填。2.2 电容模型ESR、ESL比容值更关键真正让AC阻抗仿真和DC压降仿真拉开距离的是去耦电容模型。很多人从厂商手册上抄一个容值就填进去结果仿出来的曲线在几百kHz以后平平整整一点反谐振峰都没有看着特别完美但实测根本不是那么回事。原因是真实电容不只是理想C它是C、ESR、ESL三者串联的RLC结构。ESR决定了电容在工作频段的最低阻抗平台ESL决定电容什么时候开始呈感性。无源电容的自谐振频率SRF1/(2π√(LC))。低于SRF时元件显容性阻抗随频率下降高于SRF之后显感性阻抗随频率上升。这也是为什么大容量电容只适合低频去耦高频去耦必须使用更小封装、更低ESL的小容量电容。如果你在Power SI里给一个100nF电容填了容值却忘掉ESL它的有效频段会被严重高估仿真结果自然不靠谱。我给常见去耦电容整理过一张参考参数表。注意这些是典型值不同厂商、不同电压等级会有差异正式仿真务必以具体型号的模型或datasheet为准。封装/容值典型ESRmΩ典型ESLpH自谐振频率0402 100nF10~30300~50020~40MHz0603 100nF10~40400~70020~35MHz0603 1µF5~20400~7005~10MHz0805 10µF5~25800~15001~3MHz1210 100µF10~401500~30000.5~1MHz在Power SI里关联电容模型时我习惯按位号或者封装分组做批量关联。如果有CSV映射表可以一次性把设计里几千颗电容全部对应到厂商库模型上省很多时间。手动输入模型时至少保证三要素齐全C、ESR、ESL。只填C的模型我在仿真报告里一律标红因为它会把中高频结果带偏这个坑踩过不止一次。2.3 VRM模型用一个简化模型抓住低频响应刚开始跑AC阻抗仿真时我犯过一个典型错误只给PCB和电容建模没加VRM模型。结果低频段阻抗直线上升曲线难看极了。后来才意识到VRM在低频段其实是PDN的主宰者。开关电源的反馈环路会不断调整输出去抵消负载变化等效来看在低频段会呈现一个很低的输出阻抗环路带宽之外输出阻抗才会逐步抬升。工程上如果拿不到VRM厂商的完整模型我建议的简化方案是理想电压源串联一个电感电感值取VRM输出电感和环路响应综合效果的等效值。这个等效值没有统一标准一般从100nH到1µH之间具体多少可以结合电源模块的环路带宽和实测输出阻抗曲线来定。更精确的做法是把厂商提供的Zout曲线直接导入Power SI。写仿真报告时一定要注明VRM模型用了哪种简化方式否则低频段结果很容易被人抓住追问。提示低频段结果异常时先怀疑VRM模型中高频段结果异常时先怀疑电容模型和叠层数据。这个排查方向在绝大多数项目里都能快速命中问题。3. 从导入板子到交出Z曲线AC阻抗仿真的操作链路3.1 导入工程后先别跑把叠层和网络核对清楚在Power SI里新建工程时可以直接导入Allegro设计文件也可以导入ODB、Gerber等中间格式。我自己的习惯是能用原始设计文件就尽量用原始文件避免中间格式转换时把叠层、铜皮和过孔信息弄丢。导入之后先别急着点仿真先在视图里快速过一眼平面层图形是否完整BGA区域的反焊盘是否正常过孔有没有贯通到所有该到的层。这些地方只要缺一样后面AC阻抗结果就会在对应位置出现异常拐点查起来非常费劲。叠层检查我基本是照着板厂的叠层表逐层核对每层的介质材料、Dk、Df、介质厚度、铜厚、表面处理方式。尤其注意板厂说的“成品板厚”是包含阻焊的而仿真叠层里阻焊通常单独建模或者忽略两者不能直接互相替代。介质厚度填错0.5mil高频段的平面寄生电容就差一截这些数据上花半小时能省下后面好几天的返工时间。3.2 给电容和VRM关联模型批量映射是效率关键选网络是所有电源仿真里最需要耐心的步骤。一个Core电源域往往有多个电源Pin和几百颗电容里面还混着不同网络名的地AGND、DGND、PGND。你要做的是把目标电源网络和参考地网络准确勾选出来。如果选错地网络漏掉了主要回流路径仿真曲线会在某个频段突然走高看起来像设计缺陷其实是模型没选全冤得很。电容模型关联这一步可以按位号手动指定也可以按CSV批量映射。项目里几千颗电容时我把厂商模型库整理成一张映射表按位号、封装、容值三列做匹配再导入Power SI十分钟能完成整板关联。关联完一定要抽查几个位号确认关联上的模型确实带了ESR和ESL。VRM模型则在电源输出附近找一个合适的加载点把简化模型或Zout曲线挂上去这就准备好了模型端。3.3 创建AC分析频率范围、扫频点数和端口设置AC阻抗仿真的扫频参数里频率范围最需要想清楚。起点太低没有意义还会增加计算量常用从100Hz或1kHz开始终点要看最高关注频率。如果板子上有高速DDR或者GHz级别的高速链路建议看到1GHz以上普通CPU核心电源看到500MHz已经足够覆盖主要噪声频段。终点定得太高收敛难度和计算时间都会成倍增加。扫频点数方面我的经验是对数扫频点数至少保证每十倍频程100个点以上。反谐振峰的形状非常尖锐如果每个数量级只有十几二十个点很可能正好跨过峰值导致误判这条PDN是安全的。点数太多也没必要比如每十倍频程1000个点计算时间翻几倍曲线却不会有肉眼可见的区别。100到200 points/decade是性价比比较高的区间。端口位置直接决定你测的是谁。常规做法是在VRM输出端设置激励端口在负载端比如BGA电源ball区域设置测量端口仿真结果看测量端口的Z曲线。如果需要评估不同位置的PDN质量可以同时放三四个测量端口看它们之间的差异。最常犯的错是忘了给端口定义正确的参考地。AC阻抗是单端对参考地的阻抗如果参考地选错Z曲线会在某个频段整体抬高看起来所有频段都不达标其实就是仿真定义的问题。注意运行完先看一眼曲线是否平顺。如果出现莫名其妙的毛刺或者断层优先回头查端口和网络不要急着下“设计不行”的结论。4. 目标阻抗怎么算别拿到曲线就开始纠结超不超标4.1 目标阻抗公式一个实例看清全貌目标阻抗最常用的计算式是Z_target(VDD×ripple%)/ΔI。举个例子一个0.9V的核心电源允许3%的纹波也就是27mV负载瞬态电流变化量10A那Z_target就是2.7mΩ。也就是说这条PDN从DC到关注频段的上限任意频率点上的阻抗都不能超过2.7mΩ否则可能产生超过27mV的噪声。这里有个容易混淆的细节ΔI不是系统的最大电流而是最大瞬态变化量经常出现在负载从轻载切到满载的那一步。如果最大电流是20A但每次变化只有5A的阶跃那ΔI取5A而不是20A。取值偏大目标阻抗过于严格设计容易浪费取值偏小目标阻抗过于宽松实际开机瞬态可能出问题。我一般在评审时会让系统工程师确认一个最恶劣的负载变化场景用那个场景去定ΔI。4.2 频段怎么取分段目标比一条水平线更科学目标阻抗在频率上也不是一条水平线压到底。很多芯片厂商会在PDN设计指南里明确列出分段要求比如100kHz以下1mΩ、100kHz到10MHz 2mΩ、10MHz以上5mΩ。这种分段式目标曲线比单一值更实用因为不同频段的噪声能量和敏感度不一样没必要拿同一个数值要求全程。如果没有厂商指南工程经验上建议把频率覆盖到电源开关频率的十倍以上同时至少到需要关注的高速信号基频附近。比如DC-DC开关频率是500kHz核心时钟200MHz那AC阻抗曲线至少看到500MHz到1GHz才算把可能激励PDN的频段都包进来了。上限不够你连那个最大的高频反谐振峰都没看到自然以为设计没问题。4.3 目标阻抗法的局限和工程妥协要多说一句目标阻抗法只是工程近似不是物理标准。它假设激励是恒流源而真实芯片负载更像一个非线性电流吸收器它也不区分噪声来源是共模还是差模。但好处是它给PDN设计提供了一个可量化、可对比、可评审的标尺。在板级设计验证阶段它仍然是我见过最实用的判定方式。真要精细到芯片内部就得把封装模型和die模型一并带入那是另一层复杂度。5. 阻抗曲线读法谐振峰、反谐振和去耦缺口5.1 按频段拆开看曲线每一段都有主导对象拿到阻抗曲线第一件事不是找峰而是分段看。低频段几十kHz以下主要是VRM在管理曲线低平或者缓慢上升中频段100kHz到几MHz主要靠体电容和高频陶瓷电容曲线应该是相对平的一个平台高频段几十MHz以上主要由平面寄生电容和封装/PCB寄生电感决定曲线通常开始上扬。把Z曲线叠加上Z_target水平线一起看低于线的频段就是安全的高于线的频段就要处理。频段起主导作用的对象常见问题数十kHz以下VRM环路、体电容低频超标VRM带宽不够或体电容不足100kHz几MHz大容量MLCC/钽电容中频抬升ESR过高、并联数量不够几MHz几十MHz小容量MLCC反谐振峰通常出现在这个频段几十MHz以上平面电容、封装/过孔寄生电感高频持续上升受叠层和过孔影响大5.2 反谐振峰成因、识别和压制手段反谐振峰是PDN仿真里最常见的“坏东西”。两颗不同容值的电容并联时大电容在某频段已经越过自谐振点呈感性而小电容还没完全接管两者阻抗并联后会出现一个尖峰。你可以在曲线上看到一节节向上突起的尖刺频率恰好在两种容值的谐振频率之间。这个峰一旦超过目标阻抗意味着特定频段的PDN非常脆弱小幅瞬态电流都可能激起较大噪声。压反谐振峰的办法不是盲目加电容而是系统性铺开容值。典型做法是让相邻容值档位之间差距不要超过10倍比如100µF、10µF、1µF、0.1µF、0.01µF各放一些让每一级电容交接班的时候都有足够重叠。放置位置也关键高频小电容必须靠近负载中间接续的电容分布在电流路径两侧减少因环路电感带来的额外峰。调整完再跑AC峰值通常会明显下降。5.3 超标之后的调试顺序从低频往高频逐段解决低频段超标先别动电容先确认VRM模型和环路带宽如果确认VRM没问题再增加大容量体电容或者换更低ESR的类型。中频段超标多数是电容ESR过高或数量不足可以换低ESR的聚合物电容也可以加倍并联降低等效阻抗。高频段超标优先检查叠层电源层和地层是不是挨得不够近能不能在叠层设计阶段就把这对关键平面放在相邻层然后才轮到高频小电容和过孔位置。这个顺序是有讲究的因为不同频段的物理机制不一样。从低频往高频逐段排查能避免你对着一个高频峰狂加一万颗小电容结果低频该超还是超。在我接触的项目里真正“一段都不达标”的很少大多是某个频段冒头找准对象去调整比你重新推倒整套电容方案快得多。6. 仿真发散与不收敛完整的排查链路6.1 先认清现象仿真“放飞自我”的几种典型表现AC阻抗仿真不像时域瞬态仿真那样经常报“不收敛”但我一样见过不少“曲线放飞自我”的场面阻抗在某个频点突然冒出几万欧的尖峰、曲线断裂成锯齿状、甚至出现负阻抗。这些现象背后90%是建模或设置问题而不是电磁场求解器本身算不出来。常见表现可以分成三类低频段阻抗异常高多半是VRM模型或网络连接有问题中频出现不可能存在的极高频谱峰多半是电容模型ESL参数异常或某个电容关联错了型号高频直线飙升首先要怀疑叠层介质或网络参考不完整。先对号入座再往下排查比一头扎进网格设置里高效得多。6.2 五次排查顺序模型、网络、叠层、扫频、求解器遇到发散或不合理的曲线我基本按这个顺序过一遍大多数时候能快速定位。第一步查模型把所有电容模型拉出来看有没有只填了C忘记ESR/ESL的有没有ESL填成nH量级但实际应该是pH的笔误。先在模型列表里把模型数量和你设计里的去耦电容数量对一遍缺模型的位号全标红。第二步查网络确认目标电源网络和参考地网络有没有选全有没有被切开的void区域、隔离岛或者两个地网络之间没有连通桥。网络没选全时回流路径中断阻抗曲线一定会在某个频段异常。第三步查叠层确认介质厚度、Dk、Df没有沿用默认值。介电常数如果默认填成1平面电容就是真实值的几分之一高频阻抗全线偏高。第四步查扫频把频率上限降到100MHz跑一次如果曲线正常了说明高频段参数或网格精度不够如果依然发散问题基本在模型或网络。第五步查求解器切换到Fast模式或者关掉某些高级损耗模型看结果是否收敛。如果快模式正常再对关注区域做局部加密网格跑Accurate模式。6.3 快速定位问题的小技巧与AC仿真的收敛误区有几个很省钱的操作把VRM简化成理想电压源加电感如果阻抗曲线立刻变得符合直觉说明原来的VRM模型有坑把可疑的电容禁用掉一颗再看曲线变化变化剧烈就是它引起的变化不明显就说明它可能根本没连进网络。再有就是拿一个已经跑通的同样电源域工程做镜像对比项目和项目之间很多设置是可以直接复制的。最后提醒一句AC阻抗仿真的发散与瞬态仿真中的“不收敛”不是一个概念。AC仿真频域求解很少因为时步长限制而发散如果你在交流扫描里看到数值跳动优先怀疑模型参数异常而不是去调时间步长。很多刚接触仿真的人在这上面浪费了大量时间其实回头查一遍模型列表问题早解决了。最后再分享一点个人体会。这两年接触的板子多了之后我越来越觉得AC阻抗仿真的最大价值不是帮你精确预测量出多少毫欧而是给你一个可以横向对比的基准线。每加一颗电容、改一次叠层、挪一次过孔的位置都跑一遍看看曲线往哪个方向动你对PDN的直觉就是这么养出来的。另外我一直建议拿到一个没跑过的仿真流程先拿一块有实测数据的旧板子做校准把模型假设和求解参数都对齐再上新产品这样仿真结果才真正敢拿出去拍板。
返回列表