30#define XVS0 ABC_INIT_ZERO
31#define XVS1 ABC_INIT_ONE
32#define XVSX ABC_INIT_DC
34static inline void Abc_ObjSetXsim(
Abc_Obj_t * pObj,
int Value ) { pObj->
pCopy = (
Abc_Obj_t *)(ABC_PTRINT_T)Value; }
35static inline int Abc_ObjGetXsim(
Abc_Obj_t * pObj ) {
return (
int)(ABC_PTRINT_T)pObj->
pCopy; }
36static inline int Abc_XsimInv(
int Value )
45static inline int Abc_XsimAnd(
int Value0,
int Value1 )
47 if ( Value0 ==
XVS0 || Value1 ==
XVS0 )
49 if ( Value0 ==
XVSX || Value1 ==
XVSX )
54static inline int Abc_XsimRand2()
59static inline int Abc_XsimRand3()
65 }
while ( RetValue == 0 );
68static inline int Abc_ObjGetXsimFanin0(
Abc_Obj_t * pObj )
71 RetValue = Abc_ObjGetXsim(Abc_ObjFanin0(pObj));
72 return Abc_ObjFaninC0(pObj)? Abc_XsimInv(RetValue) : RetValue;
74static inline int Abc_ObjGetXsimFanin1(
Abc_Obj_t * pObj )
77 RetValue = Abc_ObjGetXsim(Abc_ObjFanin1(pObj));
78 return Abc_ObjFaninC1(pObj)? Abc_XsimInv(RetValue) : RetValue;
80static inline void Abc_XsimPrint( FILE * pFile,
int Value )
84 fprintf( pFile,
"0" );
89 fprintf( pFile,
"1" );
93 fprintf( pFile,
"x" );
115 assert( Abc_NtkIsStrash(pNtk) );
123 Abc_ObjSetXsim( pObj,
XVSX );
128 Abc_ObjSetXsim( pObj, Abc_XsimRand2() );
133 Abc_ObjSetXsim( Abc_ObjFanout0(pObj),
XVSX );
138 Abc_ObjSetXsim( Abc_ObjFanout0(pObj), Abc_LatchInit(pObj) );
141 fprintf( stdout,
"Frame : Inputs : Latches : Outputs\n" );
142 for ( f = 0; f < nFrames; f++ )
145 Abc_ObjSetXsim( pObj, Abc_XsimAnd(Abc_ObjGetXsimFanin0(pObj), Abc_ObjGetXsimFanin1(pObj)) );
147 Abc_ObjSetXsim( pObj, Abc_ObjGetXsimFanin0(pObj) );
149 fprintf( stdout,
"%2d : ", f );
151 Abc_XsimPrint( stdout, Abc_ObjGetXsim(pObj) );
152 fprintf( stdout,
" : " );
157 Abc_XsimPrint( stdout, Abc_ObjGetXsim(Abc_ObjFanout0(pObj)) );
159 fprintf( stdout,
" : " );
161 Abc_XsimPrint( stdout, Abc_ObjGetXsim(pObj) );
162 fprintf( stdout,
"\n" );
167 Abc_ObjSetXsim( pObj,
XVSX );
172 Abc_ObjSetXsim( pObj, Abc_XsimRand2() );
176 Abc_ObjSetXsim( Abc_ObjFanout0(pObj), Abc_ObjGetXsim(Abc_ObjFanin0(pObj)) );
196 assert( Abc_NtkIsStrash(pNtk) );
202 Abc_ObjSetXsim( Abc_ObjFanout0(pObj), Abc_LatchInit(pObj) );
204 for ( f = 0; f < nFrames; f++ )
207 Abc_ObjSetXsim( pObj, fUseXval?
ABC_INIT_DC : Abc_XsimRand2() );
210 Abc_ObjSetXsim( pObj, Abc_XsimAnd(Abc_ObjGetXsimFanin0(pObj), Abc_ObjGetXsimFanin1(pObj)) );
212 Abc_ObjSetXsim( pObj, Abc_ObjGetXsimFanin0(pObj) );
214 Abc_ObjSetXsim( Abc_ObjFanout0(pObj), Abc_ObjGetXsim(Abc_ObjFanin0(pObj)) );
219 pObj->
pData = (
void *)(ABC_PTRINT_T)Abc_ObjGetXsim(Abc_ObjFanout0(pObj));
void Abc_NtkCycleInitState(Abc_Ntk_t *pNtk, int nFrames, int fUseXval, int fVerbose)
#define XVS0
DECLARATIONS ///.
void Abc_NtkXValueSimulate(Abc_Ntk_t *pNtk, int nFrames, int fXInputs, int fXState, int fVerbose)
FUNCTION DEFINITIONS ///.
struct Abc_Obj_t_ Abc_Obj_t
#define Abc_NtkForEachCo(pNtk, pCo, i)
#define Abc_AigForEachAnd(pNtk, pNode, i)
#define Abc_NtkForEachPo(pNtk, pPo, i)
#define Abc_NtkForEachLatch(pNtk, pObj, i)
struct Abc_Ntk_t_ Abc_Ntk_t
#define Abc_NtkForEachPi(pNtk, pPi, i)
ABC_DLL Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
unsigned Gia_ManRandom(int fReset)
FUNCTION DEFINITIONS ///.