diff options
Diffstat (limited to 'src/map/scl/sclLoad.c')
-rw-r--r-- | src/map/scl/sclLoad.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/map/scl/sclLoad.c b/src/map/scl/sclLoad.c index 3cbb34ef..7ea13db2 100644 --- a/src/map/scl/sclLoad.c +++ b/src/map/scl/sclLoad.c @@ -37,7 +37,7 @@ ABC_NAMESPACE_IMPL_START Description [] - SideEffects [] + SideEffects []` SeeAlso [] @@ -187,6 +187,23 @@ void Abc_SclUpdateLoad( SC_Man * p, Abc_Obj_t * pObj, SC_Cell * pOld, SC_Cell * pLoad->fall += pPinNew->fall_cap - pPinOld->fall_cap; } } +void Abc_SclUpdateLoadSplit( SC_Man * p, Abc_Obj_t * pBuffer, Abc_Obj_t * pFanout ) +{ + SC_Pin * pPin; + SC_Pair * pLoad; + int iFanin = Abc_NodeFindFanin( pFanout, pBuffer ); + assert( iFanin >= 0 ); + assert( Abc_ObjFaninNum(pBuffer) == 1 ); + pPin = SC_CellPin( Abc_SclObjCell(p, pFanout), iFanin ); + // update load of the buffer + pLoad = Abc_SclObjLoad( p, pBuffer ); + pLoad->rise -= pPin->rise_cap; + pLoad->fall -= pPin->fall_cap; + // update load of the fanin + pLoad = Abc_SclObjLoad( p, Abc_ObjFanin0(pBuffer) ); + pLoad->rise += pPin->rise_cap; + pLoad->fall += pPin->fall_cap; +} //////////////////////////////////////////////////////////////////////// /// END OF FILE /// |