罗风 · 2021年01月29日

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

点论 | 多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!!! 老驴打算就着这些问题捋一捋,今天先捋前四个。



WeChat Image_20210129134118.jpg

抽取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:

WeChat Image_20210129134131.jpg

如果在抽取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;

WeChat Image_20210129134135.png

WeChat Image_20210129134137.png

抽取ETM 时各类型arc 的计算

WeChat Image_20210129134142.png

WeChat Image_20210129134146.png

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

  • in2reg, 抽取ETM 时会将这类path 模拟成check timing arc, 其计算公式为:

WeChat Image_20210129134150.png

  • reg2out, 抽取ETM 时会将这类path 模拟成sequential timing arc, 其计算公式为:

WeChat Image_20210129134152.png

  • in2out, 抽取ETM 时会将这类path 模拟成combinational timing arc, 其计算公式为:

WeChat Image_20210129134156.png

  • reg2reg, 抽取ETM 时不考虑这类path.
作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/Cbk57to-s5nx6jlmIL-akg
作者微信公众号
Capture.PNG

相关文章推荐

低功耗 | Glitch Power 分析
大牛访谈:IC界CAD一姐Alice

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