Compilation problem.

This commit is contained in:
Alan Mishchenko 2024-05-21 10:26:01 -07:00
parent 0cb945ebcd
commit 111867432c
1 changed files with 22 additions and 20 deletions

View File

@ -83,6 +83,7 @@ struct Nf_Man_t_
{ {
// user data // user data
Gia_Man_t * pGia; // derived manager Gia_Man_t * pGia; // derived manager
Tim_Man_t * pManTim; // timing manager
Jf_Par_t * pPars; // parameters Jf_Par_t * pPars; // parameters
// matching // matching
Vec_Mem_t * vTtMem; // truth tables Vec_Mem_t * vTtMem; // truth tables
@ -380,6 +381,7 @@ Nf_Man_t * Nf_StoCreate( Gia_Man_t * pGia, Jf_Par_t * pPars )
p = ABC_CALLOC( Nf_Man_t, 1 ); p = ABC_CALLOC( Nf_Man_t, 1 );
p->clkStart = Abc_Clock(); p->clkStart = Abc_Clock();
p->pGia = pGia; p->pGia = pGia;
p->pManTim = (Tim_Man_t *)pGia->pManTime;
p->pPars = pPars; p->pPars = pPars;
p->pNfObjs = ABC_CALLOC( Nf_Obj_t, Gia_ManObjNum(pGia) ); p->pNfObjs = ABC_CALLOC( Nf_Obj_t, Gia_ManObjNum(pGia) );
p->iCur = 2; p->iCur = 2;
@ -959,8 +961,8 @@ void Nf_ManComputeCuts( Nf_Man_t * p )
{ {
Gia_Obj_t * pObj; int i, iFanin, arrTime; Gia_Obj_t * pObj; int i, iFanin, arrTime;
float CutFlow = 0, CutFlowAve = 0; int fFirstCi = 0, nCutFlow = 0; float CutFlow = 0, CutFlowAve = 0; int fFirstCi = 0, nCutFlow = 0;
if ( p->pGia->pManTime ) if ( p->pManTim )
Tim_ManIncrementTravId( p->pGia->pManTime ); Tim_ManIncrementTravId( p->pManTim );
Gia_ManForEachObjWithBoxes( p->pGia, pObj, i ) Gia_ManForEachObjWithBoxes( p->pGia, pObj, i )
if ( Gia_ObjIsBuf(pObj) ) if ( Gia_ObjIsBuf(pObj) )
{ {
@ -978,7 +980,7 @@ void Nf_ManComputeCuts( Nf_Man_t * p )
nCutFlow = 0; nCutFlow = 0;
fFirstCi = 0; fFirstCi = 0;
} }
arrTime = Tim_ManGetCiArrival( p->pGia->pManTime, Gia_ObjCioId(pObj) ); arrTime = Tim_ManGetCiArrival( p->pManTim, Gia_ObjCioId(pObj) );
Nf_ObjSetCutFlow( p, i, CutFlowAve ); // approximation! Nf_ObjSetCutFlow( p, i, CutFlowAve ); // approximation!
Nf_ObjSetCutDelay( p, i, arrTime ); Nf_ObjSetCutDelay( p, i, arrTime );
} }
@ -987,7 +989,7 @@ void Nf_ManComputeCuts( Nf_Man_t * p )
iFanin = Gia_ObjFaninId0(pObj, i); iFanin = Gia_ObjFaninId0(pObj, i);
CutFlow += Nf_ObjCutFlow(p, iFanin); CutFlow += Nf_ObjCutFlow(p, iFanin);
arrTime = Nf_ObjCutDelay(p, iFanin); arrTime = Nf_ObjCutDelay(p, iFanin);
Tim_ManSetCoArrival( p->pGia->pManTime, Gia_ObjCioId(pObj), arrTime ); Tim_ManSetCoArrival( p->pManTim, Gia_ObjCioId(pObj), arrTime );
nCutFlow++; nCutFlow++;
fFirstCi = 1; fFirstCi = 1;
} }
@ -1419,20 +1421,20 @@ static inline Nf_Mat_t * Nf_ObjMatchBest( Nf_Man_t * p, int i, int c )
void Nf_ManComputeMapping( Nf_Man_t * p ) void Nf_ManComputeMapping( Nf_Man_t * p )
{ {
Gia_Obj_t * pObj; int i, arrTime; Gia_Obj_t * pObj; int i, arrTime;
if ( p->pGia->pManTime ) if ( p->pManTim )
Tim_ManIncrementTravId( p->pGia->pManTime ); Tim_ManIncrementTravId( p->pManTim );
Gia_ManForEachObjWithBoxes( p->pGia, pObj, i ) Gia_ManForEachObjWithBoxes( p->pGia, pObj, i )
if ( Gia_ObjIsBuf(pObj) ) if ( Gia_ObjIsBuf(pObj) )
Nf_ObjPrepareBuf( p, pObj ); Nf_ObjPrepareBuf( p, pObj );
else if ( Gia_ObjIsAnd(pObj) ) else if ( Gia_ObjIsAnd(pObj) )
Nf_ManCutMatch( p, i ); Nf_ManCutMatch( p, i );
else if ( Gia_ObjIsCi(pObj) ) { else if ( Gia_ObjIsCi(pObj) ) {
arrTime = Tim_ManGetCiArrival( p->pGia->pManTime, Gia_ObjCioId(pObj) ); arrTime = Tim_ManGetCiArrival( p->pManTim, Gia_ObjCioId(pObj) );
Nf_ObjPrepareCi( p, i, arrTime ); Nf_ObjPrepareCi( p, i, arrTime );
} }
else if ( Gia_ObjIsCo(pObj) ) { else if ( Gia_ObjIsCo(pObj) ) {
arrTime = Nf_ObjMatchD( p, Gia_ObjFaninId0(pObj, i), Gia_ObjFaninC0(pObj) )->D; arrTime = Nf_ObjMatchD( p, Gia_ObjFaninId0(pObj, i), Gia_ObjFaninC0(pObj) )->D;
Tim_ManSetCoArrival( p->pGia->pManTime, Gia_ObjCioId(pObj), arrTime ); Tim_ManSetCoArrival( p->pManTim, Gia_ObjCioId(pObj), arrTime );
} }
} }
@ -1477,8 +1479,8 @@ void Nf_ManSetOutputRequireds( Nf_Man_t * p, int fPropCompl )
} }
//assert( p->pPars->MapDelayTarget == 0 ); //assert( p->pPars->MapDelayTarget == 0 );
// set required times // set required times
if ( p->pGia->pManTime ) if ( p->pManTim )
Tim_ManIncrementTravId( p->pGia->pManTime ); Tim_ManIncrementTravId( p->pManTim );
Gia_ManForEachCoWithBoxes( p->pGia, pObj, i ) Gia_ManForEachCoWithBoxes( p->pGia, pObj, i )
{ {
iObj = Gia_ObjFaninId0p(p->pGia, pObj); iObj = Gia_ObjFaninId0p(p->pGia, pObj);
@ -1505,12 +1507,12 @@ void Nf_ManSetOutputRequireds( Nf_Man_t * p, int fPropCompl )
if ( fPropCompl && iObj > 0 && Nf_ObjMatchBest(p, iObj, fCompl)->fCompl ) if ( fPropCompl && iObj > 0 && Nf_ObjMatchBest(p, iObj, fCompl)->fCompl )
Nf_ObjUpdateRequired( p, iObj, !fCompl, Required - p->InvDelayI ); Nf_ObjUpdateRequired( p, iObj, !fCompl, Required - p->InvDelayI );
if ( p->pGia->pManTime == NULL ) if ( p->pManTim == NULL )
continue; continue;
if ( fPropCompl && iObj > 0 && Nf_ObjMatchBest(p, iObj, fCompl)->fCompl ) if ( fPropCompl && iObj > 0 && Nf_ObjMatchBest(p, iObj, fCompl)->fCompl )
Tim_ManSetCoRequired( p->pGia->pManTime, Gia_ObjCioId(pObj), Required - p->InvDelayI ); Tim_ManSetCoRequired( p->pManTim, Gia_ObjCioId(pObj), Required - p->InvDelayI );
else else
Tim_ManSetCoRequired( p->pGia->pManTime, Gia_ObjCioId(pObj), Required ); Tim_ManSetCoRequired( p->pManTim, Gia_ObjCioId(pObj), Required );
//Nf_ObjMapRefInc( p, Gia_ObjFaninId0p(p->pGia, pObj), Gia_ObjFaninC0(pObj)); //Nf_ObjMapRefInc( p, Gia_ObjFaninId0p(p->pGia, pObj), Gia_ObjFaninC0(pObj));
} }
} }
@ -1611,12 +1613,12 @@ int Nf_ManSetMapRefs( Nf_Man_t * p )
p->nInvs++; p->nInvs++;
} }
reqTime = Abc_MinInt( Nf_ObjRequired(p, i, 0), Nf_ObjRequired(p, i, 1) ); reqTime = Abc_MinInt( Nf_ObjRequired(p, i, 0), Nf_ObjRequired(p, i, 1) );
Tim_ManSetCiRequired( p->pGia->pManTime, Gia_ObjCioId(pObj), reqTime ); Tim_ManSetCiRequired( p->pManTim, Gia_ObjCioId(pObj), reqTime );
continue; continue;
} }
if ( Gia_ObjIsCo(pObj) ) if ( Gia_ObjIsCo(pObj) )
{ {
reqTime = Tim_ManGetCoRequired( p->pGia->pManTime, Gia_ObjCioId(pObj) ); reqTime = Tim_ManGetCoRequired( p->pManTim, Gia_ObjCioId(pObj) );
Nf_ObjUpdateRequired( p, Gia_ObjFaninId0(pObj, i), Gia_ObjFaninC0(pObj), reqTime ); Nf_ObjUpdateRequired( p, Gia_ObjFaninId0(pObj, i), Gia_ObjFaninC0(pObj), reqTime );
Nf_ObjMapRefInc( p, Gia_ObjFaninId0(pObj, i), Gia_ObjFaninC0(pObj)); Nf_ObjMapRefInc( p, Gia_ObjFaninId0(pObj, i), Gia_ObjFaninC0(pObj));
continue; continue;
@ -2028,12 +2030,12 @@ void Nf_ManComputeMappingEla( Nf_Man_t * p )
if ( Gia_ObjIsCi(pObj) ) if ( Gia_ObjIsCi(pObj) )
{ {
reqTime = Abc_MinInt( Nf_ObjRequired(p, i, 0), Nf_ObjRequired(p, i, 1) ); reqTime = Abc_MinInt( Nf_ObjRequired(p, i, 0), Nf_ObjRequired(p, i, 1) );
Tim_ManSetCiRequired( p->pGia->pManTime, Gia_ObjCioId(pObj), reqTime ); Tim_ManSetCiRequired( p->pManTim, Gia_ObjCioId(pObj), reqTime );
continue; continue;
} }
if ( Gia_ObjIsCo(pObj) ) if ( Gia_ObjIsCo(pObj) )
{ {
reqTime = Tim_ManGetCoRequired( p->pGia->pManTime, Gia_ObjCioId(pObj) ); reqTime = Tim_ManGetCoRequired( p->pManTim, Gia_ObjCioId(pObj) );
Nf_ObjUpdateRequired( p, Gia_ObjFaninId0(pObj, i), Gia_ObjFaninC0(pObj), reqTime ); Nf_ObjUpdateRequired( p, Gia_ObjFaninId0(pObj, i), Gia_ObjFaninC0(pObj), reqTime );
continue; continue;
} }
@ -2445,9 +2447,9 @@ Gia_Man_t * Nf_ManPerformMappingInt( Gia_Man_t * pGia, Jf_Par_t * pPars )
p = Nf_StoCreate( pCls, pPars ); p = Nf_StoCreate( pCls, pPars );
if ( p == NULL ) if ( p == NULL )
return NULL; return NULL;
// if ( p->pGia->pManTime ) Tim_ManPrint( p->pGia->pManTime ); // if ( p->pManTim ) Tim_ManPrint( p->pManTim );
p->pGia->iFirstNonPiId = p->pGia->pManTime ? Tim_ManPiNum(p->pGia->pManTime) : Gia_ManCiNum(p->pGia); p->pGia->iFirstNonPiId = p->pManTim ? Tim_ManPiNum(p->pManTim) : Gia_ManCiNum(p->pGia);
p->pGia->iFirstPoId = p->pGia->pManTime ? Gia_ManCoNum(p->pGia) - Tim_ManPoNum(p->pGia->pManTime) : 0; p->pGia->iFirstPoId = p->pManTim ? Gia_ManCoNum(p->pGia) - Tim_ManPoNum(p->pManTim) : 0;
p->pGia->iFirstAndObj = 1 + p->pGia->iFirstNonPiId; p->pGia->iFirstAndObj = 1 + p->pGia->iFirstNonPiId;
p->pGia->iFirstPoObj = Gia_ManObjNum(p->pGia) - Gia_ManCoNum(p->pGia) + p->pGia->iFirstPoId; p->pGia->iFirstPoObj = Gia_ManObjNum(p->pGia) - Gia_ManCoNum(p->pGia) + p->pGia->iFirstPoId;
// if ( pPars->fVeryVerbose ) // if ( pPars->fVeryVerbose )