前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ETM 抽取,应该知道的一些细节

ETM 抽取,应该知道的一些细节

作者头像
老秃胖驴
发布2020-11-13 14:59:30
2.2K0
发布2020-11-13 14:59:30
举报

点论 | 多mode ETM lib》曾经写过一点ETM, 最近在跟某兄解某问题时,突觉对ETM 的胴体竟然一无所知,比如,在抽ETM 时:

  • input port 的transition 是如何来的?output 的load 是如何来的?
  • in2reg path 被抽成setup/ hold check 时,其计算公式是什么?
  • reg2out path 被抽成sequential path 时,其计算公式是什么?
  • in2out path 被抽成combinational path 时,其计算公式是什么?
  • min period 跟pulse width 的计算公式是什么?
  • 是GPA 还是PBA?
  • SDC 中的相关命令如何处理?
  • 多clock 怎么处理?
  • 常值跟未约束的path 怎么处理?
  • PG pin 怎么抽取?
  • SI 怎么建模?
  • AOCV, SOCV 怎么度量?

有多少人会像老驴一样想脱口而出:WTF!!! 老驴打算就着这些问题捋一捋,今天先捋前四个。

抽取ETM 时context 的处理


ETM 不应该依赖于该设计当前的工作环境,也就是说在抽timing model 时不能用其当前的input transition 跟output load 为前提抽取,因为ETM 是要用于更上一层做timing 分析的,而在抽当前层时,是无法得知更上一层使用该model 时具体的transition 跟load 是多少,这其实跟std cell 类似,因为无法预知std cell 将要工作的外部环境,所以在K 库时,需要对input transition 跟outpu load 设定一个范围。那么问题来了,在抽ETM 时,这个范围从何而来?就这个问题,老驴请教了一些老专家,似乎各家工具处理时并不完全相同,在innovus 跟Tempus 中按如下方式处理:

可以在抽ETM 时指定input transition 跟output load:

如果在抽取ETM 时没有指定input transition 跟output load, 则按照如下规则:

  • check timing arc: 对于setup/ hold 这样的 "check timing arc" 是用reference pin 跟data pin 的transition 来查表的,其中reference pin 的transition index 用该clock pin 在该block 内部驱动的第一个cell 的transition index; data pin 的transition index 用该data pin 在该block 内部驱动的第一个cell 的transition index;
  • sequential timing arc: sequential timing arc 跟寄存器CK->Q 的timing arc 一样,用clock pin transition 跟output pin 的load 查表,其中clock pin 的transition index 用该clock pin 在该block 内部驱动的第一个cell 的transition index; output pin 的load 用该block 内部驱动该output pin 的最后一个cell 的load index.
  • combinational timing arc: 这类arc 用input pin 的transition 跟output pin 的load 查表,其中input pin 的transition index 用该input pin 在该block 内部驱动的第一个cell 的transition index; output pin 的load 用该block 内部驱动该output pin 的最后一个cell 的load index.

举个栗子,假设在block 内部有如下三条path:

  • check timing arc, clk->in, 其中clk pin 的transition index 取clk_buf 在原始lib 中的transition index, 即:cell ( CLK_BUF ) 的index_1; in pin 的transition index 取buf 在原始lib 中的transition index, 即:cell ( BUF ) 的index_1;
  • sequential timing arc 跟combinational timing arc, input pin 的transtion index 选取同check timing arc 类似,out pin 的load 取buf 在原始lib 中的load index, 即:cell ( BUF ) 的index_2;

抽取ETM 时各类型arc 的计算


从timing path 的角度,任何一个电路都可以简化成四类:

  • in2reg, 抽取ETM 时会将这类path 模拟成check timing arc, 其计算公式为:
  • reg2out, 抽取ETM 时会将这类path 模拟成sequential timing arc, 其计算公式为:
  • in2out, 抽取ETM 时会将这类path 模拟成combinational timing arc, 其计算公式为:
  • reg2reg, 抽取ETM 时不考虑这类path.
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 陌上风骑驴看IC 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档