mirror of https://github.com/YosysHQ/abc.git
Adding 'read_pla -d' to read dc-set along with on-set (useful to derive offset).
This commit is contained in:
parent
9e4d24aa5d
commit
ea7d10d45d
|
|
@ -903,10 +903,10 @@ int IoCommandReadPla( Abc_Frame_t * pAbc, int argc, char ** argv )
|
||||||
{
|
{
|
||||||
Abc_Ntk_t * pNtk;
|
Abc_Ntk_t * pNtk;
|
||||||
char * pFileName;
|
char * pFileName;
|
||||||
int c, fZeros = 0, fBoth = 0, fSkipPrepro = 0, fCheck = 1;
|
int c, fZeros = 0, fBoth = 0, fOnDc = 0, fSkipPrepro = 0, fCheck = 1;
|
||||||
|
|
||||||
Extra_UtilGetoptReset();
|
Extra_UtilGetoptReset();
|
||||||
while ( ( c = Extra_UtilGetopt( argc, argv, "zbxch" ) ) != EOF )
|
while ( ( c = Extra_UtilGetopt( argc, argv, "zbdxch" ) ) != EOF )
|
||||||
{
|
{
|
||||||
switch ( c )
|
switch ( c )
|
||||||
{
|
{
|
||||||
|
|
@ -916,6 +916,9 @@ int IoCommandReadPla( Abc_Frame_t * pAbc, int argc, char ** argv )
|
||||||
case 'b':
|
case 'b':
|
||||||
fBoth ^= 1;
|
fBoth ^= 1;
|
||||||
break;
|
break;
|
||||||
|
case 'd':
|
||||||
|
fOnDc ^= 1;
|
||||||
|
break;
|
||||||
case 'x':
|
case 'x':
|
||||||
fSkipPrepro ^= 1;
|
fSkipPrepro ^= 1;
|
||||||
break;
|
break;
|
||||||
|
|
@ -933,10 +936,10 @@ int IoCommandReadPla( Abc_Frame_t * pAbc, int argc, char ** argv )
|
||||||
// get the input file name
|
// get the input file name
|
||||||
pFileName = argv[globalUtilOptind];
|
pFileName = argv[globalUtilOptind];
|
||||||
// read the file using the corresponding file reader
|
// read the file using the corresponding file reader
|
||||||
if ( fZeros || fBoth || fSkipPrepro )
|
if ( fZeros || fBoth || fOnDc || fSkipPrepro )
|
||||||
{
|
{
|
||||||
Abc_Ntk_t * pTemp;
|
Abc_Ntk_t * pTemp;
|
||||||
pNtk = Io_ReadPla( pFileName, fZeros, fBoth, fSkipPrepro, fCheck );
|
pNtk = Io_ReadPla( pFileName, fZeros, fBoth, fOnDc, fSkipPrepro, fCheck );
|
||||||
if ( pNtk == NULL )
|
if ( pNtk == NULL )
|
||||||
{
|
{
|
||||||
printf( "Reading PLA file has failed.\n" );
|
printf( "Reading PLA file has failed.\n" );
|
||||||
|
|
@ -955,10 +958,11 @@ int IoCommandReadPla( Abc_Frame_t * pAbc, int argc, char ** argv )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
usage:
|
usage:
|
||||||
fprintf( pAbc->Err, "usage: read_pla [-zbxch] <file>\n" );
|
fprintf( pAbc->Err, "usage: read_pla [-zbdxch] <file>\n" );
|
||||||
fprintf( pAbc->Err, "\t reads the network in PLA\n" );
|
fprintf( pAbc->Err, "\t reads the network in PLA\n" );
|
||||||
fprintf( pAbc->Err, "\t-z : toggle reading on-set and off-set [default = %s]\n", fZeros? "off-set":"on-set" );
|
fprintf( pAbc->Err, "\t-z : toggle reading on-set and off-set [default = %s]\n", fZeros? "off-set":"on-set" );
|
||||||
fprintf( pAbc->Err, "\t-b : toggle reading both on-set and off-set as on-set [default = %s]\n", fBoth? "off-set":"on-set" );
|
fprintf( pAbc->Err, "\t-b : toggle reading both on-set and off-set as on-set [default = %s]\n", fBoth? "off-set":"on-set" );
|
||||||
|
fprintf( pAbc->Err, "\t-d : toggle reading both on-set and dc-set as on-set [default = %s]\n", fOnDc? "off-set":"on-set" );
|
||||||
fprintf( pAbc->Err, "\t-x : toggle reading Exclusive SOP rather than SOP [default = %s]\n", fSkipPrepro? "yes":"no" );
|
fprintf( pAbc->Err, "\t-x : toggle reading Exclusive SOP rather than SOP [default = %s]\n", fSkipPrepro? "yes":"no" );
|
||||||
fprintf( pAbc->Err, "\t-c : toggle network check after reading [default = %s]\n", fCheck? "yes":"no" );
|
fprintf( pAbc->Err, "\t-c : toggle network check after reading [default = %s]\n", fCheck? "yes":"no" );
|
||||||
fprintf( pAbc->Err, "\t-h : prints the command summary\n" );
|
fprintf( pAbc->Err, "\t-h : prints the command summary\n" );
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ extern Abc_Ntk_t * Io_ReadEdif( char * pFileName, int fCheck );
|
||||||
/*=== abcReadEqn.c ============================================================*/
|
/*=== abcReadEqn.c ============================================================*/
|
||||||
extern Abc_Ntk_t * Io_ReadEqn( char * pFileName, int fCheck );
|
extern Abc_Ntk_t * Io_ReadEqn( char * pFileName, int fCheck );
|
||||||
/*=== abcReadPla.c ============================================================*/
|
/*=== abcReadPla.c ============================================================*/
|
||||||
extern Abc_Ntk_t * Io_ReadPla( char * pFileName, int fZeros, int fBoth, int fSkipPrepro, int fCheck );
|
extern Abc_Ntk_t * Io_ReadPla( char * pFileName, int fZeros, int fBoth, int fOnDc, int fSkipPrepro, int fCheck );
|
||||||
/*=== abcReadVerilog.c ========================================================*/
|
/*=== abcReadVerilog.c ========================================================*/
|
||||||
extern Abc_Ntk_t * Io_ReadVerilog( char * pFileName, int fCheck );
|
extern Abc_Ntk_t * Io_ReadVerilog( char * pFileName, int fCheck );
|
||||||
/*=== abcWriteAiger.c =========================================================*/
|
/*=== abcWriteAiger.c =========================================================*/
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ ABC_NAMESPACE_IMPL_START
|
||||||
/// DECLARATIONS ///
|
/// DECLARATIONS ///
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
static Abc_Ntk_t * Io_ReadPlaNetwork( Extra_FileReader_t * p, int fZeros, int fBoth, int fSkipPrepro );
|
static Abc_Ntk_t * Io_ReadPlaNetwork( Extra_FileReader_t * p, int fZeros, int fBoth, int fOnDc, int fSkipPrepro );
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
/// FUNCTION DEFINITIONS ///
|
/// FUNCTION DEFINITIONS ///
|
||||||
|
|
@ -326,7 +326,7 @@ void Io_ReadPlaCubePreprocess( Vec_Str_t * vSop, int iCover, int fVerbose )
|
||||||
SeeAlso []
|
SeeAlso []
|
||||||
|
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
Abc_Ntk_t * Io_ReadPla( char * pFileName, int fZeros, int fBoth, int fSkipPrepro, int fCheck )
|
Abc_Ntk_t * Io_ReadPla( char * pFileName, int fZeros, int fBoth, int fOnDc, int fSkipPrepro, int fCheck )
|
||||||
{
|
{
|
||||||
Extra_FileReader_t * p;
|
Extra_FileReader_t * p;
|
||||||
Abc_Ntk_t * pNtk;
|
Abc_Ntk_t * pNtk;
|
||||||
|
|
@ -338,7 +338,7 @@ Abc_Ntk_t * Io_ReadPla( char * pFileName, int fZeros, int fBoth, int fSkipPrepro
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
// read the network
|
// read the network
|
||||||
pNtk = Io_ReadPlaNetwork( p, fZeros, fBoth, fSkipPrepro );
|
pNtk = Io_ReadPlaNetwork( p, fZeros, fBoth, fOnDc, fSkipPrepro );
|
||||||
Extra_FileReaderFree( p );
|
Extra_FileReaderFree( p );
|
||||||
if ( pNtk == NULL )
|
if ( pNtk == NULL )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
@ -363,7 +363,7 @@ Abc_Ntk_t * Io_ReadPla( char * pFileName, int fZeros, int fBoth, int fSkipPrepro
|
||||||
SeeAlso []
|
SeeAlso []
|
||||||
|
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
Abc_Ntk_t * Io_ReadPlaNetwork( Extra_FileReader_t * p, int fZeros, int fBoth, int fSkipPrepro )
|
Abc_Ntk_t * Io_ReadPlaNetwork( Extra_FileReader_t * p, int fZeros, int fBoth, int fOnDc, int fSkipPrepro )
|
||||||
{
|
{
|
||||||
ProgressBar * pProgress;
|
ProgressBar * pProgress;
|
||||||
Vec_Ptr_t * vTokens;
|
Vec_Ptr_t * vTokens;
|
||||||
|
|
@ -514,7 +514,18 @@ Abc_Ntk_t * Io_ReadPlaNetwork( Extra_FileReader_t * p, int fZeros, int fBoth, in
|
||||||
ABC_FREE( ppSops );
|
ABC_FREE( ppSops );
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
if ( fBoth )
|
if ( fZeros )
|
||||||
|
{
|
||||||
|
for ( i = 0; i < nOutputs; i++ )
|
||||||
|
{
|
||||||
|
if ( pCubeOut[i] == '0' )
|
||||||
|
{
|
||||||
|
Vec_StrPrintStr( ppSops[i], pCubeIn );
|
||||||
|
Vec_StrPrintStr( ppSops[i], " 1\n" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if ( fBoth )
|
||||||
{
|
{
|
||||||
for ( i = 0; i < nOutputs; i++ )
|
for ( i = 0; i < nOutputs; i++ )
|
||||||
{
|
{
|
||||||
|
|
@ -525,11 +536,11 @@ Abc_Ntk_t * Io_ReadPlaNetwork( Extra_FileReader_t * p, int fZeros, int fBoth, in
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ( fZeros )
|
else if ( fOnDc )
|
||||||
{
|
{
|
||||||
for ( i = 0; i < nOutputs; i++ )
|
for ( i = 0; i < nOutputs; i++ )
|
||||||
{
|
{
|
||||||
if ( pCubeOut[i] == '0' )
|
if ( pCubeOut[i] == '-' || pCubeOut[i] == '1' )
|
||||||
{
|
{
|
||||||
Vec_StrPrintStr( ppSops[i], pCubeIn );
|
Vec_StrPrintStr( ppSops[i], pCubeIn );
|
||||||
Vec_StrPrintStr( ppSops[i], " 1\n" );
|
Vec_StrPrintStr( ppSops[i], " 1\n" );
|
||||||
|
|
|
||||||
|
|
@ -144,7 +144,7 @@ Abc_Ntk_t * Io_ReadNetlist( char * pFileName, Io_FileType_t FileType, int fCheck
|
||||||
else if ( FileType == IO_FILE_EQN )
|
else if ( FileType == IO_FILE_EQN )
|
||||||
pNtk = Io_ReadEqn( pFileName, fCheck );
|
pNtk = Io_ReadEqn( pFileName, fCheck );
|
||||||
else if ( FileType == IO_FILE_PLA )
|
else if ( FileType == IO_FILE_PLA )
|
||||||
pNtk = Io_ReadPla( pFileName, 0, 0, 0, fCheck );
|
pNtk = Io_ReadPla( pFileName, 0, 0, 0, 0, fCheck );
|
||||||
else if ( FileType == IO_FILE_VERILOG )
|
else if ( FileType == IO_FILE_VERILOG )
|
||||||
pNtk = Io_ReadVerilog( pFileName, fCheck );
|
pNtk = Io_ReadVerilog( pFileName, fCheck );
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue