mirror of https://github.com/YosysHQ/abc.git
Improving network visualization in show/&show.
This commit is contained in:
parent
c0f688349d
commit
4745eac324
|
|
@ -47,7 +47,7 @@ void Aig_WriteDotAig( Aig_Man_t * pMan, char * pFileName, int fHaig, Vec_Ptr_t *
|
|||
{
|
||||
FILE * pFile;
|
||||
Aig_Obj_t * pNode;//, * pTemp, * pPrev;
|
||||
int LevelMax, Level, i;
|
||||
int LevelMax, Prev, Level, i;
|
||||
|
||||
if ( Aig_ManNodeNum(pMan) > 200 )
|
||||
{
|
||||
|
|
@ -252,6 +252,14 @@ void Aig_WriteDotAig( Aig_Man_t * pMan, char * pFileName, int fHaig, Vec_Ptr_t *
|
|||
fprintf( pFile, "title1 -> title2 [style = invis];\n" );
|
||||
Aig_ManForEachCo( pMan, pNode, i )
|
||||
fprintf( pFile, "title2 -> Node%d [style = invis];\n", pNode->Id );
|
||||
// generate invisible edges among the COs
|
||||
Prev = -1;
|
||||
Aig_ManForEachCo( pMan, pNode, i )
|
||||
{
|
||||
if ( i > 0 )
|
||||
fprintf( pFile, "Node%d -> Node%d [style = invis];\n", Prev, pNode->Id );
|
||||
Prev = pNode->Id;
|
||||
}
|
||||
|
||||
// generate edges
|
||||
Aig_ManForEachObj( pMan, pNode, i )
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ void Io_WriteDotNtk( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodes, Vec_Ptr_t * vNodesSho
|
|||
FILE * pFile;
|
||||
Abc_Obj_t * pNode, * pFanin;
|
||||
char * pSopString;
|
||||
int LevelMin, LevelMax, fHasCos, Level, i, k, fHasBdds, fCompl;
|
||||
int LevelMin, LevelMax, fHasCos, Level, i, k, fHasBdds, fCompl, Prev;
|
||||
int Limit = 300;
|
||||
|
||||
assert( Abc_NtkIsStrash(pNtk) || Abc_NtkIsLogic(pNtk) );
|
||||
|
|
@ -365,6 +365,18 @@ void Io_WriteDotNtk( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodes, Vec_Ptr_t * vNodesSho
|
|||
continue;
|
||||
fprintf( pFile, "title2 -> Node%d [style = invis];\n", pNode->Id );
|
||||
}
|
||||
// generate invisible edges among the COs
|
||||
Prev = -1;
|
||||
Vec_PtrForEachEntry( Abc_Obj_t *, vNodes, pNode, i )
|
||||
{
|
||||
if ( (int)pNode->Level != LevelMax )
|
||||
continue;
|
||||
if ( !Abc_ObjIsPo(pNode) )
|
||||
continue;
|
||||
if ( Prev >= 0 )
|
||||
fprintf( pFile, "Node%d -> Node%d [style = invis];\n", Prev, pNode->Id );
|
||||
Prev = pNode->Id;
|
||||
}
|
||||
|
||||
// generate edges
|
||||
Vec_PtrForEachEntry( Abc_Obj_t *, vNodes, pNode, i )
|
||||
|
|
@ -424,7 +436,7 @@ void Io_WriteDotSeq( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodes, Vec_Ptr_t * vNodesSho
|
|||
FILE * pFile;
|
||||
Abc_Obj_t * pNode, * pFanin;
|
||||
char * pSopString;
|
||||
int LevelMin, LevelMax, fHasCos, Level, i, k, fHasBdds, fCompl;
|
||||
int LevelMin, LevelMax, fHasCos, Level, i, k, fHasBdds, fCompl, Prev;
|
||||
int Limit = 300;
|
||||
|
||||
assert( Abc_NtkIsStrash(pNtk) || Abc_NtkIsLogic(pNtk) );
|
||||
|
|
@ -713,6 +725,18 @@ void Io_WriteDotSeq( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodes, Vec_Ptr_t * vNodesSho
|
|||
continue;
|
||||
fprintf( pFile, "title2 -> Node%d [style = invis];\n", pNode->Id );
|
||||
}
|
||||
// generate invisible edges among the COs
|
||||
Prev = -1;
|
||||
Vec_PtrForEachEntry( Abc_Obj_t *, vNodes, pNode, i )
|
||||
{
|
||||
if ( (int)pNode->Level != LevelMax )
|
||||
continue;
|
||||
if ( !Abc_ObjIsPo(pNode) )
|
||||
continue;
|
||||
if ( Prev >= 0 )
|
||||
fprintf( pFile, "Node%d -> Node%d [style = invis];\n", Prev, pNode->Id );
|
||||
Prev = pNode->Id;
|
||||
}
|
||||
|
||||
// generate edges
|
||||
Vec_PtrForEachEntry( Abc_Obj_t *, vNodes, pNode, i )
|
||||
|
|
|
|||
Loading…
Reference in New Issue