Powerplaning
这部分内容涉及给设计中的macro,ip打power。
在开始之前,我们需要load进我们的设计,步骤如下:
(1)设计导入(这部分前面介绍过了)
(2)加载floorplan相关信息进来
这两步完成后就完成了设计和floorplan信息的导入
先加电源环
GUI界面操作:
Power-Power Planning ‒ Add Ring
点击OK后如下图所示效果。
怎么给一个单独的macro模块打power ring呢
给PLL加power ring,需要鼠标左键先选中左下角的PLL模块
基本设置好之后,我们再来设置加power ring的高级选项,定制powerplan的形状。
点击OK后效果图如下图所示。
Power Stripe 和 Power Rail 的区别
在数字后端电源规划中,Power Stripe 和 Power Rail 都属于电源网络的一部分,但它们的位置、金属层和作用不同。
核心记忆:
1 | Power Stripe:较粗、较高层的电源条,用来把电源送进芯片内部 |
1. Power Rail 是什么?
Power Rail 可以理解为:
标准单元行上的电源轨。
标准单元通常按 row 摆放,每一行 standard cell 都会有对应的 VDD / VSS rail。
示意图:
1 | VDD Rail ========================= |
每个 standard cell 的 VDD / VSS pin 会直接连接到这些 rail 上。
因此,Power Rail 的作用是:
直接给 standard cell 供电。
Power Rail 通常使用较低层金属,例如 M1,因为它需要和 standard cell 内部的电源 pin 对齐。
2. Power Stripe 是什么?
Power Stripe 可以理解为:
Core 区域内部较粗的电源条。
它通常贯穿 core 区域,用来把电源从 power ring 或 power pad 分发到芯片内部。
示意图:
1 | | VDD | | VSS | | VDD | | VSS | |
Power Stripe 通常使用较高层金属,例如 M4 / M5 / M6。
原因是:
高层金属通常更宽、阻抗更低,更适合长距离传输电源。
3. Power Stripe 和 Power Rail 的连接关系
电源网络一般可以理解为:
1 | Power Pad |
也就是说:
Power Stripe 负责把电源送到芯片内部;
Power Rail 负责把电源直接送到每一行 standard cell。
4. 两者区别总结
| 对比项 | Power Stripe | Power Rail |
|---|---|---|
| 中文含义 | 电源条 / 电源主干线 | 电源轨 |
| 位置 | Core 区域内部 | Standard cell row 上 |
| 金属层 | 通常使用较高层金属,如 M4 / M5 / M6 | 通常使用较低层金属,如 M1 |
| 宽度 | 较宽 | 较细 |
| 作用范围 | 给芯片内部较大区域分发电源 | 直接给 standard cell 供电 |
| 连接对象 | 连接 power ring、power pad、power rail | 连接 standard cell 的 VDD / VSS pin |
| 作用 | 降低 IR Drop,把电源送进 core | 给每一行标准单元供电 |
| 类比 | 城市主干电源线 | 每家门口的供电线 |
5. 为什么需要 Power Stripe?
如果只有 Power Rail,没有 Power Stripe,电源从芯片边缘传到芯片中心的路径会很长,容易导致:
| 问题 | 说明 |
|---|---|
| IR Drop 变大 | 电源压降严重 |
| 供电不稳定 | 中心区域 cell 可能拿不到足够电压 |
| Timing 变差 | 电压降低会导致 cell delay 变大 |
| 功耗分析不过 | 后续 IR Drop / EM 检查可能失败 |
所以需要通过 Power Stripe 将 VDD / VSS 分发到 core 内部,缩短供电路径。
6. 一句话总结
1 | Power Stripe 是电源主干线,负责把电源分发到芯片内部; |
简单记忆:
1 | Stripe 是主干; |
添加Power Stripe
GUI界面操作如下:
Power-Power Planning ‒ Add Stripe
在弹出的对话框中按照下图所示的填写对应的信息。
图中红框内容
复制
Relative from core or selected area
Start: 100
Stop: 100
意思是:
以 core 区域或者你选中的区域为参考,stripe 从距离边界 100 的位置开始,到距离另一侧边界 100 的位置停止。
示意图可以理解为:
1 | Core 区域 |
点击OK后效果如下图所示。
这里要弄清楚一个VSS和一个VDD是一组,每组之间的间距是100,一组之间的VSS和VDD的间距是1
摆放cell到指定位置
首先,介绍命令使用方法。
我们随意挑选一颗cell,然后执行placeInstance 即可。
其次,我们再来介绍下GUI界面实现方式。
通过Design Browser,选择一颗cell,右键q,然后指定好坐标即可,具体操作如下图所示。
值得注意的是这颗cell只能在physical view下才能看到,floorplan view是看不到的。
添加power rail并与power stripe打孔 ( follow pin)
在创建powr rail前,我们需要做好derive pg,你得告诉工具power rail对应的power net,比如power是叫VDD还是VDD_LOCAL,ground是叫VSS还是AVSS。
Innovus中做derive pg的命令是globalNetConnect,具体命令如下。
因为我们加的power stripe是高层metal,比如我们这个lab是M6,follow pin一般是M1。那么整个供电网络应该是M6一直打孔到M1。所以我们希望在创建power rail时同时打上各层的通孔VIA。
GUI界面操作方法如下:
Route ‒ Special Route
点击OK后效果如下图所示。
至此,powerplan就打好了。正常打完power后,我们需要做前期ir drop分析 ,主要目的是分析当前的powerplan是否足够强壮。
本lab是用了innovus自带的Early Rail Analysis,但实际项目中不会用这个来做,所以这部分内容建议大家直接跳过。
业界ir drop 分析工具大部分都是用redhawk来做的。利用redhawk来做ir drop的内容属于进阶内容,今年后面有一个专门的课程来讲解和实战的。