diff options
-rw-r--r-- | src/base/io/io.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/base/io/io.c b/src/base/io/io.c index 3874a6cf..27742664 100644 --- a/src/base/io/io.c +++ b/src/base/io/io.c @@ -705,11 +705,14 @@ int Abc_NtkReadCexFile( char * pFileName, Abc_Ntk_t * pNtk, Abc_Cex_t ** ppCex, nFrames = -1; int status = 0; int i; + int nRegsNtk = 0; + Abc_Obj_t * pObj; + Abc_NtkForEachLatch( pNtk, pObj, i ) nRegsNtk++; Buffer = ABC_ALLOC( char, MaxLine ); while ( fgets( Buffer, MaxLine, pFile ) != NULL ) { - if ( Buffer[0] == '#' ) + if ( Buffer[0] == '#' || Buffer[0] == 'c' || Buffer[0] == 'f' || Buffer[0] == 'u' ) continue; Buffer[strlen(Buffer) - 1] = '\0'; if (state==0 && strlen(Buffer)>1) { @@ -719,7 +722,7 @@ int Abc_NtkReadCexFile( char * pFileName, Abc_Ntk_t * pNtk, Abc_Cex_t ** ppCex, iPo = 0; status = 1; } - if (state==1 && Buffer[0]!='b' && Buffer[0]!='c') { + if (state==1 && Buffer[0]!='b' && Buffer[0]!='j') { // old format detected, first line was actually register *fOldFormat = 1; state = 3; @@ -766,6 +769,14 @@ int Abc_NtkReadCexFile( char * pFileName, Abc_Ntk_t * pNtk, Abc_Cex_t ** ppCex, } } nRegs = Vec_IntSize(vNums); + if ( nRegs < nRegsNtk ) + { + printf( "WARNING: Register number is smaller then in Ntk. Appending.\n" ); + for (i=0; i<nRegsNtk-nRegs;i++) { + Vec_IntPush( vNums, 0 ); + } + nRegs = Vec_IntSize(vNums); + } state = 3; break; default: @@ -786,12 +797,9 @@ int Abc_NtkReadCexFile( char * pFileName, Abc_Ntk_t * pNtk, Abc_Cex_t ** ppCex, if (usedX) printf( "Warning: Using 0 instead of x in latches or primary inputs\n" ); - Abc_Obj_t * pObj; int iFrameCex = nFrames; - int nRegsNtk = 0; int nPiNtk = 0; int nPoNtk = 0; - Abc_NtkForEachLatch( pNtk, pObj, i ) nRegsNtk++; Abc_NtkForEachPi(pNtk, pObj, i ) nPiNtk++; Abc_NtkForEachPo(pNtk, pObj, i ) nPoNtk++; if ( nRegs < 0 ) |