abc-master
|
#include "base/abc/abc.h"
#include "opt/sim/sim.h"
#include "sat/bsat/satSolver.h"
#include "misc/extra/extraBdd.h"
Go to the source code of this file.
Functions | |
ABC_NAMESPACE_IMPL_START int | match1by1 (Abc_Ntk_t *pNtk1, Vec_Ptr_t **nodesInLevel1, Vec_Int_t **iMatch1, Vec_Int_t **iDep1, Vec_Int_t *matchedInputs1, int *iGroup1, Vec_Int_t **oMatch1, int *oGroup1, Abc_Ntk_t *pNtk2, Vec_Ptr_t **nodesInLevel2, Vec_Int_t **iMatch2, Vec_Int_t **iDep2, Vec_Int_t *matchedInputs2, int *iGroup2, Vec_Int_t **oMatch2, int *oGroup2, Vec_Int_t *matchedOutputs1, Vec_Int_t *matchedOutputs2, Vec_Int_t *oMatchedGroups, Vec_Int_t *iNonSingleton, int ii, int idx) |
int | Abc_NtkBmSat (Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, Vec_Ptr_t *iMatchPairs, Vec_Ptr_t *oMatchPairs, Vec_Int_t *mismatch, int mode) |
void | getDependencies (Abc_Ntk_t *pNtk, Vec_Int_t **iDep, Vec_Int_t **oDep) |
void | initMatchList (Abc_Ntk_t *pNtk, Vec_Int_t **iDep, Vec_Int_t **oDep, Vec_Int_t **iMatch, int *iLastItem, Vec_Int_t **oMatch, int *oLastItem, int *iGroup, int *oGroup, int p_equivalence) |
void | iSortDependencies (Abc_Ntk_t *pNtk, Vec_Int_t **iDep, int *oGroup) |
void | oSortDependencies (Abc_Ntk_t *pNtk, Vec_Int_t **oDep, int *iGroup) |
int | oSplitByDep (Abc_Ntk_t *pNtk, Vec_Int_t **oDep, Vec_Int_t **oMatch, int *oGroup, int *oLastItem, int *iGroup) |
int | iSplitByDep (Abc_Ntk_t *pNtk, Vec_Int_t **iDep, Vec_Int_t **iMatch, int *iGroup, int *iLastItem, int *oGroup) |
Vec_Ptr_t ** | findTopologicalOrder (Abc_Ntk_t *pNtk) |
int * | Abc_NtkSimulateOneNode (Abc_Ntk_t *pNtk, int *pModel, int input, Vec_Ptr_t **topOrder) |
int | refineIOBySimulation (Abc_Ntk_t *pNtk, Vec_Int_t **iMatch, int *iLastItem, int *iGroup, Vec_Int_t **iDep, Vec_Int_t **oMatch, int *oLastItem, int *oGroup, Vec_Int_t **oDep, char *vPiValues, int *observability, Vec_Ptr_t **topOrder) |
Abc_Ntk_t * | Abc_NtkMiterBm (Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, Vec_Ptr_t *iCurrMatch, Vec_Ptr_t *oCurrMatch) |
void | Abc_NtkVerifyReportError (Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int *pModel, Vec_Int_t *mismatch) |
int | Abc_NtkMiterSatBm (Abc_Ntk_t *pNtk, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, int fVerbose, ABC_INT64_T *pNumConfs, ABC_INT64_T *pNumInspects) |
int | checkEquivalence (Abc_Ntk_t *pNtk1, Vec_Int_t *matchedInputs1, Vec_Int_t *matchedOutputs1, Abc_Ntk_t *pNtk2, Vec_Int_t *matchedInputs2, Vec_Int_t *matchedOutputs2) |
Abc_Ntk_t * | computeCofactor (Abc_Ntk_t *pNtk, Vec_Ptr_t **nodesInLevel, int *bitVector, Vec_Int_t *currInputs) |
int | matchNonSingletonOutputs (Abc_Ntk_t *pNtk1, Vec_Ptr_t **nodesInLevel1, Vec_Int_t **iMatch1, Vec_Int_t **iDep1, Vec_Int_t *matchedInputs1, int *iGroup1, Vec_Int_t **oMatch1, int *oGroup1, Abc_Ntk_t *pNtk2, Vec_Ptr_t **nodesInLevel2, Vec_Int_t **iMatch2, Vec_Int_t **iDep2, Vec_Int_t *matchedInputs2, int *iGroup2, Vec_Int_t **oMatch2, int *oGroup2, Vec_Int_t *matchedOutputs1, Vec_Int_t *matchedOutputs2, Vec_Int_t *oMatchedGroups, Vec_Int_t *iNonSingleton, Abc_Ntk_t *subNtk1, Abc_Ntk_t *subNtk2, Vec_Ptr_t *oMatchPairs, Vec_Int_t *oNonSingleton, int oI, int idx, int ii, int iidx) |
float | refineBySAT (Abc_Ntk_t *pNtk1, Vec_Int_t **iMatch1, int *iGroup1, Vec_Int_t **iDep1, int *iLastItem1, Vec_Int_t **oMatch1, int *oGroup1, Vec_Int_t **oDep1, int *oLastItem1, int *observability1, Abc_Ntk_t *pNtk2, Vec_Int_t **iMatch2, int *iGroup2, Vec_Int_t **iDep2, int *iLastItem2, Vec_Int_t **oMatch2, int *oGroup2, Vec_Int_t **oDep2, int *oLastItem2, int *observability2) |
int | checkListConsistency (Vec_Int_t **iMatch1, Vec_Int_t **oMatch1, Vec_Int_t **iMatch2, Vec_Int_t **oMatch2, int iLastItem1, int oLastItem1, int iLastItem2, int oLastItem2) |
void | bmGateWay (Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int p_equivalence) |
Variables | |
int * | pValues1__ |
int * | pValues2__ |
FILE * | matchFile |
int Abc_NtkBmSat | ( | Abc_Ntk_t * | pNtk1, |
Abc_Ntk_t * | pNtk2, | ||
Vec_Ptr_t * | iMatchPairs, | ||
Vec_Ptr_t * | oMatchPairs, | ||
Vec_Int_t * | mismatch, | ||
int | mode | ||
) |
Definition at line 965 of file abcBm.c.
Abc_Ntk_t* Abc_NtkMiterBm | ( | Abc_Ntk_t * | pNtk1, |
Abc_Ntk_t * | pNtk2, | ||
Vec_Ptr_t * | iCurrMatch, | ||
Vec_Ptr_t * | oCurrMatch | ||
) |
Definition at line 698 of file abcBm.c.
int Abc_NtkMiterSatBm | ( | Abc_Ntk_t * | pNtk, |
ABC_INT64_T | nConfLimit, | ||
ABC_INT64_T | nInsLimit, | ||
int | fVerbose, | ||
ABC_INT64_T * | pNumConfs, | ||
ABC_INT64_T * | pNumInspects | ||
) |
Definition at line 869 of file abcBm.c.
Definition at line 447 of file abcBm.c.
void Abc_NtkVerifyReportError | ( | Abc_Ntk_t * | pNtk1, |
Abc_Ntk_t * | pNtk2, | ||
int * | pModel, | ||
Vec_Int_t * | mismatch | ||
) |
Definition at line 808 of file abcBm.c.
Definition at line 1777 of file abcBm.c.
int checkEquivalence | ( | Abc_Ntk_t * | pNtk1, |
Vec_Int_t * | matchedInputs1, | ||
Vec_Int_t * | matchedOutputs1, | ||
Abc_Ntk_t * | pNtk2, | ||
Vec_Int_t * | matchedInputs2, | ||
Vec_Int_t * | matchedOutputs2 | ||
) |
Definition at line 1061 of file abcBm.c.
int checkListConsistency | ( | Vec_Int_t ** | iMatch1, |
Vec_Int_t ** | oMatch1, | ||
Vec_Int_t ** | iMatch2, | ||
Vec_Int_t ** | oMatch2, | ||
int | iLastItem1, | ||
int | oLastItem1, | ||
int | iLastItem2, | ||
int | oLastItem2 | ||
) |
Abc_Ntk_t* computeCofactor | ( | Abc_Ntk_t * | pNtk, |
Vec_Ptr_t ** | nodesInLevel, | ||
int * | bitVector, | ||
Vec_Int_t * | currInputs | ||
) |
Definition at line 1097 of file abcBm.c.
Definition at line 420 of file abcBm.c.
Definition at line 44 of file abcBm.c.
void initMatchList | ( | Abc_Ntk_t * | pNtk, |
Vec_Int_t ** | iDep, | ||
Vec_Int_t ** | oDep, | ||
Vec_Int_t ** | iMatch, | ||
int * | iLastItem, | ||
Vec_Int_t ** | oMatch, | ||
int * | oLastItem, | ||
int * | iGroup, | ||
int * | oGroup, | ||
int | p_equivalence | ||
) |
Definition at line 101 of file abcBm.c.
Definition at line 199 of file abcBm.c.
int iSplitByDep | ( | Abc_Ntk_t * | pNtk, |
Vec_Int_t ** | iDep, | ||
Vec_Int_t ** | iMatch, | ||
int * | iGroup, | ||
int * | iLastItem, | ||
int * | oGroup | ||
) |
Definition at line 354 of file abcBm.c.
int match1by1 | ( | Abc_Ntk_t * | pNtk1, |
Vec_Ptr_t ** | nodesInLevel1, | ||
Vec_Int_t ** | iMatch1, | ||
Vec_Int_t ** | iDep1, | ||
Vec_Int_t * | matchedInputs1, | ||
int * | iGroup1, | ||
Vec_Int_t ** | oMatch1, | ||
int * | oGroup1, | ||
Abc_Ntk_t * | pNtk2, | ||
Vec_Ptr_t ** | nodesInLevel2, | ||
Vec_Int_t ** | iMatch2, | ||
Vec_Int_t ** | iDep2, | ||
Vec_Int_t * | matchedInputs2, | ||
int * | iGroup2, | ||
Vec_Int_t ** | oMatch2, | ||
int * | oGroup2, | ||
Vec_Int_t * | matchedOutputs1, | ||
Vec_Int_t * | matchedOutputs2, | ||
Vec_Int_t * | oMatchedGroups, | ||
Vec_Int_t * | iNonSingleton, | ||
int | ii, | ||
int | idx | ||
) |
CFile****************************************************************
FileName [bm.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Boolean Matching package.]
Synopsis [Check P-equivalence and PP-equivalence of two circuits.]
Author [Hadi Katebi]
Affiliation [University of Michigan]
Date [Ver. 1.0. Started - January, 2009.]
Revision [No revisions so far]
Comments [This is the cleaned up version of the code I used for DATE 2010 publication.] [If you have any question or if you find a bug, contact me at hadik.] [I don't guarantee that I can fix all the bugs, but I can definitely point you to the right direction so you can fix the bugs yourself]. @umi ch.ed u
Debugging [There are some part of the code that are commented out. Those parts mostly print the contents of the data structures to the standard output. Un-comment them if you find them useful for debugging.]
Definition at line 1329 of file abcBm.c.
int matchNonSingletonOutputs | ( | Abc_Ntk_t * | pNtk1, |
Vec_Ptr_t ** | nodesInLevel1, | ||
Vec_Int_t ** | iMatch1, | ||
Vec_Int_t ** | iDep1, | ||
Vec_Int_t * | matchedInputs1, | ||
int * | iGroup1, | ||
Vec_Int_t ** | oMatch1, | ||
int * | oGroup1, | ||
Abc_Ntk_t * | pNtk2, | ||
Vec_Ptr_t ** | nodesInLevel2, | ||
Vec_Int_t ** | iMatch2, | ||
Vec_Int_t ** | iDep2, | ||
Vec_Int_t * | matchedInputs2, | ||
int * | iGroup2, | ||
Vec_Int_t ** | oMatch2, | ||
int * | oGroup2, | ||
Vec_Int_t * | matchedOutputs1, | ||
Vec_Int_t * | matchedOutputs2, | ||
Vec_Int_t * | oMatchedGroups, | ||
Vec_Int_t * | iNonSingleton, | ||
Abc_Ntk_t * | subNtk1, | ||
Abc_Ntk_t * | subNtk2, | ||
Vec_Ptr_t * | oMatchPairs, | ||
Vec_Int_t * | oNonSingleton, | ||
int | oI, | ||
int | idx, | ||
int | ii, | ||
int | iidx | ||
) |
Definition at line 1183 of file abcBm.c.
Definition at line 241 of file abcBm.c.
int oSplitByDep | ( | Abc_Ntk_t * | pNtk, |
Vec_Int_t ** | oDep, | ||
Vec_Int_t ** | oMatch, | ||
int * | oGroup, | ||
int * | oLastItem, | ||
int * | iGroup | ||
) |
Definition at line 283 of file abcBm.c.
float refineBySAT | ( | Abc_Ntk_t * | pNtk1, |
Vec_Int_t ** | iMatch1, | ||
int * | iGroup1, | ||
Vec_Int_t ** | iDep1, | ||
int * | iLastItem1, | ||
Vec_Int_t ** | oMatch1, | ||
int * | oGroup1, | ||
Vec_Int_t ** | oDep1, | ||
int * | oLastItem1, | ||
int * | observability1, | ||
Abc_Ntk_t * | pNtk2, | ||
Vec_Int_t ** | iMatch2, | ||
int * | iGroup2, | ||
Vec_Int_t ** | iDep2, | ||
int * | iLastItem2, | ||
Vec_Int_t ** | oMatch2, | ||
int * | oGroup2, | ||
Vec_Int_t ** | oDep2, | ||
int * | oLastItem2, | ||
int * | observability2 | ||
) |
Definition at line 1574 of file abcBm.c.
int refineIOBySimulation | ( | Abc_Ntk_t * | pNtk, |
Vec_Int_t ** | iMatch, | ||
int * | iLastItem, | ||
int * | iGroup, | ||
Vec_Int_t ** | iDep, | ||
Vec_Int_t ** | oMatch, | ||
int * | oLastItem, | ||
int * | oGroup, | ||
Vec_Int_t ** | oDep, | ||
char * | vPiValues, | ||
int * | observability, | ||
Vec_Ptr_t ** | topOrder | ||
) |
Definition at line 508 of file abcBm.c.