我们知道,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.