diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2017-01-26 22:22:22 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2017-01-26 22:22:22 -0800 |
commit | c2b805dc85fa3c6e96cac04fa1d8ea182e9aab62 (patch) | |
tree | 7aaac0b835e1fad82b8983a164e7e2f39193388a /src/base/wlc/wlcNtk.c | |
parent | 64d7119ddc7fb1720542b8071f490763466a5d31 (diff) | |
download | abc-c2b805dc85fa3c6e96cac04fa1d8ea182e9aab62.tar.gz abc-c2b805dc85fa3c6e96cac04fa1d8ea182e9aab62.tar.bz2 abc-c2b805dc85fa3c6e96cac04fa1d8ea182e9aab62.zip |
Adding visualization of word-level networks Wlc_Ntk_t.
Diffstat (limited to 'src/base/wlc/wlcNtk.c')
-rw-r--r-- | src/base/wlc/wlcNtk.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/base/wlc/wlcNtk.c b/src/base/wlc/wlcNtk.c index 822c2eb5..bd00a570 100644 --- a/src/base/wlc/wlcNtk.c +++ b/src/base/wlc/wlcNtk.c @@ -314,7 +314,7 @@ void Wlc_NtkCollectStats( Wlc_Ntk_t * p, int nObjs[2][WLC_OBJ_NUMBER] ) return; for ( n = 0; n < 2; n++ ) { - Wlc_NtkMarkCone( p, n, 1 ); + Wlc_NtkMarkCone( p, n, 1, 1, 0 ); Wlc_NtkForEachObj( p, pObj, i ) if ( pObj->Mark ) nObjs[n][pObj->Type]++; @@ -325,7 +325,7 @@ int Wlc_NtkCountRealPis( Wlc_Ntk_t * p ) { Wlc_Obj_t * pObj; int i, Count = 0; - Wlc_NtkMarkCone( p, -1, 1 ); + Wlc_NtkMarkCone( p, -1, -1, 1, 0 ); Wlc_NtkForEachPi( p, pObj, i ) Count += pObj->Mark; Wlc_NtkCleanMarks( p ); @@ -859,17 +859,18 @@ void Wlc_NtkMarkCone_rec( Wlc_Ntk_t * p, Wlc_Obj_t * pObj, Vec_Int_t * vFlops ) Wlc_ObjForEachFanin( pObj, iFanin, i ) Wlc_NtkMarkCone_rec( p, Wlc_NtkObj(p, iFanin), vFlops ); } -void Wlc_NtkMarkCone( Wlc_Ntk_t * p, int iCoId, int fSeq ) +void Wlc_NtkMarkCone( Wlc_Ntk_t * p, int iCoId, int Range, int fSeq, int fAllPis ) { Vec_Int_t * vFlops; Wlc_Obj_t * pObj; int i, CiId, CoId; Wlc_NtkCleanMarks( p ); -// Wlc_NtkForEachPi( p, pObj, i ) -// pObj->Mark = 1; + if ( fAllPis ) + Wlc_NtkForEachPi( p, pObj, i ) + pObj->Mark = 1; vFlops = Vec_IntAlloc( 100 ); Wlc_NtkForEachCo( p, pObj, i ) - if ( iCoId == -1 || i == iCoId ) + if ( iCoId == -1 || (i >= iCoId && i < iCoId + Range) ) Wlc_NtkMarkCone_rec( p, pObj, vFlops ); if ( fSeq ) Vec_IntForEachEntry( vFlops, CiId, i ) @@ -885,7 +886,7 @@ void Wlc_NtkProfileCones( Wlc_Ntk_t * p ) int i, nPis, nFos, nNodes, nAdders, nMults; Wlc_NtkForEachCo( p, pObj, i ) { - Wlc_NtkMarkCone( p, i, 0 ); + Wlc_NtkMarkCone( p, i, 1, 0, 0 ); nNodes = Wlc_NtkCountMarked( p, &nPis, &nFos, &nAdders, &nMults ); printf( "Cone %5d : ", i ); printf( "PI = %4d ", nPis ); |