Go to the source code of this file.
Definition at line 216 of file mapperTime.c.
230 for ( i = 0; i < pCut->
nLeaves; i++ )
233 fPinPhase = ((uPhaseTot & (1 << i)) == 0);
241 if ( ptArrRes->
Rise < tDelay )
242 ptArrRes->
Rise = tDelay;
249 if ( ptArrRes->
Rise < tDelay )
250 ptArrRes->
Rise = tDelay;
257 if ( ptArrRes->
Fall < tDelay )
258 ptArrRes->
Fall = tDelay;
265 if ( ptArrRes->
Fall < tDelay )
266 ptArrRes->
Fall = tDelay;
DECLARATIONS ///.
CFile****************************************************************
FileName [mapperTime.c]
PackageName [MVSIS 1.3: Multi-valued logic synthesis system.]
Synopsis [Generic technology mapping engine.]
Author [MVSIS Group]
Affiliation [UC Berkeley]
Date [Ver. 2.0. Started - June 1, 2004.]
Revision [
- Id:
- mapperTime.c,v 1.3 2005/03/02 02:35:54 alanmi Exp
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Computes the maximum arrival times.]
Description []
SideEffects []
SeeAlso []
Definition at line 42 of file mapperTime.c.
48 for ( i = 0; i <
p->nOutputs; i++ )
53 tReq =
Map_Regular(
p->pOutputs[i])->tArrival[fPhase].Worst;
54 tReqMax =
MAP_MAX( tReqMax, tReq );
int Map_NodeIsConst(Map_Node_t *p)
#define Map_IsComplement(p)
GLOBAL VARIABLES ///.
| void Map_TimeComputeRequiredGlobal |
( |
Map_Man_t * |
p | ) |
|
Definition at line 381 of file mapperTime.c.
387 if (
p->DelayTarget != -1 )
389 if (
p->fRequiredGlo >
p->DelayTarget +
p->fEpsilon )
391 if (
p->fMappingMode == 1 )
392 printf(
"Cannot meet the target required times (%4.2f). Continue anyway.\n",
p->DelayTarget );
394 else if (
p->fRequiredGlo <
p->DelayTarget -
p->fEpsilon )
396 if (
p->fMappingMode == 1 &&
p->fVerbose )
397 printf(
"Relaxing the required times from (%4.2f) to the target (%4.2f).\n",
p->fRequiredGlo,
p->DelayTarget );
398 p->fRequiredGlo =
p->DelayTarget;
402 for ( i = 0; i <
p->vMapObjs->nSize; i++ )
412 for ( i = 0; i <
p->nOutputs; i++ )
415 ptTime =
Map_Regular(
p->pOutputs[i])->tRequired + fPhase;
416 ptTimeA =
Map_Regular(
p->pOutputs[i])->tArrival + fPhase;
419 if (
p->pOutputRequireds &&
p->pOutputRequireds[i].Worst > 0 && ptTimeA->
Worst <=
p->pOutputRequireds[i].Worst )
420 ptTime->
Rise = ptTime->
Fall = ptTime->
Worst =
p->pOutputRequireds[i].Worst;
422 else if (
p->pOutputRequireds &&
p->pOutputRequireds[i].Worst > 0 && ptTimeA->
Worst >
p->pOutputRequireds[i].Worst )
#define Map_IsComplement(p)
GLOBAL VARIABLES ///.
void Map_TimePropagateRequired(Map_Man_t *p)
ABC_NAMESPACE_IMPL_START float Map_TimeComputeArrivalMax(Map_Man_t *p)
DECLARATIONS ///.
| float Map_TimeCutComputeArrival |
( |
Map_Node_t * |
pNode, |
|
|
Map_Cut_t * |
pCut, |
|
|
int |
fPhase, |
|
|
float |
tWorstLimit |
|
) |
| |
Function*************************************************************
Synopsis [Computes the arrival times of the cut.]
Description [Computes the arrival times of the cut if it is implemented using the given supergate with the given phase. Uses the constraint-type specification of rise/fall arrival times.]
SideEffects []
SeeAlso []
Definition at line 72 of file mapperTime.c.
83 tExtra = pNode->
p->pNodeDelays ? pNode->
p->pNodeDelays[pNode->
Num] : 0;
84 ptArrRes->
Rise = ptArrRes->
Fall = 0.0;
86 for ( i = pCut->
nLeaves - 1; i >= 0; i-- )
89 fPinPhase = ((uPhaseTot & (1 << i)) == 0);
96 if ( tDelay > tWorstLimit )
98 if ( ptArrRes->
Rise < tDelay )
99 ptArrRes->
Rise = tDelay;
106 if ( tDelay > tWorstLimit )
108 if ( ptArrRes->
Rise < tDelay )
109 ptArrRes->
Rise = tDelay;
116 if ( tDelay > tWorstLimit )
118 if ( ptArrRes->
Fall < tDelay )
119 ptArrRes->
Fall = tDelay;
126 if ( tDelay > tWorstLimit )
128 if ( ptArrRes->
Fall < tDelay )
129 ptArrRes->
Fall = tDelay;
134 return ptArrRes->
Worst;
| void Map_TimePropagateRequired |
( |
Map_Man_t * |
p | ) |
|
Function*************************************************************
Synopsis [Computes the required times of all nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 285 of file mapperTime.c.
288 Map_Time_t tReqOutTest, * ptReqOutTest = &tReqOutTest;
293 for ( k =
p->vMapObjs->nSize - 1; k >= 0; k-- )
295 pNode =
p->vMapObjs->pArray[k];
320 fPhase = (pNode->
pCutBest[1] == NULL);
322 if ( pNode->
nRefAct[fPhase] > 0 )
357 for ( k =
p->vMapObjs->nSize - 1; k >= 0; k-- )
359 pNode =
p->vMapObjs->pArray[k];
int Map_NodeIsAnd(Map_Node_t *p)
float Map_MatchComputeReqTimes(Map_Cut_t *pCut, int fPhase, Map_Time_t *ptArrRes)
int Map_NodeIsBuf(Map_Node_t *p)
#define Map_IsComplement(p)
GLOBAL VARIABLES ///.
void Map_TimePropagateRequiredPhase(Map_Man_t *p, Map_Node_t *pNode, int fPhase)
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 149 of file mapperTime.c.
154 float tNewReqTime, tExtra;
158 tExtra = pNode->
p->pNodeDelays ? pNode->
p->pNodeDelays[pNode->
Num] : 0;
168 for ( i = 0; i < pCut->
nLeaves; i++ )
171 fPinPhase = ((uPhase & (1 << i)) == 0);