Commit d8d82005 by Alan Mishchenko

Improvements to LMS code.

parent 12dda470
...@@ -494,10 +494,13 @@ Abc_Obj_t * Abc_NodeFromIf_rec( Abc_Ntk_t * pNtkNew, If_Man_t * pIfMan, If_Obj_t ...@@ -494,10 +494,13 @@ Abc_Obj_t * Abc_NodeFromIf_rec( Abc_Ntk_t * pNtkNew, If_Man_t * pIfMan, If_Obj_t
{ {
extern Hop_Obj_t * Abc_RecToHop( Hop_Man_t * pMan, If_Man_t * pIfMan, If_Cut_t * pCut, If_Obj_t * pIfObj ); extern Hop_Obj_t * Abc_RecToHop( Hop_Man_t * pMan, If_Man_t * pIfMan, If_Cut_t * pCut, If_Obj_t * pIfObj );
extern Hop_Obj_t * Abc_RecToHop2( Hop_Man_t * pMan, If_Man_t * pIfMan, If_Cut_t * pCut, If_Obj_t * pIfObj ); extern Hop_Obj_t * Abc_RecToHop2( Hop_Man_t * pMan, If_Man_t * pIfMan, If_Cut_t * pCut, If_Obj_t * pIfObj );
if(Abc_NtkRecIsRunning()) extern Hop_Obj_t * Abc_RecToHop3( Hop_Man_t * pMan, If_Man_t * pIfMan, If_Cut_t * pCut, If_Obj_t * pIfObj );
pNodeNew->pData = Abc_RecToHop( (Hop_Man_t *)pNtkNew->pManFunc, pIfMan, pCutBest, pIfObj); if(Abc_NtkRecIsRunning3())
else pNodeNew->pData = Abc_RecToHop3( (Hop_Man_t *)pNtkNew->pManFunc, pIfMan, pCutBest, pIfObj);
else if(Abc_NtkRecIsRunning2())
pNodeNew->pData = Abc_RecToHop2( (Hop_Man_t *)pNtkNew->pManFunc, pIfMan, pCutBest, pIfObj); pNodeNew->pData = Abc_RecToHop2( (Hop_Man_t *)pNtkNew->pManFunc, pIfMan, pCutBest, pIfObj);
else
pNodeNew->pData = Abc_RecToHop( (Hop_Man_t *)pNtkNew->pManFunc, pIfMan, pCutBest, pIfObj);
} }
else else
......
...@@ -531,11 +531,14 @@ extern void If_CutTraverse( If_Man_t * p, If_Obj_t * pRoot, If_Cut_t ...@@ -531,11 +531,14 @@ extern void If_CutTraverse( If_Man_t * p, If_Obj_t * pRoot, If_Cut_t
extern void If_ObjPrint( If_Obj_t * pObj ); extern void If_ObjPrint( If_Obj_t * pObj );
/*=== abcRec.c ============================================================*/ /*=== abcRec.c ============================================================*/
/*=== abcRec2.c ============================================================*/
/*=== abcRec3.c ============================================================*/
extern int If_CutDelayRecCost(If_Man_t* p, If_Cut_t* pCut, If_Obj_t * pObj); 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); extern int If_CutDelayRecCost2(If_Man_t* p, If_Cut_t* pCut, If_Obj_t * pObj);
/*=== abcRec2.c ============================================================*/ extern int If_CutDelayRecCost2(If_Man_t* p, If_Cut_t* pCut, If_Obj_t * pObj);
extern ABC_DLL int Abc_NtkRecIsRunning(); extern ABC_DLL int Abc_NtkRecIsRunning();
extern ABC_DLL int Abc_NtkRecIsRunning2(); extern ABC_DLL int Abc_NtkRecIsRunning2();
extern ABC_DLL int Abc_NtkRecIsRunning3();
// othe packages // othe packages
extern int Bat_ManCellFuncLookup( unsigned * pTruth, int nVars, int nLeaves ); extern int Bat_ManCellFuncLookup( unsigned * pTruth, int nVars, int nLeaves );
......
...@@ -158,12 +158,13 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep ...@@ -158,12 +158,13 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep
/// pCut->Delay = If_CutDelayLutStruct( p, pCut, p->pPars->pLutStruct, p->pPars->WireDelay ); /// pCut->Delay = If_CutDelayLutStruct( p, pCut, p->pPars->pLutStruct, p->pPars->WireDelay );
if ( p->pPars->fUserRecLib ) if ( p->pPars->fUserRecLib )
{ {
if((Abc_NtkRecIsRunning2()&& Abc_NtkRecIsRunning()) || (!Abc_NtkRecIsRunning2()&& !Abc_NtkRecIsRunning())) assert( Abc_NtkRecIsRunning() + Abc_NtkRecIsRunning2() + Abc_NtkRecIsRunning3() == 1 );
assert(0); if ( Abc_NtkRecIsRunning3() )
else if(Abc_NtkRecIsRunning()) pCut->Delay = If_CutDelayRecCost3(p, pCut, pObj);
pCut->Delay = If_CutDelayRecCost(p, pCut, pObj); else if( Abc_NtkRecIsRunning2() )
else
pCut->Delay = If_CutDelayRecCost2(p, pCut, pObj); pCut->Delay = If_CutDelayRecCost2(p, pCut, pObj);
else
pCut->Delay = If_CutDelayRecCost(p, pCut, pObj);
} }
else if(p->pPars->fDelayOpt) else if(p->pPars->fDelayOpt)
pCut->Delay = If_CutDelaySopCost(p,pCut); pCut->Delay = If_CutDelaySopCost(p,pCut);
...@@ -239,12 +240,13 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep ...@@ -239,12 +240,13 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep
/// pCut->Delay = If_CutDelayLutStruct( p, pCut, p->pPars->pLutStruct, p->pPars->WireDelay ); /// pCut->Delay = If_CutDelayLutStruct( p, pCut, p->pPars->pLutStruct, p->pPars->WireDelay );
if ( p->pPars->fUserRecLib ) if ( p->pPars->fUserRecLib )
{ {
if((Abc_NtkRecIsRunning2()&& Abc_NtkRecIsRunning()) || (!Abc_NtkRecIsRunning2()&& !Abc_NtkRecIsRunning())) assert( Abc_NtkRecIsRunning() + Abc_NtkRecIsRunning2() + Abc_NtkRecIsRunning3() == 1 );
assert(0); if ( Abc_NtkRecIsRunning3() )
else if(Abc_NtkRecIsRunning()) pCut->Delay = If_CutDelayRecCost3(p, pCut, pObj);
pCut->Delay = If_CutDelayRecCost(p, pCut, pObj); else if( Abc_NtkRecIsRunning2() )
else
pCut->Delay = If_CutDelayRecCost2(p, pCut, pObj); pCut->Delay = If_CutDelayRecCost2(p, pCut, pObj);
else
pCut->Delay = If_CutDelayRecCost(p, pCut, pObj);
} }
else if (p->pPars->fDelayOpt) else if (p->pPars->fDelayOpt)
pCut->Delay = If_CutDelaySopCost(p, pCut); pCut->Delay = If_CutDelaySopCost(p, pCut);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment