From 96d7699698d439b279cf37367b4c32ef5d1c2d7a Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Sun, 15 Jul 2012 15:54:36 -0700 Subject: Updated code for lazy man's synthesis. --- src/map/if/if.h | 6 +++++- src/map/if/ifMap.c | 18 ++++++++++++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) (limited to 'src/map/if') diff --git a/src/map/if/if.h b/src/map/if/if.h index bebcd3ef..cff9adfe 100644 --- a/src/map/if/if.h +++ b/src/map/if/if.h @@ -525,9 +525,13 @@ extern int If_ManCountSpecialPos( If_Man_t * p ); /*=== abcRec.c ============================================================*/ extern int If_CutDelayRecCost(If_Man_t* p, If_Cut_t* pCut, If_Obj_t * pObj); +extern int If_CutDelayRecCost2(If_Man_t* p, If_Cut_t* pCut, If_Obj_t * pObj); +/*=== abcRec2.c ============================================================*/ +extern int Abc_NtkRecIsRunning(); +extern int Abc_NtkRecIsRunning2(); // othe packages -extern int Bat_ManCellFuncLookup( unsigned * pTruth, int nVars, int nLeaves ); +extern int Bat_ManCellFuncLookup( unsigned * pTruth, int nVars, int nLeaves ); ABC_NAMESPACE_HEADER_END diff --git a/src/map/if/ifMap.c b/src/map/if/ifMap.c index 1293521a..6fcb8799 100644 --- a/src/map/if/ifMap.c +++ b/src/map/if/ifMap.c @@ -156,7 +156,14 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep /// if ( p->pPars->pLutStruct ) /// pCut->Delay = If_CutDelayLutStruct( p, pCut, p->pPars->pLutStruct, p->pPars->WireDelay ); if ( p->pPars->fUserRecLib ) - pCut->Delay = If_CutDelayRecCost(p, pCut, pObj); + { + if((Abc_NtkRecIsRunning2()&& Abc_NtkRecIsRunning()) || (!Abc_NtkRecIsRunning2()&& !Abc_NtkRecIsRunning())) + assert(0); + else if(Abc_NtkRecIsRunning()) + pCut->Delay = If_CutDelayRecCost(p, pCut, pObj); + else + pCut->Delay = If_CutDelayRecCost2(p, pCut, pObj); + } else if(p->pPars->fDelayOpt) pCut->Delay = If_CutDelaySopCost(p,pCut); else if(p->pPars->nGateSize > 0) @@ -228,7 +235,14 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep /// if ( p->pPars->pLutStruct ) /// pCut->Delay = If_CutDelayLutStruct( p, pCut, p->pPars->pLutStruct, p->pPars->WireDelay ); if ( p->pPars->fUserRecLib ) - pCut->Delay = If_CutDelayRecCost(p, pCut, pObj); + { + if((Abc_NtkRecIsRunning2()&& Abc_NtkRecIsRunning()) || (!Abc_NtkRecIsRunning2()&& !Abc_NtkRecIsRunning())) + assert(0); + else if(Abc_NtkRecIsRunning()) + pCut->Delay = If_CutDelayRecCost(p, pCut, pObj); + else + pCut->Delay = If_CutDelayRecCost2(p, pCut, pObj); + } else if (p->pPars->fDelayOpt) pCut->Delay = If_CutDelaySopCost(p, pCut); else if(p->pPars->nGateSize > 0) -- cgit v1.2.3