应某猪要求,撸一下POCV/ SOCV total derate 的计算。在没有找到更有效的方法,机器无法承受SSTA 之前,目前看来POCV/ SOCV 似乎是唯一出路,然而为了更完备地模拟各种『因素』对delay 的影响,POCV/ SOCV 看上去很胖,以至于猪同学挠着一头乱发在四海八荒群里『控诉』。
其实POCV/ SOCV 只是看上去胖,解析开也简单,首先要明确当前derate 的对象:
- cell: 带LVF 信息的library 中的POCV/ SOCV 值都是针对cell 的;
- net: 在某些工艺点T 会给出一个net 的POCV/ SOCV table; 在没有table 的情况下通常用如下命令设一个定值:
如果是cell derate, 需要明确是针对cell check 还是cell delay:
- cell check: 寄存器的setup/ hold time 就是这里的cell check, 如果是flat OCV 可用如下命令设置:
- cell delay: 就是所有cell 的delay 值。
cell delay 的total derate 由以下几部分内容构成:
- Guardband derate: 由LVF 定义的POCV/ SOCV 再乘以由set\_timing\_derate -mean/ -sigma 的设置值计算得到;
猪问:为什么LVF 定义了POCV/ SOCV 还需要再用set\_timing\_derate 设一个值呢?
驴答:目前LVF 中定义的POCV/ SOCV 只表征了PVT 中的P, 即工艺偏差,那如果要将温度跟电压对mean 跟sigma 的影响考虑在内时,就需要再用set\_timing\_derate 额外设置。
- Distance based derate: 标示local variations, 同一条path 上相距越远的cell 之间的variation 越大,该部分derate 也是一张表,由library vendor 提供,其内容大致如下,关于这部分内容后续文章会展开阐述。
- incremental derate: 用图示中的命令设置,某些cell 的variation 天生就比别人大,比如delay cell,对于这类cell 如果要加额外的derate 就需要用到该命令;当然也可以用该命令模拟温度和电压对variation 的影响。
在STA 分析中,total derate 是如何计算的呢?C 跟S 的计算公式类似,只是对incremental derate 的处理方式不一致。
关于这部分内容,还有什么疑问,可以私信老驴,我们继续挖掘,争取不留死角,
相关文章往期回顾:
论STA | SOCV / POCV 之 variation
论STA | SOCV timing report 进一步解析
作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/rVINNn-AZ\_0fgNroKl\_8JA
作者微信公众号
相关文章推荐
更多IC设计技术干货请关注IC设计技术专栏。