mirror of https://github.com/YosysHQ/abc.git
Command to write the network into an edgelist file, contributed by Cunxi Yu (University of Utah).
This commit is contained in:
parent
1a91797316
commit
65a756bf01
|
|
@ -65,6 +65,7 @@ static int IoCommandWriteAigerCex( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
static int IoCommandWriteBaf ( Abc_Frame_t * pAbc, int argc, char **argv );
|
static int IoCommandWriteBaf ( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
static int IoCommandWriteBblif ( Abc_Frame_t * pAbc, int argc, char **argv );
|
static int IoCommandWriteBblif ( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
static int IoCommandWriteBlif ( Abc_Frame_t * pAbc, int argc, char **argv );
|
static int IoCommandWriteBlif ( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
|
static int IoCommandWriteEdgelist( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
static int IoCommandWriteBlifMv ( Abc_Frame_t * pAbc, int argc, char **argv );
|
static int IoCommandWriteBlifMv ( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
static int IoCommandWriteBench ( Abc_Frame_t * pAbc, int argc, char **argv );
|
static int IoCommandWriteBench ( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
static int IoCommandWriteBook ( Abc_Frame_t * pAbc, int argc, char **argv );
|
static int IoCommandWriteBook ( Abc_Frame_t * pAbc, int argc, char **argv );
|
||||||
|
|
@ -145,6 +146,7 @@ void Io_Init( Abc_Frame_t * pAbc )
|
||||||
Cmd_CommandAdd( pAbc, "I/O", "&write_cnf", IoCommandWriteCnf2, 0 );
|
Cmd_CommandAdd( pAbc, "I/O", "&write_cnf", IoCommandWriteCnf2, 0 );
|
||||||
Cmd_CommandAdd( pAbc, "I/O", "write_dot", IoCommandWriteDot, 0 );
|
Cmd_CommandAdd( pAbc, "I/O", "write_dot", IoCommandWriteDot, 0 );
|
||||||
Cmd_CommandAdd( pAbc, "I/O", "write_eqn", IoCommandWriteEqn, 0 );
|
Cmd_CommandAdd( pAbc, "I/O", "write_eqn", IoCommandWriteEqn, 0 );
|
||||||
|
Cmd_CommandAdd( pAbc, "I/O", "write_edgelist",IoCommandWriteEdgelist, 0 );
|
||||||
Cmd_CommandAdd( pAbc, "I/O", "write_gml", IoCommandWriteGml, 0 );
|
Cmd_CommandAdd( pAbc, "I/O", "write_gml", IoCommandWriteGml, 0 );
|
||||||
// Cmd_CommandAdd( pAbc, "I/O", "write_list", IoCommandWriteList, 0 );
|
// Cmd_CommandAdd( pAbc, "I/O", "write_list", IoCommandWriteList, 0 );
|
||||||
Cmd_CommandAdd( pAbc, "I/O", "write_pla", IoCommandWritePla, 0 );
|
Cmd_CommandAdd( pAbc, "I/O", "write_pla", IoCommandWritePla, 0 );
|
||||||
|
|
@ -2792,6 +2794,69 @@ usage:
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**Function*************************************************************
|
||||||
|
|
||||||
|
Synopsis []
|
||||||
|
|
||||||
|
Description []
|
||||||
|
|
||||||
|
SideEffects []
|
||||||
|
|
||||||
|
SeeAlso []
|
||||||
|
|
||||||
|
***********************************************************************/
|
||||||
|
int IoCommandWriteEdgelist( Abc_Frame_t * pAbc, int argc, char **argv )
|
||||||
|
{
|
||||||
|
char * pFileName;
|
||||||
|
int c, fSpecial = 0;
|
||||||
|
|
||||||
|
Extra_UtilGetoptReset();
|
||||||
|
while ( ( c = Extra_UtilGetopt( argc, argv, "Nh" ) ) != EOF )
|
||||||
|
{
|
||||||
|
switch ( c )
|
||||||
|
{
|
||||||
|
case 'N':
|
||||||
|
fSpecial ^= 1;
|
||||||
|
break;
|
||||||
|
/*
|
||||||
|
case 'a':
|
||||||
|
fUseHie ^= 1;
|
||||||
|
break;
|
||||||
|
case 'h':
|
||||||
|
goto usage;
|
||||||
|
*/
|
||||||
|
default:
|
||||||
|
goto usage;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( pAbc->pNtkCur == NULL )
|
||||||
|
{
|
||||||
|
fprintf( pAbc->Out, "Empty network.\n" );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if ( argc != globalUtilOptind + 1 )
|
||||||
|
goto usage;
|
||||||
|
// get the output file name
|
||||||
|
pFileName = argv[globalUtilOptind];
|
||||||
|
// call the corresponding file writer
|
||||||
|
if ( fSpecial ) // keep original naming
|
||||||
|
Io_WriteEdgelist( pAbc->pNtkCur, pFileName, 1, 0, 0, fSpecial); //last option is fName
|
||||||
|
else
|
||||||
|
Io_WriteEdgelist( pAbc->pNtkCur, pFileName, 1, 0, 0, fSpecial); //last option is fName
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
usage:
|
||||||
|
fprintf( pAbc->Err, "usage: write_edgelist [-N] <file>\n" );
|
||||||
|
fprintf( pAbc->Err, "\t writes the network into edgelist file\n" );
|
||||||
|
fprintf( pAbc->Err, "\t part of Verilog-2-PyG (PyTorch Geometric). more details https://github.com/ycunxi/Verilog-to-PyG \n" );
|
||||||
|
fprintf( pAbc->Err, "\t-N : toggle keeping original naming of the netlist in edgelist (default=False)\n");
|
||||||
|
fprintf( pAbc->Err, "\t-h : print the help massage\n" );
|
||||||
|
fprintf( pAbc->Err, "\tfile : the name of the file to write (extension .el)\n" );
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**Function*************************************************************
|
/**Function*************************************************************
|
||||||
|
|
||||||
Synopsis []
|
Synopsis []
|
||||||
|
|
|
||||||
|
|
@ -125,6 +125,8 @@ extern void Io_WriteDotNtk( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodes,
|
||||||
extern void Io_WriteDotSeq( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodes, Vec_Ptr_t * vNodesShow, char * pFileName, int fGateNames, int fUseReverse );
|
extern void Io_WriteDotSeq( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodes, Vec_Ptr_t * vNodesShow, char * pFileName, int fGateNames, int fUseReverse );
|
||||||
/*=== abcWriteEqn.c ===========================================================*/
|
/*=== abcWriteEqn.c ===========================================================*/
|
||||||
extern void Io_WriteEqn( Abc_Ntk_t * pNtk, char * pFileName );
|
extern void Io_WriteEqn( Abc_Ntk_t * pNtk, char * pFileName );
|
||||||
|
/*=== abcWriteEdgelist.c ===========================================================*/
|
||||||
|
extern void Io_WriteEdgelist( Abc_Ntk_t * pNtk, char * pFileName, int fWriteLatches, int fBb2Wb, int fSeq , int fName);
|
||||||
/*=== abcWriteGml.c ===========================================================*/
|
/*=== abcWriteGml.c ===========================================================*/
|
||||||
extern void Io_WriteGml( Abc_Ntk_t * pNtk, char * pFileName );
|
extern void Io_WriteGml( Abc_Ntk_t * pNtk, char * pFileName );
|
||||||
/*=== abcWriteList.c ==========================================================*/
|
/*=== abcWriteList.c ==========================================================*/
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -24,6 +24,7 @@ SRC += src/base/io/io.c \
|
||||||
src/base/io/ioWriteCnf.c \
|
src/base/io/ioWriteCnf.c \
|
||||||
src/base/io/ioWriteDot.c \
|
src/base/io/ioWriteDot.c \
|
||||||
src/base/io/ioWriteEqn.c \
|
src/base/io/ioWriteEqn.c \
|
||||||
|
src/base/io/ioWriteEdgelist.c \
|
||||||
src/base/io/ioWriteGml.c \
|
src/base/io/ioWriteGml.c \
|
||||||
src/base/io/ioWriteList.c \
|
src/base/io/ioWriteList.c \
|
||||||
src/base/io/ioWritePla.c \
|
src/base/io/ioWritePla.c \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue