ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
intUtil.c
Go to the documentation of this file.
1
20
21#include "intInt.h"
22
24
25
29
33
34
47{
48 Cnf_Dat_t * pCnf;
49 Aig_Obj_t * pObj;
50 sat_solver * pSat;
51 int i, status;
52 //abctime clk = Abc_Clock();
53 pCnf = Cnf_Derive( p, Saig_ManRegNum(p) );
54 pSat = (sat_solver *)Cnf_DataWriteIntoSolver( pCnf, 1, 1 );
55 if ( pSat == NULL )
56 {
57 Cnf_DataFree( pCnf );
58 return 0;
59 }
60 status = sat_solver_solve( pSat, NULL, NULL, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
61 //ABC_PRT( "Time", Abc_Clock() - clk );
62 if ( status == l_True )
63 {
64 p->pSeqModel = Abc_CexAlloc( Aig_ManRegNum(p), Saig_ManPiNum(p), 1 );
65 Saig_ManForEachPi( p, pObj, i )
66 if ( sat_solver_var_value( pSat, pCnf->pVarNums[Aig_ObjId(pObj)] ) )
67 Abc_InfoSetBit( p->pSeqModel->pData, Aig_ManRegNum(p) + i );
68 }
69 Cnf_DataFree( pCnf );
70 sat_solver_delete( pSat );
71 return status == l_True;
72}
73
86{
87 Cnf_Dat_t * pCnf;
88 sat_solver * pSat;
89 int status;
90 abctime clk = Abc_Clock();
91 pCnf = Cnf_Derive( p, Saig_ManRegNum(p) );
92 pSat = (sat_solver *)Cnf_DataWriteIntoSolver( pCnf, 1, 0 );
93 Cnf_DataFree( pCnf );
94 if ( pSat == NULL )
95 return 1;
96 status = sat_solver_solve( pSat, NULL, NULL, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0, (ABC_INT64_T)0 );
97 sat_solver_delete( pSat );
98 ABC_PRT( "Time", Abc_Clock() - clk );
99 return status == l_False;
100}
101
105
106
108
ABC_INT64_T abctime
Definition abc_global.h:332
#define ABC_PRT(a, t)
Definition abc_global.h:255
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
struct Aig_Obj_t_ Aig_Obj_t
Definition aig.h:51
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
Definition aig.h:50
#define l_True
Definition bmcBmcS.c:35
#define l_False
Definition bmcBmcS.c:36
#define sat_solver
Definition cecSatG2.c:34
#define sat_solver_solve
Definition cecSatG2.c:45
Cnf_Dat_t * Cnf_Derive(Aig_Man_t *pAig, int nOutputs)
Definition cnfCore.c:165
struct Cnf_Dat_t_ Cnf_Dat_t
Definition cnf.h:52
void Cnf_DataFree(Cnf_Dat_t *p)
Definition cnfMan.c:207
Cube * p
Definition exorList.c:222
ABC_NAMESPACE_IMPL_START int Inter_ManCheckInitialState(Aig_Man_t *p)
DECLARATIONS ///.
Definition intUtil.c:46
int Inter_ManCheckAllStates(Aig_Man_t *p)
Definition intUtil.c:85
void * Cnf_DataWriteIntoSolver(Cnf_Dat_t *p, int nFrames, int fInit)
Definition cnfMan.c:579
#define Saig_ManForEachPi(p, pObj, i)
Definition saig.h:91
void sat_solver_delete(sat_solver *s)
Definition satSolver.c:1341
int * pVarNums
Definition cnf.h:63
ABC_NAMESPACE_IMPL_START Abc_Cex_t * Abc_CexAlloc(int nRegs, int nRealPis, int nFrames)
DECLARATIONS ///.
Definition utilCex.c:51