news 2026/9/29 1:39:15

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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的交流激励,扫描频率,测电压响应,Z=V/I,物理图像非常直观。你拿到曲线后,做的事情就是把它和目标值比较。曲线压线,放心;冒头,就得查。

1.3 AC阻抗仿真在整套PDN验证流程里的位置

经常会有人问我,TDR仿真能不能替代AC阻抗仿真。我的理解是两者解决的是不同层面的问题:TDR告诉你这条通道的阻抗突变点出现在物理位置上的哪里,适合排查过孔、连接器、跨分割这类局部不连续;AC阻抗仿真告诉你从某个端口看进去的整体频域阻抗是否满足要求。PDN合格性判定靠AC阻抗,断案定位靠TDR。项目评估时,先用AC阻抗做筛查,快、直观、容易对标;如果曲线出现异常,再拿TDR或其他场分析手段去定位具体位置。整个PDN验证流程里,AC阻抗仿真永远是先跑起来的那一项。

2. Power SI建模绕不开的三件事:叠层、电容模型和VRM

2.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决定电容什么时候开始呈感性。无源电容的自谐振频率SRF=1/(2π√(LC))。低于SRF时元件显容性,阻抗随频率下降;高于SRF之后显感性,阻抗随频率上升。这也是为什么大容量电容只适合低频去耦,高频去耦必须使用更小封装、更低ESL的小容量电容。如果你在Power SI里给一个100nF电容填了容值,却忘掉ESL,它的有效频段会被严重高估,仿真结果自然不靠谱。

我给常见去耦电容整理过一张参考参数表。注意,这些是典型值,不同厂商、不同电压等级会有差异,正式仿真务必以具体型号的模型或datasheet为准。

封装/容值典型ESR(mΩ)典型ESL(pH)自谐振频率
0402 100nF10~30300~50020~40MHz
0603 100nF10~40400~70020~35MHz
0603 1µF5~20400~7005~10MHz
0805 10µF5~25800~15001~3MHz
1210 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的直觉就是这么养出来的。另外我一直建议,拿到一个没跑过的仿真流程,先拿一块有实测数据的旧板子做校准,把模型假设和求解参数都对齐,再上新产品,这样仿真结果才真正敢拿出去拍板。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 1:38:56

MBENET驱动详解:ZLG网关虚拟串口通信实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:38:35

SMT产线芯片供应:从6周交期到24小时现货,如何选对供应链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:38:19

Stable Diffusion三大核心组件原理与工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:38:19

C++构造函数初始化列表:从冒号语法到底层原理与常见坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/29 1:37:37

LCD调试方法论:从时序参数到工具使用的完整排查思路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华