power_plan阶段

1、power plan是啥

Power Stripe 就是主干道(高速公路),而 Power Rail(Follow-pin)就是入户的小路。

2、Power ring跟power mesh区别

兄弟,这就是**“传统派”与“实战演进派”**的技术路线之争,也是面试中考察你是否理解“电源分布网络(PDN)”设计权衡的一个绝佳切入点。

视频里说“不需要 Power Ring(电源环)”,并不是说这个技术消失了,而是因为在**高密度、先进制程(如 28nm/40nm)**的数字后端设计中,Power Mesh(电源网格/Stripe)的设计强度已经足以覆盖供电需求,甚至在某些场景下,取消 Ring 反而能带来更高的收益。

下面我从专业角度为你拆解,为什么现在有些流程会“跳过” Power Ring。

如果面试官问:“我看你的脚本里只跑了 addStripe 和 sroute,没做 Core Ring,这是为什么?”

你可以这样“降维打击”:

“在当前的 28nm/40nm 项目中,我评估了电源网格的密度。由于采用了 M8/M9 高层金属搭建的密集电源网格(Power Mesh),且每组 Stripe 的间距仅为 30μm,其等效电阻已经足以满足 IR Drop 的 Sign-off 要求。取消 Core Ring 主要是为了给 1422 个 IO Port 留出足够的布线空间,避免边界处的绕线拥塞(Routing Congestion),从而优化了总面积利用率。”

这种回答,直接体现了你对 PPA(性能、功耗、面积) 的综合权衡能力,这才是大厂 TL 想要的人才。

3、power rail放置

power rail是给stdcell供电的电源轨道,我们这个工艺库中stdcell是从M1出pin的,所以我们需要在M1的row上下边界均匀打power rail来给stdcell供电,并且与前面打好的power stripe通过打via的方式连接在一起,形成一个完整的电源网络。

power rail的脚本如下所示,在本lab中,由于垂直方向的power stripe是M8,所以power rail需要跟纵向的M8 power stripe相连。下列命令中的{M1(1) M8(8)}表示我们希望将M1的power rail与M8的power stripe通过一层一层打via的方式连接在一起。而-allowJogging和 -allowLayerChange设置为1,则表示工具在认为该区域可能存在DRC的情况,自己选择进行跳层或者绕线的方式来规避可能出现的DRC问题。

powe rail只会跟纵向的电源连接在一起

4、版图合并操作

makefile:

1
2
3
4
5
6
7
8
9
merge:
calibredrv merge.tcl | tee merge.log

text:
calibredrv -64 ../../innovus/work/create_text_cortexa7core.tcl

run_all:
${MAKE} merge
${MAKE} text

merge.tcl

1
2
3
4
5
6
7
8
9
10
11
12
layout filemerge \
-in ../../innovus/data/cortexa7core.gds2 \
-in /data/lib/gds/tcbn28hpcplusbwp40p140.gds \
-in /data/lib/gds/tem5n28hpcplvta1024x32m4swso_110a.gds \
-in /data/lib/gds/tem5n28hpcplvta128x20m4swso_110a.gds \
-in /data/lib/gds/tem5n28hpcplvta128x30m4swso_110a.gds \
-in /data/lib/gds/tem5n28hpcplvta192x43m4swso_110a.gds \
-in /data/lib/gds/tem5n28hpcplvta2048x36m8swso_110a.gds \
-in /data/lib/gds/tem5n28hpcplvta512x31m4swso_110a.gds \
-topcell cortexa7core \
-mode overwrite \
-out ../../innovus/data/cortexa7core.merge.gds

这份脚本使用的是 Calibre DesignRev (calibredrv) 工具的命令,执行的是芯片流片(Tape-out)前最关键的操作之一:版图合并(GDS Merge)。

在 Innovus 里导出的 GDS 通常只包含连线和单元的“虚影”(Abstract),为了让代工厂能制造出芯片,你必须把这些“虚影”与标准单元、SRAM 等 IP 的真实物理形状(包含晶体管细节的 GDS)缝合在一起。

下面是这个脚本的代码注释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 调用 Calibre DesignRev 的版图合并功能
layout filemerge \
# --- 1. 输入文件 (Input Files) ---
# 这是你从 Innovus P&R 流程中导出的顶层版图文件,主要包含布局信息和绕线层
-in ../../innovus/data/cortexa7core.gds2 \
# 这是 28nm 工艺的标准单元库 GDS 文件,包含了所有逻辑门(AND, OR, DFF 等)的真实物理结构
-in /data/lib/gds/tcbn28hpcplusbwp40p140.gds \
# 以下 7 行是项目中使用的 SRAM (静态随机存取存储器) IP 的物理版图
# 每个文件对应不同规格(如 1024x32, 512x31 等)的内存块
-in /data/lib/gds/tem5n28hpcplvta1024x32m4swso_110a.gds \
-in /data/lib/gds/tem5n28hpcplvta128x20m4swso_110a.gds \
-in /data/lib/gds/tem5n28hpcplvta128x30m4swso_110a.gds \
-in /data/lib/gds/tem5n28hpcplvta192x43m4swso_110a.gds \
-in /data/lib/gds/tem5n28hpcplvta2048x36m8swso_110a.gds \
-in /data/lib/gds/tem5n28hpcplvta512x31m4swso_110a.gds \
# --- 2. 参数设置 (Parameters) ---
# 指定合并后版图的最顶层单元名称为 cortexa7core
-topcell cortexa7core \
# 覆盖模式:如果输出路径已有同名文件,直接覆盖
-mode overwrite \
# --- 3. 输出文件 (Output File) ---
# 最终生成的、包含所有细节的完整版图文件,这个文件将直接发往工厂进行光刻掩模制作
-out ../../innovus/data/cortexa7core.merge.gds
ESC 关闭 | 导航 | Enter 打开
输入关键词开始搜索