什么是CRPR/CPPR
CRPR/CPPR 也是timing 分析最基本的概念之一,S 家叫CRPR = Clock Reconvergence Pessimism Removal, C 家叫 CPPR = Clock Path Pessimism Removal, 叫什么不重要,背后的概念都一样:剔除公共clock path 上的悲观度。
Common clock path 跟 Common point
看图说话,上图是最常见最基本的一条timing path: 有launch clock path, data path 跟 capture clock path; 大多数电路中的大多数timing path 的launch clock 跟 capture clock 都从同一个时钟源头来,经过一段『共享路径』后分离,再各自达到自己的『彼岸』。这段『共享路径』的英文名儿叫: common clock path; launch clock path 跟 capture clock path 分道扬镳点的英文名儿叫: common point. CRPR/CPPR 的操作对象就是common point 跟common clock path.
Common path 上悲观度何来?
一个view 对应一套PVT 的库跟某一个确定的RC corner, 在确定的PVT 跟 RC corner 下,common clock path 上的cell 不论是被当做launch clock path 还是capture clock path 其delay 值都是固定的,但是在做STA 分析时为了模拟Variation 会对launch clock path, data path 跟 capture clock path 分别设不同的derate 值,可能是Flat OCV, AOCV 或POCV/SOCV.
拿setup 分析为例,通常会设一个late 的derate 值(大于1的值)到launch clock path 上,同时会设一个early 的derate 值(小于1的值)到capture clock path 上,这就使得common clock path 在被当做launch clock path 和capture clock path 时的delay 有了差别,但是对于同一段path 在一个固定时间内,它的delay 值一定是固定的,不可能忽大忽小,所以在STA 分析时,需要把由于derate 引起的common path 上delay 的差值剔除掉,这就是所谓的CRPR/CPPR.
CRPR/CPPR 跟时钟沿的关系
在计算CRPR/CPPR 需要考虑时钟沿,工具会分别计算时钟上升沿跟下降沿到达common point 的时间及对应的CRPR/CPPR. 在Innovus 跟Tempus 中默认行为是:如果launch clock 跟capture clock 在时钟源处边沿相同且到达common point 时边沿亦相同,那CRPR/CPPR 的值就是对应时钟沿计算所得的值;如果 launch clock 跟capture clock的时钟沿不同,则取 min ( , ).
在判断时钟沿是否相同时,要看clock 走过common path 时对应的时钟沿,如上两种都属于时钟沿相异的情况。
该行为可以通过变量控制,目前主流工具中都有对应变量,在tempus 中是 timing\_cppr\_transition\_sense, 该变量默认值是normal 行为如上所述,如果设成 "same\_transition" , 在 launch clock 跟capture clock的时钟沿不同时 CRPR/CPPR 取0.
作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/0QzFNwJrLAwLpmhAX9VhrQ
作者微信公众号
相关文章推荐
更多IC设计技术干货请关注IC设计技术专栏。