43static void Abc_NodeFromMapCutPhase(
Abc_Ntk_t * pNtkNew,
Map_Cut_t * pCut,
int fPhase );
62Abc_Ntk_t *
Abc_NtkMap(
Abc_Ntk_t * pNtk,
Mio_Library_t* userLib,
double DelayTarget,
double AreaMulti,
double DelayMulti,
float LogFan,
float Slew,
float Gain,
int nGatesMin,
int fRecovery,
int fSwitching,
int fSkipFanout,
int fUseProfile,
int fUseBuffs,
int fVerbose )
64 static int fUseMulti = 0;
65 int fShowSwitching = 1;
69 float * pSwitching = NULL;
70 abctime clk, clkTotal = Abc_Clock();
73 assert( Abc_NtkIsStrash(pNtk) );
92 if ( userLib != NULL ) {
99 printf(
"The current library is not available.\n" );
102 if ( AreaMulti != 0.0 )
103 fUseMulti = 1, printf(
"The cell areas are multiplied by the factor: <num_fanins> ^ (%.2f).\n", AreaMulti );
104 if ( DelayMulti != 0.0 )
105 fUseMulti = 1, printf(
"The cell delays are multiplied by the factor: <num_fanins> ^ (%.2f).\n", DelayMulti );
108 if ( AreaMulti != 0.0 )
110 if ( DelayMulti != 0.0 )
117 printf(
"Converting \"%s\" into supergate library \"%s\".\n",
121 printf(
"Abc_NtkMap(): Genlib library has profile.\n" );
126 if ( AreaMulti != 0.0 )
128 if ( DelayMulti != 0.0 )
133 printf(
"Performing mapping with choices.\n" );
136 fShowSwitching |= fSwitching;
137 if ( fShowSwitching )
141 pSwitching = (
float *)vSwitching->pArray;
145 pMan =
Abc_NtkToMap( pNtk, DelayTarget, fRecovery, pSwitching, fVerbose );
146 if ( pSwitching ) Vec_IntFree( vSwitching );
168 if ( pNtkNew == NULL )
175ABC_PRT(
"Total runtime", Abc_Clock() - clkTotal );
181 printf(
"Abc_NtkMap: The network check has failed.\n" );
204 for ( i = 0; i < Abc_NtkCiNum(pNtk); i++ )
206 p[i].Fall = ppTimes[i].
Fall;
207 p[i].Rise = ppTimes[i].
Rise;
208 p[i].Worst = Abc_MaxFloat(
p[i].Fall,
p[i].Rise );
218 for ( i = 0; i < Abc_NtkCoNum(pNtk); i++ )
220 p[i].Fall = ppTimes[i].
Fall;
221 p[i].Rise = ppTimes[i].
Rise;
222 p[i].Worst = Abc_MaxFloat(
p[i].Fall,
p[i].Rise );
243 for ( i = 0; i < Abc_NtkCiNum(pNtk); i++ )
244 p[i].Fall =
p[i].Rise =
p[i].Worst = Scl_Int2Flt( Scl_ConGetInArr(i) );
251 for ( i = 0; i < Abc_NtkCoNum(pNtk); i++ )
252 p[i].Fall =
p[i].Rise =
p[i].Worst = Scl_Int2Flt( Scl_ConGetOutReq(i) );
275 assert( Abc_NtkIsStrash(pNtk) );
278 pMan =
Map_ManCreate( Abc_NtkPiNum(pNtk) + Abc_NtkLatchNum(pNtk) - pNtk->
nBarBufs, Abc_NtkPoNum(pNtk) + Abc_NtkLatchNum(pNtk) - pNtk->
nBarBufs, fVerbose );
287 if ( Scl_ConIsRunning() && Scl_ConHasInArrs() )
291 if ( Scl_ConIsRunning() && Scl_ConHasOutReqs() )
301 if ( i == Abc_NtkCiNum(pNtk) - pNtk->
nBarBufs )
314 if ( Abc_ObjIsLatch(pNode) )
316 pFanin = Abc_ObjFanin0(pNode);
318 Abc_ObjFanout0(pNode)->pCopy = (
Abc_Obj_t *)pNodeMap;
321 assert( Abc_ObjIsNode(pNode) );
324 Map_NotCond( Abc_ObjFanin0(pNode)->pCopy, (
int)Abc_ObjFaninC0(pNode) ),
325 Map_NotCond( Abc_ObjFanin1(pNode)->pCopy, (
int)Abc_ObjFaninC1(pNode) ) );
332 if ( Abc_AigNodeIsChoice( pNode ) )
341 Vec_PtrFree( vNodes );
346 if ( i == Abc_NtkCoNum(pNtk) - pNtk->
nBarBufs )
370 int nFanins, Number, i;
377 if ( Number < nNodePis )
379 return pNodePis[Number];
399 pNodeNew = Abc_NtkCreateNode( pNtkNew );
400 for ( i = 0; i < nFanins; i++ )
405 pNodeNew->
pData = pRoot;
416 int i, fInvPin, nLeaves;
434 for ( i = 0; i < nLeaves; i++ )
436 fInvPin = ((uPhaseBest & (1 << i)) > 0);
437 pNodePIs[i] = Abc_NodeFromMap_rec( pNtkNew, ppLeaves[i], !fInvPin );
438 assert( pNodePIs[i] != NULL );
455 if ( pNodeNew->
pData == NULL )
456 printf(
"Error creating mapped network: Library does not have a constant %d gate.\n", fPhase );
467 return Abc_NodeFromMapPhase_rec( pNtkNew, pNodeMap, fPhase );
471 pNodeNew = Abc_NodeFromMapPhase_rec( pNtkNew, pNodeMap, !fPhase );
474 pNodeInv = Abc_NtkCreateNode( pNtkNew );
492 pNtkNew->
vOrigNodeIds = Vec_IntStartFull( 2 * Abc_NtkObjNumMax(pNtk) );
497 if ( i >= Abc_NtkCiNum(pNtk) - pNtk->
nBarBufs )
503 if ( i < Abc_NtkCiNum(pNtk) - pNtk->
nBarBufs )
510 if ( i < Abc_NtkCoNum(pNtk) - pNtk->
nBarBufs )
514 assert( !Abc_ObjIsComplement(pNodeNew) );
519 if ( i >= Abc_NtkCoNum(pNtk) - pNtk->
nBarBufs )
523 assert( !Abc_ObjIsComplement(pNodeNew) );
550 assert( Abc_NtkIsStrash(pNtk) );
555 printf(
"The current library is not available.\n" );
569 printf(
"Performing mapping with choices.\n" );
582 pNtkNew = Abc_NtkFromMapSuperChoice( pMan, pNtk );
583 if ( pNtkNew == NULL )
590 printf(
"Abc_NtkMap: The network check has failed.\n" );
630 printf(
"Abc_NtkFromMapSuperChoice(): Converting to SOPs has failed.\n" );
661 Extra_ProgressBarUpdate( pProgress, i, NULL );
664 Abc_NodeSuperChoice( pNtkNew, pNode );
690 Abc_NodeFromMapCutPhase( pNtkNew, pTemp, 0 );
691 Abc_NodeFromMapCutPhase( pNtkNew, pTemp, 1 );
713 int i, fInvPin, nLeaves;
716 if ( pSuperBest == NULL )
725 for ( i = 0; i < nLeaves; i++ )
727 fInvPin = ((uPhaseBest & (1 << i)) > 0);
729 assert( pNodePIs[i] != NULL );
733 Abc_NodeFromMapSuperChoice_rec( pNtkNew, pSuperBest, pNodePIs, nLeaves );
754 int nFanins, Number, i;
761 if ( Number < nNodePis )
763 return pNodePis[Number];
783 pNodeNew = Abc_NtkCreateNode( pNtkNew );
784 for ( i = 0; i < nFanins; i++ )
786 pNodeFanin = Abc_NodeFromMapSuperChoice_rec( pNtkNew, ppFanins[i], pNodePis, nNodePis );
812 if ( (
int)Abc_ObjId(pNode) == Abc_NtkObjNumMax(pNode->
pNtk) - 1 )
814 pNode2 = Abc_NtkObj( pNode->
pNtk, Abc_ObjId(pNode) + 1 );
815 if ( pNode2 == NULL || !Abc_ObjIsNode(pNode2) || Abc_ObjFaninNum(pNode) != Abc_ObjFaninNum(pNode2) )
840 int i, k, nNodes, nFanins, nExtra, * pArray;
841 assert( Abc_NtkHasMapping(pNtk) );
845 nNodes = nFanins = 0;
847 pObj->
iTemp = nNodes++;
849 pObj->
iTemp = nNodes++, nFanins += Abc_ObjFaninNum(pObj);
851 vMapping = Vec_IntAlloc( 4 + Abc_NtkNodeNum(pNtk) + nFanins + Abc_NtkCoNum(pNtk) + 10000 );
853 Vec_IntPush( vMapping, Abc_NtkCiNum(pNtk) );
854 Vec_IntPush( vMapping, Abc_NtkCoNum(pNtk) );
855 Vec_IntPush( vMapping, Vec_PtrSize(vNodes) );
856 Vec_IntPush( vMapping, Abc_NtkLatchNum(pNtk) );
858 vGates = Vec_StrAlloc( 10000 );
861 Vec_IntPush( vMapping, Abc_ObjFaninNum(pObj) );
863 Vec_IntPush( vMapping, pFanin->
iTemp );
866 Vec_StrPush( vGates,
'\0' );
870 Vec_IntPush( vMapping, Abc_ObjFanin0(pObj)->iTemp );
874 Vec_StrPush( vGates,
'\0' );
878 Vec_StrPush( vGates,
'\0' );
881 nExtra = 4 - Vec_StrSize(vGates) % 4;
882 for ( i = 0; i < nExtra; i++ )
883 Vec_StrPush( vGates,
'\0' );
885 assert( Vec_StrSize(vGates) % 4 == 0 );
886 nExtra = Vec_StrSize(vGates) / 4;
887 pArray = (
int *)Vec_StrArray(vGates);
888 for ( i = 0; i < nExtra; i++ )
889 Vec_IntPush( vMapping, pArray[i] );
891 Vec_PtrFree( vNodes );
892 Vec_StrFree( vGates );
910 printf(
"Mapping is not available.\n");
915 printf(
"Library is not available.\n");
921 int nCis, nCos, nNodes, nFlops;
922 int i, k, nLeaves,
Pos = 4;
923 char * pBuffer, * pName;
931 for ( i = 0; i < nCis-nFlops; i++ )
932 Abc_NtkCreatePi( pNtkMapped );
934 for ( i = 0; i < nNodes; i++ )
935 Abc_NtkCreateNode( pNtkMapped );
937 for ( i = 0; i < nCos-nFlops; i++ )
938 Abc_NtkCreatePo( pNtkMapped );
940 for ( i = 0; i < nFlops; i++ )
943 for ( i = 0; i < nNodes; i++ )
945 nLeaves = pArray[
Pos++];
946 for ( k = 0; k < nLeaves; k++ )
947 Abc_ObjAddFanin( Abc_NtkObj( pNtkMapped, nCis + i + 1 ), Abc_NtkObj( pNtkMapped, pArray[
Pos++] + 1 ) );
949 for ( i = 0; i < nCos; i++ )
950 Abc_ObjAddFanin( Abc_NtkCo( pNtkMapped, i ), Abc_NtkObj( pNtkMapped, pArray[
Pos++] + 1 ) );
952 pBuffer = (
char *)(pArray +
Pos);
953 for ( i = 0; i < nNodes; i++ )
956 pBuffer +=
strlen(pName) + 1;
958 Abc_NtkObj( pNtkMapped, nCis + i + 1 )->pData = pGate;
961 assert( Abc_NtkCiNum(pNtkMapped) == nCis );
964 pBuffer +=
strlen(pName) + 1;
967 assert( Abc_NtkCoNum(pNtkMapped) == nCos );
970 pBuffer +=
strlen(pName) + 1;
975 fprintf( stdout,
"Abc_NtkFromMiniMapping(): Network check has failed.\n" );
997 FILE * pFile = fopen( pFileName,
"rb" );
998 char * pArray =
ABC_ALLOC(
char, nSize );
999 int nSize2 = fread( pArray,
sizeof(
char), nSize, pFile );
1000 assert( nSize2 == nSize );
1009 FILE * pFile = fopen( pFileName,
"wb" );
1010 if ( pFile == NULL ) { printf(
"Cannot open input file \"%s\" for writing.\n", pFileName );
return 0; }
1011 int nSize = fwrite( Vec_IntArray(vRes),
sizeof(
int), Vec_IntSize(vRes), pFile );
1012 assert( nSize == Vec_IntSize(vRes) );
1013 Vec_IntFree( vRes );
1032 int nCis, nCos, nNodes, nFlops;
1033 int i, k, nLeaves,
Pos = 4;
1034 char * pBuffer, * pName;
1039 printf(
"Mapped network has %d CIs, %d COs, %d gates, and %d flops.\n", nCis, nCos, nNodes, nFlops );
1040 printf(
"The first %d object IDs (from 0 to %d) are reserved for the CIs.\n", nCis, nCis - 1 );
1041 for ( i = 0; i < nNodes; i++ )
1043 nLeaves = pArray[
Pos++];
1044 printf(
"Node %d has %d fanins {", nCis + i, nLeaves );
1045 for ( k = 0; k < nLeaves; k++ )
1046 printf(
" %d", pArray[
Pos++] );
1049 for ( i = 0; i < nCos; i++ )
1050 printf(
"CO %d is driven by node %d\n", i, pArray[
Pos++] );
1051 pBuffer = (
char *)(pArray +
Pos);
1052 for ( i = 0; i < nNodes; i++ )
1055 pBuffer +=
strlen(pName) + 1;
1056 printf(
"Node %d has gate \"%s\"\n", nCis + i, pName );
1058 for ( i = 0; i < nCis; i++ )
1061 pBuffer +=
strlen(pName) + 1;
1062 printf(
"CI %d has name \"%s\"\n", i, pName );
1064 for ( i = 0; i < nCos; i++ )
1067 pBuffer +=
strlen(pName) + 1;
1068 printf(
"CO %d has name \"%s\"\n", i, pName );
1087 printf(
"ABC framework is not initialized by calling Abc_Start()\n" );
1110 printf(
"ABC framework is not initialized by calling Abc_Start()\n" );
1113 printf(
"Current network in ABC framework is not defined.\n" );
1114 if ( !Abc_NtkHasMapping(pNtk) )
1115 printf(
"Current network in ABC framework is not mapped.\n" );
1118 pArray = Vec_IntArray( vMapping );
1142 printf(
"Array has size %d ints.\n", Vec_IntSize(vMapping) );
1143 Vec_IntFree( vMapping );
1164 printf(
"ABC framework is not initialized by calling Abc_Start()\n" );
1170 printf(
"Current network in ABC framework is not defined.\n" );
1173 if ( iCi < 0 || iCi >= Abc_NtkCiNum(pNtk) )
1175 printf(
"CI index is not valid.\n" );
1178 pNode = Abc_NtkCi( pNtk, iCi );
1186 if ( pAbc == NULL )\
1188 printf(
"ABC framework is not initialized by calling Abc_Start()\n" );
1194 printf(
"Current network in ABC framework is not defined.\n" );
1197 if ( iCo < 0 || iCo >= Abc_NtkCoNum(pNtk) )
1199 printf(
"CO index is not valid.\n" );
1202 pNode = Abc_NtkCo( pNtk, iCo );
1223 printf(
"ABC framework is not initialized by calling Abc_Start()\n" );
1229 printf(
"Current network in ABC framework is not defined.\n" );
Vec_Int_t * Abc_NtkWriteMiniMapping(Abc_Ntk_t *pNtk)
void Abc_NtkInputMiniMapping(Abc_Frame_t *pAbc, void *p)
void Abc_NtkPrintMiniMapping(int *pArray)
ABC_NAMESPACE_IMPL_START Map_Man_t * Abc_NtkToMap(Abc_Ntk_t *pNtk, double DelayTarget, int fRecovery, float *pSwitching, int fVerbose)
DECLARATIONS ///.
Map_Time_t * Abc_NtkMapCopyCiArrival(Abc_Ntk_t *pNtk, Abc_Time_t *ppTimes)
Abc_Ntk_t * Abc_NtkFromMiniMapping(int *pArray)
Abc_Obj_t * Abc_NtkFetchTwinNode(Abc_Obj_t *pNode)
int * Abc_NtkOutputMiniMapping(Abc_Frame_t *pAbc)
int Abc_NtkWriteToFile(char *pFileName, Abc_Ntk_t *pNtk)
Abc_Ntk_t * Abc_NtkSuperChoice(Abc_Ntk_t *pNtk)
void Abc_NtkSetAndGateDelay(Abc_Frame_t *pAbc, float Delay)
void Abc_NtkTestMiniMapping(Abc_Ntk_t *p)
Abc_Ntk_t * Abc_NtkMap(Abc_Ntk_t *pNtk, Mio_Library_t *userLib, double DelayTarget, double AreaMulti, double DelayMulti, float LogFan, float Slew, float Gain, int nGatesMin, int fRecovery, int fSwitching, int fSkipFanout, int fUseProfile, int fUseBuffs, int fVerbose)
FUNCTION DEFINITIONS ///.
Map_Time_t * Abc_NtkMapCopyCoRequiredCon(Abc_Ntk_t *pNtk)
Map_Time_t * Abc_NtkMapCopyCoRequired(Abc_Ntk_t *pNtk, Abc_Time_t *ppTimes)
Abc_Ntk_t * Abc_NtkFromMap(Map_Man_t *pMan, Abc_Ntk_t *pNtk, int fUseBuffs)
Map_Time_t * Abc_NtkMapCopyCiArrivalCon(Abc_Ntk_t *pNtk)
Abc_Ntk_t * Abc_NtkReadFromFile(char *pFileName)
void Abc_NtkSetCoRequiredTime(Abc_Frame_t *pAbc, int iCo, float Rise, float Fall)
Abc_Obj_t * Abc_NodeFromMapSuper_rec(Abc_Ntk_t *pNtkNew, Map_Node_t *pNodeMap, Map_Super_t *pSuper, Abc_Obj_t *pNodePis[], int nNodePis)
void Abc_NtkSetCiArrivalTime(Abc_Frame_t *pAbc, int iCi, float Rise, float Fall)
ABC_NAMESPACE_IMPL_START Abc_Ntk_t * Abc_NtkMulti(Abc_Ntk_t *pNtk, int nThresh, int nFaninMax, int fCnf, int fMulti, int fSimple, int fFactor)
DECLARATIONS ///.
struct Abc_Obj_t_ Abc_Obj_t
#define Abc_NtkForEachCo(pNtk, pCo, i)
ABC_DLL Abc_Ntk_t * Abc_NtkAlloc(Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan)
DECLARATIONS ///.
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
ABC_DLL Abc_Time_t * Abc_NtkGetCiArrivalTimes(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst1(Abc_Ntk_t *pNtk)
#define Abc_NtkForEachPo(pNtk, pPo, i)
ABC_DLL Abc_Obj_t * Abc_NtkAddLatch(Abc_Ntk_t *pNtk, Abc_Obj_t *pDriver, Abc_InitType_t Init)
ABC_DLL int Abc_NtkGetChoiceNum(Abc_Ntk_t *pNtk)
ABC_DLL Vec_Ptr_t * Abc_NtkDfs(Abc_Ntk_t *pNtk, int fCollectAll)
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst0(Abc_Ntk_t *pNtk)
#define Abc_ObjForEachFanin(pObj, pFanin, i)
ABC_DLL char * Abc_ObjName(Abc_Obj_t *pNode)
DECLARATIONS ///.
struct Abc_Ntk_t_ Abc_Ntk_t
ABC_DLL char * Abc_ObjAssignName(Abc_Obj_t *pObj, char *pName, char *pSuffix)
ABC_DLL void Abc_NtkTimeSetRequired(Abc_Ntk_t *pNtk, int ObjId, float Rise, float Fall)
ABC_DLL int Abc_NtkLogicMakeSimpleCos(Abc_Ntk_t *pNtk, int fDuplicate)
struct Abc_Time_t_ Abc_Time_t
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeInv(Abc_Ntk_t *pNtk, Abc_Obj_t *pFanin)
ABC_DLL char ** Abc_NtkCollectCioNames(Abc_Ntk_t *pNtk, int fCollectCos)
#define Abc_NtkForEachCi(pNtk, pCi, i)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkCleanCopy(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkTimeSetArrival(Abc_Ntk_t *pNtk, int ObjId, float Rise, float Fall)
ABC_DLL Vec_Ptr_t * Abc_AigDfsMap(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkBddToSop(Abc_Ntk_t *pNtk, int fMode, int nCubeLimit, int fCubeSort)
ABC_DLL char * Abc_SopRegister(Mem_Flex_t *pMan, const char *pName)
DECLARATIONS ///.
ABC_DLL Abc_Time_t * Abc_NtkGetCoRequiredTimes(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkStartFrom(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
ABC_DLL Abc_Ntk_t * Abc_NtkDup(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
#define Abc_NtkForEachNode(pNtk, pNode, i)
#define ABC_ALLOC(type, num)
#define ABC_INFINITY
MACRO DEFINITIONS ///.
#define ABC_CALLOC(type, num)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
typedefABC_NAMESPACE_HEADER_START struct Abc_Frame_t_ Abc_Frame_t
INCLUDES ///.
ABC_DLL void Abc_FrameSetLibSuper(void *pLib)
ABC_DLL void * Abc_FrameReadLibGen()
ABC_DLL Abc_Ntk_t * Abc_FrameReadNtk(Abc_Frame_t *p)
ABC_DLL void * Abc_FrameReadLibSuper()
ABC_DLL void Abc_FrameReplaceCurrentNetwork(Abc_Frame_t *p, Abc_Ntk_t *pNet)
ABC_DLL void * Abc_FrameReadLibScl()
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
struct Vec_Str_t_ Vec_Str_t
ABC_NAMESPACE_IMPL_START typedef char ProgressBar
void Map_ManSetOutputNames(Map_Man_t *p, char **ppNames)
unsigned Map_CutReadPhaseBest(Map_Cut_t *p, int fPhase)
#define Map_NotCond(p, c)
void Map_NodeSetData(Map_Node_t *p, int fPhase, char *pData)
void Map_ManSetOutputRequireds(Map_Man_t *p, Map_Time_t *pArrivals)
Map_Cut_t * Map_NodeReadCutBest(Map_Node_t *p, int fPhase)
typedefABC_NAMESPACE_HEADER_START struct Map_ManStruct_t_ Map_Man_t
INCLUDES ///.
void Map_NodeSetRepr(Map_Node_t *p, Map_Node_t *pRepr)
int Map_NodeReadAigId(Map_Node_t *p)
int Map_SuperLibDeriveFromGenlib(Mio_Library_t *pLib, int fVerbose)
void Map_ManSetUseProfile(Map_Man_t *p)
int Map_CutReadLeavesNum(Map_Cut_t *p)
int Map_SuperReadFaninNum(Map_Super_t *p)
int Map_NodeIsConst(Map_Node_t *p)
Map_Cut_t * Map_NodeReadCuts(Map_Node_t *p)
void Map_ManSetSwitching(Map_Man_t *p, int fSwitching)
Mio_Gate_t * Map_SuperReadRoot(Map_Super_t *p)
struct Map_CutStruct_t_ Map_Cut_t
Map_Node_t ** Map_ManReadOutputs(Map_Man_t *p)
int Map_ManReadBufNum(Map_Man_t *p)
Map_Node_t * Map_ManReadConst1(Map_Man_t *p)
Map_Node_t ** Map_ManReadInputs(Map_Man_t *p)
struct Map_SuperStruct_t_ Map_Super_t
struct Map_SuperLibStruct_t_ Map_SuperLib_t
struct Map_TimeStruct_t_ Map_Time_t
Map_Node_t ** Map_ManReadBufs(Map_Man_t *p)
Map_Node_t * Map_ManReadBufDriver(Map_Man_t *p, int i)
void Map_ManCreateNodeDelays(Map_Man_t *p, int LogFan)
int Map_Mapping(Map_Man_t *p)
DECLARATIONS ///.
void Map_NodeSetSwitching(Map_Node_t *p, float Switching)
Map_Super_t * Map_CutReadSuperBest(Map_Cut_t *p, int fPhase)
int Map_SuperReadNum(Map_Super_t *p)
Map_Node_t * Map_NodeBuf(Map_Man_t *p, Map_Node_t *p1)
void Map_ManSetAreaRecovery(Map_Man_t *p, int fAreaRecovery)
void Map_ManCleanData(Map_Man_t *p)
void Map_ManSetSkipFanout(Map_Man_t *p, int fSkipFanout)
char * Map_NodeReadData(Map_Node_t *p, int fPhase)
Map_Man_t * Map_ManCreate(int nInputs, int nOutputs, int fVerbose)
FUNCTION DEFINITIONS ///.
void Map_NodeSetAigId(Map_Node_t *p, int Id)
void Map_ManFree(Map_Man_t *pMan)
void Map_ManSetInputArrivals(Map_Man_t *p, Map_Time_t *pArrivals)
void Map_NodeSetNextE(Map_Node_t *p, Map_Node_t *pNextE)
void Map_SuperLibFree(Map_SuperLib_t *p)
Map_Cut_t * Map_CutReadNext(Map_Cut_t *p)
Map_Node_t * Map_NodeAnd(Map_Man_t *p, Map_Node_t *p1, Map_Node_t *p2)
Map_Super_t ** Map_SuperReadFanins(Map_Super_t *p)
Map_Node_t ** Map_CutReadLeaves(Map_Cut_t *p)
void Map_ManSetDelayTarget(Map_Man_t *p, float DelayTarget)
#define Map_IsComplement(p)
GLOBAL VARIABLES ///.
void Map_ManCreateAigIds(Map_Man_t *p, int nObjs)
struct Map_NodeStruct_t_ Map_Node_t
char * Mio_LibraryReadName(Mio_Library_t *pLib)
DECLARATIONS ///.
struct Mio_LibraryStruct_t_ Mio_Library_t
char * Mio_GateReadSop(Mio_Gate_t *pGate)
Mio_Gate_t * Mio_GateReadTwin(Mio_Gate_t *pGate)
void Mio_LibraryTransferProfile(Mio_Library_t *pLibDst, Mio_Library_t *pLibSrc)
int Mio_LibraryHasProfile(Mio_Library_t *pLib)
Mio_Gate_t * Mio_LibraryReadGateByName(Mio_Library_t *pLib, char *pName, char *pOutName)
void Mio_LibraryMultiDelay(Mio_Library_t *pLib, double Multi)
char * Mio_GateReadName(Mio_Gate_t *pGate)
void Mio_LibraryTransferDelays(Mio_Library_t *pLibD, Mio_Library_t *pLibS)
Mio_Gate_t * Mio_LibraryReadInv(Mio_Library_t *pLib)
Mio_Library_t * Abc_SclDeriveGenlib(void *pScl, void *pMio, float Slew, float Gain, int nGatesMin, int fVerbose)
struct Mio_GateStruct_t_ Mio_Gate_t
void Mio_LibraryMultiArea(Mio_Library_t *pLib, double Multi)
void Mio_LibraryTransferProfile2(Mio_Library_t *pLibDst, Mio_Library_t *pLibSrc)
struct Mem_Flex_t_ Mem_Flex_t
int Abc_SclHasDelayInfo(void *pScl)
Vec_Int_t * Sim_NtkComputeSwitching(Abc_Ntk_t *pNtk, int nPatterns)
FUNCTION DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.