summaryrefslogtreecommitdiffstats
path: root/src/base/wlc/wlcShow.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/wlc/wlcShow.c')
-rw-r--r--src/base/wlc/wlcShow.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/base/wlc/wlcShow.c b/src/base/wlc/wlcShow.c
index dcd98ebc..6257fb6e 100644
--- a/src/base/wlc/wlcShow.c
+++ b/src/base/wlc/wlcShow.c
@@ -66,7 +66,11 @@ void Wlc_NtkDumpDot( Wlc_Ntk_t * p, char * pFileName, Vec_Int_t * vBold )
pNode->Mark = 1;
// compute levels
- LevelMax = 1 + Wlc_NtkCreateLevelsRev( p );
+ LevelMax = 1 + Wlc_NtkCreateLevels( p );
+
+// Wlc_NtkForEachObj( p, pNode, i )
+// printf( "Obj=%d Lev=%d\n", i, Wlc_ObjLevel(p, pNode) );
+// printf( "\n" );
// write the DOT header
fprintf( pFile, "# %s\n", "WLC structure generated by ABC" );
@@ -188,7 +192,7 @@ void Wlc_NtkDumpDot( Wlc_Ntk_t * p, char * pFileName, Vec_Int_t * vBold )
if ( pNode->Type == WLC_OBJ_CONST )
{
//char * pName = Wlc_ObjName(p, i);
- fprintf( pFile, " Node%d [label = \"%d\'h", i, Wlc_ObjRange(pNode) );
+ fprintf( pFile, " Node%d [label = \"%d:%d\'h", i, i, Wlc_ObjRange(pNode) );
if ( Wlc_ObjRange(pNode) > 64 )
{
Abc_TtPrintHexArrayRev( pFile, (word *)Wlc_ObjConstValue(pNode), 16 );
@@ -201,15 +205,15 @@ void Wlc_NtkDumpDot( Wlc_Ntk_t * p, char * pFileName, Vec_Int_t * vBold )
else if ( pNode->Type == WLC_OBJ_BUF || pNode->Type == WLC_OBJ_MUX )
fprintf( pFile, " Node%d [label = \"%d\"", i, Wlc_ObjRange(pNode) );
else if ( pNode->Type >= WLC_OBJ_LOGIC_NOT && pNode->Type <= WLC_OBJ_COMP_MOREEQU )
- fprintf( pFile, " Node%d [label = \"%s\"", i, Wlc_ObjTypeName(pNode) );
+ fprintf( pFile, " Node%d [label = \"%d:%s\"", i, i, Wlc_ObjTypeName(pNode) );
else
- fprintf( pFile, " Node%d [label = \"%s %d\"", i, Wlc_ObjTypeName(pNode), Wlc_ObjRange(pNode) );
+ fprintf( pFile, " Node%d [label = \"%d:%s %d\"", i, i, Wlc_ObjTypeName(pNode), Wlc_ObjRange(pNode) );
if ( pNode->Type == WLC_OBJ_ARI_MULTI )
fprintf( pFile, ", shape = doublecircle" );
else if ( pNode->Type >= WLC_OBJ_COMP_EQU && pNode->Type <= WLC_OBJ_COMP_MOREEQU )
fprintf( pFile, ", shape = diamond" );
- else if ( pNode->Type == WLC_OBJ_BIT_SELECT || pNode->Type == WLC_OBJ_BIT_CONCAT )
+ else if ( pNode->Type == WLC_OBJ_BIT_SELECT || pNode->Type == WLC_OBJ_BIT_CONCAT || pNode->Type == WLC_OBJ_FF )
fprintf( pFile, ", shape = box" );
else if ( pNode->Type == WLC_OBJ_BUF || pNode->Type == WLC_OBJ_BIT_ZEROPAD || pNode->Type == WLC_OBJ_BIT_SIGNEXT )
fprintf( pFile, ", shape = triangle" );
@@ -237,7 +241,7 @@ void Wlc_NtkDumpDot( Wlc_Ntk_t * p, char * pFileName, Vec_Int_t * vBold )
{
if ( vBold && !pNode->Mark )
continue;
- fprintf( pFile, " Node%d [label = \"%s %d\"", Wlc_ObjId(p, pNode), Wlc_ObjName(p, Wlc_ObjId(p, pNode)), Wlc_ObjRange(pNode) );
+ fprintf( pFile, " Node%d [label = \"%d:%s %d\"", Wlc_ObjId(p, pNode), Wlc_ObjId(p, pNode), Wlc_ObjName(p, Wlc_ObjId(p, pNode)), Wlc_ObjRange(pNode) );
fprintf( pFile, ", shape = %s", i < Wlc_NtkPiNum(p) ? "triangle" : "box" );
fprintf( pFile, ", color = coral, fillcolor = coral" );
fprintf( pFile, "];\n" );
@@ -298,7 +302,7 @@ void Wlc_NtkDumpDot( Wlc_Ntk_t * p, char * pFileName, Vec_Int_t * vBold )
if ( vBold && !pNode->Mark )
continue;
// generate the edge from this node to the next
- Wlc_ObjForEachFanin( pNode, iFanin, k )
+ Wlc_ObjForEachFanin( pNode, iFanin, k ) if ( iFanin )
{
fprintf( pFile, "Node%d", i );
fprintf( pFile, " -> " );