电子产业一站式赋能平台

PCB联盟网

搜索
查看: 43|回复: 0
收起左侧

如何通过插值法计算cell delay?

[复制链接]
匿名  发表于 2024-10-31 12:05:00 |阅读模式
我们知道,cell delay是根据input transition和output load计算得到的。如图所示,为X8驱动的buffer的timing查找表。由于buffer是正单边类型cell,那么当一个1 -> 0 翻转的信号经过buffer时,计算timing delay应该去查找cell_fall这个表格。假设input transition为0.29845ns,output load为0.021292pf,根据查找表就可以计算出cell delay为0.096698ns。


   
    但实际上,我们很难碰到input transition和output load正好在查找表上,或多或少都有些偏差。那么,怎么去计算cell delay呢?这个时候就要用到插值法去计算了。
    插值法的公式:Z = A + B * X + C * Y + D * X * Y,其中X为input transition,Y为output load,A、B、C、D为四个参数,Z为delay值。
  那么如何计算得到A、B、C、D四个参数呢?请看下面一个案例。
    假设一个信号从1 -> 0 ,input transition为0.014930ns, output load为0.296311pf,便可以知道其input transition在0.01到0.035723, output load介于0.23365到0.45078之间(见图中绿色框)。因此,便得到了4组X/Y/Z的值,分别是

                     X=0.01          X=0.035723
  Y=0.23365    Z=0.12525    Z=0.13431
  Y=0.45078    Z=0.2144      Z=0.22323

    知道了4组X/Y/Z的值,我们便可以带入计算得到一个四元一次方程组,即:
0.12525 = A+ B * 0.01+ C * 0.23365 + D * 0.01 * 0.23365
0.2144 = A+B * 0.01+C * 0.45078 + D * 0.01 * 0.45078
0.13431=A+B * 0.035723+C * 0.23365+D * 0.035723 * 0.23365
0.22323 = A+B * 0.035723+C * 0.45078+D * 0.035723 * 0.45078
       从而得到A = 0.08075,B = 3.47539,C = 0.04008,D = 0.01648
      从而得到Z=-0.086176 + 11.5493 * x + 0.65917 * y - 24.859 * x * y,当X=0.014930、Y=0.296311时,得到Z=0.1716ns(此处计算结果有误,可参照上图计算结果)


#小编是一个入行多年的数字后端工程师,本身对编程方面比较感兴趣,在数字后端的脚本、flow上比较擅长,可以为大家提供答疑咨询服务。另外,可以加入我的群聊和志同道合朋友交流。也欢迎大家加入我的知识星球“芯冰乐”或者关注微信公众号“芯冰乐”,获取更多干货知识。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表