mirror of https://github.com/YosysHQ/abc.git
Compilation problem.
This commit is contained in:
parent
0cb945ebcd
commit
111867432c
|
|
@ -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 )
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue