32 #define ABC_DEFAULT_CONF_LIMIT 0 // limit on conflicts
33 #define ABC_DEFAULT_IMP_LIMIT 0 // limit on implications
194 { printf(
"ABC_AddGate: The PI/PPI gate \"%s\" has fanins.\n", name );
return 0; }
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; }
277 { printf(
"ABC_AddGate: The PO/PPO gate \"%s\" does not have exactly one fanin.\n", name );
return 0; }
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; }
353 printf(
"ABC_Check_Integrity: The internal network check has failed.\n" );
539 { printf(
"ABC_AddTarget: The target has no gates.\n" );
return 0; }
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; }
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; }
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; }
740 for ( i = 0; i < p->
no_sig; i++ )
void ABC_Dump_Bench_File(ABC_Manager mng)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
int Io_WriteBench(Abc_Ntk_t *pNtk, const char *FileName)
FUNCTION DEFINITIONS ///.
enum CSAT_StatusT ABC_Solve(ABC_Manager mng)
void ABC_SetSolveBacktrackLimit(ABC_Manager mng, int num)
CSAT_Target_ResultT * ABC_Get_Target_Result(ABC_Manager mng, int TargetID)
stmm_table * stmm_init_table(stmm_compare_func_type compare, stmm_hash_func_type hash)
void ABC_SetLearnLimit(ABC_Manager mng, int num)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
void ABC_SetTotalBacktrackLimit(ABC_Manager mng, ABC_UINT64_T num)
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
int stmm_insert(stmm_table *table, char *key, char *value)
void ABC_AnalyzeTargets(ABC_Manager mng)
void ABC_TargetResFree(CSAT_Target_ResultT *p)
ABC_DLL char * Abc_SopCreateAnd(Mem_Flex_t *pMan, int nVars, int *pfCompl)
ABC_DLL char * Abc_SopCreateInv(Mem_Flex_t *pMan)
void ABC_SetSolveOption(ABC_Manager mng, enum CSAT_OptionT option)
static int Abc_NtkLatchNum(Abc_Ntk_t *pNtk)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
static int Abc_NtkCiNum(Abc_Ntk_t *pNtk)
#define ABC_ALLOC(type, num)
void ABC_SetLearnBacktrackLimit(ABC_Manager mng, int num)
static char * ABC_GetNodeName(ABC_Manager mng, Abc_Obj_t *pNode)
static Abc_Obj_t * Abc_NtkCi(Abc_Ntk_t *pNtk, int i)
ABC_DLL Abc_Ntk_t * Abc_NtkToNetlistBench(Abc_Ntk_t *pNtk)
void Prove_ParamsSetDefault(Prove_Params_t *pParams)
FUNCTION DEFINITIONS ///.
ABC_DLL char * Abc_ObjAssignName(Abc_Obj_t *pObj, char *pName, char *pSuffix)
void ABC_Network_Finalize(ABC_Manager mng)
int ABC_Check_Integrity(ABC_Manager mng)
static int Vec_PtrSize(Vec_Ptr_t *p)
void ABC_EnableDump(ABC_Manager mng, char *dump_file)
ABC_DLL char * Abc_SopCreateNand(Mem_Flex_t *pMan, int nVars)
char * Mem_FlexEntryFetch(Mem_Flex_t *p, int nBytes)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
static void Abc_ObjSetData(Abc_Obj_t *pObj, void *pData)
ABC_DLL char * Abc_SopCreateConst1(Mem_Flex_t *pMan)
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
ABC_DLL char * Abc_SopCreateBuf(Mem_Flex_t *pMan)
ABC_DLL Abc_Ntk_t * Abc_NtkAlloc(Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan)
DECLARATIONS ///.
int ABC_AddTarget(ABC_Manager mng, int nog, char **names, int *values)
ABC_INT64_T nTotalInspectsMade
Mem_Flex_t * Mem_FlexStart()
ABC_INT64_T nTotalBacktracksMade
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
int stmm_lookup(stmm_table *table, char *key, char **value)
int stmm_ptrhash(const char *x, int size)
ABC_DLL char * Abc_SopCreateNxor(Mem_Flex_t *pMan, int nVars)
void ABC_SetTimeLimit(ABC_Manager mng, int runtime)
ABC_DLL int Abc_NtkIvyProve(Abc_Ntk_t **ppNtk, void *pPars)
#define ABC_NAMESPACE_IMPL_END
ABC_Manager ABC_InitManager()
FUNCTION DEFINITIONS ///.
ABC_DLL char * Abc_SopCreateXor(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_INT64_T nTotalInspectLimit
static void Vec_IntPush(Vec_Int_t *p, int Entry)
static Abc_Obj_t * Abc_NtkCreatePi(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkDoCheck(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct ABC_ManagerStruct_t ABC_Manager_t
INCLUDES ///.
int stmm_strhash(const char *string, int modulus)
static CSAT_Target_ResultT * ABC_TargetResAlloc(int nVars)
#define Abc_NtkForEachNode(pNtk, pNode, i)
void Mem_FlexStop(Mem_Flex_t *p, int fVerbose)
void ABC_SetSolveImplicationLimit(ABC_Manager mng, int num)
#define ABC_NAMESPACE_IMPL_START
int stmm_ptrcmp(const char *x, const char *y)
ABC_DLL char * Abc_SopCreateNor(Mem_Flex_t *pMan, int nVars)
void stmm_free_table(stmm_table *table)
ABC_INT64_T nTotalBacktrackLimit
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static Abc_Obj_t * Abc_NtkCreateNode(Abc_Ntk_t *pNtk)
static void Vec_PtrClear(Vec_Ptr_t *p)
ABC_UINT64_T ABC_GetTotalInspectsMade(ABC_Manager mng)
int ABC_AddGate(ABC_Manager mng, enum GateType type, char *name, int nofi, char **fanins, int dc_attr)
#define Abc_NtkForEachPo(pNtk, pPo, i)
static void Vec_IntFree(Vec_Int_t *p)
void Abc_Start()
DECLARATIONS ///.
static void Vec_IntClear(Vec_Int_t *p)
CSAT_Target_ResultT * pResult
static Abc_Obj_t * Abc_NtkCreatePo(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopCreateOr(Mem_Flex_t *pMan, int nVars, int *pfCompl)
ABC_UINT64_T ABC_GetTotalBacktracksMade(ABC_Manager mng)
void ABC_SolveInit(ABC_Manager mng)
void ABC_UseOnlyCoreSatSolver(ABC_Manager mng)
#define Abc_NtkForEachPi(pNtk, pPi, i)
static void Vec_PtrFree(Vec_Ptr_t *p)
void ABC_SetTotalInspectLimit(ABC_Manager mng, ABC_UINT64_T num)
void ABC_ReleaseManager(ABC_Manager mng)