Commit 93ad6e7d by Alan Mishchenko

Making public some APIs.

parent 505747d4
...@@ -189,7 +189,6 @@ struct Gia_Man_t_ ...@@ -189,7 +189,6 @@ struct Gia_Man_t_
}; };
typedef struct Gps_Par_t_ Gps_Par_t; typedef struct Gps_Par_t_ Gps_Par_t;
struct Gps_Par_t_ struct Gps_Par_t_
{ {
...@@ -246,6 +245,20 @@ struct Gia_ParSim_t_ ...@@ -246,6 +245,20 @@ struct Gia_ParSim_t_
int iOutFail; // index of the failed output int iOutFail; // index of the failed output
}; };
typedef struct Gia_ManSim_t_ Gia_ManSim_t;
struct Gia_ManSim_t_
{
Gia_Man_t * pAig;
Gia_ParSim_t * pPars;
int nWords;
Vec_Int_t * vCis2Ids;
Vec_Int_t * vConsts;
// simulation information
unsigned * pDataSim; // simulation data
unsigned * pDataSimCis; // simulation data for CIs
unsigned * pDataSimCos; // simulation data for COs
};
typedef struct Jf_Par_t_ Jf_Par_t; typedef struct Jf_Par_t_ Jf_Par_t;
struct Jf_Par_t_ struct Jf_Par_t_
{ {
...@@ -1279,6 +1292,12 @@ extern int * Gia_SortFloats( float * pArray, int * pPerm, int nSiz ...@@ -1279,6 +1292,12 @@ extern int * Gia_SortFloats( float * pArray, int * pPerm, int nSiz
/*=== giaSim.c ============================================================*/ /*=== giaSim.c ============================================================*/
extern void Gia_ManSimSetDefaultParams( Gia_ParSim_t * p ); extern void Gia_ManSimSetDefaultParams( Gia_ParSim_t * p );
extern int Gia_ManSimSimulate( Gia_Man_t * pAig, Gia_ParSim_t * pPars ); extern int Gia_ManSimSimulate( Gia_Man_t * pAig, Gia_ParSim_t * pPars );
extern unsigned * Gia_SimDataExt( Gia_ManSim_t * p, int i );
extern unsigned * Gia_SimDataCiExt( Gia_ManSim_t * p, int i );
extern unsigned * Gia_SimDataCoExt( Gia_ManSim_t * p, int i );
extern void Gia_ManSimInfoInit( Gia_ManSim_t * p );
extern void Gia_ManSimInfoTransfer( Gia_ManSim_t * p );
extern void Gia_ManSimulateRound( Gia_ManSim_t * p );
/*=== giaSpeedup.c ============================================================*/ /*=== giaSpeedup.c ============================================================*/
extern float Gia_ManDelayTraceLut( Gia_Man_t * p ); extern float Gia_ManDelayTraceLut( Gia_Man_t * p );
extern float Gia_ManDelayTraceLutPrint( Gia_Man_t * p, int fVerbose ); extern float Gia_ManDelayTraceLutPrint( Gia_Man_t * p, int fVerbose );
......
...@@ -27,24 +27,14 @@ ABC_NAMESPACE_IMPL_START ...@@ -27,24 +27,14 @@ ABC_NAMESPACE_IMPL_START
/// DECLARATIONS /// /// DECLARATIONS ///
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
typedef struct Gia_ManSim_t_ Gia_ManSim_t;
struct Gia_ManSim_t_
{
Gia_Man_t * pAig;
Gia_ParSim_t * pPars;
int nWords;
Vec_Int_t * vCis2Ids;
Vec_Int_t * vConsts;
// simulation information
unsigned * pDataSim; // simulation data
unsigned * pDataSimCis; // simulation data for CIs
unsigned * pDataSimCos; // simulation data for COs
};
static inline unsigned * Gia_SimData( Gia_ManSim_t * p, int i ) { return p->pDataSim + i * p->nWords; } static inline unsigned * Gia_SimData( Gia_ManSim_t * p, int i ) { return p->pDataSim + i * p->nWords; }
static inline unsigned * Gia_SimDataCi( Gia_ManSim_t * p, int i ) { return p->pDataSimCis + i * p->nWords; } static inline unsigned * Gia_SimDataCi( Gia_ManSim_t * p, int i ) { return p->pDataSimCis + i * p->nWords; }
static inline unsigned * Gia_SimDataCo( Gia_ManSim_t * p, int i ) { return p->pDataSimCos + i * p->nWords; } static inline unsigned * Gia_SimDataCo( Gia_ManSim_t * p, int i ) { return p->pDataSimCos + i * p->nWords; }
unsigned * Gia_SimDataExt( Gia_ManSim_t * p, int i ) { return Gia_SimData(p, i); }
unsigned * Gia_SimDataCiExt( Gia_ManSim_t * p, int i ) { return Gia_SimDataCi(p, i); }
unsigned * Gia_SimDataCoExt( Gia_ManSim_t * p, int i ) { return Gia_SimDataCo(p, i); }
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
/// FUNCTION DEFINITIONS /// /// FUNCTION DEFINITIONS ///
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
...@@ -436,7 +426,7 @@ static inline void Gia_ManSimulateNode( Gia_ManSim_t * p, Gia_Obj_t * pObj ) ...@@ -436,7 +426,7 @@ static inline void Gia_ManSimulateNode( Gia_ManSim_t * p, Gia_Obj_t * pObj )
SeeAlso [] SeeAlso []
***********************************************************************/ ***********************************************************************/
static inline void Gia_ManSimInfoInit( Gia_ManSim_t * p ) void Gia_ManSimInfoInit( Gia_ManSim_t * p )
{ {
int iPioNum, i; int iPioNum, i;
Vec_IntForEachEntry( p->vCis2Ids, iPioNum, i ) Vec_IntForEachEntry( p->vCis2Ids, iPioNum, i )
...@@ -459,7 +449,7 @@ static inline void Gia_ManSimInfoInit( Gia_ManSim_t * p ) ...@@ -459,7 +449,7 @@ static inline void Gia_ManSimInfoInit( Gia_ManSim_t * p )
SeeAlso [] SeeAlso []
***********************************************************************/ ***********************************************************************/
static inline void Gia_ManSimInfoTransfer( Gia_ManSim_t * p ) void Gia_ManSimInfoTransfer( Gia_ManSim_t * p )
{ {
int iPioNum, i; int iPioNum, i;
Vec_IntForEachEntry( p->vCis2Ids, iPioNum, i ) Vec_IntForEachEntry( p->vCis2Ids, iPioNum, i )
...@@ -482,7 +472,7 @@ static inline void Gia_ManSimInfoTransfer( Gia_ManSim_t * p ) ...@@ -482,7 +472,7 @@ static inline void Gia_ManSimInfoTransfer( Gia_ManSim_t * p )
SeeAlso [] SeeAlso []
***********************************************************************/ ***********************************************************************/
static inline void Gia_ManSimulateRound( Gia_ManSim_t * p ) void Gia_ManSimulateRound( Gia_ManSim_t * p )
{ {
Gia_Obj_t * pObj; Gia_Obj_t * pObj;
int i, iCis = 0, iCos = 0; int i, iCis = 0, iCos = 0;
......
...@@ -103,7 +103,7 @@ void fillInFlipArray(permInfo* pi) ...@@ -103,7 +103,7 @@ void fillInFlipArray(permInfo* pi)
} }
inline int factorial(int n) static inline int factorial(int n)
{ {
return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n; return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n;
} }
...@@ -129,14 +129,14 @@ void freePermInfoPtr(permInfo* x) ...@@ -129,14 +129,14 @@ void freePermInfoPtr(permInfo* x)
free(x->swapArray); free(x->swapArray);
free(x); free(x);
} }
inline void minWord(word* a, word* b, word* minimal, int nVars) static inline void minWord(word* a, word* b, word* minimal, int nVars)
{ {
if(memCompare(a, b, nVars) == -1) if(memCompare(a, b, nVars) == -1)
Kit_TruthCopy_64bit( minimal, a, nVars ); Kit_TruthCopy_64bit( minimal, a, nVars );
else else
Kit_TruthCopy_64bit( minimal, b, nVars ); Kit_TruthCopy_64bit( minimal, b, nVars );
} }
inline void minWord3(word* a, word* b, word* minimal, int nVars) static inline void minWord3(word* a, word* b, word* minimal, int nVars)
{ {
if (memCompare(a, b, nVars) <= 0) if (memCompare(a, b, nVars) <= 0)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment