4. 电源网格建模与视图创建
在完成电源规划(Power Planning)之后,设计者面对的核心问题从“电源怎么走”转变为“如何把电源网络准确描述给分析工具”。Cadence Voltus 并不直接读取版图中的金属几何来做全部计算,而是依赖一套结构化的电源网格模型——Power Grid Library(PGL)。PGL 是 Voltus 进行静态与动态 IR 分析、EM 分析的基础数据源,它把版图中的电源/地网络抽象为可计算的电阻网络、电流源与焊盘/凸点连接关系。本节围绕 PGL 的建模方法、电源焊盘与凸点(Bump/Pad)定义、以及网格视图的生成与检查展开,目标是让读者能够独立完成一个可被 Voltus 正确读取的电源网格视图。
一、Power Grid Library 的建模对象与数据来源
PGL 本质上是一个描述电源分配网络(PDN)拓扑与电学参数的库。它包含三类核心信息:网格导体(Grid Conductors)、连接点(Connection Points)和激励与负载(Sources & Loads)。网格导体来自各金属层(如 M1~M9、RDL、AP)上的电源条带(Strap)与网格(Mesh),每条导体被抽象为具有电阻的线段;连接点包括过孔(Via)阵列、焊盘(Pad)和凸点(Bump);激励与负载则来自标准单元、宏单元(Macro)的电源引脚电流需求以及外部电源输入。
Voltus 支持多种 PGL 生成路径,常见的有:
- 基于 DEF/LEF 的自动抽取:从 P&R 输出的 DEF 中读取 SPECIALNETS 与 PINS,结合 LEF 中的金属层电阻参数(RPERSQ)自动构建网格。
- 基于 GDS/LEF 的几何抽取:当 DEF 中电源网络信息不完整时,从 GDS 中按层抽取电源金属图形,再映射为导体。
- 基于 CPF/UPF 的电源意图导入:读取电源域、电源开关(Power Switch)与 Always-On 逻辑的定义,补充 PGL 中的电源状态信息。
- 手工脚本建模:通过 Tcl 命令直接创建导体、焊盘与连接关系,适用于早期规划或特殊结构。
实际项目中,最常用的是第一种路径。Voltus 通过 read_def 与 read_lef 读入设计,再用 create_power_grid 或 build_pg_library 命令生成 PGL。生成过程中,工具会按金属层计算每条线段的方块数(Squares),再乘以该层的方块电阻得到线段电阻。例如某层 RPERSQ = 0.08 Ω/sq,一条宽 0.5 μm、长 100 μm 的电源条带,方块数为 100/0.5 = 200,电阻约为 16 Ω。这个数值会直接进入后续 IR 求解矩阵。
二、电源焊盘与凸点的定义
电源焊盘(Power Pad)与凸点(Bump)是 PDN 与外部电源之间的物理接口,也是 IR 分析的边界条件。在 PGL 中,它们被定义为外部电源连接点,需要明确三个属性:位置、所属电源网络、以及等效电阻/电感。
对于倒装芯片(Flip-Chip)设计,凸点通常分布在芯片表面,通过 RDL 或 AP 层与内部网格连接。Voltus 中可通过 create_bump 命令定义凸点,关键参数包括:
-name:凸点名称,如 VDD_BUMP_0;-location:坐标 (x, y),单位与设计数据库一致;-net:所属电源网络,如 VDD 或 VSS;-resistance:凸点自身电阻,典型值 5~20 mΩ;-inductance:封装引线电感,动态分析时使用,典型值 10~100 pH。
对于引线键合(Wire-Bond)设计,电源焊盘位于芯片边缘,通过 create_pad 定义,除位置与网络外,还需指定焊盘到内部网格的连接层与连接电阻。一个常见的教学示例是:某 10 mm × 10 mm 芯片,VDD 凸点 64 个,均匀分布在 8×8 阵列上,每个凸点电阻 10 mΩ,总等效外部电阻约 0.156 mΩ(并联)。这个值会显著影响芯片边缘与中心的 IR 分布。
三、网格视图生成与检查
PGL 生成后,Voltus 会创建一个电源网格视图(Power Grid View),它是 PGL 在内存中的可视化与可查询表示。生成命令通常为 generate_pg_view,执行后可通过 report_pg_view 输出统计信息,或用图形界面查看网格拓扑。
检查网格视图时,应重点关注以下几类问题:
- 孤立节点(Floating Node):某些导体未与任何电源或负载连接,会导致求解矩阵奇异。可用
check_pg_connectivity报告。 - 高阻连接(High-Resistance Connection):过孔数量不足或连接层选择错误,使局部电阻异常偏高。典型判据是某节点到最近凸点的等效电阻超过设计预算的 2 倍。
- 网络短路(Short):VDD 与 VSS 网格在某一层意外重叠。Voltus 会通过几何布尔运算检测并报告坐标。
- 缺失负载(Missing Load):宏单元或标准单元的电源引脚未映射到网格,导致局部电流为 0。可通过
report_power_switch与实例电源引脚比对。
下面这张图展示了一个典型的 PGL 建模与视图生成流程,以及各阶段的关键检查点。图中左侧为数据输入,中部为 PGL 构建,右侧为视图生成与检查,底部标注了常见的异常类型与对应命令。
四、实操要点与常见问题
在实际项目中,PGL 建模最容易出问题的环节是层映射与过孔阵列简化。Voltus 默认会将密集的过孔阵列合并为一个等效电阻,但如果合并阈值设置不当,可能把本应独立的两个网络合并,造成短路误报。建议在 set_pg_library_mode 中显式指定 -via_merge_distance,通常取过孔间距的 1/2 以下。
另一个常见问题是电源焊盘与内部网格的连接层选择。对于 Flip-Chip,凸点通常先连接到 RDL,再通过 AP 层进入内部网格。如果 create_bump 时未指定 -layer,Voltus 会按默认层序查找,可能连接到错误的金属层,导致等效电阻偏差数倍。建议在定义凸点时明确写出连接层,例如 -layer AP。
网格视图生成后,建议先用 report_pg_view -summary 查看导体总数、节点总数、凸点数量与总等效电阻,再与版图预期值比对。若总等效电阻与手算值偏差超过 20%,通常说明有导体未被正确抽取或过孔合并过度。此时可导出 SPICE 网表(write_pg_spice)进行小规模验证,确认关键路径的电阻值是否合理。
总结来说,Power Grid Library 建模的核心是把版图电源网络转化为可计算的电阻网络,电源焊盘与凸点定义决定了外部边界条件,而网格视图生成与检查则是保证分析可信度的最后一道关口。掌握这三步,才能让后续的静态 IR、动态 IR 与 EM 分析建立在可靠的数据基础之上。