回顾一下《论STA | POCV / SOCV total derate 计算解析》total derate 的计算公式,其中distance derate 就是本文要论及的spatial derate. 此处total derate 的计算公式中都是乘以distance derate, 实际上不论是C 还是S, 在其timing 计算引擎中,都有相应控制变量来控制是『加上』还是『乘以』distance derate. 到目前为止,默认行为应该都是『乘以』。
如果设置了用『相加』的模式来计算total derate 则其计算公式为:
spatial derate 也叫distance-based derate 也叫location-based derate 用于模拟location variations, 理论上相对位置越远工艺偏差越大。LVF 是可以支持saptial derate 建模的,但是目前大部分Feb 都会提供一张单独spatial derate 表格。通常SOCV spatial derate 表格有如下两种格式:
- Design-level spatial derate data
- Library cell-level spatial derate data
Design-level spatial derate data:
Design-level spatial derate 对当前design 的所有cell 跟net 都有效,可以使用path\_type 指定是针对clock path 还是data path;也可以使用delay\_type 指定是针对cell delay 还是net delay, 其格式为:
Library cell-level spatial derate data
Library cell-level spatial derate 针对lib cell 设置,可以使用path\_type 指定是针对clock path 还是data path,其格式为:
优先级:
- 如果同时设置了Design-level 跟Library Cell-level 的spatial derate, 则library cell-level spatial derate 优先级更高,Design-level spatial derate 会用于net.
- 如果只指定了某一种path\_type 的cell-level spatial derate, 则其余部分用Design-level spatial derate 计算;
- 如果同对一个cell 设置了两次类型相同的spatial derate, 则先设的优先级高。
Innovus/Tempus SOCV spatial derate Flow
- 读入SOCV side-file;
- 设置spatial derate analysis;
- 进行spatial derate timing 分析。
读入SOCV side-file
- single mode single coner, 用命令read\_lib -socv 读入:
- Multi mode multi coner, 在view definition 中用create\_library\_set 或update\_library\_set 读入:
设置spatial derate analysis
主要由以下几个变量控制,除此处列出的变量还有控制计算total derate 时是将spatial derate 『加上』还是『乘以』跟是否将spatial derate 应用于sigma. 在计算derate distance 时有两种模式:
- Bounding\_box, 跟计算AOCV distance 一样,从common point 起到endpoint 止,框一个矩形,矩形的对角线即为所求distance 值。
- chip\_size, 用timing\_spatial\_derate\_chip\_size 指定一个固定值。chip\_size 可以从带坐标信息的SPEF 中读入,也可以从DEF 中读入。
在GBA 模式,即可以将distance\_mode 设为chip\_size 也可以设为bounding\_box; 在PBA 模式通常用bounding\_box.
进行spatial derate timing 分析
- GBA bounding-box mode
- GBA chip-size mode
- PBA bounding-box mode
GBA bounding-box mode
- GBA 模式,工具不精确计算每一条path 的bounding-box, 针对一对startpoint-endpoint 从common point 起将该对timing check point 间所有timing path 的所有cell 都框起,用最长的对角线来计算这一组timing path 的spatial derate. 这种方式计算得到的distance 使setup 更悲观,该模式不建议应用于hold 分析。
- GBA Bounding-box 只能用于design-level spatial derate table, 不能用于cell-level spatial derate table;
- GBA Bounding-box 的spatial derate 直接应用于timing report最后arrival time 和required time 的计算,不体现于timing path 的每一个cell 上;
- GBA Bounding-box 不能分别针对data, clock, net, cell 跟不同电压进行设置;
GBA chip-size mode
- 由于如上诸多限制,GBA bounding-box 模式通常不建议用于sign-off. 建议使用GBA chip-size 模式做sign-off
- GBA chip-size mode 用design-level spatial derate 对net 做derate, 可以同时读入cell-level spatial derate 对cell 做derate.
- GBA chip-size mode, spatial derate 针对timing path 上的cell 设置,可以分别针对data, clock, net, cell 跟不同电压进行设置。
- 在timing report 中spatial derate 呈现在socv\_derate 列:
PBA bounding-box mode
- PBA 模式,如果物理坐标数据可用,工具会针对每一条path 计算一个精确的distance 值;如果物理坐标数据不可用,工具将默认使用芯片的尺寸来获得距离参数。
- PBA bounding-box mode, 针对一对startpoint-endpoint 从common point 起到endpoint 止将当前timing path 框起,计算对角线距离为distance 值,如果该条timing path 没有common point 则用chip-size 计算distance.
- PBA bounding-box mode, spatial derate 针对timing path 上的cell 设置,可以分别针对data, clock, net, cell 跟不同电压进行设置。
- 在timing report 中spatial derate 呈现在socv\_derate 列
作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/-t9QlAUplN0\_LIOIxSGktw
作者微信公众号
相关文章推荐
更多IC设计技术干货请关注IC设计技术专栏。