50 int Lit = Mini_AigNodeFanin0(
p, Id );
51 int AbcLit = Abc_LitNotCond( Vec_IntEntry(vCopies, Abc_Lit2Var(Lit)), Abc_LitIsCompl(Lit) );
52 return Abc_ObjFromLit( pNtk, AbcLit );
56 int Lit = Mini_AigNodeFanin1(
p, Id );
57 int AbcLit = Abc_LitNotCond( Vec_IntEntry(vCopies, Abc_Lit2Var(Lit)), Abc_LitIsCompl(Lit) );
58 return Abc_ObjFromLit( pNtk, AbcLit );
67 nNodes = Mini_AigNodeNum(
p);
70 pNtk->
pName = Abc_UtilStrsav(
"MiniAig" );
72 vCopies = Vec_IntAlloc( nNodes );
73 Vec_IntPush( vCopies, Abc_LitNot(Abc_ObjToLit(
Abc_AigConst1(pNtk))) );
75 for ( i = 1; i < nNodes; i++ )
77 if ( Mini_AigNodeIsPi(
p, i ) )
78 pObj = Abc_NtkCreatePi(pNtk);
79 else if ( Mini_AigNodeIsPo(
p, i ) )
81 else if ( Mini_AigNodeIsAnd(
p, i ) )
84 Vec_IntPush( vCopies, Abc_ObjToLit(pObj) );
86 assert( Vec_IntSize(vCopies) == nNodes );
88 Vec_IntFree( vCopies );
92 fprintf( stdout,
"Abc_NtkFromMini(): Network check has failed.\n" );
94 if ( Mini_AigRegNum(
p) > 0 )
117 return Abc_LitNotCond( Abc_ObjFanin0(pObj)->iTemp, Abc_ObjFaninC0(pObj) );
121 return Abc_LitNotCond( Abc_ObjFanin1(pObj)->iTemp, Abc_ObjFaninC1(pObj) );
128 assert( Abc_NtkIsStrash(pNtk) );
136 pObj->
iTemp = Mini_AigCreatePi(
p);
144 Mini_AigSetRegNum(
p, Abc_NtkLatchNum(pNtk) );
151 if (!Abc_NtkIsStrash(pNtk)) {
153 if ( pNtkRes == NULL )
155 printf(
"Strashing has failed.\n" );
179 printf(
"ABC framework is not initialized by calling Abc_Start()\n" );
188 printf(
"ABC framework is not initialized by calling Abc_Start()\n" );
191 printf(
"Current network in ABC framework is not defined.\n" );
199 printf(
"ABC framework is not initialized by calling Abc_Start()\n" );
202 printf(
"Current network in ABC framework is not defined.\n" );
224 Abc_NtkPrintStats( pNtkNew, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );
229 Mini_AigDump(
p,
"miniaig.data" );
230 Mini_AigPrintStats(
p );
233 p = Mini_AigLoad(
"miniaig.data" );
234 Mini_AigPrintStats(
p );
Mini_Aig_t * Abc_NtkToMiniAig(Abc_Ntk_t *pNtk)
Abc_Ntk_t * Abc_NtkFromMiniAig(Mini_Aig_t *p)
int Abc_NodeFanin1Copy2(Abc_Obj_t *pObj)
void * Abc_NtkOutputMiniAig(Abc_Frame_t *pAbc)
void Abc_NtkMiniAigTest(Abc_Ntk_t *pNtk)
void Abc_NtkSetFlopNum(Abc_Frame_t *pAbc, int nFlops)
ABC_NAMESPACE_IMPL_START Abc_Obj_t * Abc_NodeFanin0Copy(Abc_Ntk_t *pNtk, Vec_Int_t *vCopies, Mini_Aig_t *p, int Id)
DECLARATIONS ///.
int Abc_NodeFanin0Copy2(Abc_Obj_t *pObj)
void Abc_NtkInputMiniAig(Abc_Frame_t *pAbc, void *p)
Abc_Obj_t * Abc_NodeFanin1Copy(Abc_Ntk_t *pNtk, Vec_Int_t *vCopies, Mini_Aig_t *p, int Id)
Mini_Aig_t * Abc_MiniAigFromNtk(Abc_Ntk_t *pNtk)
Abc_Ntk_t * Abc_NtkRestrashWithLatches(Abc_Ntk_t *pNtk, int nLatches)
void Abc_NtkMakeSeq(Abc_Ntk_t *pNtk, int nLatchesToAdd)
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 int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
struct Abc_Aig_t_ Abc_Aig_t
struct Abc_Ntk_t_ Abc_Ntk_t
ABC_DLL void Abc_NtkPrintStats(Abc_Ntk_t *pNtk, int fFactored, int fSaveBest, int fDumpResult, int fUseLutLib, int fPrintMuxes, int fPower, int fGlitch, int fSkipBuf, int fSkipSmall, int fPrintMem)
ABC_DLL void Abc_NtkAddDummyPoNames(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_AigCleanup(Abc_Aig_t *pMan)
ABC_DLL Abc_Obj_t * Abc_AigAnd(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
#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 Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkAddDummyPiNames(Abc_Ntk_t *pNtk)
#define Abc_NtkForEachNode(pNtk, pNode, i)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
typedefABC_NAMESPACE_HEADER_START struct Abc_Frame_t_ Abc_Frame_t
INCLUDES ///.
ABC_DLL Abc_Ntk_t * Abc_FrameReadNtk(Abc_Frame_t *p)
ABC_DLL void Abc_FrameReplaceCurrentNetwork(Abc_Frame_t *p, Abc_Ntk_t *pNet)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
struct Mini_Aig_t_ Mini_Aig_t
BASIC TYPES ///.