int Mio_CheckGates( Mio_Library_t * pLib ) { Mio_Gate_t * pGate; Mio_Pin_t * pPin0 = NULL, * pPin = NULL; Mio_LibraryForEachGate( pLib, pGate ) Mio_GateForEachPin( pGate, pPin ) if ( Mio_CheckPins( pPin0, pPin ) ) pPin0 = pPin; else return 0; return 1; }
/**Function************************************************************* Synopsis [Deriving the functionality of the gates.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ int Mio_LibraryParseFormulas( Mio_Library_t * pLib ) { Mio_Gate_t * pGate; // count the gates pLib->nGates = 0; Mio_LibraryForEachGate( pLib, pGate ) pLib->nGates++; // for each gate, derive its function Mio_LibraryForEachGate( pLib, pGate ) if ( Mio_GateParseFormula( pGate ) ) return 1; return 0; }
/**Function************************************************************* Synopsis [Deriving the functionality of the gates.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ int Mio_LibraryParseFormulas( Mio_Library_t * pLib ) { Mio_Gate_t * pGate; // count the gates pLib->nGates = 0; Mio_LibraryForEachGate( pLib, pGate ) pLib->nGates++; // start a temporary BDD manager pLib->dd = Cudd_Init( 20, 0, CUDD_UNIQUE_SLOTS, CUDD_CACHE_SLOTS, 0 ); // introduce ZDD variables Cudd_zddVarsFromBddVars( pLib->dd, 2 ); // for each gate, derive its function Mio_LibraryForEachGate( pLib, pGate ) if ( Mio_GateParseFormula( pGate ) ) return 1; return 0; }