diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2007-02-02 08:01:00 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2007-02-02 08:01:00 -0800 |
commit | 8da52b6f202444711da6b1f1baac92e0a516c8e6 (patch) | |
tree | caa6bf9d35cb8f10785c9e2fc9dd0a179704db33 /src/opt/bdc/bdcDec.c | |
parent | 12578e622f62bde4cfc1d3b055aa8747e5c9590b (diff) | |
download | abc-8da52b6f202444711da6b1f1baac92e0a516c8e6.tar.gz abc-8da52b6f202444711da6b1f1baac92e0a516c8e6.tar.bz2 abc-8da52b6f202444711da6b1f1baac92e0a516c8e6.zip |
Version abc70202
Diffstat (limited to 'src/opt/bdc/bdcDec.c')
-rw-r--r-- | src/opt/bdc/bdcDec.c | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/opt/bdc/bdcDec.c b/src/opt/bdc/bdcDec.c new file mode 100644 index 00000000..1fbea911 --- /dev/null +++ b/src/opt/bdc/bdcDec.c @@ -0,0 +1,76 @@ +/**CFile**************************************************************** + + FileName [bdc_.c] + + SystemName [ABC: Logic synthesis and verification system.] + + PackageName [Truth-table-based bi-decomposition engine.] + + Synopsis [] + + Author [Alan Mishchenko] + + Affiliation [UC Berkeley] + + Date [Ver. 1.0. Started - January 30, 2007.] + + Revision [$Id: bdc_.c,v 1.00 2007/01/30 00:00:00 alanmi Exp $] + +***********************************************************************/ + +#include "abc.h" +#include "bdcInt.h" + +//////////////////////////////////////////////////////////////////////// +/// DECLARATIONS /// +//////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////// +/// FUNCTION DEFINITIONS /// +//////////////////////////////////////////////////////////////////////// + +/**Function************************************************************* + + Synopsis [Performs one step of bi-decomposition.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +Bdc_Fun_t * Bdc_ManDecompose_rec( Bdc_Man_t * p, Bdc_Isf_t * pIsf ) +{ + Bdc_Fun_t * pFunc; + Bdc_Isf_t IsfA, * pIsfA = &IsfA; + Bdc_Isf_t IsfB, * pIsfB = &IsfB; + int Type; + Bdc_SuppMinimize( p, pIsf ); + if ( pFunc = Bdc_TableLookup( p, pIsf ) ) + return pFunc; + pFunc = Bdc_ManNewNode( p ); + pFunc->Type = Bdc_DecomposeStep( p, pIsf, pIsfA, pIsfB ); + pFunc->pFan0 = Bdc_ManDecompose_rec( p, pIsfA ); + if ( Bdc_DecomposeUpdateRight( p, pIsf, pIsfA, pIsfB, pFunc->pFan0->puFunc ) ) + { + p->nNodes--; + return pFunc->pFan0; + } + pFunc->pFan1 = Bdc_ManDecompose_rec( p, pIsfA ); + pFunc->puFunc = Vec_IntFetch( p->vMemory, p->nWords ); + pFunc->puFunc = + + + + + +} + + + +//////////////////////////////////////////////////////////////////////// +/// END OF FILE /// +//////////////////////////////////////////////////////////////////////// + + |