|
发表于 2016-10-27 15:24:19
|
显示全部楼层
本帖最后由 鹏程琅月 于 2016-10-27 15:46 编辑
回复 2# Austen
您好,关于你说的同一个pvt,在uncertainty 不合理,T(周期)足够小,ocv_derate影响比较大的情况下,还有skew的情况下,还有lib 的Tsetup和Tck_q不那么合理的情况下,甚至有si影响的情况下,我感觉在同一个pvt下是可以出现同一个endpoint (reg的D端)上setup hold 同时有violation的情况的。
下面举个栗子来验证一下是不是这样的:
比如:在wc pvt下 ,考虑ocv,hold违约时:derate值(setup和hold的derate一样)是 da和db(da<1,db=1)。作用于clock path 和data path 上。
da*(Tlaunch +Tck_q + Tdata) -(db*Tcapture+Tuncertainty_h + Thold) + crpr <0;
其中Tlaunch 和Tcapture都是在wc的lib分析
在这个hold 有violation的基础上,假设setup 也有violation,
T+da*Tcapture -[db*(Tlaunch +Tck_q + Tdata)+Tuncertainty_s +Tsetup] +crpr <0;
假设不考虑fast slew 和slow slew的影响,ocv只体现在derate 上。则分析用得lib cell 一样都是wc下面的,即两式子中的Tlaunch 和Tcapture 和crpr Tck_q Tdata 相同。
当setup和hold同时有vio时候,上面两个不等式同时满足。
分析后得到(化简消去了Tlaunch分析):
-da*(Tunc_s+Tsetup) + da*da *(T+da*Tcapture) + (Tcapture+Tunc_h+Thold) +2crpr<0;
da*da*T +(da*da*da+1)*Tcapture + (Tunc_h+Thold) +2crpr< da*(Tunc_s+Tsetup);
其中 da<1,db=1;
下面可以分析了:
<1>当Tunc_s+Tsetup 非常大的时候,即uncetrtainty设置不合理或者lib cell 的Tsetup很大的时候,貌似可以满足。(Tunc_s是setup的uncertainty同理Tunc_h是hold的);
<2>当不等式左边很小的时候,即:
T很小即:设计很高频。
(da*da*da+1)*Tcapture 很小,即:当da小于1,并且Tcap很短。
Tunc_h+Thold很小,即 Tunc_h很小。
2crpr很小即:common path很短。
其实公式里Tcapture也可以消去,然后按Tlaunch分析,不想再化简了,有兴趣的可以试试。可以判断跟skew有无关系。还有si的影响也没分析......
经过上面分析,这些因素可以导致同时发生setup hold violation。
个人意见,有什么错误和没想到的,请大神们指点。 |
|