230 int i, nFixed = 0, nUndef = 0;
238 Abc_Print( 1,
"Placement: Objects = %8d. Fixed = %8d. Undef = %8d.\n",
Gia_ManObjNum(p), nFixed, nUndef );
269 int t, i, iObjId, nSizePrev, nSizeCurr;
292 Abc_Print( 1,
"%d=%d(%d) ", t, nSizeCurr - nSizePrev, nPis );
293 nSizePrev = nSizeCurr;
320 for ( i = 0; i < 6; i++ )
322 printf(
"%d = %d ", i, Counts[i] );
324 printf(
"B = %d ", Counts[0] + Counts[1] );
325 printf(
"X = %d ", Counts[2] + Counts[3] );
326 printf(
"Q = %d\n", Counts[4] + Counts[5] );
332 else if ( Value == 1 )
334 else if ( Value == 2 )
336 else if ( Value == 3 )
338 else if ( Value == 4 )
340 else if ( Value == 5 )
362 int i, nEquivs = 0, nChoices = 0;
374 Abc_Print( 1,
"Choice stats: Equivs =%7d. Choices =%7d.\n", nEquivs, nChoices );
392 if ( pPars && pPars->
fMiter )
398 SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), 15 );
401 SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), 7 );
418 HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
419 SetConsoleTextAttribute( hConsole, 11 );
421 SetConsoleTextAttribute( hConsole, 13 );
424 SetConsoleTextAttribute( hConsole, 7 );
432 if ( pPars && pPars->
fCut )
445 static int nPiPo = 0;
446 static float PrevSwiTotal = 0;
448 Abc_Print( 1,
" power =%8.1f", SwiTotal );
450 Abc_Print( 1,
" %6.2f %%", 100.0*(PrevSwiTotal-SwiTotal)/PrevSwiTotal );
493 if ( pPars && pPars->
fTents )
546 int i, nSat = 0, nUnsat = 0, nUndec = 0, iOut = -1;
579 Abc_Print( 1,
"Outputs = %7d. Unsat = %7d. Sat = %7d. Undec = %7d.\n",
602 printf(
"Statistics for each outputs of the miter:\n" );
606 printf(
"%4d : ", i );
648 Abc_Print( 1,
"REG: Beg = %5d. End = %5d. (R =%5.1f %%) ",
651 Abc_Print( 1,
"AND: Beg = %6d. End = %6d. (R =%5.1f %%)",
672 Vec_Int_t * vLeaves, * vTruth, * vVisited;
673 int * pLutClass, ClassCounts[222] = {0};
674 int i, k, iFan, Class, OtherClasses, OtherClasses2,
nTotal,
Counter, Counter2;
694 ClassCounts[ Class ]++;
695 pLutClass[i] = Class;
702 for ( i = 0; i < 222; i++ )
703 nTotal += ClassCounts[i];
704 Abc_Print( 1,
"NPN CLASS STATISTICS (for %d LUT4 present in the current mapping):\n", nTotal );
706 for ( i = 0; i < 222; i++ )
708 if ( ClassCounts[i] == 0 )
712 OtherClasses += ClassCounts[i];
713 Abc_Print( 1,
"Class %3d : Count = %6d (%7.2f %%) %s\n",
714 i, ClassCounts[i], 100.0 * ClassCounts[i] / (nTotal+1), pNames[i] );
716 OtherClasses = nTotal - OtherClasses;
717 Abc_Print( 1,
"Other : Count = %6d (%7.2f %%)\n",
718 OtherClasses, 100.0 * OtherClasses / (nTotal+1) );
720 OtherClasses = OtherClasses2 = 0;
725 if ( pLutClass[i] != 109 )
727 Counter = Counter2 = 0;
730 Counter += (pLutClass[iFan] == 109);
731 Counter2 += (pLutClass[iFan] == 109) && (
Gia_ObjRefNumId(p, iFan) == 1);
733 OtherClasses += (Counter > 1);
734 OtherClasses2 += (Counter2 > 1);
741 Abc_Print( 1,
"Approximate number of 4:1 MUX structures: All = %6d (%7.2f %%) MFFC = %6d (%7.2f %%)\n",
742 OtherClasses, 100.0 * OtherClasses / (nTotal+1),
743 OtherClasses2, 100.0 * OtherClasses2 / (nTotal+1) );
static int Gia_ObjLevelId(Gia_Man_t *p, int Id)
void Gia_ManCreateRefs(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjChild0(Gia_Obj_t *pObj)
float Gia_ManComputeSwitching(Gia_Man_t *p, int nFrames, int nPref, int fProbOne)
double Gia_ManMemory(Gia_Man_t *p)
int Gia_ManCrossCut(Gia_Man_t *p, int fReverse)
static Gia_Obj_t * Gia_ObjSiblObj(Gia_Man_t *p, int Id)
void Gia_ManPrintChoiceStats(Gia_Man_t *p)
char ** Kit_DsdNpn4ClassNames()
int Gia_ManSuppSize(Gia_Man_t *p, int *pNodes, int nNodes)
void Gia_ManPrintFlopClasses(Gia_Man_t *p)
void Gia_ManSetRefsMapped(Gia_Man_t *p)
static int Gia_ManPoNum(Gia_Man_t *p)
static int Gia_ManChoiceNum(Gia_Man_t *p)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
int Gia_ManRegBoxNum(Gia_Man_t *p)
static Gia_Obj_t * Gia_Regular(Gia_Obj_t *p)
static int Gia_ObjIsTravIdCurrent(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManPrintTents_rec(Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Int_t *vObjs)
static int Gia_ManConstrNum(Gia_Man_t *p)
static void Vec_FltFree(Vec_Flt_t *p)
static void Vec_PtrFreeFree(Vec_Ptr_t *p)
void Gia_ManCheckIntegrityWithBoxes(Gia_Man_t *p)
void Gia_ManCleanMark0(Gia_Man_t *p)
static int Gia_ObjRefNumId(Gia_Man_t *p, int Id)
int Dar_LibReturnClass(unsigned uTruth)
Gia_Man_t * Gia_ManDupFlopClass(Gia_Man_t *p, int iClass)
static void Vec_IntErase(Vec_Int_t *p)
void Gia_ManCleanTruth(Gia_Man_t *p)
static void Vec_WrdFreeP(Vec_Wrd_t **p)
void Gia_ManPrintMappingStats(Gia_Man_t *p, char *pDumpFile)
static void Vec_FltFreeP(Vec_Flt_t **p)
static Gia_Obj_t * Gia_ManObj(Gia_Man_t *p, int v)
static Gia_Obj_t * Gia_ManConst1(Gia_Man_t *p)
#define Gia_ManForEachLut(p, i)
void Gia_ManPrintStatsShort(Gia_Man_t *p)
void Gia_ManEquivPrintClasses(Gia_Man_t *p, int fVerbose, float Mem)
static int Gia_ManHasChoices(Gia_Man_t *p)
void Gia_ManPrintMiterStatus(Gia_Man_t *p)
struct Gia_Obj_t_ Gia_Obj_t
void Gia_ManPrintStatsMiter(Gia_Man_t *p, int fVerbose)
static int Gia_ManAndNum(Gia_Man_t *p)
static int Gia_ObjSibl(Gia_Man_t *p, int Id)
float Gia_ManLevelAve(Gia_Man_t *p)
void Gia_ManStop(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static int Gia_ObjLutSize(Gia_Man_t *p, int Id)
void Gia_ManReportImprovement(Gia_Man_t *p, Gia_Man_t *pNew)
void Gia_ManPrintNpnClasses(Gia_Man_t *p)
static int Gia_ObjIsRo(Gia_Man_t *p, Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjRoToRi(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManStaticFanoutStop(Gia_Man_t *p)
void Gia_ManPrintGateClasses(Gia_Man_t *p)
static int Vec_IntEntry(Vec_Int_t *p, int i)
static void Gia_ObjSetTravIdCurrent(Gia_Man_t *p, Gia_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_END
void Gia_ManPrintPackingStats(Gia_Man_t *p)
void Gia_ManSetRegNum(Gia_Man_t *p, int nRegs)
unsigned char * pSwitching
#define Gia_ManForEachAnd(p, pObj, i)
unsigned * Gia_ManConvertAigToTruth(Gia_Man_t *p, Gia_Obj_t *pRoot, Vec_Int_t *vLeaves, Vec_Int_t *vTruth, Vec_Int_t *vVisited)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
int Gia_ManBoxCiNum(Gia_Man_t *p)
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
int Gia_ManBoxCoNum(Gia_Man_t *p)
int Gia_ManConeSize(Gia_Man_t *p, int *pNodes, int nNodes)
void Gia_ManPrintObjClasses(Gia_Man_t *p)
int Gia_ManLutSizeMax(Gia_Man_t *p)
static void Vec_IntFreeP(Vec_Int_t **p)
static void Abc_Print(int level, const char *format,...)
void Gia_ManPrintTents(Gia_Man_t *p)
void Gia_AigerWrite(Gia_Man_t *p, char *pFileName, int fWriteSymbols, int fCompact)
void Tim_ManStopP(Tim_Man_t **p)
void Gia_ManPrintClasses_old(Gia_Man_t *p)
void Gia_ManPrintMuxStats(Gia_Man_t *p)
void Gia_ManPrintInitClasses(Vec_Int_t *vInits)
#define ABC_NAMESPACE_IMPL_START
int Gia_ManNonRegBoxNum(Gia_Man_t *p)
static int Gia_ManCiNum(Gia_Man_t *p)
void Gia_ManPrintStats(Gia_Man_t *p, Gps_Par_t *pPars)
static int Vec_IntSize(Vec_Int_t *p)
static int Gia_ManHasMapping(Gia_Man_t *p)
static int Gia_ManBufNum(Gia_Man_t *p)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ManConst0(Gia_Man_t *p)
#define GIA_NONE
INCLUDES ///.
void Gia_ManStopP(Gia_Man_t **p)
#define ABC_CALLOC(type, num)
Vec_Flt_t * Gia_ManPrintOutputProb(Gia_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Vec_Flt_t_ Vec_Flt_t
INCLUDES ///.
static void Vec_PtrFreeP(Vec_Ptr_t **p)
ABC_NAMESPACE_IMPL_START Gia_Man_t * Gia_ManStart(int nObjsMax)
DECLARATIONS ///.
void Gia_ManPrintPlacement(Gia_Man_t *p)
static Gia_Obj_t * Gia_ObjFanin1(Gia_Obj_t *pObj)
#define Gia_ManForEachRo(p, pObj, i)
static void Vec_VecFreeP(Vec_Vec_t **p)
int Gia_NodeMffcSize(Gia_Man_t *p, Gia_Obj_t *pNode)
#define Vec_IntForEachEntryStartStop(vVec, Entry, i, Start, Stop)
int Gia_ManLevelNum(Gia_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Tim_Man_t_ Tim_Man_t
INCLUDES ///.
static float Vec_FltEntry(Vec_Flt_t *p, int i)
void Gia_ManPrintLutStats(Gia_Man_t *p)
void Gia_ManIncrementTravId(Gia_Man_t *p)
struct Gia_Man_t_ Gia_Man_t
static void Vec_IntFree(Vec_Int_t *p)
static int Gia_ManPiNum(Gia_Man_t *p)
static void Vec_IntClear(Vec_Int_t *p)
static int Gia_ObjIsCi(Gia_Obj_t *pObj)
#define Gia_ManForEachPo(p, pObj, i)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
#define Gia_LutForEachFanin(p, i, iFan, k)
int Gia_ManClockDomainNum(Gia_Man_t *p)
static int Gia_ManObjNum(Gia_Man_t *p)
int nTotal
DECLARATIONS ///.
void Gia_ManMarkFanoutDrivers(Gia_Man_t *p)
static int Gia_ObjIsPi(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ManCoNum(Gia_Man_t *p)
static int Gia_ManRegNum(Gia_Man_t *p)