《点论 | 多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.
作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/Cbk57to-s5nx6jlmIL-akg
作者微信公众号
相关文章推荐
•低功耗 | Glitch Power 分析
•大牛访谈:IC界CAD一姐Alice
更多IC设计技术干货请关注IC设计技术专栏。