4、电源地(VDD/VSS)规划:全局电源地网络的层次化设计

电源地规划,说白了就是给芯片铺好“血管”和“回路”。我做了这么多年后端,见过太多芯片因为电源没做好,流片回来直接“躺平”的案例。嗯,这一节咱们就聊聊怎么把VDD/VSS这个事儿整明白。

4.1 全局电源地网络的层次化设计

我个人习惯把电源网络分成三个层次来考虑:顶层、中层、底层。你想想看,一个芯片上亿个晶体管,如果只用一层金属去供电,那电流密度肯定扛不住。

  • 顶层(Top Level):用厚金属(如AP、TM)构建主干网络,负责从PAD把电流引进来。我一般会用M9/M10做宽线,走大电流。
  • 中层(Intermediate Level):用中间层金属(M5-M8)做网格化分配,把电流均匀分布到各个模块区域。
  • 底层(Lower Level):用薄金属(M1-M4)做标准单元供电,直接连到晶体管的源漏端。

关键原则:每一层之间的via阵列要足够多。我曾经有个项目,顶层金属画得很粗,结果via孔打少了,IR drop直接爆表。后来加了两排via才搞定。

这里我画了一张层次化电源网络的示意图,帮你理解这个结构:

层次化电源网络结构 顶层(M9/M10):主干网络,连接PAD 中层(M5-M8):网格化分配,均匀分布电流 底层(M1-M4):标准单元供电,连接晶体管 衬底/阱接触 电流密度大 电流密度中 电流密度小

4.2 PAD与IO ring的电源分配

PAD和IO ring这块,我踩过的坑最多。说白了,IO ring就是芯片的“边境线”,PAD就是“口岸”。电流从PAD进来,先经过IO ring,再分配到核心区域。

这里有几个要点:

  1. PAD分组:VDD/VSS PAD要均匀分布在芯片四周。我习惯每4-6个信号PAD配一对电源PAD。别把电源PAD都堆在一个角上,否则远端IR drop会让你哭。
  2. IO ring宽度:根据总电流需求计算。我记得有个项目,IO ring只画了20um宽,结果EM(电迁移)检查直接挂掉。后来加宽到40um才过。
  3. 双环结构:我建议VDD和VSS各走一圈,内外环分开。这样能减少电源地之间的耦合噪声。

小技巧:在IO ring的拐角处,记得加45度斜角走线。直角拐弯会导致电流集中,容易引发EM问题。这是我被foundry退过一次设计后学到的教训。

4.3 核心区域与IO区域的隔离

为什么要隔离?因为IO区域噪声大,核心区域对噪声敏感。你想想看,IO口上信号摆幅可能是3.3V,核心区域才0.9V,不隔离的话,核心区的时序全乱套。

隔离策略我一般用三种:

隔离方式 适用场景 我的经验
物理隔离(Guard Ring) 模拟/数字混合信号 至少画两圈,一圈VSS,一圈VDD
电源域分割 多电压域设计 用深阱隔离,注意latch-up风险
去耦电容隔离 高频数字电路 在边界密集放置decap cell

警告:千万不要把IO区域的电源和核心区域的电源直接短接!我曾经见过一个设计,为了省事把VDDIO和VDDCORE连在一起,结果IO噪声直接灌进核心区,整个芯片功能失效。那次教训让我记住了:隔离必须彻底。

具体实现上,我会在IO ring和核心区域之间留出一条“隔离带”。这条隔离带里放什么呢?

  • Guard Ring:用P+和N+交替环绕,接VSS和VDD
  • 去耦电容:放一堆MOM电容或MOS电容,滤除高频噪声
  • 电平转换器:如果IO和核心电压不同,必须加level shifter

嗯,这里还要提一句。隔离带的宽度不是随便定的。我一般按“每mA电流留1um”来估算。比如核心区域总电流10A,那隔离带至少留10um宽。当然,具体还要看工艺节点和噪声要求。

总结一下我的设计流程:先算总功耗,定PAD数量;再画IO ring,算宽度;最后做隔离规划,跑IR drop和EM验证。这三步走完,电源网络基本就稳了。

最后说一句,电源规划这事儿,前期多花点时间,后期少流几版。我见过太多人为了赶进度,电源网络随便画两笔,结果流片回来各种问题。你想想看,省那两天时间,换来两个月的改版,划算吗?

避坑指南:我曾经在一个28nm项目上,因为IO ring的via阵列没打够,导致EM检查不过。后来花了整整一周时间手动调整via布局。从那以后,我每次都会在tapeout前专门跑一遍via density check。

好了,电源地规划的核心内容就这些。记住:层次化设计、均匀分布、彻底隔离,这三板斧用好了,你的芯片电源网络就不会出大问题。

可可精品资料库