FUNCTION DEFINITIONS ///.
52{
54 Aig_Obj_t * pObj, * pObjLi, * pObjLo, * pObjNew;
56 int i, f;
57
58
60 memset( pObjMap, 0,
sizeof(
Aig_Obj_t *) * nFs * Aig_ManObjNumMax(pAig) );
61
62
64 pFrames->pName = Abc_UtilStrsav( pAig->pName );
65 pFrames->pSpec = Abc_UtilStrsav( pAig->pSpec );
66
67 for ( f = 0; f < nFs; f++ )
68 Aig_ObjSetFrames( pObjMap, nFs, Aig_ManConst1(pAig), f, Aig_ManConst1(pFrames) );
69
70 for ( f = 0; f < nFs; f++ )
73
74 if ( fInit )
75 {
77 Aig_ObjSetFrames( pObjMap, nFs, pObj, 0, Aig_ManConst0(pFrames) );
78 }
79 else
80 {
83 }
84
85
86 for ( f = 0; f < nFs; f++ )
87 {
88
89
91 {
92
93
94
95 pObjNew =
Aig_And( pFrames, Aig_ObjChild0Frames(pObjMap,nFs,pObj,f), Aig_ObjChild1Frames(pObjMap,nFs,pObj,f) );
96 Aig_ObjSetFrames( pObjMap, nFs, pObj, f, pObjNew );
97 }
98
100 {
101 pObjNew = Aig_ObjChild0Frames(pObjMap,nFs,pObjLi,f);
102 if ( f < nFs - 1 )
103 Aig_ObjSetFrames( pObjMap, nFs, pObjLo, f+1, pObjNew );
104 }
105 }
106 if ( fOuts )
107 {
108 for ( f = fEnlarge?nFs-1:0; f < nFs; f++ )
110 {
111 pObjNew =
Aig_ObjCreateCo( pFrames, Aig_ObjChild0Frames(pObjMap,nFs,pObj,f) );
112 Aig_ObjSetFrames( pObjMap, nFs, pObj, f, pObjNew );
113 }
114 }
115 if ( fRegs )
116 {
117 pFrames->nRegs = pAig->nRegs;
119 {
120 pObjNew =
Aig_ObjCreateCo( pFrames, Aig_ObjChild0Frames(pObjMap,nFs,pObj,fEnlarge?0:nFs-1) );
121 Aig_ObjSetFrames( pObjMap, nFs, pObj, nFs-1, pObjNew );
122 }
124 }
126
127 if ( ppObjMap )
128 *ppObjMap = pObjMap;
129 else
131 return pFrames;
132}
#define ABC_ALLOC(type, num)
void Aig_ManSetRegNum(Aig_Man_t *p, int nRegs)
#define Aig_ManForEachLiSeq(p, pObj, i)
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
struct Aig_Obj_t_ Aig_Obj_t
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
#define Aig_ManForEachNode(p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
int Aig_ManCleanup(Aig_Man_t *p)
#define Aig_ManForEachPiSeq(p, pObj, i)
SEQUENTIAL ITERATORS ///.
#define Aig_ManForEachPoSeq(p, pObj, i)
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
#define Aig_ManForEachLoSeq(p, pObj, i)
#define Aig_ManForEachLiLoSeq(p, pObjLi, pObjLo, k)