116 if ( uTruth == 0 || ~uTruth == 0 )
158 if ( uTruth == 0 || ~uTruth == 0 )
202 if ( pNode->
iTemp > 0 )
225 if ( pTruth[0] == 0 )
227 else if ( ~pTruth[0] == 0 )
233 assert( RetValue == 0 || RetValue == 1 );
258 int nFaninMax, nNodes;
264 Abc_Print( 1,
"Currently \"mfs\" cannot process the network containing nodes with more than 6 fanins.\n" );
281 Abc_Print( 1,
"The network has %d nodes changed by \"mfs\".\n", nNodes );
306 assert( nFramesAdd >= 0 );
318 for ( f = 0; f <= nFrames + nFramesAdd; f++ )
346 if ( f > nFramesAdd )
363 fprintf( stdout,
"Abc_NtkCreateFromNode(): Network check has failed.\n" );
380 Abc_Obj_t * pNode, * pNodeNew, * pFaninNew;
401 if ( pNodeNew == NULL )
403 pNodeNew->
pCopy = pNode;
409 if ( pNodeNew == NULL )
433 int nFaninMax, nNodes;
441 Abc_Print( 1,
"Currently \"mfs\" cannot process the network containing nodes with more than 6 fanins.\n" );
461 Abc_Print( 1,
"The network has %d nodes changed by \"mfs\".\n", nNodes );
static unsigned Abc_ObjId(Abc_Obj_t *pObj)
static int Abc_NtkIsLogic(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Sfm_Ntk_t * Abc_NtkExtractMfs2(Abc_Ntk_t *pNtk, int iPivot)
typedefABC_NAMESPACE_HEADER_START struct Vec_Wec_t_ Vec_Wec_t
INCLUDES ///.
static int Abc_NtkHasSop(Abc_Ntk_t *pNtk)
int Abc_NtkPerformMfs(Abc_Ntk_t *pNtk, Sfm_Par_t *pPars)
static int Abc_NtkObjNumMax(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Vec_Int_t * Sfm_NodeReadFanins(Sfm_Ntk_t *p, int i)
Vec_Ptr_t * Abc_NtkAssignIDs2(Abc_Ntk_t *pNtk)
static Vec_Wec_t * Vec_WecStart(int nSize)
static int Abc_ObjFaninNum(Abc_Obj_t *pObj)
ABC_DLL char * Abc_SopCreateFromIsop(Mem_Flex_t *pMan, int nVars, Vec_Int_t *vCover)
ABC_DLL int Abc_NtkGetFaninMax(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NtkDupObj(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, int fCopyName)
static int Abc_NtkLatchNum(Abc_Ntk_t *pNtk)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
static int Abc_NtkCiNum(Abc_Ntk_t *pNtk)
#define Abc_NtkForEachCo(pNtk, pCo, i)
typedefABC_NAMESPACE_HEADER_START struct Sfm_Ntk_t_ Sfm_Ntk_t
INCLUDES ///.
static Abc_Obj_t * Abc_NtkCi(Abc_Ntk_t *pNtk, int i)
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
ABC_DLL Vec_Ptr_t * Abc_NtkDfs(Abc_Ntk_t *pNtk, int fCollectAll)
ABC_DLL int Abc_NtkCleanup(Abc_Ntk_t *pNtk, int fVerbose)
static Abc_Obj_t * Abc_NtkObj(Abc_Ntk_t *pNtk, int i)
static int Vec_PtrSize(Vec_Ptr_t *p)
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
static int Abc_NtkCoNum(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
static Abc_Obj_t * Abc_NtkCo(Abc_Ntk_t *pNtk, int i)
int Sfm_NtkPerform(Sfm_Ntk_t *p, Sfm_Par_t *pPars)
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
ABC_DLL Abc_Ntk_t * Abc_NtkAlloc(Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan)
DECLARATIONS ///.
int Sfm_NodeReadUsed(Sfm_Ntk_t *p, int i)
static void Vec_IntGrow(Vec_Int_t *p, int nCapMin)
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
static void Vec_StrWriteEntry(Vec_Str_t *p, int i, char Entry)
ABC_DLL void Abc_NtkAddDummyPoNames(Abc_Ntk_t *pNtk)
static Vec_Int_t * Vec_IntStart(int nSize)
ABC_DLL char * Abc_SopRegister(Mem_Flex_t *pMan, char *pName)
DECLARATIONS ///.
ABC_DLL void Abc_NtkDeleteObj(Abc_Obj_t *pObj)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
ABC_DLL int Abc_NtkToSop(Abc_Ntk_t *pNtk, int fDirect)
int Kit_TruthIsop(unsigned *puTruth, int nVars, Vec_Int_t *vMemory, int fTryBoth)
FUNCTION DEFINITIONS ///.
static void Vec_WrdWriteEntry(Vec_Wrd_t *p, int i, word Entry)
static int Vec_IntEntry(Vec_Int_t *p, int i)
unsigned __int64 word
DECLARATIONS ///.
#define ABC_NAMESPACE_IMPL_END
void Abc_NtkInsertMfs(Abc_Ntk_t *pNtk, Sfm_Ntk_t *p)
static Vec_Str_t * Vec_StrStart(int nSize)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
#define Abc_NtkForEachLatch(pNtk, pObj, i)
static Abc_Obj_t * Abc_NtkCreatePi(Abc_Ntk_t *pNtk)
static void Abc_Print(int level, const char *format,...)
ABC_DLL void Abc_ObjRemoveFanins(Abc_Obj_t *pObj)
#define Abc_NtkForEachNode(pNtk, pNode, i)
#define ABC_NAMESPACE_IMPL_START
static Vec_Int_t * Vec_WecEntry(Vec_Wec_t *p, int i)
static Vec_Wrd_t * Vec_WrdStart(int nSize)
static int Vec_IntSize(Vec_Int_t *p)
void Sfm_NtkFree(Sfm_Ntk_t *p)
ABC_DLL void Abc_SopComplement(char *pSop)
static char * Abc_NtkName(Abc_Ntk_t *pNtk)
#define Abc_NtkForEachCi(pNtk, pCi, i)
static int Abc_NtkPoNum(Abc_Ntk_t *pNtk)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
ABC_DLL int Abc_NtkSweep(Abc_Ntk_t *pNtk, int fVerbose)
#define Abc_ObjForEachFanin(pObj, pFanin, i)
Sfm_Ntk_t * Sfm_NtkConstruct(Vec_Wec_t *vFanins, int nPis, int nPos, Vec_Str_t *vFixed, Vec_Str_t *vEmpty, Vec_Wrd_t *vTruths)
ABC_DLL int Abc_SopGetVarNum(char *pSop)
Abc_Ntk_t * Abc_NtkUnrollAndDrop(Abc_Ntk_t *p, int nFrames, int nFramesAdd, Vec_Int_t *vFlops, int *piPivot)
int Sfm_NodeReadFixed(Sfm_Ntk_t *p, int i)
ABC_DLL word Abc_SopToTruth(char *pSop, int nInputs)
void Io_WriteBlifLogic(Abc_Ntk_t *pNtk, char *pFileName, int fWriteLatches)
FUNCTION DEFINITIONS ///.
ABC_DLL void Abc_NtkCleanCopy(Abc_Ntk_t *pNtk)
Sfm_Ntk_t * Abc_NtkExtractMfs(Abc_Ntk_t *pNtk, int nFirstFixed)
#define Abc_NtkForEachPo(pNtk, pPo, i)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
int Abc_NtkMfsAfterICheck(Abc_Ntk_t *p, int nFrames, int nFramesAdd, Vec_Int_t *vFlops, Sfm_Par_t *pPars)
static int Abc_NtkObjNum(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkAddDummyPiNames(Abc_Ntk_t *pNtk)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
ABC_NAMESPACE_IMPL_START Vec_Ptr_t * Abc_NtkAssignIDs(Abc_Ntk_t *pNtk)
DECLARATIONS ///.
static Abc_Obj_t * Abc_NtkCreatePo(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Vec_Wrd_t_ Vec_Wrd_t
INCLUDES ///.
word * Sfm_NodeReadTruth(Sfm_Ntk_t *p, int i)
void Abc_NtkReinsertNodes(Abc_Ntk_t *p, Abc_Ntk_t *pNtk, int iPivot)
static Abc_Obj_t * Abc_ObjFanout0(Abc_Obj_t *pObj)
#define Abc_NtkForEachPi(pNtk, pPi, i)
static void Vec_PtrFree(Vec_Ptr_t *p)