电源网络规划:全局电源网格设计、电源域边界定义与IR Drop评估

各位同学,今天咱们聊聊多电压域版图设计里最基础、也最要命的一环——电源网络规划。说实话,我见过太多项目在后期因为电源没规划好,导致IR Drop超标、时序崩掉,最后不得不推倒重来。那滋味,真不好受。

电源网络规划,说白了就是给芯片里的每个模块“喂电”。你想想看,一个芯片里可能有1.2V的核心区、1.8V的IO区、0.9V的休眠区……每个区域对电压的要求都不一样。怎么把这些电压干干净净地送到每个晶体管?这就是我们今天要啃的硬骨头。

核心要点:电源网络规划做得好,芯片流片成功率至少提高30%。这不是夸张,是我这些年踩坑踩出来的经验。

3.1 全局电源网格(PG)设计

全局电源网格,英文叫Power Grid,简称PG。它就像城市的电网,从变电站(PAD)一路送到每家每户(标准单元)。我个人习惯把PG设计分成三个层级:

  • 顶层网格:从PAD到芯片边缘,用最宽的金属层(比如M9、M10),走大电流
  • 中层网格:用M5-M8,把电源从边缘拉到各个模块区域
  • 底层网格:用M1-M4,直接给标准单元供电

这里有个关键参数——网格间距。间距太大,IR Drop会超标;间距太小,布线资源被浪费,而且天线效应容易出问题。我在一个28nm的项目里就吃过这个亏,当时为了省面积把网格间距拉到了50μm,结果后端IR Drop直接飙到8%,吓得我赶紧改方案。

一般经验值是这样的:

工艺节点 顶层网格间距 底层网格间距 金属层选择
28nm 100-150μm 10-20μm M9/M10 + M1/M2
16nm 80-120μm 8-15μm M8/M9 + M1/M2
7nm 60-100μm 5-10μm M7/M8 + M1/M2

我的小技巧:做PG设计时,先用脚本跑一个快速IR Drop评估,看看网格密度够不够。别等到所有单元都放好了才发现问题,那时候改起来成本太高。

3.2 电源域边界定义

多电压域设计里,最头疼的就是电源域边界。不同电压的区域之间,必须用隔离单元(Isolation Cell)和电平转换器(Level Shifter)来衔接。边界定义得好,芯片功耗低、面积小;定义得不好,漏电、时序问题全来了。

我建议按以下步骤来定义电源域边界:

  1. 先画电压域地图:把芯片上所有模块按工作电压分组,标出每个域的物理范围
  2. 确定边界类型:是硬边界(用深阱隔离)还是软边界(只用隔离单元)
  3. 规划电平转换器位置:一般放在信号从低电压域到高电压域的方向上
  4. 检查边界重叠:确保不同电压域之间没有物理短路风险

举个例子,我曾经做过一个AI加速器芯片,里面有1.2V的计算核心和0.9V的缓存阵列。两个域之间隔了200μm的空白区域,结果发现电平转换器的驱动能力不够,信号从缓存到核心时延迟暴增。后来我把电平转换器分散放在边界上,每个信号单独驱动,问题才解决。

注意:电源域边界上不要走长线!信号跨域时,尽量在边界附近完成转换。我曾经见过一个设计,信号从域A到域B走了500μm,结果IR Drop和耦合噪声搞得信号完全没法看。

3.3 VDD/VSS连接策略

VDD和VSS怎么连?这个问题看似简单,但里面门道很多。我总结了几条原则:

  • 同电压域内:VDD和VSS必须形成完整的网格,不能有断头路
  • 不同电压域之间:VDD必须物理隔离,VSS可以共用(但要注意地弹效应)
  • PAD到网格:用星形连接或网格连接,避免单点供电

具体到华大九天的工具里,我一般这样操作:

// 定义电源域
create_voltage_domain -name VDD_CORE -voltage 1.2
create_voltage_domain -name VDD_IO -voltage 1.8
create_voltage_domain -name VDD_SLEEP -voltage 0.9

// 创建电源网格
create_power_grid -domain VDD_CORE -layer M9 -width 5.0 -spacing 100
create_power_grid -domain VDD_CORE -layer M1 -width 0.5 -spacing 10

// 连接VSS
connect_power_grid -net VSS -layer M9 -width 5.0 -spacing 100
connect_power_grid -net VSS -layer M1 -width 0.5 -spacing 10

这里要注意,VSS的网格密度最好和VDD保持一致。为什么?因为电流回路必须完整。如果VSS网格比VDD稀疏,回流路径就会变长,IR Drop反而更大。

3.4 IR Drop初步评估

IR Drop,说白了就是电源从PAD到晶体管这段路上,因为金属电阻导致的电压损失。你想想看,如果PAD端是1.2V,到了晶体管只有1.1V,那时序还能对吗?

初步评估IR Drop,我一般用静态分析(Static IR Drop)就够了。工具会假设所有单元同时翻转,给出最坏情况下的电压降。虽然有点保守,但作为第一轮筛选足够了。

评估流程是这样的:

  1. 提取电源网络的寄生参数(电阻、电容)
  2. 加载功耗信息(从功耗分析工具来)
  3. 运行静态IR Drop分析
  4. 检查热点区域(电压降超过5%的地方)

我记得有一次,一个客户的设计在静态IR Drop分析里发现核心区域电压降达到了12%。我一看,原来是网格间距太大,而且VDD和VSS的过孔数量不够。后来加了四倍过孔,又把网格间距从120μm缩到80μm,IR Drop才降到4%以内。

经验阈值:一般来说,IR Drop控制在5%以内是安全的。超过8%就要警惕了,超过10%基本得重做电源网络。

最后,给大家画一张电源网络规划的流程图,方便理解整个设计流程:

电源网络规划流程图 1. 定义电压域 2. 设计电源网格 3. 定义边界策略 4. 连接VDD/VSS 5. IR Drop评估 OK? 完成 返回修改

这张图把整个流程串起来了。你从定义电压域开始,一步步走到IR Drop评估。如果评估不通过,就回到第二步或者第三步去调整。别想着一步到位,电源网络设计本身就是个迭代优化的过程。

最后说一句:电源网络规划这件事,前期多花一小时,后期能省十小时。我见过太多人急着跑流程,结果在IR Drop上卡了两周。嗯,别学他们。

专注资料整理