论STA | POCV/ SOCV spatial derate

2019-11-07 15:27:30 浏览数 (2)

回顾一下《论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 列

0 人点赞