3. 电源网络设计:电源网格规划、VDD/VSS 布线策略、IR Drop 分析基础
各位好,咱们今天聊聊多电压域设计里最让人头疼、也最基础的一个环节——电源网络设计。说实话,我入行那会儿,觉得电源不就是把VDD和VSS拉通嘛,有啥好设计的?结果第一次流片回来,芯片在低频下跑得挺好,一上高频就罢工。后来一查,IR Drop 掉了快15%,核心逻辑直接罢工。嗯,从那以后,我再也不敢小看电源网络了。
3.1 电源网格规划:骨架要搭稳
电源网格,说白了就是给芯片供电的骨架。你想想看,一个芯片里几千万个标准单元,每个都要喝电。如果供电网络设计得不好,远端单元就会「电压不足」,时序直接崩掉。
我个人习惯,在项目初期就会把电源网格的规划定下来。主要考虑这几个维度:
- 金属层选择:顶层金属(如M9、M10)电阻小,适合做全局电源主干。底层金属(M1-M3)电阻大,但离标准单元近,适合做局部供电。
- 网格间距:间距太密,布线资源被挤占;间距太疏,IR Drop压不住。我一般从10μm起步,根据功耗密度逐步调整。
- 电源条带宽度:宽度决定了通流能力。一个经验值:每1A电流需要约10μm宽的顶层金属(具体看工艺)。
核心原则:电源网格的规划要「上粗下细、上疏下密」。顶层用宽金属走大电流,底层用细金属给标准单元供电。这样既保证了通流能力,又不会浪费布线资源。
我在一个28nm的项目里遇到过这种情况:后端团队为了省面积,把电源网格间距设到了20μm。结果后仿IR Drop分析出来,最差情况掉了12%。后来不得不返工,把间距缩到12μm,面积增加了5%,但IR Drop降到了5%以内。所以啊,电源网格的规划,宁可多花点面积,也别省。
3.2 VDD/VSS 布线策略:正负极要对称
VDD和VSS的布线,其实是一对「双胞胎」。你想想看,电流从VDD流进去,最后一定要从VSS流出来。如果VDD布得很粗,VSS布得很细,那VSS就成了瓶颈,IR Drop照样压不住。
我建议的布线策略是这样的:
- 对称布线:VDD和VSS的金属宽度、间距、层次保持一致。这样电流路径对称,IR Drop分析也更准确。
- 交替排列:在标准单元行上,VDD和VSS交替排列。比如奇数行VDD在上、VSS在下,偶数行反过来。这样能减少相邻单元之间的供电干扰。
- 环状供电:在芯片四周,用宽金属围一圈VDD和VSS环。这个环相当于一个「蓄水池」,能快速补充内部单元的电流需求。
小技巧:在布局阶段,我会在功耗特别高的模块(比如CPU核、DSP)周围额外加一圈电源环。这圈环不一定要很宽,但能有效降低局部IR Drop。我曾经在一个AI加速器芯片上用了这个技巧,IR Drop从8%降到了4.5%。
这里要特别提醒一下:VSS的布线往往被忽视。很多新手觉得VSS就是地,随便走走就行。其实不对!VSS的电流和VDD一样大,如果VSS网络设计得不好,地弹效应(Ground Bounce)会非常严重,导致逻辑电平不稳定。
3.3 IR Drop 分析基础:电压降的真相
IR Drop,说白了就是电流流过电阻时产生的电压降。公式很简单:V = I × R。但在芯片里,这个R不是固定的——它跟金属的宽度、长度、温度都有关系。
IR Drop分析一般分两种:
- 静态IR Drop:不考虑开关活动,只算平均电流。这个分析快,但不够准。适合早期评估。
- 动态IR Drop:考虑时钟翻转时的峰值电流。这个分析慢,但更接近真实情况。我一般在项目后期才跑动态分析。
| 分析类型 | 适用阶段 | 精度 | 运行时间 |
|---|---|---|---|
| 静态IR Drop | 布局规划、电源网格设计 | 中等 | 几分钟 |
| 动态IR Drop | 时序收敛、签核 | 高 | 几小时到几天 |
我记得有一次,一个同事跑完静态IR Drop,看到结果都在5%以内,就放心地往下走了。结果到了动态IR Drop阶段,发现某个模块在时钟沿附近电压掉了12%。为什么?因为那个模块有大量寄存器同时翻转,瞬间电流峰值远高于平均值。所以啊,静态分析只能当参考,动态分析才是王道。
避坑指南:我曾经在一个7nm的项目里,IR Drop分析一直过不了。后来发现是电源网格的via(通孔)数量不够。顶层金属很粗,底层金属也不细,但连接上下层的via太少,导致电流在via处「堵车」。所以,检查IR Drop时,别忘了看via的密度。
3.4 多电压域的电源网络设计要点
多电压域设计里,电源网络会更复杂。因为不同电压域之间需要隔离,但又不能完全断开(信号还要跨域传输)。
我总结了几条经验:
- 电压域边界要清晰:每个电压域用独立的电源环和网格。域之间用隔离单元(如level shifter)连接。
- 电源开关(Power Switch)要合理放置:如果某个域需要关断,电源开关要均匀分布,避免关断时局部电压骤降。
- 跨域供电要谨慎:不同电压域的VDD不能直接短接。我见过有人把1.0V和0.8V的电源网格连在一起,结果电流倒灌,芯片直接烧了。
一句话总结:多电压域的电源网络设计,核心是「分而治之」——每个域独立供电、独立分析、独立优化。最后再通过level shifter和power switch把它们串起来。
嗯,说到这儿,我想起一个项目。当时我们要做一个双电压域的设计:CPU核用1.0V,外围逻辑用0.8V。我建议两个域用独立的电源网格,但项目经理觉得太浪费面积,非要共用。结果呢?0.8V域的IR Drop分析一直过不了,因为1.0V域的电流波动太大,通过共用网格干扰了0.8V域。最后不得不改方案,多花了三周时间。所以啊,该分开的,千万别省。
3.5 实战建议:从规划到签核
最后,我给大家一个实战流程,照着做基本不会出大问题:
- 早期规划:根据功耗估算,确定电源网格的金属层、宽度、间距。用静态IR Drop快速验证。
- 布局阶段:在功耗高的模块周围加电源环。检查VDD和VSS的对称性。
- 布线阶段:确保电源网格的via密度足够。我一般要求via的电流密度不超过工艺极限的70%。
- 签核阶段:跑动态IR Drop分析。重点关注时钟沿附近的电压波动。如果IR Drop超过10%,就要考虑加宽金属或增加电源环。
我的习惯:在签核前,我会手动检查几个关键路径的IR Drop。比如CPU的时钟树、DDR接口的IO单元。这些地方一旦出问题,整个芯片就废了。花10分钟检查,能省下几周的debug时间。
好了,电源网络设计这块就聊到这儿。下一章咱们讲时钟树综合,那可是另一个「坑」多的地方。到时候我再跟大家分享几个实战案例。
公众号:蓝海资料掘金营,微信deep3321