69 static struct ParStruct {
77 } ParsNew, ParsBest = { 0 };
96 if ( ParsBest.pName == NULL ||
98 ParsBest.Depth > ParsNew.Depth ||
99 (ParsBest.Depth == ParsNew.Depth && ParsBest.Flops > ParsNew.Flops) ||
100 (ParsBest.Depth == ParsNew.Depth && ParsBest.Flops == ParsNew.Flops && ParsBest.Edges > ParsNew.Edges) )
104 ParsBest.Depth = ParsNew.Depth;
105 ParsBest.Flops = ParsNew.Flops;
106 ParsBest.Nodes = ParsNew.Nodes;
107 ParsBest.Edges = ParsNew.Edges;
108 ParsBest.nPis = ParsNew.nPis;
109 ParsBest.nPos = ParsNew.nPos;
114 pFileNameOut = pNtk->
pSpec;
142 float Result = (float)0;
148 pObjAbc->
pTemp = NULL;
152 pSwitching = (
float *)vSwitching->pArray;
207 void Abc_NtkPrintStats(
Abc_Ntk_t * pNtk,
int fFactored,
int fSaveBest,
int fDumpResult,
int fUseLutLib,
int fPrintMuxes,
int fPower,
int fGlitch,
int fSkipBuf )
215 int nAnds =
Abc_NtkNodeNum(pNtk) - (nMuxs + nXors) * 3 - nSingles;
240 SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), 15 );
242 SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), 7 );
244 Abc_Print( 1,
"%s%-30s:%s",
"\033[1;37m", pNtk->
pName,
"\033[0m" );
324 printf(
"\nCurrently computes glitching only for K-LUT networks with K <= 6." );
331 FILE * pTable = fopen(
"abcstats.txt",
"a+" );
332 fprintf( pTable,
"%s ", pNtk->
pName );
338 fprintf( pTable,
"\n" );
422 Abc_NtkPrintStats( pNtk->
pExdc, fFactored, fSaveBest, fDumpResult, fUseLutLib, fPrintMuxes, fPower, fGlitch, fSkipBuf );
441 fprintf( pFile,
"Primary inputs (%d): ",
Abc_NtkPiNum(pNtk) );
445 fprintf( pFile,
"\n" );
447 fprintf( pFile,
"Primary outputs (%d):",
Abc_NtkPoNum(pNtk) );
450 fprintf( pFile,
"\n" );
459 fprintf( pFile,
"\n" );
476 int i, Counter0, Counter1, Counter2;
477 int InitNums[4], Init;
482 fprintf( pFile,
"The network is combinational.\n" );
486 for ( i = 0; i < 4; i++ )
488 Counter0 = Counter1 = Counter2 = 0;
529 fprintf( pFile,
"Total latches = %5d. Init0 = %d. Init1 = %d. InitDC = %d. Const data = %d.\n",
530 Abc_NtkLatchNum(pNtk), InitNums[1], InitNums[2], InitNums[3], Counter0 );
549 int i, k, nFanins, nFanouts;
551 int nOldSize, nNewSize;
565 if ( nFanins > vFanins->nSize || nFanouts > vFanouts->nSize )
567 nOldSize = vFanins->nSize;
568 nNewSize =
Abc_MaxInt(nFanins, nFanouts) + 10;
571 for ( k = nOldSize; k < nNewSize; k++ )
577 vFanins->pArray[nFanins]++;
578 vFanouts->pArray[nFanouts]++;
589 vFanouts->pArray[nFanouts]++;
592 fprintf( pFile,
"The distribution of fanins and fanouts in the network:\n" );
593 fprintf( pFile,
" Number Nodes with fanin Nodes with fanout\n" );
594 for ( k = 0; k < vFanins->nSize; k++ )
596 if ( vFanins->pArray[k] == 0 && vFanouts->pArray[k] == 0 )
598 fprintf( pFile,
"%5d : ", k );
599 if ( vFanins->pArray[k] == 0 )
600 fprintf( pFile,
" " );
602 fprintf( pFile,
"%12d ", vFanins->pArray[k] );
603 fprintf( pFile,
" " );
604 if ( vFanouts->pArray[k] == 0 )
605 fprintf( pFile,
" " );
607 fprintf( pFile,
"%12d ", vFanouts->pArray[k] );
608 fprintf( pFile,
"\n" );
630 int nFanins, nFanouts, nFaninsMax, nFanoutsMax, nFaninsAll, nFanoutsAll;
634 nFaninsMax = nFanoutsMax = 0;
635 nFaninsAll = nFanoutsAll = 0;
647 nFaninsAll += nFanins;
648 nFanoutsAll += nFanouts;
649 nFaninsMax =
Abc_MaxInt( nFaninsMax, nFanins );
650 nFanoutsMax =
Abc_MaxInt( nFanoutsMax, nFanouts );
673 else if ( nFanins < 100 )
675 else if ( nFanins < 1000 )
677 else if ( nFanins < 10000 )
679 else if ( nFanins < 100000 )
681 else if ( nFanins < 1000000 )
683 else if ( nFanins < 10000000 )
688 else if ( nFanouts < 100 )
690 else if ( nFanouts < 1000 )
692 else if ( nFanouts < 10000 )
694 else if ( nFanouts < 100000 )
696 else if ( nFanouts < 1000000 )
698 else if ( nFanouts < 10000000 )
702 fprintf( pFile,
"The distribution of fanins and fanouts in the network:\n" );
703 fprintf( pFile,
" Number Nodes with fanin Nodes with fanout\n" );
704 for ( k = 0; k < nSizeMax; k++ )
706 if ( vFanins->pArray[k] == 0 && vFanouts->pArray[k] == 0 )
709 fprintf( pFile,
"%15d : ", k );
712 sprintf( Buffer,
"%d - %d", (
int)pow((
double)10, k/10) * (k%10), (
int)pow((
double)10, k/10) * (k%10+1) - 1 );
713 fprintf( pFile,
"%15s : ", Buffer );
715 if ( vFanins->pArray[k] == 0 )
716 fprintf( pFile,
" " );
718 fprintf( pFile,
"%12d ", vFanins->pArray[k] );
719 fprintf( pFile,
" " );
720 if ( vFanouts->pArray[k] == 0 )
721 fprintf( pFile,
" " );
723 fprintf( pFile,
"%12d ", vFanouts->pArray[k] );
724 fprintf( pFile,
"\n" );
729 fprintf( pFile,
"Fanins: Max = %d. Ave = %.2f. Fanouts: Max = %d. Ave = %.2f.\n",
760 fprintf( pFile,
"\n" );
765 fprintf( pFile,
"\n" );
770 fprintf( pFile,
"\n" );
833 fprintf( pFile,
"Skipping the PI node.\n" );
838 fprintf( pFile,
"Skipping the latch.\n" );
875 printf(
"Nodes by level:\n" );
876 for ( i = 0; i <= nLevels; i++ )
878 printf(
"%2d : ", i );
880 if ( (
int)pNode->
Level == i )
891 float DelayMax, DelayCur, DelayDelta;
893 int DelayInt, nOutsSum, nOutsTotal;
897 DelayDelta = DelayMax/nIntervals;
899 pLevelCounts =
ABC_ALLOC(
int, nIntervals );
900 memset( pLevelCounts, 0,
sizeof(
int) * nIntervals );
908 DelayInt = (int)(DelayCur / DelayDelta);
909 if ( DelayInt >= nIntervals )
910 DelayInt = nIntervals - 1;
912 pLevelCounts[DelayInt]++;
917 for ( i = 0; i < nIntervals; i++ )
919 nOutsSum += pLevelCounts[i];
920 printf(
"[%8.2f - %8.2f] : COs = %4d. %5.1f %%\n",
921 DelayDelta * i, DelayDelta * (i+1), pLevelCounts[i], 100.0 * nOutsSum/nOutsTotal );
928 int LevelMax, * pLevelCounts;
929 int nOutsSum, nOutsTotal;
938 pLevelCounts =
ABC_ALLOC(
int, LevelMax + 1 );
939 memset( pLevelCounts, 0,
sizeof(
int) * (LevelMax + 1) );
945 for ( i = 0; i <= LevelMax; i++ )
946 if ( pLevelCounts[i] )
948 nOutsSum += pLevelCounts[i];
949 printf(
"Level = %4d. COs = %4d. %5.1f %%\n", i, pLevelCounts[i], 100.0 * nOutsSum/nOutsTotal );
968 fprintf( pFile,
"CO %4d : %*s ", i, Length,
Abc_ObjName(pNode) );
993 fprintf( pFile,
"Primary input.\n" );
998 fprintf( pFile,
"Latch.\n" );
1007 fprintf( pFile,
"Level = %3d. ", pDriver->
Level );
1012 fprintf( pFile,
"Cone = %5d. ",
Vec_PtrSize(vNodes) );
1014 fprintf( pFile,
"\n" );
1031 if ( fUseRealNames )
1059 int CountConst, CountBuf, CountInv, CountAnd, CountOr, CountOther, CounterTotal;
1065 double Area, AreaTotal;
1066 int Counter, nGates, i, nGateNameLen;
1071 for ( i = 0; i < nGates; i++ )
1078 if ( i == 0 )
continue;
1088 for ( i = 0; i < nGates; i++ )
1098 for ( i = 0; i < nGates; i++ )
1104 printf(
"%-*s Fanin = %2d Instance = %8d Area = %10.2f %6.2f %% %s\n",
1107 Counter, Area, 100.0 * Area / AreaTotal,
1110 printf(
"%-*s Instance = %8d Area = %10.2f %6.2f %%\n",
1111 nGateNameLen,
"TOTAL",
1112 CounterTotal, AreaTotal, 100.0 );
1124 printf(
"Abc_NtkPrintGates(): Converting to SOPs has failed.\n" );
1130 CountConst = CountBuf = CountInv = CountAnd = CountOr = CountOther = CounterTotal = 0;
1133 if ( i == 0 )
continue;
1137 pSop = (
char *)pObj->
pData;
1155 printf(
"Const = %8d %6.2f %%\n", CountConst , 100.0 * CountConst / CounterTotal );
1156 printf(
"Buffer = %8d %6.2f %%\n", CountBuf , 100.0 * CountBuf / CounterTotal );
1157 printf(
"Inverter = %8d %6.2f %%\n", CountInv , 100.0 * CountInv / CounterTotal );
1158 printf(
"And = %8d %6.2f %%\n", CountAnd , 100.0 * CountAnd / CounterTotal );
1159 printf(
"Or = %8d %6.2f %%\n", CountOr , 100.0 * CountOr / CounterTotal );
1160 printf(
"Other = %8d %6.2f %%\n", CountOther , 100.0 * CountOther / CounterTotal );
1161 printf(
"TOTAL = %8d %6.2f %%\n", CounterTotal, 100.0 * CounterTotal / CounterTotal );
1182 Abc_Obj_t * pObj1, * pObj2, * pNode1, * pNode2;
1186 printf(
"Statistics about sharing of logic nodes among the CO pairs.\n" );
1187 printf(
"(CO1,CO2)=NumShared : " );
1204 Counter += pNode2->
fMarkA;
1206 printf(
"(%d,%d)=%d ", i, k, Counter );
1241 printf(
"Structural support info:\n" );
1247 printf(
"%5d %20s : Cone = %5d. Supp = %5d. (PIs = %5d. FFs = %5d.)\n",
1248 i,
Abc_ObjName(pObj), vNodes->nSize, vSupp->nSize, nPis, vSupp->nSize - nPis );
1258 printf(
"Actual support info:\n" );
1267 printf(
"%d", pObj->
fMarkA );
1291 fprintf( pFile,
"Object %5d : ", pObj->
Id );
1292 switch ( pObj->
Type )
1295 fprintf( pFile,
"NONE " );
1298 fprintf( pFile,
"Const1 " );
1301 fprintf( pFile,
"PI " );
1304 fprintf( pFile,
"PO " );
1307 fprintf( pFile,
"BI " );
1310 fprintf( pFile,
"BO " );
1313 fprintf( pFile,
"Net " );
1316 fprintf( pFile,
"Node " );
1319 fprintf( pFile,
"Latch " );
1322 fprintf( pFile,
"Whitebox" );
1325 fprintf( pFile,
"Blackbox" );
1332 fprintf( pFile,
" Fanins ( " );
1334 fprintf( pFile,
"%d ", pFanin->
Id );
1335 fprintf( pFile,
") " );
1344 fprintf( pFile,
" %s", (
char*)pObj->
pData );
1346 fprintf( pFile,
"\n" );
1379 else if ( pChild == pConst1 )
1402 printf(
"Miter: I =%6d", nPis );
1404 printf(
" ? =%7d", nUndec );
1405 printf(
" U =%6d", nUnsat );
1406 printf(
" S =%6d", nSat );
1408 printf(
" %7.2f sec\n", (
float)(Time)/(
float)(CLOCKS_PER_SEC));
1410 printf(
"The first satisfiable output is number %d (%s).\n", iOut,
Abc_ObjName(
Abc_NtkPo(pNtk, iOut) ) );
1441 int nSwitches, nGlitches;
1452 printf(
"Abc_NtkMfsTotalGlitching() This procedure works only for mapped networks with LUTs size up to 6 inputs.\n" );
1482 nSwitches = nGlitches = 0;
1484 if ( pObj->
iTemp >= 0 )
1494 return nSwitches ? 100.0*(nGlitches-nSwitches)/nSwitches : 0.0;
1512 int Cells[8] = { 0, 4, 6, 2, 3, 7, 5, 1 };
1517 assert( (F0 & F1) == 0 );
1520 for ( s = 0; s < 4; s++ )
1523 for ( h = 0; h < 8; h++ )
1525 for ( s = 0; s < 3; s++ )
1526 printf(
"%d", ((Cells[h] >> (2-s)) & 1) );
1532 for ( s = 0; s < 4; s++ )
1535 for ( h = 0; h < 8; h++ )
1537 for ( s = 0; s < 3; s++ )
1544 for ( v = 0; v < 8; v++ )
1546 for ( s = 0; s < 3; s++ )
1547 printf(
"%d", ((Cells[v] >> (2-s)) & 1) );
1550 for ( h = 0; h < 8; h++ )
1553 if ( ((F0 >> ((Cells[v]*8)+Cells[h])) & 1) )
1555 else if ( ((F1 >> ((Cells[v]*8)+Cells[h])) & 1) )
1564 for ( s = 0; s < 4; s++ )
1568 for ( h = 0; h < 8; h++ )
1570 for ( s = 0; s < 3; s++ )
1573 printf(
"%c", (v == 7 || h == 7) ?
'+' :
'|' );
1595 printf(
"Wrong length (%d) of 6-var truth table.\n", (
int)
strlen(pF0) );
1600 printf(
"Wrong length (%d) of 6-var truth table.\n", (
int)
strlen(pF1) );
ABC_DLL int Abc_NtkGetBufNum(Abc_Ntk_t *pNtk)
void Abc_NtkPrintGates(Abc_Ntk_t *pNtk, int fUseLibrary)
int Abc_NtkCompareAndSaveBest(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
void Abc_NodePrintFanio(FILE *pFile, Abc_Obj_t *pNode)
void Abc_NtkPrintSharing(Abc_Ntk_t *pNtk)
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
static int Abc_NtkIsLogic(Abc_Ntk_t *pNtk)
static int Abc_LatchInit(Abc_Obj_t *pLatch)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static int Abc_NtkHasBdd(Abc_Ntk_t *pNtk)
Gli_Man_t * Gli_ManAlloc(int nObjs, int nRegs, int nFanioPairs)
FUNCTION DEFINITIONS ///.
ABC_DLL void * Abc_FrameReadLibGen()
static int Abc_NtkHasSop(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkGetExorNum(Abc_Ntk_t *pNtk)
static int Abc_ObjIsCi(Abc_Obj_t *pObj)
ABC_DLL int Abc_NodeIsConst(Abc_Obj_t *pNode)
ABC_DLL float Abc_NtkDelayTrace(Abc_Ntk_t *pNtk, Abc_Obj_t *pOut, Abc_Obj_t *pIn, int fPrint)
int Gli_ObjNumSwitches(Gli_Man_t *p, int iNode)
ABC_DLL double Abc_NtkGetMappedArea(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
Io_FileType_t
INCLUDES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Aig_ManStop(Aig_Man_t *p)
static int Abc_NtkIsNetlist(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_SopIsOrType(char *pSop)
float Abc_NtkMfsTotalSwitching(Abc_Ntk_t *pNtk)
static int Abc_ObjIsLatch(Abc_Obj_t *pObj)
int Gli_ManCreateCi(Gli_Man_t *p, int nFanouts)
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
int Gli_ManCreateNode(Gli_Man_t *p, Vec_Int_t *vFanins, int nFanouts, unsigned *puTruth)
void Abc_NtkPrintStats(Abc_Ntk_t *pNtk, int fFactored, int fSaveBest, int fDumpResult, int fUseLutLib, int fPrintMuxes, int fPower, int fGlitch, int fSkipBuf)
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
static int Abc_ObjFaninNum(Abc_Obj_t *pObj)
static int Abc_NtkHasMapping(Abc_Ntk_t *pNtk)
void Abc_NodeMffcConeSuppPrint(Abc_Obj_t *pNode)
ABC_DLL int Abc_NtkGetFaninMax(Abc_Ntk_t *pNtk)
void Abc_NtkPrintStrSupports(Abc_Ntk_t *pNtk, int fMatrix)
ABC_DLL int Abc_SopIsInv(char *pSop)
static int Abc_NtkLatchNum(Abc_Ntk_t *pNtk)
static int Abc_ObjFaninC0(Abc_Obj_t *pObj)
static int Abc_ObjIsPi(Abc_Obj_t *pObj)
static Aig_Obj_t * Aig_Regular(Aig_Obj_t *p)
static int Abc_AigNodeIsConst(Abc_Obj_t *pNode)
static int Abc_NtkCiNum(Abc_Ntk_t *pNtk)
#define ABC_ALLOC(type, num)
#define Abc_NtkForEachCo(pNtk, pCo, i)
int Mio_GateReadValue(Mio_Gate_t *pGate)
void Abc_NtkPrintFanio(FILE *pFile, Abc_Ntk_t *pNtk, int fUsePis)
float Abc_NtkGetArea(Abc_Ntk_t *pNtk)
Dec_Graph_t * Dec_Factor(char *pSop)
FUNCTION DECLARATIONS ///.
static int Abc_NtkIsSopLogic(Abc_Ntk_t *pNtk)
ABC_DLL Vec_Ptr_t * Abc_NtkDfs(Abc_Ntk_t *pNtk, int fCollectAll)
ABC_DLL Vec_Ptr_t * Abc_NodeGetFaninNames(Abc_Obj_t *pNode)
static abctime Abc_Clock()
ABC_DLL int Abc_NtkGetCubeNum(Abc_Ntk_t *pNtk)
static int Abc_NtkWhiteboxNum(Abc_Ntk_t *pNtk)
static int Abc_MaxInt(int a, int b)
static int Vec_PtrSize(Vec_Ptr_t *p)
ABC_DLL int Abc_NtkGetTotalFanins(Abc_Ntk_t *pNtk)
ABC_DLL float Abc_NtkDelayTraceLut(Abc_Ntk_t *pNtk, int fUseLutLib)
void Abc_ObjPrint(FILE *pFile, Abc_Obj_t *pObj)
static int Abc_NtkIsAigLogic(Abc_Ntk_t *pNtk)
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkGetChoiceNum(Abc_Ntk_t *pNtk)
void Abc_NtkPrintLevel(FILE *pFile, Abc_Ntk_t *pNtk, int fProfile, int fListNodes, int fVerbose)
static int Abc_NtkCoNum(Abc_Ntk_t *pNtk)
void Abc_NodePrintKMap(Abc_Obj_t *pNode, int fUseRealNames)
ABC_DLL int Abc_SopIsBuf(char *pSop)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
static int Abc_ObjIsCo(Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkGetBddNodeNum(Abc_Ntk_t *pNtk)
char * Mio_GateReadForm(Mio_Gate_t *pGate)
void Abc_NtkPrintFactor(FILE *pFile, Abc_Ntk_t *pNtk, int fUseRealNames)
int Mio_GateReadPinNum(Mio_Gate_t *pGate)
static void Vec_IntGrow(Vec_Int_t *p, int nCapMin)
static Abc_Obj_t * Abc_ObjChild0(Abc_Obj_t *pObj)
ABC_DLL void Abc_NodeFreeNames(Vec_Ptr_t *vNames)
void Io_Write(Abc_Ntk_t *pNtk, char *pFileName, Io_FileType_t FileType)
void Abc_NtkPrintFanioNew(FILE *pFile, Abc_Ntk_t *pNtk, int fMffc)
static int Abc_ObjIsNode(Abc_Obj_t *pObj)
void Gli_ManStop(Gli_Man_t *p)
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
void Abc_NtkPrintMiter(Abc_Ntk_t *pNtk)
static Vec_Int_t * Vec_IntStart(int nSize)
ABC_NAMESPACE_IMPL_START abctime s_MappingTime
DECLARATIONS ///.
void Dec_GraphPrint(FILE *pFile, Dec_Graph_t *pGraph, char *pNamesIn[], char *pNameOut)
FUNCTION DEFINITIONS ///.
ABC_DLL int Abc_NtkGetAigNodeNum(Abc_Ntk_t *pNtk)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
void Mio_GateSetValue(Mio_Gate_t *pGate, int Value)
Vec_Int_t * Saig_ManComputeSwitchProbs(Aig_Man_t *pAig, int nFrames, int nPref, int fProbOne)
static int Abc_NtkHasBlackbox(Abc_Ntk_t *pNtk)
Aig_Man_t * Abc_NtkToDar(Abc_Ntk_t *pNtk, int fExors, int fRegisters)
ABC_DLL int Abc_AigLevel(Abc_Ntk_t *pNtk)
static void Vec_IntAddToEntry(Vec_Int_t *p, int i, int Addition)
ABC_DLL int Abc_NtkSopToBdd(Abc_Ntk_t *pNtk)
unsigned __int64 word
DECLARATIONS ///.
static int Abc_Base10Log(unsigned n)
#define ABC_NAMESPACE_IMPL_END
ABC_DLL int Abc_NodeMffcSize(Abc_Obj_t *pNode)
FUNCTION DEFINITIONS ///.
static void Vec_IntFill(Vec_Int_t *p, int nSize, int Fill)
static int Abc_LatchIsInitDc(Abc_Obj_t *pLatch)
ABC_DLL Vec_Ptr_t * Abc_NtkNodeSupport(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
int Abc_NtkCountMuxes(Abc_Ntk_t *pNtk)
int Gli_ObjNumGlitches(Gli_Man_t *p, int iNode)
STRUCTURE DEFINITIONS ///.
static void Vec_IntPush(Vec_Int_t *p, int Entry)
ABC_DLL int Abc_SopIsConst0(char *pSop)
ABC_DLL int Abc_SopIsConst1(char *pSop)
void Abc_NtkShow6VarFunc(char *pF0, char *pF1)
#define Abc_NtkForEachLatch(pNtk, pObj, i)
ABC_DLL int Abc_NtkGetLitFactNum(Abc_Ntk_t *pNtk)
static int Abc_LatchIsInit1(Abc_Obj_t *pLatch)
static void Abc_Print(int level, const char *format,...)
#define Abc_NtkForEachNode(pNtk, pNode, i)
static int Abc_NtkConstrNum(Abc_Ntk_t *pNtk)
void Abc_NodePrintFactor(FILE *pFile, Abc_Obj_t *pNode, int fUseRealNames)
#define ABC_NAMESPACE_IMPL_START
double Mio_GateReadArea(Mio_Gate_t *pGate)
ABC_DLL void Abc_ManTimeStop(Abc_ManTime_t *p)
ABC_DLL float Abc_NodeReadArrivalWorst(Abc_Obj_t *pNode)
Mio_Gate_t ** Mio_LibraryReadGateArray(Mio_Library_t *pLib)
static Abc_Obj_t * Abc_ObjRegular(Abc_Obj_t *p)
static int Vec_IntSize(Vec_Int_t *p)
#define Abc_ObjForEachFanout(pObj, pFanout, i)
static Abc_Obj_t * Abc_NtkPo(Abc_Ntk_t *pNtk, int i)
#define Abc_NtkForEachCi(pNtk, pCi, i)
static int Abc_NtkPoNum(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkBddToSop(Abc_Ntk_t *pNtk, int fDirect)
void Abc_Show6VarFunc(word F0, word F1)
#define Abc_ObjForEachFanin(pObj, pFanin, i)
int Gli_ManCreateCo(Gli_Man_t *p, int iFanin)
static int Abc_NtkIsBddLogic(Abc_Ntk_t *pNtk)
static int Abc_NtkPiNum(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_ObjName(Abc_Obj_t *pNode)
DECLARATIONS ///.
ABC_DLL Abc_Obj_t * Abc_NtkFetchTwinNode(Abc_Obj_t *pNode)
void Abc_NtkPrintIo(FILE *pFile, Abc_Ntk_t *pNtk, int fPrintFlops)
void Abc_NodePrintLevel(FILE *pFile, Abc_Obj_t *pNode)
float pLutAreas[IF_MAX_LUTSIZE+1]
static int Abc_ObjIsPo(Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkToAig(Abc_Ntk_t *pNtk)
static void Dec_GraphFree(Dec_Graph_t *pGraph)
unsigned * Hop_ManConvertAigToTruth(Hop_Man_t *p, Hop_Obj_t *pRoot, int nVars, Vec_Int_t *vTruth, int fMsbFirst)
int Abc_NtkCountPis(Vec_Ptr_t *vSupp)
ABC_DLL int Abc_NodeIsConst1(Abc_Obj_t *pNode)
ABC_DLL int Abc_NtkGetLitNum(Abc_Ntk_t *pNtk)
static int Abc_NtkHasAig(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_SopIsAndType(char *pSop)
static Abc_Obj_t * Abc_ObjNot(Abc_Obj_t *p)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsNodes(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
#define Abc_NtkForEachPo(pNtk, pPo, i)
static int Abc_NtkBlackboxNum(Abc_Ntk_t *pNtk)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static int Abc_ObjIsComplement(Abc_Obj_t *p)
static void Vec_IntClear(Vec_Int_t *p)
void Abc_NtkPrintLatch(FILE *pFile, Abc_Ntk_t *pNtk)
#define Abc_NtkForEachObj(pNtk, pObj, i)
ITERATORS ///.
ABC_DLL int Abc_NtkLevel(Abc_Ntk_t *pNtk)
char * Mio_GateReadName(Mio_Gate_t *pGate)
float Abc_NtkMfsTotalGlitching(Abc_Ntk_t *pNtk)
ABC_DLL void * Abc_FrameReadLibLut()
ABC_DLL int Abc_SopIsComplement(char *pSop)
typedefABC_NAMESPACE_HEADER_START struct Hop_Man_t_ Hop_Man_t
INCLUDES ///.
char * Mio_GateReadSop(Mio_Gate_t *pGate)
int Mio_LibraryReadGateNum(Mio_Library_t *pLib)
void Abc_NtkPrintMffc(FILE *pFile, Abc_Ntk_t *pNtk)
int Abc_NtkGetMultiRefNum(Abc_Ntk_t *pNtk)
static Abc_Obj_t * Abc_ObjFanout0(Abc_Obj_t *pObj)
#define Abc_NtkForEachPi(pNtk, pPi, i)
static int Abc_NtkNetNum(Abc_Ntk_t *pNtk)
static void Vec_PtrFree(Vec_Ptr_t *p)
void Gli_ManSwitchesAndGlitches(Gli_Man_t *p, int nPatterns, float PiTransProb, int fVerbose)