
Go to the source code of this file.
Macros | |
| #define | FALSE 0 |
| #define | TRUE 1 |
Functions | |
| 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 |
| #define FALSE 0 |
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.nosp@m.@umi.nosp@m.ch.ed.nosp@m.u.] [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.]
| 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 967 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 700 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 871 of file abcBm.c.

Definition at line 449 of file abcBm.c.


| void Abc_NtkVerifyReportError | ( | Abc_Ntk_t * | pNtk1, |
| Abc_Ntk_t * | pNtk2, | ||
| int * | pModel, | ||
| Vec_Int_t * | mismatch ) |
Definition at line 810 of file abcBm.c.


Definition at line 1779 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 1063 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 ) |
Definition at line 1758 of file abcBm.c.

| Abc_Ntk_t * computeCofactor | ( | Abc_Ntk_t * | pNtk, |
| Vec_Ptr_t ** | nodesInLevel, | ||
| int * | bitVector, | ||
| Vec_Int_t * | currInputs ) |
Definition at line 1099 of file abcBm.c.


Definition at line 422 of file abcBm.c.


Definition at line 46 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 103 of file abcBm.c.

Definition at line 201 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 356 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 ) |
Definition at line 1331 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 1185 of file abcBm.c.


Definition at line 243 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 285 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 1576 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 510 of file abcBm.c.

