53 assert( Ivy_ObjIsNode(pGhost) );
54 assert( Ivy_ObjIsAnd(pGhost) || (!Ivy_ObjFaninC0(pGhost) && !Ivy_ObjFaninC1(pGhost)) );
55 assert( Ivy_ObjFaninId0(pGhost) != 0 && Ivy_ObjFaninId1(pGhost) != 0 );
57 if ( !Ivy_ObjIsLatch(Ivy_ObjFanin0(pGhost)) || !Ivy_ObjIsLatch(Ivy_ObjFanin1(pGhost)) )
64 pLat0 = Ivy_ObjFanin0(pGhost);
65 pLat1 = Ivy_ObjFanin1(pGhost);
67 Type = Ivy_ObjType(pGhost);
68 fCompl0 = Ivy_ObjFaninC0(pGhost);
69 fCompl1 = Ivy_ObjFaninC1(pGhost);
71 pResult =
Ivy_Oper(
p, Ivy_NotCond(Ivy_ObjFanin0(pLat0), fCompl0), Ivy_NotCond(Ivy_ObjFanin0(pLat1), fCompl1), Type );
73 Init0 = Ivy_InitNotCond( Ivy_ObjInit(pLat0), fCompl0 );
74 Init1 = Ivy_InitNotCond( Ivy_ObjInit(pLat1), fCompl1 );
75 Init = (Type ==
IVY_AND)? Ivy_InitAnd(Init0, Init1) : Ivy_InitExor(Init0, Init1);
Ivy_Obj_t * Ivy_Oper(Ivy_Man_t *p, Ivy_Obj_t *p0, Ivy_Obj_t *p1, Ivy_Type_t Type)
FUNCTION DEFINITIONS ///.