#include "mapperInt.h"
Go to the source code of this file.
Functions | |
Map_Cut_t * | Map_CutAlloc (Map_Man_t *p) |
void | Map_CutFree (Map_Man_t *p, Map_Cut_t *pCut) |
void | Map_CutPrint (Map_Man_t *p, Map_Node_t *pRoot, Map_Cut_t *pCut, int fPhase) |
float | Map_CutGetRootArea (Map_Cut_t *pCut, int fPhase) |
int | Map_CutGetLeafPhase (Map_Cut_t *pCut, int fPhase, int iLeaf) |
int | Map_NodeGetLeafPhase (Map_Node_t *pNode, int fPhase, int iLeaf) |
Map_Cut_t * | Map_CutListAppend (Map_Cut_t *pSetAll, Map_Cut_t *pSets) |
void | Map_CutListRecycle (Map_Man_t *p, Map_Cut_t *pSetList, Map_Cut_t *pSave) |
int | Map_CutListCount (Map_Cut_t *pSets) |
CFile****************************************************************
FileName [mapperCutUtils.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 [
] DECLARATIONS /// FUNCTION DEFINITIONS ///Function*************************************************************
Synopsis [Allocates the cut.]
Description []
SideEffects []
SeeAlso []
Definition at line 40 of file mapperCutUtils.c.
00041 { 00042 Map_Cut_t * pCut; 00043 Map_Match_t * pMatch; 00044 pCut = (Map_Cut_t *)Extra_MmFixedEntryFetch( p->mmCuts ); 00045 memset( pCut, 0, sizeof(Map_Cut_t) ); 00046 00047 pMatch = pCut->M; 00048 pMatch->AreaFlow = MAP_FLOAT_LARGE; // unassigned 00049 pMatch->tArrive.Rise = MAP_FLOAT_LARGE; // unassigned 00050 pMatch->tArrive.Fall = MAP_FLOAT_LARGE; // unassigned 00051 pMatch->tArrive.Worst = MAP_FLOAT_LARGE; // unassigned 00052 00053 pMatch = pCut->M + 1; 00054 pMatch->AreaFlow = MAP_FLOAT_LARGE; // unassigned 00055 pMatch->tArrive.Rise = MAP_FLOAT_LARGE; // unassigned 00056 pMatch->tArrive.Fall = MAP_FLOAT_LARGE; // unassigned 00057 pMatch->tArrive.Worst = MAP_FLOAT_LARGE; // unassigned 00058 return pCut; 00059 }
Function*************************************************************
Synopsis [Deallocates the cut.]
Description []
SideEffects []
SeeAlso []
Definition at line 72 of file mapperCutUtils.c.
00073 { 00074 if ( pCut ) 00075 Extra_MmFixedEntryRecycle( p->mmCuts, (char *)pCut ); 00076 }
int Map_CutGetLeafPhase | ( | Map_Cut_t * | pCut, | |
int | fPhase, | |||
int | iLeaf | |||
) |
function*************************************************************
synopsis [Computes the exact area associated with the cut.]
description []
sideeffects []
seealso []
Definition at line 128 of file mapperCutUtils.c.
00129 { 00130 assert( pCut->M[fPhase].pSuperBest ); 00131 return (( pCut->M[fPhase].uPhaseBest & (1<<iLeaf) ) == 0); 00132 }
float Map_CutGetRootArea | ( | Map_Cut_t * | pCut, | |
int | fPhase | |||
) |
function*************************************************************
synopsis [Computes the exact area associated with the cut.]
description []
sideeffects []
seealso []
Definition at line 111 of file mapperCutUtils.c.
00112 { 00113 assert( pCut->M[fPhase].pSuperBest ); 00114 return pCut->M[fPhase].pSuperBest->Area; 00115 }
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 162 of file mapperCutUtils.c.
00163 { 00164 Map_Cut_t * pPrev, * pTemp; 00165 if ( pSetAll == NULL ) 00166 return pSets; 00167 if ( pSets == NULL ) 00168 return pSetAll; 00169 // find the last one 00170 for ( pTemp = pSets; pTemp; pTemp = pTemp->pNext ) 00171 pPrev = pTemp; 00172 // append all the end of the current set 00173 assert( pPrev->pNext == NULL ); 00174 pPrev->pNext = pSetAll; 00175 return pSets; 00176 }
int Map_CutListCount | ( | Map_Cut_t * | pSets | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 210 of file mapperCutUtils.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 189 of file mapperCutUtils.c.
void Map_CutPrint | ( | Map_Man_t * | p, | |
Map_Node_t * | pRoot, | |||
Map_Cut_t * | pCut, | |||
int | fPhase | |||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 89 of file mapperCutUtils.c.
00090 { 00091 int i; 00092 printf( "CUT: Delay = (%4.2f, %4.2f). Area = %4.2f. Nodes = %d -> {", 00093 pCut->M[fPhase].tArrive.Rise, pCut->M[fPhase].tArrive.Fall, pCut->M[fPhase].AreaFlow, pRoot->Num ); 00094 for ( i = 0; i < pCut->nLeaves; i++ ) 00095 printf( " %d", pCut->ppLeaves[i]->Num ); 00096 printf( " } \n" ); 00097 }
int Map_NodeGetLeafPhase | ( | Map_Node_t * | pNode, | |
int | fPhase, | |||
int | iLeaf | |||
) |
function*************************************************************
synopsis [Computes the exact area associated with the cut.]
description []
sideeffects []
seealso []
Definition at line 145 of file mapperCutUtils.c.
00146 { 00147 assert( pNode->pCutBest[fPhase]->M[fPhase].pSuperBest ); 00148 return (( pNode->pCutBest[fPhase]->M[fPhase].uPhaseBest & (1<<iLeaf) ) == 0); 00149 }