diff options
| author | Baruch Sterin <baruchs@gmail.com> | 2014-05-12 15:20:17 -0700 | 
|---|---|---|
| committer | Baruch Sterin <baruchs@gmail.com> | 2014-05-12 15:20:17 -0700 | 
| commit | 26c92f161a95ab3b30991174e79dd99f19b1c86f (patch) | |
| tree | bf93eab40203e1ecc9fa26bbe61a86d4738e1a60 /src/base/io/io.c | |
| parent | b902b6843c5099f115fcf68f6567969c7233475e (diff) | |
| download | abc-26c92f161a95ab3b30991174e79dd99f19b1c86f.tar.gz abc-26c92f161a95ab3b30991174e79dd99f19b1c86f.tar.bz2 abc-26c92f161a95ab3b30991174e79dd99f19b1c86f.zip  | |
add an option to write_cex to write the CEX in AIGER 1.9 format.
Diffstat (limited to 'src/base/io/io.c')
| -rw-r--r-- | src/base/io/io.c | 12 | 
1 files changed, 11 insertions, 1 deletions
diff --git a/src/base/io/io.c b/src/base/io/io.c index 4308b243..82b050c3 100644 --- a/src/base/io/io.c +++ b/src/base/io/io.c @@ -2010,11 +2010,12 @@ int IoCommandWriteCex( Abc_Frame_t * pAbc, int argc, char **argv )      int fUseOldMin = 0;      int fCheckCex  = 0;      int forceSeq   = 0; +    int fAiger     = 0;      int fPrintFull = 0;      int fVerbose   = 0;      Extra_UtilGetoptReset(); -    while ( ( c = Extra_UtilGetopt( argc, argv, "snmocfvh" ) ) != EOF ) +    while ( ( c = Extra_UtilGetopt( argc, argv, "snmocafvh" ) ) != EOF )      {          switch ( c )          { @@ -2033,6 +2034,9 @@ int IoCommandWriteCex( Abc_Frame_t * pAbc, int argc, char **argv )              case 'c':                  fCheckCex ^= 1;                  break; +            case 'a': +                fAiger ^= 1; +                break;              case 'f':                  fPrintFull ^= 1;                  break; @@ -2129,8 +2133,13 @@ int IoCommandWriteCex( Abc_Frame_t * pAbc, int argc, char **argv )          {              Abc_NtkForEachLatch( pNtk, pObj, i )                  fprintf( pFile, "%c", '0'+!Abc_LatchIsInit0(pObj) ); +              for ( i = pCex->nRegs; i < pCex->nBits; i++ ) +            { +                if ( fAiger && (i-pCex->nRegs)%pCex->nPis == 0) +                    fprintf( pFile, "\n");                  fprintf( pFile, "%c", '0'+Abc_InfoHasBit(pCex->pData, i) ); +            }          }          fprintf( pFile, "\n" );          fclose( pFile ); @@ -2172,6 +2181,7 @@ usage:      fprintf( pAbc->Err, "\t-m     : minimize counter-example by dropping don't-care values [default = %s]\n", fMinimize? "yes": "no" );      fprintf( pAbc->Err, "\t-o     : use old counter-example minimization algorithm [default = %s]\n", fUseOldMin? "yes": "no" );      fprintf( pAbc->Err, "\t-c     : check generated counter-example using ternary simulation [default = %s]\n", fCheckCex? "yes": "no" ); +    fprintf( pAbc->Err, "\t-a     : print cex in AIGER 1.9 format [default = %s].\n", fAiger? "yes": "no" );      fprintf( pAbc->Err, "\t-f     : enable printing flop values in each timeframe [default = %s].\n", fPrintFull? "yes": "no" );        fprintf( pAbc->Err, "\t-v     : enable verbose output [default = %s].\n", fVerbose? "yes": "no" );        fprintf( pAbc->Err, "\t-h     : print the help massage\n" );  | 
