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