32#define ABC_DEFAULT_CONF_LIMIT 0
33#define ABC_DEFAULT_IMP_LIMIT 0
92 mng->vNodes = Vec_PtrAlloc( 100 );
93 mng->vValues = Vec_IntAlloc( 100 );
194 { printf(
"ABC_AddGate: The PI/PPI gate \"%s\" has fanins.\n",
name );
return 0; }
196 pObj = Abc_NtkCreatePi( mng->
pNtk );
209 pObj = Abc_NtkCreateNode( mng->
pNtk );
211 for ( i = 0; i < nofi; i++ )
214 { printf(
"ABC_AddGate: The fanin gate \"%s\" is not in the network.\n", fanins[i] );
return 0; }
222 { printf(
"ABC_AddGate: The constant gate \"%s\" has fanins.\n",
name );
return 0; }
227 { printf(
"ABC_AddGate: The AND gate \"%s\" no fanins.\n",
name );
return 0; }
232 { printf(
"ABC_AddGate: The NAND gate \"%s\" no fanins.\n",
name );
return 0; }
237 { printf(
"ABC_AddGate: The OR gate \"%s\" no fanins.\n",
name );
return 0; }
242 { printf(
"ABC_AddGate: The NOR gate \"%s\" no fanins.\n",
name );
return 0; }
247 { printf(
"ABC_AddGate: The XOR gate \"%s\" no fanins.\n",
name );
return 0; }
249 { printf(
"ABC_AddGate: The XOR gate \"%s\" has more than two fanins.\n",
name );
return 0; }
254 { printf(
"ABC_AddGate: The XNOR gate \"%s\" no fanins.\n",
name );
return 0; }
256 { printf(
"ABC_AddGate: The XNOR gate \"%s\" has more than two fanins.\n",
name );
return 0; }
261 { printf(
"ABC_AddGate: The inverter gate \"%s\" does not have exactly one fanin.\n",
name );
return 0; }
266 { printf(
"ABC_AddGate: The buffer gate \"%s\" does not have exactly one fanin.\n",
name );
return 0; }
272 Abc_ObjSetData( pObj, pSop );
277 { printf(
"ABC_AddGate: The PO/PPO gate \"%s\" does not have exactly one fanin.\n",
name );
return 0; }
279 pObj = Abc_NtkCreatePo( mng->
pNtk );
283 { printf(
"ABC_AddGate: The fanin gate \"%s\" is not in the network.\n", fanins[0] );
return 0; }
287 printf(
"ABC_AddGate: Unknown gate type.\n" );
293 { printf(
"ABC_AddGate: The same gate \"%s\" is added twice.\n",
name );
return 0; }
317 assert( Abc_NtkLatchNum(pNtk) == 0 );
343 if ( Abc_ObjFanoutNum(pObj) == 0 )
353 printf(
"ABC_Check_Integrity: The internal network check has failed.\n" );
539 { printf(
"ABC_AddTarget: The target has no gates.\n" );
return 0; }
542 Vec_PtrClear( mng->
vNodes );
545 for ( i = 0; i < nog; i++ )
548 { printf(
"ABC_AddTarget: The target gate \"%s\" is not in the network.\n", names[i] );
return 0; }
549 Vec_PtrPush( mng->
vNodes, pObj );
550 if ( values[i] < 0 || values[i] > 1 )
551 { printf(
"ABC_AddTarget: The value of gate \"%s\" is not 0 or 1.\n", names[i] );
return 0; }
552 Vec_IntPush( mng->
vValues, values[i] );
575 { printf(
"ABC_SolveInit: Target is not specified by ABC_AddTarget().\n" );
return; }
618 { printf(
"ABC_Solve: Target network is not derived by ABC_SolveInit().\n" );
return UNDETERMINED; }
629 if ( RetValue == -1 )
631 else if ( RetValue == 1 )
633 else if ( RetValue == 0 )
683 const char * pFileName;
689 if ( pNtkTemp == NULL )
690 { printf(
"ABC_Dump_Bench_File: Dumping BENCH has failed.\n" );
return; }
717 memset(
p->names, 0,
sizeof(
char *) * nVars );
718 memset(
p->values, 0,
sizeof(
int) * nVars );
740 for ( i = 0; i <
p->no_sig; i++ )
struct Abc_Obj_t_ Abc_Obj_t
ABC_DLL int Abc_NtkIvyProve(Abc_Ntk_t **ppNtk, void *pPars)
ABC_DLL Abc_Ntk_t * Abc_NtkAlloc(Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan)
DECLARATIONS ///.
ABC_DLL Abc_Ntk_t * Abc_NtkToNetlistBench(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
#define Abc_NtkForEachPo(pNtk, pPo, i)
ABC_DLL char * Abc_SopCreateNxor(Mem_Flex_t *pMan, int nVars)
ABC_DLL char * Abc_SopCreateInv(Mem_Flex_t *pMan)
ABC_DLL char * Abc_SopCreateOr(Mem_Flex_t *pMan, int nVars, int *pfCompl)
ABC_DLL char * Abc_SopCreateConst1(Mem_Flex_t *pMan)
struct Abc_Ntk_t_ Abc_Ntk_t
ABC_DLL char * Abc_ObjAssignName(Abc_Obj_t *pObj, char *pName, char *pSuffix)
ABC_DLL char * Abc_SopCreateNand(Mem_Flex_t *pMan, int nVars)
ABC_DLL int Abc_NtkMiterSat(Abc_Ntk_t *pNtk, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, int fVerbose, ABC_INT64_T *pNumConfs, ABC_INT64_T *pNumInspects)
FUNCTION DEFINITIONS ///.
ABC_DLL char * Abc_SopCreateAnd(Mem_Flex_t *pMan, int nVars, int *pfCompl)
#define Abc_NtkForEachPi(pNtk, pPi, i)
ABC_DLL int Abc_NtkDoCheck(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopCreateXor(Mem_Flex_t *pMan, int nVars)
ABC_DLL char * Abc_SopCreateNor(Mem_Flex_t *pMan, int nVars)
ABC_DLL char * Abc_SopCreateBuf(Mem_Flex_t *pMan)
#define Abc_NtkForEachNode(pNtk, pNode, i)
#define ABC_ALLOC(type, num)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void ABC_ReleaseManager(ABC_Manager mng)
void ABC_Dump_Bench_File(ABC_Manager mng)
void ABC_SolveInit(ABC_Manager mng)
void ABC_TargetResFree(CSAT_Target_ResultT *p)
void ABC_SetTotalInspectLimit(ABC_Manager mng, ABC_UINT64_T num)
void ABC_SetSolveOption(ABC_Manager mng, enum CSAT_OptionT option)
int Io_WriteBench(Abc_Ntk_t *pNtk, const char *FileName)
FUNCTION DEFINITIONS ///.
ABC_Manager ABC_InitManager()
FUNCTION DEFINITIONS ///.
void ABC_SetSolveBacktrackLimit(ABC_Manager mng, int num)
void ABC_SetLearnBacktrackLimit(ABC_Manager mng, int num)
void ABC_EnableDump(ABC_Manager mng, char *dump_file)
enum CSAT_StatusT ABC_Solve(ABC_Manager mng)
void ABC_UseOnlyCoreSatSolver(ABC_Manager mng)
void ABC_SetSolveImplicationLimit(ABC_Manager mng, int num)
int ABC_Check_Integrity(ABC_Manager mng)
int ABC_AddTarget(ABC_Manager mng, int nog, char **names, int *values)
ABC_UINT64_T ABC_GetTotalBacktracksMade(ABC_Manager mng)
void Abc_Start()
DECLARATIONS ///.
ABC_UINT64_T ABC_GetTotalInspectsMade(ABC_Manager mng)
void ABC_SetTimeLimit(ABC_Manager mng, int runtime)
CSAT_Target_ResultT * ABC_Get_Target_Result(ABC_Manager mng, int TargetID)
void ABC_AnalyzeTargets(ABC_Manager mng)
void ABC_SetLearnLimit(ABC_Manager mng, int num)
void ABC_SetTotalBacktrackLimit(ABC_Manager mng, ABC_UINT64_T num)
void ABC_Network_Finalize(ABC_Manager mng)
int ABC_AddGate(ABC_Manager mng, enum GateType type, char *name, int nofi, char **fanins, int dc_attr)
struct _CSAT_Target_ResultT CSAT_Target_ResultT
typedefABC_NAMESPACE_HEADER_START struct ABC_ManagerStruct_t ABC_Manager_t
INCLUDES ///.
struct ABC_ManagerStruct_t * ABC_Manager
type
CUBE COVER and CUBE typedefs ///.
void Prove_ParamsSetDefault(Prove_Params_t *pParams)
FUNCTION DEFINITIONS ///.
struct Prove_ParamsStruct_t_ Prove_Params_t
Mem_Flex_t * Mem_FlexStart()
char * Mem_FlexEntryFetch(Mem_Flex_t *p, int nBytes)
void Mem_FlexStop(Mem_Flex_t *p, int fVerbose)
struct Mem_Flex_t_ Mem_Flex_t
int stmm_ptrhash(const char *x, int size)
int stmm_insert(stmm_table *table, char *key, char *value)
int stmm_strhash(const char *string, int modulus)
int stmm_ptrcmp(const char *x, const char *y)
void stmm_free_table(stmm_table *table)
stmm_table * stmm_init_table(stmm_compare_func_type compare, stmm_hash_func_type hash)
int stmm_lookup(stmm_table *table, char *key, char **value)
CSAT_Target_ResultT * pResult
ABC_INT64_T nTotalBacktracksMade
ABC_INT64_T nTotalInspectsMade
ABC_INT64_T nTotalBacktrackLimit
ABC_INT64_T nTotalInspectLimit
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.