From 77b83074e0caf86f5bab8fbf1d26c3d8f2dbb36a Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Sun, 20 May 2012 22:18:23 +0700 Subject: Changing 'if' to allow for delay optimization on sequential paths only. --- src/map/if/if.h | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/map/if/if.h') diff --git a/src/map/if/if.h b/src/map/if/if.h index 4c933a96..69878111 100644 --- a/src/map/if/if.h +++ b/src/map/if/if.h @@ -129,8 +129,10 @@ struct If_Par_t_ int fUseCnfs; // use local CNFs as a cost function int fUseMv; // use local MV-SOPs as a cost function int fUseAdders; // timing model for adders - int nLatchesCi; // the number of latches in seq mapping - int nLatchesCo; // the number of latches in seq mapping + int nLatchesCi; // the number of latches among the CIs + int nLatchesCo; // the number of latches among the COs + int nLatchesCiBox; // the number of white box outputs among the CIs + int nLatchesCoBox; // the number of white box inputs among the COs int fLiftLeaves; // shift the leaves for seq mapping int fUseCoAttrs; // use CO attributes If_Lib_t * pLutLib; // the LUT library @@ -381,15 +383,15 @@ static inline void If_AndClear( If_And_t * pNode ) { * Vec_PtrForEachEntry( If_Obj_t *, p->vCos, pObj, i ) // iterator over the primary inputs #define If_ManForEachPi( p, pObj, i ) \ - Vec_PtrForEachEntryStop( If_Obj_t *, p->vCis, pObj, i, If_ManCiNum(p) - p->pPars->nLatchesCi ) + Vec_PtrForEachEntryStop( If_Obj_t *, p->vCis, pObj, i, If_ManCiNum(p) - p->pPars->nLatchesCi - p->pPars->nLatchesCiBox ) // iterator over the primary outputs #define If_ManForEachPo( p, pObj, i ) \ - Vec_PtrForEachEntryStop( If_Obj_t *, p->vCos, pObj, i, If_ManCoNum(p) - p->pPars->nLatchesCo ) + Vec_PtrForEachEntryStartStop( If_Obj_t *, p->vCos, pObj, i, p->pPars->nLatchesCoBox, If_ManCoNum(p) - p->pPars->nLatchesCo ) // iterator over the latches #define If_ManForEachLatchInput( p, pObj, i ) \ Vec_PtrForEachEntryStart( If_Obj_t *, p->vCos, pObj, i, If_ManCoNum(p) - p->pPars->nLatchesCo ) #define If_ManForEachLatchOutput( p, pObj, i ) \ - Vec_PtrForEachEntryStart( If_Obj_t *, p->vCis, pObj, i, If_ManCiNum(p) - p->pPars->nLatchesCi ) + Vec_PtrForEachEntryStartStop( If_Obj_t *, p->vCis, pObj, i, If_ManCiNum(p) - p->pPars->nLatchesCi - p->pPars->nLatchesCiBox, If_ManCiNum(p) - p->pPars->nLatchesCiBox ) // iterator over all objects in topological order #define If_ManForEachObj( p, pObj, i ) \ Vec_PtrForEachEntry( If_Obj_t *, p->vObjs, pObj, i ) -- cgit v1.2.3