拓冰建站拓冰建站
首页 / 资讯中心 / 正文

用Sigrity PowerDC做直流压降仿真:从建模到瓶颈定位

简介这是一份基于Sigrity PowerDC的直流压降仿真实操文档面向硬件工程师、PCB设计及电源完整性分析人员。文档以Allegro环境为背景完整讲解了从新建项目、导入版图、叠层厚度与材料设置到电源/地网络选择、VRM电压源参数配置等直流压降仿真全流程并同步介绍了PowerDC在电热协同仿真、热点检查、低压大电流PCB与封装分析中的典型应用可帮助读者快速上手并通过仿真确保各器件端到端的电压降裕量降低电流密度与温度超标风险。资源以doc格式提供共1个文档压缩包大小约1.96MB内容紧凑但步骤完整适合作为日常设计参考或培训学习材料。当前已有3735人浏览学习。若你正在使用Allegro进行电源完整性验证这份文档能提供清晰的操作指引与关键参数设置思路对VRM感应线自动优化、过孔与布线瓶颈检测等高级功能也有直观说明值得下载阅读。1. 直流压降仿真为什么值得先做Sigrity PowerDC 在这件事里管什么一块 12 层板卡上的 1.0 V 核电压常温下量出来 0.992 V热机后掉到 0.981 V。很多人第一反应是去查开关电源环路但真正吃掉这十几毫伏的往往是板卡电源路径上的直流电阻。Sigrity PowerDC 就是用来干这件事的它把叠层铜箔、过孔、器件引脚按直流网络建模解出每个节点的电压、电流密度和整条路径上的压降。这套直流压降仿真的价值不在于算出一个比万用表更准的绝对电压而在于让你在改板之前看见压降到底发生在哪一段是平面的窄脖子还是 VRM 到负载之间的过孔群或者是连接器本体。适合的人是电源完整性工程师和画板子的人对象是核电压、DDR 电压以及任何对电流密度敏感的大电流电压轨。后面的步骤按一块普通 FPGA/内存板卡的实例来写你照着把器件换成自己的网络也能复现。2. 建 DC 压降仿真之前的准备叠层、网表和 VRM 模型怎么统一到 PowerDC2.1 先决定分析范围整板还是单电压轨PowerDC 可以一次性处理整板但我不建议第一轮就跑完整板。整板仿真把所有电源网络的 VRM 和负载都带上网格多、收敛慢一旦某块平面有破孔结果会牵着一堆电压轨一起变。常见做法是先把一个电压轨单独拉出来比如 1.0 V core只保留从 VRM 输出到 BGA 电源脚的正网络和对应地网络其他网络全部排除。这样做的好处有两个第一电流路径干净VRM 给多少电流、负载在哪吃电流一眼能对得上第二算完以后你很容易拿万用表去实测同一段压降。排除网络不是删器件PowerDC 还需要保留地的返回路径所以地网络不要随手过滤掉只把无关的正电压网络关掉即可。2.2 叠层和铜箔参数不能全用默认值PowerDC 的直流电阻计算依赖每层的铜厚、线宽、温度和过孔镀层厚度。叠层如果直接吃默认材料算出来的平面电阻会乐观 20% 到 40%。所以我的习惯是先从板厂叠层表拿到完成铜厚再按下面这张表建材料模型。参数常用起始值注意事项铜导电率5.8×10^7 S/m高温降额可以按 4.6×10^7 S/m约 80°C用表层铜厚35μm 或 70μm1 oz 完成铜厚约 35μm不要用基铜厚度代替内层铜厚17.5μm 或 35μm半盎司内层很常见先和板厂确认完成铜厚过孔镀铜厚度18-25μm关键参数漏填会让过孔群电阻被低估工作温度25°C压降仿真建议按最高工作温度电阻变大结果更严苛叠层里除了铜厚还要确认平面层的层名和网络名对应。PowerDC 里经常出现同一层铜皮在版图里叫 A导入后网络名映射成 B结果这一段平面显示成孤铜不参与电流计算。导入完成后先跑一遍检查工具确认正网络和地网络都有连续铜皮再进入模型分配。2.3 VRM、负载 sink 和过孔的建模口径电压源在 PowerDC 里可以挂在 VRM 输出管脚也可以挂在一段铜皮上。我一般会把 VRM 的电压源放在稳压器输出端的焊盘上再额外串联一个很小的直流电阻用来代表远端 sense 补偿后剩下的引线电阻。这样仿出来的不是理想电压源更像实际板端可测到的电压。负载侧用电流 sink不要用电阻。数字芯片在直流工作点附近的行为更接近恒流源电流大小由工作状态决定如果你用电阻模拟负载电流会随电压下降自动变小仿真结果会偏乐观。设置 sink 时直接把芯片的最大持续电流填进去比如 7 A而不是填峰值电流。峰值电流留给瞬态仿真看直流压降只看持续电流下的稳态电阻。过孔在 DC 仿真里不是短接线。PowerDC 会按过孔起止层、孔径和镀铜厚度计算轴向电阻。常见问题是叠层里没有给过孔指定 plating thickness这时候 PowerDC 会用默认值默认值不一定错但你要知道它有没有参与计算。检查办法是跑完后打开过孔电流显示如果某个过孔群电流明显偏小先回去查它的起止层和镀层参数。3. 在 PowerDC 里跑通一次直流压降仿真的核心流程3.1 从版图进 PowerDC省时的是这两种数据通路如果板子是用 Allegro 画的Cadence 链路最顺PowerDC 能直接读版图数据叠层和网络映射基本不用重做。其他 EDA 工具画板的情况我一般用 ODB 或 IPC-2581 先转出来再导入 PowerDC。导入后第一件事是检查层映射走线、平面、丝印、过孔必须分别落到对应层。这里最容易踩的坑是 ODB 把多个内层平面合并成一张图PowerDC 里看起来有铜皮实际上没有分配网络。修这个比调仿真参数更花时间。不要拿 Gerber 直接进 PowerDCGerber 没有网络拓扑过孔和焊盘的连接关系很容易丢失最后算出来就是一堆孤立的铜块。3.2 分配 VRM 和负载谁给电流、谁吃电流要分清楚以一个 1.0 V 核心电压轨为例我在 PowerDC 里的操作顺序一般是这样的。新建 DC Drop 分析指定要分析的 power net 是 VCC_CORE对应的 ground net 是 GND。在 VRM 输出管脚上放置电压源设置额定电压 1.0 V源内阻先写 0。在 FPGA 的 BGA 电源脚区域放置一个 current sink输入持续电流 7 A。检查 VRM 到负载之间的网络路径确认过孔群被包含在仿真范围内。运行 DC Drop 求解。这个 rail 的模型分配清单可以整理成下面这张表方便多人评审时直接看输入口径。对象模型类型设置值说明VRM 输出电压源1.0 V源内阻按远端采样余量补 0.3 mΩFPGA 核电流电流 sink7 A用最大持续电流不用峰值板端输出电容忽略或按小电流 sink0.1 A 以下直流状态下电容没有稳态电流DDR 辅助 rail排除不参与单 rail 分析时避免网格膨胀源电流和负载电流一定要能对上。PowerDC 跑完后如果 source 侧电流和 sink 侧电流差超过 1%先回去查电流路径上有没有没接上的电源引脚不要急着调求解器。提示如果源电流和负载电流对不上先回去查 VRM 和负载的网络分配不要调求解器硬收敛。3.3 求解器设置与收敛判断PowerDC 的直流求解器用自适应网格不是普通 SPICE 网表求解。第一次跑的时候网格等级设为 Medium迭代上限留默认。收敛后如果局部电流密度看不清楚再对瓶颈区域单独加密不要一上来就全板 Fine 网格内存占用和仿真时间会成倍上涨。判断收敛不能只看 log 里有没有报错。我的做法是把电压云图打开看有没有非物理的条纹比如同一段平面上出现锯齿状颜色变化。出现这种现象大概率是某个平面层网络断开或者过孔没有贯穿到应连的平面。另一个稳定的判据是电流连续性把 VRM 输出电流和所有 sink 电流加总对比误差在 1% 以内才算可用。如果仿真不收敛按顺序排查先看有没有悬空铜皮再看过孔起止层最后把网格等级降回去。不要把铜导电率人为调大来换取收敛那样压降会被做假后续所有判断都会失真。4. 读直流压降结果电压云图、电流密度和瓶颈定位4.1 先看电压云图再标出最低电压节点跑完后 PowerDC 默认打开电压云图。第一步是先选定要看的 net把颜色标尺范围拉到感兴趣的区域比如 0.97 V 到 1.0 V不然整板颜色都偏红看不出差异。第二步是在结果树里打开最小电压标记PowerDC 通常会标出最低电压节点所在的坐标。拿到最低点以后不要急着改板先问三个问题最低点是不是在负载最远端的 BGA 球上从 VRM 到最低点之间有没有明显收窄的铜带过孔群的入口和出口处电压是不是各自掉了一大截。这三个问题对应的是平面瓶颈、过孔瓶颈和连接器瓶颈修法完全不同。电压云图容易给人一种“离电源越远电压越低”的直觉实际上不是。某个 BGA 角落如果正好卡在两片铜皮的接缝处即使离 VRM 很近也可能成为最低电压点。所以定位瓶颈要结合电流密度图一起看而不是只盯最小电压。4.2 用 CSV 批量核算每个电压轨的压降上限PowerDC 可以把节点电压导出成 CSV常见的方式是在结果树里选择节点表然后导出为文本或 CSV。不同版本的导出列名不一定一致但只要确保有 net、node、voltage 三列就够用。拿到 CSV 后我一般用一个小脚本批量核对每个电压轨的压降是否在目标范围内。# 批量核对 PowerDC 导出的节点压降 import csv TARGET_VOLTAGE 1.0 # VRM 输出的目标电压单位 V TOLERANCE_MV 30 # 允许的最大压降单位 mV rails {} with open(powerdc_node_voltages.csv, newline) as f: for row in csv.DictReader(f): net row[net_name].strip() v float(row[voltage_v]) rails.setdefault(net, []).append(v) for net, volts in rails.items(): vmin min(volts) drop_mv (TARGET_VOLTAGE - vmin) * 1000.0 result OK if drop_mv TOLERANCE_MV else NG print(f{net}: min{vmin:.4f}V, drop{drop_mv:.1f}mV - {result})脚本逻辑很简单先把同一个 net 的所有节点电压收集起来取最小值再用目标电压减去最小值得到这一条电压轨的最大压降。关键参数是 TOLERANCE_MV它应该来自负载芯片的电压规格而不是随便定的 3%。比如芯片允许 1.0 V 上下浮动 50 mV通常会把其中 20 到 30 mV 留给直流压降剩下的留给纹波和瞬态不能把整个裕量全吃掉。如果你的 PowerDC 导出列名不是 net_name 和 voltage_v直接把代码里对应字段改掉。脚本只看 net 和最小电压不关心电流密度所以它适合做多电压轨的一次性筛选筛选出 NG 的 rail 再回到云图里细看。4.3 瓶颈定位电流密度云图和过孔群电流密度云图是找瓶颈最快的视图。窄铜带、过孔阵列边缘、连接器焊盘处颜色会先变红。这里需要注意不要拿整板最大电流密度直接和板厂工艺极限比因为极个别点可能只是网格奇异性造成的峰值不代表真实风险。正确做法是看一段连续路径上的平均电流密度是否超过设计约束。我见过的压降瓶颈按出现频率排序大概是BGA 扇出区的窄铜带、两个过孔群之间的细连接、连接器电源针数量不足、平面层上有隔离焊盘切断回流路径。修法分别对应加宽铜带、增加过孔数量、增加电源地针、调整 anti-pad 或补一条跳线。每一轮改动后只改一个变量重跑不要同时加宽铜和加过孔否则你不知道是哪个改动起作用。5. 用 PowerDC 的压降结果反推 PDN 直流电阻并和实测对照5.1 从 Vmin 和 Iload 拆出整条路径电阻PowerDC 算完以后除了看电压云图我还会做一个简单反推把整条电源路径的直流电阻算出来。公式是 R_dc (V_source - Vmin) / I_load。比如源端设 1.0 V最低节点电压 0.976 V负载电流 7 A那从 VRM 输出到最差负载点之间的直流电阻大约是 3.43 mΩ。这个值可以直接拿去和实测对比。这个数字比单个节点电压更有信息量。你可以把同一块板在仿真里把温度从 25°C 改成 85°C电阻变化如果超过 30%说明铜箔温升对压降影响很大设计时就要把温度系数留足如果电阻变化不大说明瓶颈可能在连接器或过孔而不是平面铜皮因为连接器接触电阻的温度系数和铜不一样。5.2 实测对照与温度修正实测时我一般不用普通万用表的两线测法而是用四线开尔文法。在 VRM 输出端和 BGA 最远端电源脚各焊一对感应线用电子负载拉一个 10 A 恒流然后测两个远端感应点之间的电压差。对比时注意把仿真温度设成和实测环境一致否则 0.5 mΩ 的差别会被温度变化吃掉。对照结果允许有偏差但不允许方向性错误。仿真压降如果比实测小很多先怀疑过孔镀层厚度填高了如果比实测大很多先查负载电流是不是给大了。这两类偏差都能在模型输入里找到原因不要急着说求解器不准。需要说明的是PowerDC 的直流压降解出来的是稳态工作点不是 S 参数也不是 TDR 意义上的阻抗突变TDR 看的是沿路径的特征阻抗变化IR drop 看的是稳态路径电阻两者在 Sigrity 里是不同分析类型验证时不要把判据混在一起。最后一个实用技巧在 PowerDC 里把同一个电压轨的 VRM 电压抬高 10 mV 再跑一次两次结果的 Vmin 之差应该也是 10 mV。如果电压变了电流也跟着变说明 sink 模型或器件导通电阻混进了电流路径先修模型再谈压降结论。本文还有配套的精品资源点击获取
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门