diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2006-07-01 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2006-07-01 08:01:00 -0700 |
commit | 616bb095f10c24f1f720efe89b7f39c670d114a3 (patch) | |
tree | 8761f65c9f81591008b1a59f04d473b5cae76a49 /src/temp/player/playerAbc.c | |
parent | 3814121784af2250e2d5f17173b209e74cb7ae45 (diff) | |
download | abc-616bb095f10c24f1f720efe89b7f39c670d114a3.tar.gz abc-616bb095f10c24f1f720efe89b7f39c670d114a3.tar.bz2 abc-616bb095f10c24f1f720efe89b7f39c670d114a3.zip |
Version abc60701
Diffstat (limited to 'src/temp/player/playerAbc.c')
-rw-r--r-- | src/temp/player/playerAbc.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/temp/player/playerAbc.c b/src/temp/player/playerAbc.c index 9cc342d9..24273ffe 100644 --- a/src/temp/player/playerAbc.c +++ b/src/temp/player/playerAbc.c @@ -45,8 +45,10 @@ static Abc_Ntk_t * Ivy_ManToAbc( Abc_Ntk_t * pNtkOld, Ivy_Man_t * p ); ***********************************************************************/ void * Abc_NtkPlayer( void * pNtk, int nLutMax, int nPlaMax, int fVerbose ) { + int fUseRewriting = 1; Ivy_Man_t * pMan, * pManExt; Abc_Ntk_t * pNtkAig; + if ( !Abc_NtkIsStrash(pNtk) ) return NULL; // convert to the new AIG manager @@ -60,6 +62,14 @@ void * Abc_NtkPlayer( void * pNtk, int nLutMax, int nPlaMax, int fVerbose ) } if ( fVerbose ) Ivy_ManPrintStats( pMan ); + if ( fUseRewriting ) + { + // simplify + pMan = Ivy_ManResyn( pManExt = pMan, 1 ); + Ivy_ManStop( pManExt ); + if ( fVerbose ) + Ivy_ManPrintStats( pMan ); + } // perform decomposition/mapping into PLAs/LUTs pManExt = Pla_ManDecompose( pMan, nLutMax, nPlaMax, fVerbose ); Ivy_ManStop( pMan ); @@ -150,10 +160,10 @@ Abc_Ntk_t * Ivy_ManToAbc( Abc_Ntk_t * pNtkOld, Ivy_Man_t * pMan ) pObjNew = Abc_NtkCreateNode( pNtkNew ); Vec_IntForEachEntry( vIvyFanins, Fanin, k ) { - pIvyFanin = Ivy_ObjObj( pIvyNode, Ivy_FanId(Fanin) ); + pIvyFanin = Ivy_ObjObj( pIvyNode, Ivy_EdgeId(Fanin) ); pFaninNew = Abc_NtkObj( pNtkNew, pIvyFanin->TravId ); Abc_ObjAddFanin( pObjNew, pFaninNew ); - pCompls[k] = Ivy_FanCompl(Fanin); + pCompls[k] = Ivy_EdgeIsComplement(Fanin); assert( Ivy_ObjIsAndMulti(pIvyNode) || nFanins == 1 || pCompls[k] == 0 ); // EXOR/LUT cannot have complemented fanins } assert( k <= PLAYER_FANIN_LIMIT ); @@ -176,10 +186,10 @@ Abc_Ntk_t * Ivy_ManToAbc( Abc_Ntk_t * pNtkOld, Ivy_Man_t * pMan ) // get the old fanin of the PO node vIvyFanins = Ivy_ObjGetFanins( Ivy_ManPo(pMan, i) ); Fanin = Vec_IntEntry( vIvyFanins, 0 ); - pIvyFanin = Ivy_ManObj( pMan, Ivy_FanId(Fanin) ); + pIvyFanin = Ivy_ManObj( pMan, Ivy_EdgeId(Fanin) ); // get the new ABC node corresponding to the old fanin pFaninNew = Abc_NtkObj( pNtkNew, pIvyFanin->TravId ); - if ( Ivy_FanCompl(Fanin) ) // complement + if ( Ivy_EdgeIsComplement(Fanin) ) // complement { // pFaninNew = Abc_NodeCreateInv(pNtkNew, pFaninNew); if ( Abc_ObjIsCi(pFaninNew) ) |