abc/src/base/wlc/wlcAbs2.c
/**Function*************************************************************

  Synopsis    [Derive word-level abstracted model based on the parameter values.]

  Description [Retuns the word-level abstracted network and the set of pseudo-PIs 
  (vPisNew), which were created during abstraction. If the abstraction is
  satisfiable, some of the pseudo-PIs will be un-abstracted. These pseudo-PIs
  and their MFFC cones will be listed in the array (vUnmark), which will
  force the abstraction to not stop at these pseudo-PIs in the future.]
               
  SideEffects []

  SeeAlso     []

***********************************************************************/
Function
Synopsis    [Derive word-level abstracted model based on the parameter values.]

Description [Retuns the word-level abstracted network and the set of pseudo-PIs
(vPisNew), which were created during abstraction. If the abstraction is
satisfiable, some of the pseudo-PIs will be un-abstracted. These pseudo-PIs
and their MFFC cones will be listed in the array (vUnmark), which will
force the abstraction to not stop at these pseudo-PIs in the future.]




Function Synopsis [ Derive word - level abstracted model based on the parameter values . ] Description [ Retuns the word - level abstracted network and the set of pseudo - PIs ( vPisNew ) which were created during abstraction . If the abstraction is satisfiable some of the pseudo - PIs will be un - abstracted . These pseudo - PIs and their MFFC cones will be listed in the array ( vUnmark ) which will force the abstraction to not stop at these pseudo - PIs in the future . ]
static Wlc_Ntk_t * Wlc_NtkAbs( Wlc_Ntk_t * p, Wlc_Par_t * pPars, Vec_Bit_t * vUnmark, Vec_Int_t ** pvPisNew, int fVerbose )
{
    Wlc_Ntk_t * pNtkNew = NULL;
    Vec_Int_t * vPisOld = Vec_IntAlloc( 100 );
    Vec_Int_t * vPisNew = Vec_IntAlloc( 100 );
    Vec_Int_t * vFlops  = Vec_IntAlloc( 100 );
    Vec_Bit_t * vLeaves = Wlc_NtkAbsMarkOpers( p, pPars, vUnmark, fVerbose );
    Wlc_NtkAbsMarkNodes( p, vLeaves, vPisOld, vPisNew, vFlops );
    Vec_BitFree( vLeaves );
    pNtkNew = Wlc_NtkDupDfsAbs( p, vPisOld, vPisNew, vFlops );
    Vec_IntFree( vPisOld );
    Vec_IntFree( vFlops );
    if ( pvPisNew )
        *pvPisNew = vPisNew;
    else
        Vec_IntFree( vPisNew );
    return pNtkNew;
}
static Wlc_Ntk_t * Wlc_NtkAbs ( Wlc_Ntk_t * p , Wlc_Par_t * pPars , Vec_Bit_t * vUnmark , Vec_Int_t * * pvPisNew , int fVerbose ) { Wlc_Ntk_t * pNtkNew = NULL ; Vec_Int_t * vPisOld = Vec_IntAlloc ( 100 ) ; Vec_Int_t * vPisNew = Vec_IntAlloc ( 100 ) ; Vec_Int_t * vFlops = Vec_IntAlloc ( 100 ) ; Vec_Bit_t * vLeaves = Wlc_NtkAbsMarkOpers ( p , pPars , vUnmark , fVerbose ) ; Wlc_NtkAbsMarkNodes ( p , vLeaves , vPisOld , vPisNew , vFlops ) ; Vec_BitFree ( vLeaves ) ; pNtkNew = Wlc_NtkDupDfsAbs ( p , vPisOld , vPisNew , vFlops ) ; Vec_IntFree ( vPisOld ) ; Vec_IntFree ( vFlops ) ; if ( pvPisNew ) * pvPisNew = vPisNew ; else Vec_IntFree ( vPisNew ) ; return pNtkNew ; }
Function
Synopsis    [Derive word-level abstracted model based on the parameter values.]
Function Synopsis [ Derive word - level abstracted model based on the parameter values . ]