(6) Innovus LAB10-1 placement

本章节目的是load进一个floorplan,跑通一个placement并完成post-placement的timing优化

导入设计和floorplan

这步之前的lab已经做过了,大家再按照下面的步骤再练习巩固下。

加载好设计和floorplan后,我们先获取下当前的placeMode,命令如下。

getPlaceMode

输入以上命令后,工具会输出当前的所有place mode。

这些变量很多都是工具默认值,而且这些变量不需要我们都背下来,需要在做项目过程中不断熟悉积累一些常用的选项。

这里比如place_global_timing_effort选项是medium,代表工具优化时序的力度是中等力度。如果对于timing比较紧的设计,我们可以通过setPlaceMode来给这个选项设上high值。

Scan def读入

如果综合有写出scan chain的def文件,在place之前我们可以读入scan chain的def来进一步优化congestion。

命令: defIn scan_input.def (innovus是通过defIn来读入这部分信息的)

Scan DEF 读入笔记

1. Scan Chain 是什么?

Scan Chain 是 DFT(Design For Test,可测性设计)中用于芯片测试的一种结构。

普通寄存器在加入 scan 功能后,会被串成一条或多条扫描链:

1
scan_in → scan flop1 → scan flop2 → scan flop3 → scan_out

这样测试时可以把测试数据一位一位扫入芯片内部,再从 scan_out 扫出来,用于检查芯片内部逻辑是否正常。


2. Scan DEF 是什么?

scan_input.def 是保存 scan chain 信息的 DEF 文件。

它通常包含:

内容 说明
scan chain 数量 设计中有几条扫描链
scan flop 列表 哪些寄存器属于 scan chain
scan chain 顺序 scan flop 之间的连接顺序
scan_in / scan_out 扫描链的输入和输出端
scan 相关约束 工具优化时需要参考的信息

简单理解:

Scan DEF 记录的是扫描链结构和扫描寄存器连接顺序。


3. 为什么要在 placement 前读入 Scan DEF?

Placement 阶段会决定 standard cell 和 scan flop 的物理位置。

如果在 placement 前读入 scan DEF,Innovus 就能知道:

1
2
哪些寄存器属于同一条 scan chain;
这些 scan flop 的连接顺序是什么。

这样工具可以在摆放时考虑 scan chain 的物理连接关系,从而优化 scan chain 的走线。


4. 读入 Scan DEF 的作用

读入 scan DEF 后,工具可以进一步优化:

作用 说明
减少 scan 线长度 避免 scan flop 之间距离太远
减少绕线 降低 scan 线来回穿越芯片的情况
优化 scan chain 物理顺序 让扫描链顺序更符合实际摆放位置
降低 congestion 减少后续 routing 阶段的布线拥塞
提高后端实现质量 让 scan 相关连线更容易布通

5. 为什么能优化 congestion?

如果 scan chain 顺序不合理,可能出现:

1
左边 flop → 右边 flop → 左边 flop → 右边 flop

这样 scan 线会在芯片中来回穿越,容易造成布线拥塞。

读入 scan DEF 后,工具可以结合物理位置优化成类似:

1
左边 flop → 左边 flop → 右边 flop → 右边 flop

这样 scan 线更短,交叉更少,routing congestion 也会降低。


6. Innovus 中读入 Scan DEF 的命令

命令格式:

1
defIn scan_input.def

含义:

使用 Innovus 的 defIn 命令读入 scan_input.def 文件。

其中:

部分 含义
defIn Innovus 中读入 DEF 文件的命令
scan_input.def 综合或 DFT 工具生成的 scan chain DEF 文件

7. 什么时候需要读入 Scan DEF?

场景 是否需要
综合 / DFT 后生成了 scan_input.def 建议读入
设计中有 scan chain 建议读入
需要做 scan chain reorder 建议读入
需要降低 scan 线布线拥塞 建议读入
设计没有 scan chain 不需要
Lab 没有提供 scan DEF 可以跳过
只是普通功能设计,不涉及 DFT 一般不用管

8. 简单总结

Scan DEF 记录了扫描链中 scan flop 的连接关系和顺序。

在 placement 之前读入:

1
defIn scan_input.def

可以让 Innovus 在摆放阶段考虑 scan chain 结构,从而减少 scan 线长度、降低布线拥塞,并提升后续 routing 的质量。

核心记忆:

1
2
3
Scan DEF:记录 scan chain 信息;
defIn:读入 DEF 文件;
placement 前读入 scan DEF:方便工具优化 scan chain,降低 congestion。
ESC 关闭 | 导航 | Enter 打开
输入关键词开始搜索