mirror of https://github.com/YosysHQ/abc.git
Adding new debugging feature to Wlc_Ntk_t.
This commit is contained in:
parent
6e4ef76311
commit
4b7dd69260
|
|
@ -258,6 +258,7 @@ extern void Wlc_NtkPrintNodes( Wlc_Ntk_t * p, int Type );
|
|||
extern void Wlc_NtkPrintStats( Wlc_Ntk_t * p, int fDistrib, int fVerbose );
|
||||
extern Wlc_Ntk_t * Wlc_NtkDupDfs( Wlc_Ntk_t * p );
|
||||
extern void Wlc_NtkTransferNames( Wlc_Ntk_t * pNew, Wlc_Ntk_t * p );
|
||||
extern Wlc_Ntk_t * Wlc_NtkDupSingleNodes( Wlc_Ntk_t * p );
|
||||
/*=== wlcReadSmt.c ========================================================*/
|
||||
extern Wlc_Ntk_t * Wlc_ReadSmtBuffer( char * pFileName, char * pBuffer, char * pLimit );
|
||||
extern Wlc_Ntk_t * Wlc_ReadSmt( char * pFileName );
|
||||
|
|
|
|||
|
|
@ -385,7 +385,9 @@ int Abc_CommandTest( Abc_Frame_t * pAbc, int argc, char ** argv )
|
|||
//pNtk = Wlc_NtkAbstractNodes( pNtk, NULL );
|
||||
//Wlc_AbcUpdateNtk( pAbc, pNtk );
|
||||
//Wlc_GenerateSmtStdout( pAbc );
|
||||
Wlc_NtkSimulateTest( (Wlc_Ntk_t *)pAbc->pAbcWlc );
|
||||
//Wlc_NtkSimulateTest( (Wlc_Ntk_t *)pAbc->pAbcWlc );
|
||||
pNtk = Wlc_NtkDupSingleNodes( pNtk );
|
||||
Wlc_AbcUpdateNtk( pAbc, pNtk );
|
||||
return 0;
|
||||
usage:
|
||||
Abc_Print( -2, "usage: %%test [-vh]\n" );
|
||||
|
|
|
|||
|
|
@ -499,6 +499,59 @@ void Wlc_NtkTransferNames( Wlc_Ntk_t * pNew, Wlc_Ntk_t * p )
|
|||
pNew->vTables = p->vTables; p->vTables = NULL;
|
||||
}
|
||||
|
||||
/**Function*************************************************************
|
||||
|
||||
Synopsis [Duplicates the network by copying each node.]
|
||||
|
||||
Description []
|
||||
|
||||
SideEffects []
|
||||
|
||||
SeeAlso []
|
||||
|
||||
***********************************************************************/
|
||||
Wlc_Ntk_t * Wlc_NtkDupSingleNodes( Wlc_Ntk_t * p )
|
||||
{
|
||||
Wlc_Ntk_t * pNew;
|
||||
Vec_Int_t * vFanins;
|
||||
Wlc_Obj_t * pObj, * pObjNew;
|
||||
Wlc_Obj_t * pFanin, * pFaninNew;
|
||||
int i, k, iFanin, iFaninNew, iObjNew, Count = 0;
|
||||
// count objects
|
||||
Wlc_NtkForEachObj( p, pObj, i )
|
||||
if ( !Wlc_ObjIsCi(pObj) )
|
||||
Count += 1 + Wlc_ObjFaninNum(pObj);
|
||||
// copy objects
|
||||
Wlc_NtkCleanCopy( p );
|
||||
vFanins = Vec_IntAlloc( 100 );
|
||||
pNew = Wlc_NtkAlloc( p->pName, p->nObjsAlloc );
|
||||
Wlc_NtkForEachObj( p, pObj, i )
|
||||
{
|
||||
if ( Wlc_ObjIsCi(pObj) )
|
||||
continue;
|
||||
if ( pObj->Type == WLC_OBJ_ARI_MULTI )
|
||||
continue;
|
||||
// create CIs for the fanins
|
||||
Wlc_ObjForEachFanin( pObj, iFanin, k )
|
||||
{
|
||||
pFanin = Wlc_NtkObj(p, iFanin);
|
||||
iFaninNew = Wlc_ObjAlloc( pNew, WLC_OBJ_PI, pFanin->Signed, pFanin->End, pFanin->Beg );
|
||||
pFaninNew = Wlc_NtkObj(pNew, iFaninNew);
|
||||
Wlc_ObjSetCopy( p, iFanin, iFaninNew );
|
||||
//Wlc_ObjSetCi( pNew, pFaninNew );
|
||||
}
|
||||
// create object
|
||||
iObjNew = Wlc_ObjDup( pNew, p, i, vFanins );
|
||||
pObjNew = Wlc_NtkObj(pNew, iObjNew);
|
||||
pObjNew->fIsPo = 1;
|
||||
Vec_IntPush( &pNew->vPos, iObjNew );
|
||||
}
|
||||
Vec_IntFree( vFanins );
|
||||
Wlc_NtkTransferNames( pNew, p );
|
||||
return pNew;
|
||||
}
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
/// END OF FILE ///
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
|||
Loading…
Reference in New Issue