论STA | POCV/ SOCV spatial derate

原创
2019/10/30 18:26
阅读数 207
回顾一下《论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 列


驴说IC


本文分享自微信公众号 - 陌上风骑驴看IC(MoShangFengQiLv)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部