罗风 · 2021年04月08日

论STA | POCV/ SOCV spatial derate

回顾一下《论STA | POCV / SOCV total derate 计算解析》total derate 的计算公式,其中distance derate 就是本文要论及的spatial derate. 此处total derate 的计算公式中都是乘以distance derate, 实际上不论是C 还是S, 在其timing 计算引擎中,都有相应控制变量来控制是『加上』还是『乘以』distance derate. 到目前为止,默认行为应该都是『乘以』。

微信图片_20210408102749.jpg

如果设置了用『相加』的模式来计算total derate 则其计算公式为:

微信图片_20210408102752.jpg

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, 其格式为:

微信图片_20210408102756.png

Library cell-level spatial derate data

Library cell-level spatial derate 针对lib cell 设置,可以使用path\_type 指定是针对clock path 还是data path,其格式为:

微信图片_20210408102902.jpg

优先级:

  • 如果同时设置了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 读入:

微信图片_20210408102938.jpg

  • Multi mode multi coner, 在view definition 中用create\_library\_set 或update\_library\_set 读入:

微信图片_20210408102946.png

设置spatial derate analysis

主要由以下几个变量控制,除此处列出的变量还有控制计算total derate 时是将spatial derate 『加上』还是『乘以』跟是否将spatial derate 应用于sigma. 在计算derate distance 时有两种模式:

  • Bounding\_box, 跟计算AOCV distance 一样,从common point 起到endpoint 止,框一个矩形,矩形的对角线即为所求distance 值。

微信图片_20210408102958.png

  • chip\_size, 用timing\_spatial\_derate\_chip\_size 指定一个固定值。chip\_size 可以从带坐标信息的SPEF 中读入,也可以从DEF 中读入。

微信图片_20210408103007.jpg

在GBA 模式,即可以将distance\_mode 设为chip\_size 也可以设为bounding\_box; 在PBA 模式通常用bounding\_box.

微信图片_20210408103014.jpg

进行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 列:

微信图片_20210408103207.png

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 列

微信图片_20210408103247.jpg

作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/-t9QlAUplN0\_LIOIxSGktw
作者微信公众号
捕获.PNG

相关文章推荐

更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
19614
内容数
1303
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息