
Go to the source code of this file.
Classes | |
| struct | Fraig_ParamsStruct_t_ |
| struct | Prove_ParamsStruct_t_ |
Macros | |
| #define | Fraig_IsComplement(p) |
| GLOBAL VARIABLES ///. | |
| #define | Fraig_Regular(p) |
| #define | Fraig_Not(p) |
| #define | Fraig_NotCond(p, c) |
| #define | Fraig_Ref(p) |
| #define | Fraig_Deref(p) |
| #define | Fraig_RecursiveDeref(p, c) |
Typedefs | |
| typedef typedefABC_NAMESPACE_HEADER_START struct Fraig_ManStruct_t_ | Fraig_Man_t |
| INCLUDES ///. | |
| typedef struct Fraig_NodeStruct_t_ | Fraig_Node_t |
| typedef struct Fraig_NodeVecStruct_t_ | Fraig_NodeVec_t |
| typedef struct Fraig_HashTableStruct_t_ | Fraig_HashTable_t |
| typedef struct Fraig_ParamsStruct_t_ | Fraig_Params_t |
| typedef struct Fraig_PatternsStruct_t_ | Fraig_Patterns_t |
| #define Fraig_IsComplement | ( | p | ) |
| #define Fraig_Not | ( | p | ) |
| #define Fraig_NotCond | ( | p, | |
| c ) |
| #define Fraig_Regular | ( | p | ) |
| typedef struct Fraig_HashTableStruct_t_ Fraig_HashTable_t |
| typedef typedefABC_NAMESPACE_HEADER_START struct Fraig_ManStruct_t_ Fraig_Man_t |
INCLUDES ///.
CFile****************************************************************
FileName [fraig.h]
PackageName [FRAIG: Functionally reduced AND-INV graphs.]
Synopsis [External declarations of the FRAIG package.]
Author [Alan Mishchenko alanm.nosp@m.i@ee.nosp@m.cs.be.nosp@m.rkel.nosp@m.ey.ed.nosp@m.u]
Affiliation [UC Berkeley]
Date [Ver. 2.0. Started - October 1, 2004]
Revision [
] PARAMETERS /// STRUCTURE DEFINITIONS ///
| typedef struct Fraig_NodeStruct_t_ Fraig_Node_t |
| typedef struct Fraig_NodeVecStruct_t_ Fraig_NodeVec_t |
| typedef struct Fraig_ParamsStruct_t_ Fraig_Params_t |
| typedef struct Fraig_PatternsStruct_t_ Fraig_Patterns_t |
|
extern |
Function*************************************************************
Synopsis [Returns 1 if pOld is in the TFI of pNew.]
Description []
SideEffects []
SeeAlso []
Definition at line 173 of file fraigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Returns the array of nodes to be combined into one multi-input AND-gate.]
Description []
SideEffects []
SeeAlso []
Definition at line 960 of file fraigUtil.c.

|
extern |
|
extern |
Function*************************************************************
Synopsis [Computes the DFS ordering of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 152 of file fraigUtil.c.


|
extern |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Computes the DFS ordering of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 58 of file fraigUtil.c.


|
extern |
Function*************************************************************
Synopsis [Computes the DFS ordering of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 100 of file fraigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Computes the DFS ordering of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 80 of file fraigUtil.c.


|
extern |
|
extern |
Function*************************************************************
Synopsis [Sets up the mask.]
Description []
SideEffects []
SeeAlso []
Definition at line 428 of file fraigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Adds clauses to the solver.]
Description [This procedure is used to add external clauses to the solver. The clauses are given by sets of nodes. Each node stands for one literal. If the node is complemented, the literal is negated.]
SideEffects []
SeeAlso []
Definition at line 521 of file fraigMan.c.

|
extern |
Function*************************************************************
Synopsis [Prepares the SAT solver to run on the two nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 653 of file fraigSat.c.

|
extern |
Function*************************************************************
Synopsis [Returns 1 if A v B is always true based on the siminfo.]
Description [A v B is always true iff A' * B' is always false.]
SideEffects []
SeeAlso []
Definition at line 454 of file fraigMan.c.
|
extern |
Function*************************************************************
Synopsis [Verify one useful property.]
Description [This procedure verifies one useful property. After the FRAIG construction with choice nodes is over, each primary node should have fanins that are primary nodes. The primary nodes is the one that does not have pNode->pRepr set to point to another node.]
SideEffects []
SeeAlso []
Definition at line 312 of file fraigUtil.c.


|
extern |
Function*************************************************************
Synopsis [Returns 1 if the miter is unsat; 0 if sat; -1 if undecided.]
Description []
SideEffects []
SeeAlso []
Definition at line 130 of file fraigSat.c.


|
extern |
Function*************************************************************
Synopsis [Creates the new FRAIG manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 184 of file fraigMan.c.


|
extern |
Function*************************************************************
Synopsis [Deallocates the mapping manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 262 of file fraigMan.c.


|
extern |
Function*************************************************************
Synopsis [Returns simulation info of all nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 417 of file fraigMan.c.

|
extern |
Function*************************************************************
Synopsis [Sets the number of fanouts (none, one, or many).]
Description [This procedure collects the nodes reachable from the POs of the AIG and sets the type of fanout counter (none, one, or many) for each node. This procedure is useful to determine fanout-free cones of AND-nodes, which is helpful for rebalancing the AIG (see procedure Fraig_ManRebalance, or something like that).]
SideEffects []
SeeAlso []
Definition at line 251 of file fraigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Deallocates the mapping manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 351 of file fraigMan.c.


|
extern |
Function*************************************************************
Synopsis [Tries to prove the final miter.]
Description []
SideEffects []
SeeAlso []
Definition at line 85 of file fraigSat.c.


|
extern |
Definition at line 61 of file fraigApi.c.
|
extern |
Definition at line 73 of file fraigApi.c.

|
extern |
|
extern |
Definition at line 60 of file fraigApi.c.
|
extern |
Definition at line 59 of file fraigApi.c.
|
extern |
Definition at line 58 of file fraigApi.c.
|
extern |
Definition at line 54 of file fraigApi.c.
|
extern |
|
extern |
Definition at line 46 of file fraigApi.c.
|
extern |
Definition at line 75 of file fraigApi.c.


|
extern |
|
extern |
Function*************************************************************
Synopsis [Returns a new primary input node.]
Description [If the node with this number does not exist, create a new PI node with this number.]
SideEffects []
SeeAlso []
Definition at line 168 of file fraigApi.c.


|
extern |
Definition at line 63 of file fraigApi.c.
|
extern |
|
extern |
Definition at line 48 of file fraigApi.c.
|
extern |
Definition at line 55 of file fraigApi.c.
|
extern |
Definition at line 50 of file fraigApi.c.
|
extern |
|
extern |
|
extern |
Definition at line 69 of file fraigApi.c.
|
extern |
|
extern |
Definition at line 57 of file fraigApi.c.
|
extern |
Definition at line 71 of file fraigApi.c.
|
extern |
Definition at line 56 of file fraigApi.c.
|
extern |
FUNCTION DEFINITIONS ///.
FUNCTION DEFINITIONS ///.
CFile****************************************************************
FileName [fraigApi.c]
PackageName [FRAIG: Functionally reduced AND-INV graphs.]
Synopsis [Access APIs for the FRAIG manager and node.]
Author [Alan Mishchenko alanm.nosp@m.i@ee.nosp@m.cs.be.nosp@m.rkel.nosp@m.ey.ed.nosp@m.u]
Affiliation [UC Berkeley]
Date [Ver. 2.0. Started - October 1, 2004]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Access functions to read the data members of the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file fraigApi.c.
|
extern |
Definition at line 45 of file fraigApi.c.
|
extern |
Definition at line 44 of file fraigApi.c.
|
extern |
Definition at line 62 of file fraigApi.c.
|
extern |
Function*************************************************************
Synopsis [Reports statistics on choice nodes.]
Description [The number of choice nodes is the number of primary nodes, which has pNextE set to a pointer. The number of choices is the number of entries in the equivalent-node lists of the primary nodes.]
SideEffects []
SeeAlso []
Definition at line 520 of file fraigUtil.c.


|
extern |
Definition at line 91 of file fraigApi.c.
|
extern |
Definition at line 90 of file fraigApi.c.
|
extern |
Definition at line 89 of file fraigApi.c.
|
extern |
Function*************************************************************
Synopsis [Access functions to set the data members of the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 88 of file fraigApi.c.

|
extern |
Definition at line 95 of file fraigApi.c.
|
extern |
Definition at line 94 of file fraigApi.c.
|
extern |
Function*************************************************************
Synopsis [Creates a new PO node.]
Description [This procedure may take a complemented node.]
SideEffects []
SeeAlso []
Definition at line 194 of file fraigApi.c.


|
extern |
Definition at line 92 of file fraigApi.c.
|
extern |
Definition at line 93 of file fraigApi.c.
|
extern |
Function*************************************************************
Synopsis [Resets the levels of the nodes in the choice graph.]
Description [Makes the level of the choice nodes to be equal to the maximum of the level of the nodes in the equivalence class. This way sorting by level leads to the reverse topological order, which is needed for the required time computation.]
SideEffects []
SeeAlso []
Definition at line 499 of file fraigUtil.c.


|
extern |
Function*************************************************************
Synopsis [Perfoms the AND operation with functional hashing.]
Description []
SideEffects []
SeeAlso []
Definition at line 212 of file fraigApi.c.


|
extern |
Definition at line 154 of file fraigApi.c.

|
extern |
Function*************************************************************
Synopsis [Perfoms the EXOR operation with functional hashing.]
Description []
SideEffects []
SeeAlso []
Definition at line 244 of file fraigApi.c.

|
extern |
|
extern |
Function*************************************************************
Synopsis [Checks the type of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 151 of file fraigApi.c.

|
extern |
Function*************************************************************
Synopsis [Checks whether two nodes are functinally equivalent.]
Description [The flag (fComp) tells whether the nodes to be checked are in the opposite polarity. The second flag (fSkipZeros) tells whether the checking should be performed if the simulation vectors are zeros. Returns 1 if the nodes are equivalent; 0 othewise.]
SideEffects []
SeeAlso []
Definition at line 302 of file fraigSat.c.


|
extern |
|
extern |
Function*************************************************************
Synopsis [Perfoms the MUX operation with functional hashing.]
Description []
SideEffects []
SeeAlso []
Definition at line 260 of file fraigApi.c.


|
extern |
Function*************************************************************
Synopsis [Perfoms the OR operation with functional hashing.]
Description []
SideEffects []
SeeAlso []
Definition at line 228 of file fraigApi.c.


|
extern |
Function*************************************************************
Synopsis [Access functions to read the data members of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 108 of file fraigApi.c.
|
extern |
Definition at line 109 of file fraigApi.c.
|
extern |
Definition at line 113 of file fraigApi.c.
|
extern |
Definition at line 110 of file fraigApi.c.
|
extern |
Definition at line 116 of file fraigApi.c.
|
extern |
Definition at line 118 of file fraigApi.c.
|
extern |
Definition at line 115 of file fraigApi.c.
|
extern |
|
extern |
Definition at line 124 of file fraigApi.c.
|
extern |
Definition at line 121 of file fraigApi.c.
|
extern |
Definition at line 114 of file fraigApi.c.
|
extern |
Definition at line 117 of file fraigApi.c.
|
extern |
|
extern |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Checks equivalence of two nodes.]
Description [Returns 1 iff the nodes are equivalent.]
SideEffects []
SeeAlso []
Definition at line 65 of file fraigSat.c.

|
extern |
Function*************************************************************
Synopsis [Sets the node to be equivalent to the given one.]
Description [This procedure is a work-around for the equivalence check. Does not verify the equivalence. Use at the user's risk.]
SideEffects []
SeeAlso []
Definition at line 285 of file fraigApi.c.
|
extern |
Function*************************************************************
Synopsis [Access functions to set the data members of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 137 of file fraigApi.c.
|
extern |
Definition at line 138 of file fraigApi.c.

|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [fraigVec.c]
PackageName [FRAIG: Functionally reduced AND-INV graphs.]
Synopsis [Vector of FRAIG nodes.]
Author [Alan Mishchenko alanm.nosp@m.i@ee.nosp@m.cs.be.nosp@m.rkel.nosp@m.ey.ed.nosp@m.u]
Affiliation [UC Berkeley]
Date [Ver. 2.0. Started - October 1, 2004]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Allocates a vector with the given capacity.]
Description []
SideEffects []
SeeAlso []
Definition at line 43 of file fraigVec.c.

|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 173 of file fraigVec.c.
|
extern |
Function*************************************************************
Synopsis [Duplicates the integer array.]
Description []
SideEffects []
SeeAlso []
Definition at line 83 of file fraigVec.c.

|
extern |
|
extern |
Function*************************************************************
Synopsis [Resizes the vector to the given capacity.]
Description []
SideEffects []
SeeAlso []
Definition at line 137 of file fraigVec.c.

|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 331 of file fraigVec.c.
|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 189 of file fraigVec.c.


|
extern |
Function*************************************************************
Synopsis [Inserts a new node in the order by arrival times.]
Description []
SideEffects []
SeeAlso []
Definition at line 233 of file fraigVec.c.


|
extern |
Function*************************************************************
Synopsis [Inserts a new node in the order by arrival times.]
Description []
SideEffects []
SeeAlso []
Definition at line 282 of file fraigVec.c.


|
extern |
Function*************************************************************
Synopsis [Add the element while ensuring uniqueness.]
Description [Returns 1 if the element was found, and 0 if it was new. ]
SideEffects []
SeeAlso []
Definition at line 212 of file fraigVec.c.


|
extern |
Function*************************************************************
Synopsis [Add the element while ensuring uniqueness in the order.]
Description [Returns 1 if the element was found, and 0 if it was new. ]
SideEffects []
SeeAlso []
Definition at line 261 of file fraigVec.c.

|
extern |
Function*************************************************************
Synopsis [Add the element while ensuring uniqueness in the order.]
Description [Returns 1 if the element was found, and 0 if it was new. ]
SideEffects []
SeeAlso []
Definition at line 310 of file fraigVec.c.

|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 105 of file fraigVec.c.
|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 387 of file fraigVec.c.
|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 121 of file fraigVec.c.
|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 347 of file fraigVec.c.
|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 156 of file fraigVec.c.
|
extern |
Function*************************************************************
Synopsis [Sorting the entries by their integer value.]
Description []
SideEffects []
SeeAlso []
Definition at line 501 of file fraigVec.c.

|
extern |
Function*************************************************************
Synopsis [Sorting the entries by their integer value.]
Description []
SideEffects []
SeeAlso []
Definition at line 522 of file fraigVec.c.

|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 370 of file fraigVec.c.
|
extern |
Function*************************************************************
Synopsis [Sets the default parameters of the package.]
Description [This set of parameters is tuned for equivalence checking.]
SideEffects []
SeeAlso []
Definition at line 122 of file fraigMan.c.


|
extern |
Function*************************************************************
Synopsis [Sets the default parameters of the package.]
Description [This set of parameters is tuned for complete FRAIGing.]
SideEffects []
SeeAlso []
Definition at line 153 of file fraigMan.c.

|
extern |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Sets the default parameters of the package.]
Description [This set of parameters is tuned for equivalence checking.]
SideEffects []
SeeAlso []
Definition at line 46 of file fraigMan.c.

