Innovus LAB5-1 / LAB5-2 / LAB5-3 / LAB5-4 笔记
一、启动 Innovus
在启动 Innovus 前,需要先进入当前实验的 work 工作目录。
启动命令如下:
1 | innovus -log import_design |
说明:
innovus:启动 Innovus 工具。-log import_design:指定本次运行的日志文件名。- 建议每次启动时都给 log 起一个有意义的名字,方便后续 debug。
例如:
1 | innovus -log import_design |
这样生成的 .log、.cmd 文件更容易区分每一步做了什么。
LAB5-1:设计导入
1. GUI 导入设计入口
在 Innovus 图形界面中,选择:
1 | File → Import Design |
会弹出设计导入窗口。
2. 加载 globals 文件
在 Import Design 窗口中,点击 Load 按钮,选择当前工作目录下的 dtmf.globals 文件。
点击 Open 后,设计导入所需的文件会自动填入列表中。
最后点击 OK,即可完成设计导入。
3. dtmf.globals 文件的作用
dtmf.globals 是 Innovus 设计导入时使用的全局配置文件。
它里面保存了设计导入需要的各种文件路径和变量,例如:
- Verilog 网表文件
- LEF 物理库文件
- IO 文件
- MMMC View 文件
- Power Net / Ground Net
- Top Cell 名称
简单理解:
dtmf.globals本质上就是 Innovus 用来自动填写 Import Design 窗口的配置脚本。
因此,为了实现自动化导入设计,可以直接编辑 dtmf.globals 文件,而不是每次都在 GUI 里手动填写。
LAB5-2:查看导入后的设计
1. Physical View 和 Floorplan View 的区别
设计导入后,默认显示在 Physical View 中。
如果想查看设计中的 macro、module、port 等整体布局信息,可以切换到 Floorplan View。
二者区别如下:
| 对比项 | Floorplan View | Physical View |
|---|---|---|
| 中文理解 | 平面规划视图 | 物理版图视图 |
| 关注重点 | 芯片整体布局 | 真实物理对象 |
| 主要查看内容 | Die、Core、IO Pad、Macro、Row、Blockage | Cell、Pin、Net、Metal、Via、Route、Macro、Pad |
| 精细程度 | 比较粗 | 更细 |
| 常用阶段 | Floorplan 阶段 | Placement、CTS、Route、Signoff 阶段 |
| 是否重点看布线 | 一般不重点看 | 可以查看详细 routing |
| 是否查看标准单元 | 通常不重点看单个 standard cell | 可以查看每个 standard cell |
| 类比 | 房子的户型图 | 房子的施工图 / 装修细节图 |
简单记忆:
Floorplan View 看整体规划,Physical View 看具体物理细节。
2. 适配显示整个 Layout
按下快捷键:
1 | f |
作用:
将当前 layout 自动适配到窗口中央显示。
这个快捷键在查看整体版图时非常常用。
3. 如何打开 cell 的 pin
如果想在版图中查看标准单元的 pin,需要通过 Innovus 右侧控制面板设置。
路径大致为:
1 | Cell → Pin Shapes |
其中:
V代表 Visible,可视。S代表 Selectable,可选择。
| 操作 | 效果 |
|---|---|
勾选 V |
能在版图里看到 cell 的 pin |
勾选 S |
鼠标可以点选这些 pin |
只勾选 V,不勾选 S |
能看见,但点不中 |
只勾选 S,不勾选 V |
理论上可选,但看不见,不方便操作 |
| 两个都不勾 | 看不见,也点不中 |
核心记忆:
V控制看不看得见,S控制能不能点选。
4. 如何放大和缩小 layout
放大、缩小 layout 可以通过 GUI 状态栏中的放大镜按钮实现。
常用相关操作:
| 操作 | 作用 |
|---|---|
| 放大镜按钮 | 放大 / 缩小 layout |
f |
将整个 layout 适配到窗口中央 |
Shift + z |
缩小视图 |
5. 查看设计 Hierarchy 层次
可以通过以下菜单打开 Design Browser:
1 | Tools → Design Browser |
Design Browser 可以查看:
- 设计顶层
- instance 层次
- module 层次
- nets
- pins / ports
- macro / block 数量
如果没有显示出层次信息,可以点击下方按钮回到设计顶层。
也可以通过快捷入口打开。
6. 使用 Ruler 尺子测量距离
调出尺子的快捷键是:
1 | k |
操作方法:
1 | 按下 k → 鼠标左键点击起点 → 鼠标左键点击终点 |
清除自己画的尺子:
1 | Shift + k |
注意:
画完尺子后,需要按
A退出画尺子模式。
常见用途:
| 场景 | 作用 |
|---|---|
| 测量 macro 之间距离 | 判断布线通道是否足够 |
| 测量 core 尺寸 | 查看核心区域大小 |
| 测量 IO 到 core 的距离 | 判断 IO 和内部逻辑距离 |
| 测量 power ring 宽度 | 检查电源环尺寸 |
| 测量 blockage 范围 | 检查阻塞区域大小 |
7. 查看 Object 属性
选中版图对象后,可以查看其属性。
例如下图中选中的是一个 RAM block:
属性含义如下:
| 字段 | 当前值 | 含义 |
|---|---|---|
| Object Type | Block | 当前选中对象是 Block,通常是 SRAM、ROM、PLL 等硬宏 |
| Name | ...RAM_256x16_INST |
RAM 实例在设计层次中的完整名字 |
| No. of Terminals | 44 | 该 RAM 有 44 个端口 / pin |
| Cell Type | ram_256x16A |
该实例对应的物理库单元类型 |
| Cell Width | 598.22 | RAM 宏单元宽度 |
| Cell Height | 189.235 | RAM 宏单元高度 |
| Location X/Y | X=1472.45, Y=588.955 | RAM 左下角或参考点坐标 |
| Box | {1472.45 588.955} {2070.67 778.19} |
该 Block 的矩形边界坐标 |
| Location Origin | Lower Left | 位置参考点是左下角 |
| Orientation | R0 | 没有旋转,正常方向摆放 |
| Status | PLACED | RAM 已经被放置在版图中 |
| CTS Status | UNSET | 该对象的 CTS 状态未设置 |
| Effective Status | PLACED | 当前实际状态也是已放置 |
| Routing Halo | None | 周围没有设置布线保护区 |
| InstGroup | None | 不属于某个 instance group |
| Litho | 未勾选 | 与光刻相关,普通情况下不用管 |
| connectEntry | 71 | 内部连接 / 属性项编号,初学阶段不用重点关注 |
8. Orientation 方向含义
Orientation 表示 cell / macro 在版图中的摆放方向。
常见取值如下:
| Orientation | 含义 |
|---|---|
R0 |
旋转 0°,不旋转,正常方向 |
R90 |
顺时针旋转 90° |
R180 |
旋转 180° |
R270 |
顺时针旋转 270° |
MX |
沿 X 轴镜像翻转 |
MY |
沿 Y 轴镜像翻转 |
MXR90 |
先镜像再旋转 90° |
MYR90 |
先镜像再旋转 90° |
其中:
1 | R0 |
表示 macro 没有旋转,也没有镜像,按照 LEF 中定义的原始方向摆放。
注意:
Macro 的方向会影响 pin 朝向、走线长度、拥塞情况和电源连接,因此 floorplan 阶段不能随便旋转或镜像 macro。
LAB5-3:Tear Off 菜单
1. Tear Off 的作用
LAB5-3 主要介绍 Innovus 中的 tear off 功能。
当某个菜单需要频繁使用时,可以通过 tear off 将菜单独立显示在当前窗口上。
这样即使点击其他地方,该菜单仍然会保留在界面中,方便重复操作。
2. 操作方法
方法:
1 | 点击菜单下方的虚线区域 |
即可将该菜单独立显示出来。
简单理解:
Tear Off 就是把常用菜单“撕下来”,单独放在界面上,方便反复点击。
LAB5-4:清除 Floorplan
1. Clear Floorplan 的作用
LAB5-4 主要介绍如何清除 floorplan。
当需要重新定义芯片或模块的尺寸、core 区域、IO 位置、macro 摆放等信息时,可以使用 Clear Floorplan。
简单理解:
应用场景:例如下面的这个我随便摆放了一下macro,但是现在我不想要这个了,那最好的方式就是直接Floorplan->Clear Floorplan
Clear Floorplan 就是清除当前已有的 floorplan 设置,为重新规划版图做准备。
2. GUI 操作步骤
在 GUI 中选择清除 floorplan 的菜单项。
点击 Clear Floorplan 后,会弹出确认对话框。
点击 OK 即可。
3. 什么时候需要 Clear Floorplan?
常见场景包括:
| 场景 | 说明 |
|---|---|
| 芯片尺寸设置错误 | 需要重新定义 die / core 大小 |
| IO 位置不合理 | 需要重新导入或调整 IO |
| macro 摆放不合理 | 需要重新规划 macro 位置 |
| Row 设置错误 | 需要重新生成 standard cell row |
| blockage 设置混乱 | 需要重新规划阻塞区域 |
注意:
Clear Floorplan 会清除当前 floorplan 相关信息,使用前要确认是否需要保存当前设计。
常用快捷键总结
| 快捷键 | 作用 | 说明 |
|---|---|---|
f |
Fit View | 将整个 layout 适配到窗口中央 |
k |
Ruler | 调出尺子,测量距离 |
Shift + k |
Clear Ruler | 清除自己画的尺子 |
A |
Exit Mode | 退出当前操作模式,例如退出画尺子模式 |
Shift + z |
Zoom Out | 缩小视图 |
q |
Query | 查看某个 object 的属性 |
c |
Copy | 复制 physical object,常用于 blockage / shape,不建议随便复制普通逻辑 cell |
关于 c 复制 physical object 的注意事项
快捷键 c 表示 copy,用于复制版图中的 physical object。
可以复制的对象包括:
- blockage
- shape
- filler cell
- decap cell
- tap cell
- endcap cell
但是不建议随便复制普通逻辑 cell,例如:
1 | INV、BUF、NAND、NOR、MUX、DFF |
原因是:
复制普通逻辑 cell 只是版图上多了一个物理对象,并不代表网表中正确增加了逻辑连接。
随便复制普通 cell 可能导致:
| 问题 | 说明 |
|---|---|
| floating input | 输入悬空 |
| dangling instance | 产生无连接实例 |
| connectivity check 报错 | 连接关系检查不通过 |
| LVS 不一致 | 版图与网表不匹配 |
| Formal 不一致 | 逻辑等价性可能被破坏 |
| ECO 流程混乱 | 后续修 timing 或布线困难 |
如果需要增加 buffer、inverter 或其他逻辑 cell,应使用规范 ECO 流程,而不是直接复制。
本节核心总结
LAB5-1 到 LAB5-4 主要学习了 Innovus 的基础 GUI 操作:
| Lab | 主要内容 |
|---|---|
| LAB5-1 | 通过 Import Design 导入设计 |
| LAB5-2 | 查看版图、切换 view、查看 hierarchy、查看 object 属性 |
| LAB5-3 | 使用 Tear Off 固定常用菜单 |
| LAB5-4 | 清除 Floorplan,为重新规划版图做准备 |
最重要的知识点:
- 启动 Innovus 时推荐使用
-log指定日志名。 - Import Design 可以通过
dtmf.globals自动加载设计文件。 - Floorplan View 主要看整体布局,Physical View 主要看物理细节。
- 右侧控制面板中的
V控制是否可见,S控制是否可选。 k可以调出 ruler,Shift + k可以清除 ruler,A可以退出当前模式。q用来查看对象属性。Orientation = R0表示对象没有旋转,按原始方向摆放。Clear Floorplan用于清除当前 floorplan,方便重新规划。c可以复制 physical object,但不能随便复制普通逻辑 cell。