abc-master
|
Go to the source code of this file.
Variables | |
static ABC_NAMESPACE_IMPL_START int | bit_count [256] |
DECLARATIONS ///. More... | |
int Fraig_BitStringCountOnes | ( | unsigned * | pString, |
int | nWords | ||
) |
Function*************************************************************
Synopsis [Creates the constant 1 node.]
Description []
SideEffects []
SeeAlso []
Definition at line 288 of file fraigUtil.c.
int Fraig_CheckTfi | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pOld, | ||
Fraig_Node_t * | pNew | ||
) |
Function*************************************************************
Synopsis [Returns 1 if pOld is in the TFI of pNew.]
Description []
SideEffects []
SeeAlso []
Definition at line 173 of file fraigUtil.c.
int Fraig_CheckTfi2 | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pOld, | ||
Fraig_Node_t * | pNew | ||
) |
Function*************************************************************
Synopsis [Returns 1 if pOld is in the TFI of pNew.]
Description []
SideEffects []
SeeAlso []
Definition at line 226 of file fraigUtil.c.
|
static |
Function*************************************************************
Synopsis [Returns 1 if pOld is in the TFI of pNew.]
Description []
SideEffects []
SeeAlso []
Definition at line 192 of file fraigUtil.c.
Fraig_NodeVec_t* Fraig_CollectSupergate | ( | Fraig_Node_t * | pNode, |
int | fStopAtMux | ||
) |
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.
void Fraig_CollectSupergate_rec | ( | Fraig_Node_t * | pNode, |
Fraig_NodeVec_t * | vSuper, | ||
int | fFirst, | ||
int | fStopAtMux | ||
) |
Function*************************************************************
Synopsis [Returns the array of nodes to be combined into one multi-input AND-gate.]
Description []
SideEffects []
SeeAlso []
Definition at line 933 of file fraigUtil.c.
int Fraig_CountNodes | ( | Fraig_Man_t * | pMan, |
int | fEquiv | ||
) |
Function*************************************************************
Synopsis [Computes the DFS ordering of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 152 of file fraigUtil.c.
int Fraig_CountPis | ( | Fraig_Man_t * | p, |
Msat_IntVec_t * | vVarNums | ||
) |
Function*************************************************************
Synopsis [Count the number of PI variables.]
Description []
SideEffects []
SeeAlso []
Definition at line 817 of file fraigUtil.c.
Fraig_NodeVec_t* Fraig_Dfs | ( | Fraig_Man_t * | pMan, |
int | fEquiv | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Computes the DFS ordering of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 58 of file fraigUtil.c.
|
static |
Function*************************************************************
Synopsis [Recursively computes the DFS ordering of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 122 of file fraigUtil.c.
Fraig_NodeVec_t* Fraig_DfsNodes | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t ** | ppNodes, | ||
int | nNodes, | ||
int | fEquiv | ||
) |
Function*************************************************************
Synopsis [Computes the DFS ordering of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 100 of file fraigUtil.c.
Fraig_NodeVec_t* Fraig_DfsOne | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode, | ||
int | fEquiv | ||
) |
Function*************************************************************
Synopsis [Computes the DFS ordering of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 80 of file fraigUtil.c.
int Fraig_GetMaxLevel | ( | Fraig_Man_t * | pMan | ) |
Function*************************************************************
Synopsis [Sets up the mask.]
Description []
SideEffects []
SeeAlso []
Definition at line 428 of file fraigUtil.c.
int Fraig_ManCheckConsistency | ( | Fraig_Man_t * | p | ) |
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.
int Fraig_ManCountExors | ( | Fraig_Man_t * | pMan | ) |
Function*************************************************************
Synopsis [Counts the number of EXOR type nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 742 of file fraigUtil.c.
int Fraig_ManCountMuxes | ( | Fraig_Man_t * | pMan | ) |
Function*************************************************************
Synopsis [Counts the number of EXOR type nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 763 of file fraigUtil.c.
void Fraig_ManIncrementTravId | ( | Fraig_Man_t * | pMan | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 980 of file fraigUtil.c.
void Fraig_ManMarkRealFanouts | ( | Fraig_Man_t * | p | ) |
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.
int Fraig_ManPrintRefs | ( | Fraig_Man_t * | pMan | ) |
Function*************************************************************
Synopsis [Counts the number of EXOR type nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 842 of file fraigUtil.c.
void Fraig_ManReportChoices | ( | Fraig_Man_t * | pMan | ) |
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.
void Fraig_MappingSetChoiceLevels | ( | Fraig_Man_t * | pMan, |
int | fMaximum | ||
) |
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.
int Fraig_MappingUpdateLevel_rec | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode, | ||
int | fMaximum | ||
) |
Function*************************************************************
Synopsis [Analyses choice nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 449 of file fraigUtil.c.
int Fraig_NodeIsExor | ( | Fraig_Node_t * | pNode | ) |
Function*************************************************************
Synopsis [Returns 1 if the node is EXOR, 0 if it is NEXOR.]
Description [The node should be EXOR type and not complemented.]
SideEffects []
SeeAlso []
Definition at line 633 of file fraigUtil.c.
int Fraig_NodeIsExorType | ( | Fraig_Node_t * | pNode | ) |
Function*************************************************************
Synopsis [Returns 1 if the node is the root of EXOR/NEXOR gate.]
Description [The node can be complemented.]
SideEffects []
SeeAlso []
Definition at line 558 of file fraigUtil.c.
int Fraig_NodeIsInSupergate | ( | Fraig_Node_t * | pOld, |
Fraig_Node_t * | pNew | ||
) |
Function*************************************************************
Synopsis [Checks if pNew exists among the implication fanins of pOld.]
Description [If pNew is an implication fanin of pOld, returns 1. If Fraig_Not(pNew) is an implication fanin of pOld, return -1. Otherwise returns 0.]
SideEffects []
SeeAlso []
Definition at line 905 of file fraigUtil.c.
int Fraig_NodeIsMuxType | ( | Fraig_Node_t * | pNode | ) |
Function*************************************************************
Synopsis [Returns 1 if the node is the root of MUX or EXOR/NEXOR.]
Description [The node can be complemented.]
SideEffects []
SeeAlso []
Definition at line 591 of file fraigUtil.c.
int Fraig_NodeIsTravIdCurrent | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1012 of file fraigUtil.c.
int Fraig_NodeIsTravIdPrevious | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1028 of file fraigUtil.c.
Fraig_Node_t* Fraig_NodeRecognizeMux | ( | Fraig_Node_t * | pNode, |
Fraig_Node_t ** | ppNodeT, | ||
Fraig_Node_t ** | ppNodeE | ||
) |
Function*************************************************************
Synopsis [Recognizes what nodes are control and data inputs of a MUX.]
Description [If the node is a MUX, returns the control variable C. Assigns nodes T and E to be the then and else variables of the MUX. Node C is never complemented. Nodes T and E can be complemented. This function also recognizes EXOR/NEXOR gates as MUXes.]
SideEffects []
SeeAlso []
Definition at line 658 of file fraigUtil.c.
void Fraig_NodeSetTravIdCurrent | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 996 of file fraigUtil.c.
int Fraig_NodeSimsContained | ( | Fraig_Man_t * | pMan, |
Fraig_Node_t * | pNode1, | ||
Fraig_Node_t * | pNode2 | ||
) |
Function*************************************************************
Synopsis [Returns 1 if siminfo of Node1 is contained in siminfo of Node2.]
Description []
SideEffects []
SeeAlso []
Definition at line 784 of file fraigUtil.c.
void Fraig_PrintBinary | ( | FILE * | pFile, |
unsigned * | pSign, | ||
int | nBits | ||
) |
Function*************************************************************
Synopsis [Prints the bit string.]
Description []
SideEffects []
SeeAlso []
Definition at line 402 of file fraigUtil.c.
void Fraig_PrintNode | ( | Fraig_Man_t * | p, |
Fraig_Node_t * | pNode | ||
) |
Function*************************************************************
Synopsis [Prints the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 358 of file fraigUtil.c.
|
static |
DECLARATIONS ///.
CFile****************************************************************
FileName [fraigUtil.c]
PackageName [FRAIG: Functionally reduced AND-INV graphs.]
Synopsis [Various utilities.]
Author [Alan Mishchenko alanm] i@ee cs.be rkel ey.ed u
Affiliation [UC Berkeley]
Date [Ver. 2.0. Started - October 1, 2004]
Revision [
]
Definition at line 29 of file fraigUtil.c.