diff options
| author | Niklas Een <niklas@een.se> | 2012-03-03 08:58:25 -0800 | 
|---|---|---|
| committer | Niklas Een <niklas@een.se> | 2012-03-03 08:58:25 -0800 | 
| commit | 929e5e16e64adc0169ec8c412a97ea9b0f5e6547 (patch) | |
| tree | 538caed8a3f9be38addf95e5f4eadf2a75b6bd80 /src | |
| parent | 1e40c5b79fdbf5ade1deaf691a08a77ef9295b29 (diff) | |
| download | abc-929e5e16e64adc0169ec8c412a97ea9b0f5e6547.tar.gz abc-929e5e16e64adc0169ec8c412a97ea9b0f5e6547.tar.bz2 abc-929e5e16e64adc0169ec8c412a97ea9b0f5e6547.zip  | |
Some fixes to the Bridge code. More to do.
Diffstat (limited to 'src')
| -rw-r--r-- | src/misc/util/utilBridge.c | 29 | 
1 files changed, 21 insertions, 8 deletions
diff --git a/src/misc/util/utilBridge.c b/src/misc/util/utilBridge.c index 9de38a63..3fd24936 100644 --- a/src/misc/util/utilBridge.c +++ b/src/misc/util/utilBridge.c @@ -177,16 +177,28 @@ int Gia_ManToBridgeBadAbs( FILE * pFile )  ***********************************************************************/  void Gia_ManFromBridgeHolds( FILE * pFile )  { +    fprintf( pFile, "%.6d", 101 /*message type = Result*/); +    fprintf( pFile, " " ); +    fprintf( pFile, "%.16d", 4 /*size in bytes*/); +    fprintf( pFile, " " ); +      fputc( (char)BRIDGE_VALUE_1, pFile ); // true      fputc( (char)1, pFile ); // size of vector (Armin's encoding)      fputc( (char)0, pFile ); // number of the property (Armin's encoding)      fputc( (char)0, pFile ); // no invariant +    fflush(pFile);  }  void Gia_ManFromBridgeUnknown( FILE * pFile )  { +    fprintf( pFile, "%.6d", 101 /*message type = Result*/); +    fprintf( pFile, " " ); +    fprintf( pFile, "%.16d", 3 /*size in bytes*/); +    fprintf( pFile, " " ); +      fputc( (char)BRIDGE_VALUE_X, pFile ); // undef      fputc( (char)1, pFile ); // size of vector (Armin's encoding)      fputc( (char)0, pFile ); // number of the property (Armin's encoding) +    fflush(pFile);  }  void Gia_ManFromBridgeCex( FILE * pFile, Abc_Cex_t * pCex )  { @@ -210,9 +222,11 @@ void Gia_ManFromBridgeCex( FILE * pFile, Abc_Cex_t * pCex )      Vec_StrPush( vStr, (char)1 ); // the number of frames (for a concrete counter-example)      for ( i = 0; i < pCex->nRegs; i++ )          Vec_StrPush( vStr, (char)BRIDGE_VALUE_0 ); // always zero!!! -    RetValue = fwrite( Vec_StrArray(vStr), Vec_StrSize(vStr), 1, pFile ); -    assert( RetValue == 1 ); +//    RetValue = fwrite( Vec_StrArray(vStr), Vec_StrSize(vStr), 1, pFile ); +    Gia_CreateHeader(pFile, 101/*type=Result*/, Vec_StrSize(vStr), (unsigned char*)Vec_StrArray(vStr)); +      Vec_StrFree( vStr ); +    fflush(pFile);  }  int Gia_ManToBridgeResult( FILE * pFile, int Result, Abc_Cex_t * pCex )  { @@ -280,7 +294,7 @@ Gia_Man_t *  Gia_ManFromBridgeReadBody( int Size, unsigned char * pBuffer, Vec_I          iFan1 = Abc_LitNotCond( Vec_IntEntry(vLits, iFan1 >> 1), iFan1 & 1 );          if ( fHash )              Vec_IntPush( vLits, Gia_ManHashAnd(p, iFan0, iFan1) ); -        else  +        else              Vec_IntPush( vLits, Gia_ManAppendAnd(p, iFan0, iFan1) );      } @@ -299,7 +313,7 @@ Gia_Man_t *  Gia_ManFromBridgeReadBody( int Size, unsigned char * pBuffer, Vec_I      for ( i = 0; i < nProps; i++ )      {          iFan0 = Gia_ReadAigerDecode( &pBuffer ); -        iFan0 = Abc_LitNotCond( Vec_IntEntry(vLits, iFan0 >> 1), iFan0 & 1 );  +        iFan0 = Abc_LitNotCond( Vec_IntEntry(vLits, iFan0 >> 1), iFan0 & 1 );          // complement property output!!!          Gia_ManAppendCo( p, Abc_LitNot(iFan0) );      } @@ -396,13 +410,13 @@ Gia_Man_t * Gia_ManFromBridge( FILE * pFile, Vec_Int_t ** pvInit )      RetValue = Gia_ManFromBridgeReadPackage( pFile, &Type, &Size, &pBuffer );      ABC_FREE( pBuffer );      if ( !RetValue ) -        return NULL;  +        return NULL;      RetValue = Gia_ManFromBridgeReadPackage( pFile, &Type, &Size, &pBuffer );      if ( !RetValue )          return NULL; -    p = Gia_ManFromBridgeReadBody( Size, pBuffer, pvInit );  +    p = Gia_ManFromBridgeReadBody( Size, pBuffer, pvInit );      ABC_FREE( pBuffer );      if ( p == NULL )          return NULL; @@ -471,7 +485,7 @@ void Gia_ManFromBridgeTest( char * pFileName )      Gia_ManPrintStats( p, 0, 0 );      Gia_WriteAiger( p, "temp.aig", 0, 0 ); -    +      Gia_ManToBridgeAbsNetlistTest( "par_.dump", p );      Gia_ManStop( p );  } @@ -484,4 +498,3 @@ void Gia_ManFromBridgeTest( char * pFileName )  ABC_NAMESPACE_IMPL_END -  | 
