|
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@umich.edu.] [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].
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.