diff options
Diffstat (limited to 'src/base/io/ioReadBlifAig.c')
-rw-r--r-- | src/base/io/ioReadBlifAig.c | 77 |
1 files changed, 41 insertions, 36 deletions
diff --git a/src/base/io/ioReadBlifAig.c b/src/base/io/ioReadBlifAig.c index 8d4c77d4..caa776f9 100644 --- a/src/base/io/ioReadBlifAig.c +++ b/src/base/io/ioReadBlifAig.c @@ -22,6 +22,9 @@ #include "extra.h" #include "vecPtr.h" +ABC_NAMESPACE_IMPL_START + + //////////////////////////////////////////////////////////////////////// /// DECLARATIONS /// //////////////////////////////////////////////////////////////////////// @@ -60,7 +63,7 @@ struct Io_BlifMan_t_ // temporary objects Io_BlifObj_t * pObjects; // the storage for objects int nObjects; // the number of objects allocated - int iObjNext; // the next ABC_FREE object + int iObjNext; // the next free object // file lines char * pModel; // .model line Vec_Ptr_t * vInputs; // .inputs lines @@ -347,7 +350,7 @@ static int Io_BlifGetLine( Io_BlifMan_t * p, char * pToken ) { char * pLine; int i; - Vec_PtrForEachEntry( p->vLines, pLine, i ) + Vec_PtrForEachEntry( char *, p->vLines, pLine, i ) if ( pToken < pLine ) return i; return -1; @@ -369,7 +372,7 @@ static int Io_BlifEstimatePiNum( Io_BlifMan_t * p ) char * pCur; int i, fSpaces; int Counter = 0; - Vec_PtrForEachEntry( p->vInputs, pCur, i ) + Vec_PtrForEachEntry( char *, p->vInputs, pCur, i ) for ( fSpaces = 0; *pCur; pCur++ ) { if ( Io_BlifCharIsSpace(*pCur) ) @@ -493,7 +496,7 @@ static void Io_BlifReadPreparse( Io_BlifMan_t * p ) } // unfold the line extensions and sort lines by directive - Vec_PtrForEachEntry( p->vLines, pCur, i ) + Vec_PtrForEachEntry( char *, p->vLines, pCur, i ) { if ( *pCur == 0 ) continue; @@ -569,19 +572,19 @@ static Abc_Ntk_t * Io_BlifParse( Io_BlifMan_t * p ) if ( !Io_BlifParseModel( p, p->pModel ) ) return NULL; // parse the inputs - Vec_PtrForEachEntry( p->vInputs, pLine, i ) + Vec_PtrForEachEntry( char *, p->vInputs, pLine, i ) if ( !Io_BlifParseInputs( p, pLine ) ) return NULL; // parse the outputs - Vec_PtrForEachEntry( p->vOutputs, pLine, i ) + Vec_PtrForEachEntry( char *, p->vOutputs, pLine, i ) if ( !Io_BlifParseOutputs( p, pLine ) ) return NULL; // parse the latches - Vec_PtrForEachEntry( p->vLatches, pLine, i ) + Vec_PtrForEachEntry( char *, p->vLatches, pLine, i ) if ( !Io_BlifParseLatch( p, pLine ) ) return NULL; // parse the nodes - Vec_PtrForEachEntry( p->vNames, pLine, i ) + Vec_PtrForEachEntry( char *, p->vNames, pLine, i ) if ( !Io_BlifParseNames( p, pLine ) ) return NULL; // reconstruct the network from the parsed data @@ -608,14 +611,14 @@ static int Io_BlifParseModel( Io_BlifMan_t * p, char * pLine ) { char * pToken; Io_BlifSplitIntoTokens( p->vTokens, pLine, '\0' ); - pToken = Vec_PtrEntry( p->vTokens, 0 ); + pToken = (char *)Vec_PtrEntry( p->vTokens, 0 ); assert( !strcmp(pToken, "model") ); if ( Vec_PtrSize(p->vTokens) != 2 ) { sprintf( p->sError, "Line %d: Model line has %d entries while it should have 2.", Io_BlifGetLine(p, pToken), Vec_PtrSize(p->vTokens) ); return 0; } - p->pModel = Vec_PtrEntry( p->vTokens, 1 ); + p->pModel = (char *)Vec_PtrEntry( p->vTokens, 1 ); return 1; } @@ -636,9 +639,9 @@ static int Io_BlifParseInputs( Io_BlifMan_t * p, char * pLine ) char * pToken; int i; Io_BlifSplitIntoTokens( p->vTokens, pLine, '\0' ); - pToken = Vec_PtrEntry(p->vTokens, 0); + pToken = (char *)Vec_PtrEntry(p->vTokens, 0); assert( !strcmp(pToken, "inputs") ); - Vec_PtrForEachEntryStart( p->vTokens, pToken, i, 1 ) + Vec_PtrForEachEntryStart( char *, p->vTokens, pToken, i, 1 ) { pObj = Io_BlifHashFindOrAdd( p, pToken ); if ( pObj->fPi ) @@ -669,9 +672,9 @@ static int Io_BlifParseOutputs( Io_BlifMan_t * p, char * pLine ) char * pToken; int i; Io_BlifSplitIntoTokens( p->vTokens, pLine, '\0' ); - pToken = Vec_PtrEntry(p->vTokens, 0); + pToken = (char *)Vec_PtrEntry(p->vTokens, 0); assert( !strcmp(pToken, "outputs") ); - Vec_PtrForEachEntryStart( p->vTokens, pToken, i, 1 ) + Vec_PtrForEachEntryStart( char *, p->vTokens, pToken, i, 1 ) { pObj = Io_BlifHashFindOrAdd( p, pToken ); if ( pObj->fPo ) @@ -699,7 +702,7 @@ static int Io_BlifParseLatch( Io_BlifMan_t * p, char * pLine ) char * pToken; int Init; Io_BlifSplitIntoTokens( p->vTokens, pLine, '\0' ); - pToken = Vec_PtrEntry(p->vTokens,0); + pToken = (char *)Vec_PtrEntry(p->vTokens,0); assert( !strcmp(pToken, "latch") ); if ( Vec_PtrSize(p->vTokens) < 3 ) { @@ -708,7 +711,7 @@ static int Io_BlifParseLatch( Io_BlifMan_t * p, char * pLine ) } // get initial value if ( Vec_PtrSize(p->vTokens) > 3 ) - Init = atoi( Vec_PtrEntry(p->vTokens,3) ); + Init = atoi( (char *)Vec_PtrEntry(p->vTokens,3) ); else Init = 2; if ( Init < 0 || Init > 2 ) @@ -723,12 +726,12 @@ static int Io_BlifParseLatch( Io_BlifMan_t * p, char * pLine ) else // if ( Init == 2 ) Init = IO_BLIF_INIT_DC; // get latch input - pObj = Io_BlifHashFindOrAdd( p, Vec_PtrEntry(p->vTokens,1) ); + pObj = Io_BlifHashFindOrAdd( p, (char *)Vec_PtrEntry(p->vTokens,1) ); pObj->fLi = 1; Vec_PtrPush( p->vLis, pObj ); pObj->Init = Init; // get latch output - pObj = Io_BlifHashFindOrAdd( p, Vec_PtrEntry(p->vTokens,2) ); + pObj = Io_BlifHashFindOrAdd( p, (char *)Vec_PtrEntry(p->vTokens,2) ); if ( pObj->fPi ) { sprintf( p->sError, "Line %d: Primary input (%s) is also defined latch output.", Io_BlifGetLine(p, pToken), (char*)Vec_PtrEntry(p->vTokens,2) ); @@ -761,8 +764,8 @@ static int Io_BlifParseNames( Io_BlifMan_t * p, char * pLine ) Io_BlifObj_t * pObj; char * pName; Io_BlifSplitIntoTokens( p->vTokens, pLine, '\0' ); - assert( !strcmp(Vec_PtrEntry(p->vTokens,0), "names") ); - pName = Vec_PtrEntryLast( p->vTokens ); + assert( !strcmp((char *)Vec_PtrEntry(p->vTokens,0), "names") ); + pName = (char *)Vec_PtrEntryLast( p->vTokens ); pObj = Io_BlifHashFindOrAdd( p, pName ); if ( pObj->fPi ) { @@ -811,7 +814,7 @@ static Abc_Obj_t * Io_BlifParseTable( Io_BlifMan_t * p, char * pTable, Vec_Ptr_t return Abc_ObjNot( Abc_AigConst1(p->pAig) ); if ( Vec_PtrSize(p->vTokens) == 1 ) { - pOutput = Vec_PtrEntry( p->vTokens, 0 ); + pOutput = (char *)Vec_PtrEntry( p->vTokens, 0 ); if ( ((pOutput[0] - '0') & 0x8E) || pOutput[1] ) { sprintf( p->sError, "Line %d: Constant table has wrong output value (%s).", Io_BlifGetLine(p, pOutput), pOutput ); @@ -819,7 +822,7 @@ static Abc_Obj_t * Io_BlifParseTable( Io_BlifMan_t * p, char * pTable, Vec_Ptr_t } return Abc_ObjNotCond( Abc_AigConst1(p->pAig), pOutput[0] == '0' ); } - pProduct = Vec_PtrEntry( p->vTokens, 0 ); + pProduct = (char *)Vec_PtrEntry( p->vTokens, 0 ); if ( Vec_PtrSize(p->vTokens) % 2 == 1 ) { sprintf( p->sError, "Line %d: Table has odd number of tokens (%d).", Io_BlifGetLine(p, pProduct), Vec_PtrSize(p->vTokens) ); @@ -829,8 +832,8 @@ static Abc_Obj_t * Io_BlifParseTable( Io_BlifMan_t * p, char * pTable, Vec_Ptr_t pRes = Abc_ObjNot( Abc_AigConst1(p->pAig) ); for ( i = 0; i < Vec_PtrSize(p->vTokens)/2; i++ ) { - pProduct = Vec_PtrEntry( p->vTokens, 2*i + 0 ); - pOutput = Vec_PtrEntry( p->vTokens, 2*i + 1 ); + pProduct = (char *)Vec_PtrEntry( p->vTokens, 2*i + 0 ); + pOutput = (char *)Vec_PtrEntry( p->vTokens, 2*i + 1 ); if ( strlen(pProduct) != (unsigned)Vec_PtrSize(vFanins) ) { sprintf( p->sError, "Line %d: Cube (%s) has size different from the fanin count (%d).", Io_BlifGetLine(p, pProduct), pProduct, Vec_PtrSize(vFanins) ); @@ -853,16 +856,16 @@ static Abc_Obj_t * Io_BlifParseTable( Io_BlifMan_t * p, char * pTable, Vec_Ptr_t for ( k = 0; pProduct[k]; k++ ) { if ( pProduct[k] == '0' ) - pCube = Abc_AigAnd( p->pAig->pManFunc, pCube, Abc_ObjNot(Vec_PtrEntry(vFanins,k)) ); + pCube = Abc_AigAnd( (Abc_Aig_t *)p->pAig->pManFunc, pCube, Abc_ObjNot((Abc_Obj_t *)Vec_PtrEntry(vFanins,k)) ); else if ( pProduct[k] == '1' ) - pCube = Abc_AigAnd( p->pAig->pManFunc, pCube, Vec_PtrEntry(vFanins,k) ); + pCube = Abc_AigAnd( (Abc_Aig_t *)p->pAig->pManFunc, pCube, (Abc_Obj_t *)Vec_PtrEntry(vFanins,k) ); else if ( pProduct[k] != '-' ) { sprintf( p->sError, "Line %d: Product term (%s) contains character (%c).", Io_BlifGetLine(p, pProduct), pProduct, pProduct[k] ); return NULL; } } - pRes = Abc_AigOr( p->pAig->pManFunc, pRes, pCube ); + pRes = Abc_AigOr( (Abc_Aig_t *)p->pAig->pManFunc, pRes, pCube ); } pRes = Abc_ObjNotCond( pRes, Polarity == 0 ); return pRes; @@ -901,13 +904,13 @@ static Abc_Obj_t * Io_BlifParseConstruct_rec( Io_BlifMan_t * p, char * pName ) } // check if the AIG is already constructed if ( pObjIo->pEquiv ) - return pObjIo->pEquiv; + return (Abc_Obj_t *)pObjIo->pEquiv; // mark this node on the path pObjIo->fLoop = 1; // construct the AIGs for the fanins vFanins = Vec_PtrAlloc( 8 ); Io_BlifCollectTokens( vFanins, pObjIo->pName - pObjIo->Offset, pObjIo->pName ); - Vec_PtrForEachEntry( vFanins, pNameFanin, i ) + Vec_PtrForEachEntry( char *, vFanins, pNameFanin, i ) { pFaninAbc = Io_BlifParseConstruct_rec( p, pNameFanin ); if ( pFaninAbc == NULL ) @@ -923,7 +926,7 @@ static Abc_Obj_t * Io_BlifParseConstruct_rec( Io_BlifMan_t * p, char * pName ) // unmark this node on the path pObjIo->fLoop = 0; // remember the new node - return pObjIo->pEquiv; + return (Abc_Obj_t *)pObjIo->pEquiv; } /**Function************************************************************* @@ -948,24 +951,24 @@ static int Io_BlifParseConstruct( Io_BlifMan_t * p ) pAig->pName = Extra_UtilStrsav( p->pModel ); pAig->pSpec = Extra_UtilStrsav( p->pFileName ); // create PIs - Vec_PtrForEachEntry( p->vPis, pObjIo, i ) + Vec_PtrForEachEntry( Io_BlifObj_t *, p->vPis, pObjIo, i ) { pObj = Abc_NtkCreatePi( pAig ); Abc_ObjAssignName( pObj, pObjIo->pName, NULL ); pObjIo->pEquiv = pObj; } // create POs - Vec_PtrForEachEntry( p->vPos, pObjIo, i ) + Vec_PtrForEachEntry( Io_BlifObj_t *, p->vPos, pObjIo, i ) { pObj = Abc_NtkCreatePo( pAig ); Abc_ObjAssignName( pObj, pObjIo->pName, NULL ); } // create latches - Vec_PtrForEachEntry( p->vLos, pObjIo, i ) + Vec_PtrForEachEntry( Io_BlifObj_t *, p->vLos, pObjIo, i ) { // add the latch input terminal pObj = Abc_NtkCreateBi( pAig ); - pObjIoInput = Vec_PtrEntry( p->vLis, i ); + pObjIoInput = (Io_BlifObj_t *)Vec_PtrEntry( p->vLis, i ); Abc_ObjAssignName( pObj, pObjIoInput->pName, NULL ); // add the latch box @@ -983,7 +986,7 @@ static int Io_BlifParseConstruct( Io_BlifMan_t * p ) pObjIo->pEquiv = pObj; } // traverse the nodes from the POs - Vec_PtrForEachEntry( p->vPos, pObjIo, i ) + Vec_PtrForEachEntry( Io_BlifObj_t *, p->vPos, pObjIo, i ) { pObj = Io_BlifParseConstruct_rec( p, pObjIo->pName ); if ( pObj == NULL ) @@ -991,7 +994,7 @@ static int Io_BlifParseConstruct( Io_BlifMan_t * p ) Abc_ObjAddFanin( Abc_NtkPo(p->pAig, i), pObj ); } // traverse the nodes from the latch inputs - Vec_PtrForEachEntry( p->vLis, pObjIo, i ) + Vec_PtrForEachEntry( Io_BlifObj_t *, p->vLis, pObjIo, i ) { pObj = Io_BlifParseConstruct_rec( p, pObjIo->pName ); if ( pObj == NULL ) @@ -1011,3 +1014,5 @@ static int Io_BlifParseConstruct( Io_BlifMan_t * p ) //////////////////////////////////////////////////////////////////////// +ABC_NAMESPACE_IMPL_END + |