#include "if.h"
Go to the source code of this file.
Functions | |
int | If_ManPerformMapping (If_Man_t *p) |
int | If_ManPerformMappingComb (If_Man_t *p) |
Variables | |
int | s_MappingTime |
int If_ManPerformMapping | ( | If_Man_t * | p | ) |
FUNCTION DEFINITIONS ///Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 44 of file ifCore.c.
00045 { 00046 p->pPars->fAreaOnly = p->pPars->fArea; // temporary 00047 00048 // create the CI cutsets 00049 If_ManSetupCiCutSets( p ); 00050 // allocate memory for other cutsets 00051 If_ManSetupSetAll( p, If_ManCrossCut(p) ); 00052 00053 // try sequential mapping 00054 if ( p->pPars->fSeqMap ) 00055 { 00056 int RetValue; 00057 // printf( "Currently sequential mapping is not performed.\n" ); 00058 RetValue = If_ManPerformMappingSeq( p ); 00059 return RetValue; 00060 // return 1; 00061 } 00062 00063 return If_ManPerformMappingComb( p ); 00064 }
int If_ManPerformMappingComb | ( | If_Man_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 78 of file ifCore.c.
00079 { 00080 If_Obj_t * pObj; 00081 int clkTotal = clock(); 00082 int i; 00083 00084 // set arrival times and fanout estimates 00085 If_ManForEachCi( p, pObj, i ) 00086 { 00087 If_ObjSetArrTime( pObj, p->pPars->pTimesArr[i] ); 00088 pObj->EstRefs = (float)1.0; 00089 } 00090 00091 // delay oriented mapping 00092 if ( p->pPars->fPreprocess && !p->pPars->fArea ) 00093 { 00094 // map for delay 00095 If_ManPerformMappingRound( p, p->pPars->nCutsMax, 0, 1, "Delay" ); 00096 // map for delay second option 00097 p->pPars->fFancy = 1; 00098 If_ManResetOriginalRefs( p ); 00099 If_ManPerformMappingRound( p, p->pPars->nCutsMax, 0, 1, "Delay-2" ); 00100 p->pPars->fFancy = 0; 00101 // map for area 00102 p->pPars->fArea = 1; 00103 If_ManResetOriginalRefs( p ); 00104 If_ManPerformMappingRound( p, p->pPars->nCutsMax, 0, 1, "Area" ); 00105 p->pPars->fArea = 0; 00106 } 00107 else 00108 If_ManPerformMappingRound( p, p->pPars->nCutsMax, 0, 0, "Delay" ); 00109 00110 // try to improve area by expanding and reducing the cuts 00111 if ( p->pPars->fExpRed && !p->pPars->fTruth ) 00112 If_ManImproveMapping( p ); 00113 00114 // area flow oriented mapping 00115 for ( i = 0; i < p->pPars->nFlowIters; i++ ) 00116 { 00117 If_ManPerformMappingRound( p, p->pPars->nCutsMax, 1, 0, "Flow" ); 00118 if ( p->pPars->fExpRed && !p->pPars->fTruth ) 00119 If_ManImproveMapping( p ); 00120 } 00121 00122 // area oriented mapping 00123 for ( i = 0; i < p->pPars->nAreaIters; i++ ) 00124 { 00125 If_ManPerformMappingRound( p, p->pPars->nCutsMax, 2, 0, "Area" ); 00126 if ( p->pPars->fExpRed && !p->pPars->fTruth ) 00127 If_ManImproveMapping( p ); 00128 } 00129 00130 if ( p->pPars->fVerbose ) 00131 { 00132 // printf( "Total memory = %7.2f Mb. Peak cut memory = %7.2f Mb. ", 00133 // 1.0 * (p->nObjBytes + 2*sizeof(void *)) * If_ManObjNum(p) / (1<<20), 00134 // 1.0 * p->nSetBytes * Mem_FixedReadMaxEntriesUsed(p->pMemSet) / (1<<20) ); 00135 PRT( "Total time", clock() - clkTotal ); 00136 } 00137 // printf( "Cross cut memory = %d.\n", Mem_FixedReadMaxEntriesUsed(p->pMemSet) ); 00138 s_MappingTime = clock() - clkTotal; 00139 return 1; 00140 }
int s_MappingTime |
CFile****************************************************************
FileName [ifCore.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [FPGA mapping based on priority cuts.]
Synopsis [The central part of the mapper.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - November 21, 2006.]
Revision [
] DECLARATIONS ///
CFile****************************************************************
FileName [abcPrint.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Network and node package.]
Synopsis [Printing statistics.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
] DECLARATIONS ///
Definition at line 34 of file abcPrint.c.