diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2008-04-06 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2008-04-06 08:01:00 -0700 |
commit | 661abab094143930f58633dfad415468a90cef6f (patch) | |
tree | fa142590b1b9730282e34901d07398be8b34de95 /src/aig/nwk | |
parent | 0c4d314ef0460b94c3ccc4f8ddeedc8e49e35e96 (diff) | |
download | abc-661abab094143930f58633dfad415468a90cef6f.tar.gz abc-661abab094143930f58633dfad415468a90cef6f.tar.bz2 abc-661abab094143930f58633dfad415468a90cef6f.zip |
Version abc80406
Diffstat (limited to 'src/aig/nwk')
-rw-r--r-- | src/aig/nwk/nwk.h | 1 | ||||
-rw-r--r-- | src/aig/nwk/nwkMan.c | 26 | ||||
-rw-r--r-- | src/aig/nwk/nwkMap.c | 2 | ||||
-rw-r--r-- | src/aig/nwk/nwkSpeedup.c | 6 | ||||
-rw-r--r-- | src/aig/nwk/nwkUtil.c | 15 |
5 files changed, 45 insertions, 5 deletions
diff --git a/src/aig/nwk/nwk.h b/src/aig/nwk/nwk.h index eafc1bbf..4c99c3a9 100644 --- a/src/aig/nwk/nwk.h +++ b/src/aig/nwk/nwk.h @@ -252,6 +252,7 @@ extern int Nwk_ManGetAigNodeNum( Nwk_Man_t * pNtk ); extern int Nwk_NodeCompareLevelsIncrease( Nwk_Obj_t ** pp1, Nwk_Obj_t ** pp2 ); extern int Nwk_NodeCompareLevelsDecrease( Nwk_Obj_t ** pp1, Nwk_Obj_t ** pp2 ); extern void Nwk_ObjPrint( Nwk_Obj_t * pObj ); +extern void Nwk_ManDumpBlif( Nwk_Man_t * pNtk, char * pFileName, Vec_Ptr_t * vCiNames, Vec_Ptr_t * vCoNames ); #ifdef __cplusplus } diff --git a/src/aig/nwk/nwkMan.c b/src/aig/nwk/nwkMan.c index 2d0254f2..9c2c5ed8 100644 --- a/src/aig/nwk/nwkMan.c +++ b/src/aig/nwk/nwkMan.c @@ -91,6 +91,29 @@ void Nwk_ManFree( Nwk_Man_t * p ) SeeAlso [] ***********************************************************************/ +void Nwk_ManPrintLutSizes( Nwk_Man_t * p, If_Lib_t * pLutLib ) +{ + Nwk_Obj_t * pObj; + int i, Counters[256] = {0}; + Nwk_ManForEachNode( p, pObj, i ) + Counters[Nwk_ObjFaninNum(pObj)]++; + printf( "LUTs by size: " ); + for ( i = 0; i <= pLutLib->LutMax; i++ ) + printf( "%d:%d ", i, Counters[i] ); + printf( "\n" ); +} + +/**Function************************************************************* + + Synopsis [Prints stats of the manager.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ void Nwk_ManPrintStats( Nwk_Man_t * p, If_Lib_t * pLutLib ) { p->pLutLib = pLutLib; @@ -104,7 +127,8 @@ void Nwk_ManPrintStats( Nwk_Man_t * p, If_Lib_t * pLutLib ) printf( "aig = %6d ", Nwk_ManGetAigNodeNum(p) ); printf( "lev = %3d ", Nwk_ManLevel(p) ); // printf( "lev2 = %3d ", Nwk_ManLevelBackup(p) ); - printf( "delay = %5.2f", Nwk_ManDelayTraceLut(p) ); + printf( "delay = %5.2f ", Nwk_ManDelayTraceLut(p) ); + Nwk_ManPrintLutSizes( p, pLutLib ); printf( "\n" ); // Nwk_ManDelayTracePrint( p, pLutLib ); fflush( stdout ); diff --git a/src/aig/nwk/nwkMap.c b/src/aig/nwk/nwkMap.c index acbfbc0a..6c1e1330 100644 --- a/src/aig/nwk/nwkMap.c +++ b/src/aig/nwk/nwkMap.c @@ -134,7 +134,7 @@ If_Man_t * Nwk_ManToIf( Aig_Man_t * p, If_Par_t * pPars, Vec_Ptr_t * vAigToIf ) if ( Aig_ObjIsChoice( p, pNode ) ) { pIfMan->nChoices++; - for ( pPrev = pNode, pFanin = p->pEquivs[pNode->Id]; pFanin; pPrev = pFanin, pFanin = p->pEquivs[pFanin->Id] ) + for ( pPrev = pNode, pFanin = Aig_ObjEquiv(p, pNode); pFanin; pPrev = pFanin, pFanin = Aig_ObjEquiv(p, pFanin) ) If_ObjSetChoice( pPrev->pData, pFanin->pData ); If_ManCreateChoice( pIfMan, pNode->pData ); } diff --git a/src/aig/nwk/nwkSpeedup.c b/src/aig/nwk/nwkSpeedup.c index 80404a44..b7802f72 100644 --- a/src/aig/nwk/nwkSpeedup.c +++ b/src/aig/nwk/nwkSpeedup.c @@ -137,7 +137,7 @@ void Aig_ManSpeedupNode( Nwk_Man_t * pNtk, Aig_Man_t * pAig, Nwk_Obj_t * pNode, // create choice node pAnd = Aig_Regular(pNode->pCopy); // repr pTemp = Aig_Regular(ppCofs[0]); // new - if ( pAig->pEquivs[pAnd->Id] == NULL && pAig->pEquivs[pTemp->Id] == NULL && !Aig_ObjCheckTfi(pAig, pTemp, pAnd) ) + if ( Aig_ObjEquiv(pAig, pAnd) == NULL && Aig_ObjEquiv(pAig, pTemp) == NULL && !Aig_ObjCheckTfi(pAig, pTemp, pAnd) ) pAig->pEquivs[pAnd->Id] = pTemp; } @@ -339,9 +339,9 @@ Aig_Man_t * Nwk_ManSpeedup( Nwk_Man_t * pNtk, int fUseLutLib, int Percentage, in // remove invalid choice nodes Aig_ManForEachNode( pAig, pAnd, i ) - if ( pAig->pEquivs[pAnd->Id] ) + if ( Aig_ObjEquiv(pAig, pAnd) ) { - if ( Aig_ObjRefs(pAig->pEquivs[pAnd->Id]) > 0 ) + if ( Aig_ObjRefs(Aig_ObjEquiv(pAig, pAnd)) > 0 ) pAig->pEquivs[pAnd->Id] = NULL; } diff --git a/src/aig/nwk/nwkUtil.c b/src/aig/nwk/nwkUtil.c index b25fd68a..5fb594ec 100644 --- a/src/aig/nwk/nwkUtil.c +++ b/src/aig/nwk/nwkUtil.c @@ -238,6 +238,21 @@ void Nwk_ObjPrint( Nwk_Obj_t * pObj ) printf( "\n" ); } +/**Function************************************************************* + + Synopsis [Deletes the node.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Nwk_ManDumpBlif( Nwk_Man_t * pNtk, char * pFileName, Vec_Ptr_t * vCiNames, Vec_Ptr_t * vCoNames ) +{ + printf( "Dumping logic network is currently not supported.\n" ); +} //////////////////////////////////////////////////////////////////////// /// END OF FILE /// |