abc-master
|
Go to the source code of this file.
Data Structures | |
struct | Ivy_Obj_t_ |
struct | Ivy_Man_t_ |
struct | Ivy_FraigParams_t_ |
struct | Ivy_Cut_t_ |
struct | Ivy_Store_t_ |
Macros | |
#define | IVY_CUT_LIMIT 256 |
#define | IVY_CUT_INPUT 6 |
#define | IVY_LEAF_MASK 255 |
#define | IVY_LEAF_BITS 8 |
#define | IVY_MIN(a, b) (((a) < (b))? (a) : (b)) |
MACRO DEFINITIONS ///. More... | |
#define | IVY_MAX(a, b) (((a) > (b))? (a) : (b)) |
#define | Ivy_ManForEachPi(p, pObj, i) Vec_PtrForEachEntry( Ivy_Obj_t *, p->vPis, pObj, i ) |
ITERATORS ///. More... | |
#define | Ivy_ManForEachPo(p, pObj, i) Vec_PtrForEachEntry( Ivy_Obj_t *, p->vPos, pObj, i ) |
#define | Ivy_ManForEachObj(p, pObj, i) Vec_PtrForEachEntry( Ivy_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL ) {} else |
#define | Ivy_ManForEachCi(p, pObj, i) Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsCi(pObj) ) {} else |
#define | Ivy_ManForEachCo(p, pObj, i) Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsCo(pObj) ) {} else |
#define | Ivy_ManForEachNode(p, pObj, i) Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsNode(pObj) ) {} else |
#define | Ivy_ManForEachLatch(p, pObj, i) Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsLatch(pObj) ) {} else |
#define | Ivy_ManForEachNodeVec(p, vIds, pObj, i) for ( i = 0; i < Vec_IntSize(vIds) && ((pObj) = Ivy_ManObj(p, Vec_IntEntry(vIds,i))); i++ ) |
#define | Ivy_ObjForEachFanout(p, pObj, vArray, pFanout, i) |
Typedefs | |
typedef typedefABC_NAMESPACE_HEADER_START struct Ivy_Man_t_ | Ivy_Man_t |
INCLUDES ///. More... | |
typedef struct Ivy_Obj_t_ | Ivy_Obj_t |
typedef int | Ivy_Edge_t |
typedef struct Ivy_FraigParams_t_ | Ivy_FraigParams_t |
typedef struct Ivy_Cut_t_ | Ivy_Cut_t |
typedef struct Ivy_Store_t_ | Ivy_Store_t |
Enumerations | |
enum | Ivy_Type_t { IVY_NONE, IVY_PI, IVY_PO, IVY_ASSERT, IVY_LATCH, IVY_AND, IVY_EXOR, IVY_BUF, IVY_VOID } |
enum | Ivy_Init_t { IVY_INIT_NONE, IVY_INIT_0, IVY_INIT_1, IVY_INIT_DC } |
#define Ivy_ManForEachCi | ( | p, | |
pObj, | |||
i | |||
) | Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsCi(pObj) ) {} else |
#define Ivy_ManForEachCo | ( | p, | |
pObj, | |||
i | |||
) | Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsCo(pObj) ) {} else |
#define Ivy_ManForEachLatch | ( | p, | |
pObj, | |||
i | |||
) | Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsLatch(pObj) ) {} else |
#define Ivy_ManForEachNode | ( | p, | |
pObj, | |||
i | |||
) | Ivy_ManForEachObj( p, pObj, i ) if ( !Ivy_ObjIsNode(pObj) ) {} else |
#define Ivy_ManForEachNodeVec | ( | p, | |
vIds, | |||
pObj, | |||
i | |||
) | for ( i = 0; i < Vec_IntSize(vIds) && ((pObj) = Ivy_ManObj(p, Vec_IntEntry(vIds,i))); i++ ) |
#define Ivy_ManForEachPi | ( | p, | |
pObj, | |||
i | |||
) | Vec_PtrForEachEntry( Ivy_Obj_t *, p->vPis, pObj, i ) |
#define Ivy_ManForEachPo | ( | p, | |
pObj, | |||
i | |||
) | Vec_PtrForEachEntry( Ivy_Obj_t *, p->vPos, pObj, i ) |
#define IVY_MIN | ( | a, | |
b | |||
) | (((a) < (b))? (a) : (b)) |
#define Ivy_ObjForEachFanout | ( | p, | |
pObj, | |||
vArray, | |||
pFanout, | |||
i | |||
) |
typedef struct Ivy_Cut_t_ Ivy_Cut_t |
typedef int Ivy_Edge_t |
typedef struct Ivy_FraigParams_t_ Ivy_FraigParams_t |
typedef typedefABC_NAMESPACE_HEADER_START struct Ivy_Man_t_ Ivy_Man_t |
INCLUDES ///.
CFile****************************************************************
FileName [ivy.h]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [And-Inverter Graph package.]
Synopsis [External declarations.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - May 11, 2006.]
Revision [
]PARAMETERS ///BASIC TYPES ///
typedef struct Ivy_Obj_t_ Ivy_Obj_t |
typedef struct Ivy_Store_t_ Ivy_Store_t |
enum Ivy_Init_t |
enum Ivy_Type_t |
Function*************************************************************
Synopsis [Performs canonicization step.]
Description [The argument nodes can be complemented.]
SideEffects []
SeeAlso []
Definition at line 84 of file ivyOper.c.
|
inlinestatic |
Function*************************************************************
Synopsis [Creates the canonical form of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 90 of file ivyCanon.c.
Function*************************************************************
Synopsis [Creates the canonical form of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 109 of file ivyCanon.c.
Ivy_Obj_t* Ivy_CanonLatch | ( | Ivy_Man_t * | p, |
Ivy_Obj_t * | pObj, | ||
Ivy_Init_t | Init | ||
) |
Function*************************************************************
Synopsis [Creates the canonical form of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 131 of file ivyCanon.c.
Function*************************************************************
Synopsis [Performs incremental rewriting of the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 771 of file ivyUtil.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
void Ivy_FastMapPerform | ( | Ivy_Man_t * | pAig, |
int | nLimit, | ||
int | fRecovery, | ||
int | fVerbose | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Performs fast K-LUT mapping of the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 105 of file ivyFastMap.c.
Function*************************************************************
Synopsis [Creates integer vector with the support of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 793 of file ivyFastMap.c.
void Ivy_FastMapReverseLevel | ( | Ivy_Man_t * | pAig | ) |
void Ivy_FastMapStop | ( | Ivy_Man_t * | pAig | ) |
Function*************************************************************
Synopsis [Cleans memory used for decomposition.]
Description []
SideEffects []
SeeAlso []
Definition at line 194 of file ivyFastMap.c.
Ivy_Man_t* Ivy_FraigMiter | ( | Ivy_Man_t * | pManAig, |
Ivy_FraigParams_t * | pParams | ||
) |
Function*************************************************************
Synopsis [Applies brute-force SAT to the miter.]
Description []
SideEffects []
SeeAlso []
Definition at line 480 of file ivyFraig.c.
void Ivy_FraigParamsDefault | ( | Ivy_FraigParams_t * | pParams | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Sets the default solving parameters.]
Description []
SideEffects []
SeeAlso []
Definition at line 225 of file ivyFraig.c.
Ivy_Man_t* Ivy_FraigPerform | ( | Ivy_Man_t * | pManAig, |
Ivy_FraigParams_t * | pParams | ||
) |
Function*************************************************************
Synopsis [Performs fraiging of the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 451 of file ivyFraig.c.
int Ivy_FraigProve | ( | Ivy_Man_t ** | ppManAig, |
void * | pPars | ||
) |
Function*************************************************************
Synopsis [Performs combinational equivalence checking for the miter.]
Description []
SideEffects []
SeeAlso []
Definition at line 255 of file ivyFraig.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
static |
|
static |
|
static |
|
inlinestatic |
Ivy_Obj_t* Ivy_Latch | ( | Ivy_Man_t * | p, |
Ivy_Obj_t * | pObj, | ||
Ivy_Init_t | Init | ||
) |
Function*************************************************************
Synopsis [Performs canonicization step.]
Description []
SideEffects []
SeeAlso []
Definition at line 287 of file ivyOper.c.
void Ivy_ManAddMemory | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Allocates additional memory for the nodes.]
Description [Allocates IVY_PAGE_SIZE nodes. Aligns memory by 32 bytes. Records the pointer to the AIG manager in the -1 entry.]
SideEffects []
SeeAlso []
Definition at line 89 of file ivyMem.c.
|
inlinestatic |
|
inlinestatic |
FUNCTION DECLARATIONS ///.
FUNCTION DECLARATIONS ///.
Function*************************************************************
Synopsis [Performs algebraic balancing of the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 51 of file ivyBalance.c.
|
inlinestatic |
int Ivy_ManCheck | ( | Ivy_Man_t * | p | ) |
DECLARATIONS ///.
CFile****************************************************************
FileName [ivyCheck.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [And-Inverter Graph package.]
Synopsis [AIG checking procedures.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - May 11, 2006.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Checks the consistency of the AIG manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file ivyCheck.c.
int Ivy_ManCheckChoices | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Checks that each choice node has exactly one node with fanouts.]
Description []
SideEffects []
SeeAlso []
Definition at line 255 of file ivyCheck.c.
int Ivy_ManCheckFanoutNums | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Verifies the fanouts.]
Description []
SideEffects []
SeeAlso []
Definition at line 148 of file ivyCheck.c.
int Ivy_ManCheckFanouts | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Verifies the fanouts.]
Description []
SideEffects []
SeeAlso []
Definition at line 171 of file ivyCheck.c.
void Ivy_ManCleanTravId | ( | Ivy_Man_t * | p | ) |
int Ivy_ManCleanup | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Removes nodes without fanout.]
Description [Returns the number of dangling nodes removed.]
SideEffects []
SeeAlso []
Definition at line 265 of file ivyMan.c.
Function*************************************************************
Synopsis [Collects nodes in the cone.]
Description []
SideEffects []
SeeAlso []
Definition at line 195 of file ivyDfs.c.
void Ivy_ManCollectCut | ( | Ivy_Man_t * | p, |
Ivy_Obj_t * | pRoot, | ||
Vec_Int_t * | vLeaves, | ||
Vec_Int_t * | vNodes | ||
) |
Function*************************************************************
Synopsis [Computes truth table of the cut.]
Description [Does not modify the array of leaves. Uses array vTruth to store temporary truth tables. The returned pointer should be used immediately.]
SideEffects []
SeeAlso []
Definition at line 106 of file ivyUtil.c.
unsigned* Ivy_ManCutTruth | ( | Ivy_Man_t * | p, |
Ivy_Obj_t * | pRoot, | ||
Vec_Int_t * | vLeaves, | ||
Vec_Int_t * | vNodes, | ||
Vec_Int_t * | vTruth | ||
) |
Function*************************************************************
Synopsis [Computes truth table of the cut.]
Description [Does not modify the array of leaves. Uses array vTruth to store temporary truth tables. The returned pointer should be used immediately.]
SideEffects []
SeeAlso []
Definition at line 186 of file ivyUtil.c.
Function*************************************************************
Synopsis [Collects AND/EXOR nodes in the DFS order from CIs to COs.]
Description []
SideEffects []
SeeAlso []
Definition at line 87 of file ivyDfs.c.
Function*************************************************************
Synopsis [Collects AND/EXOR nodes in the DFS order from CIs to COs.]
Description []
SideEffects []
SeeAlso []
Definition at line 121 of file ivyDfs.c.
Function*************************************************************
Synopsis [Implement DSD in the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 655 of file ivyDsd.c.
Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 110 of file ivyMan.c.
|
inlinestatic |
Ivy_Man_t* Ivy_ManFrames | ( | Ivy_Man_t * | pMan, |
int | nLatches, | ||
int | nFrames, | ||
int | fInit, | ||
Vec_Ptr_t ** | pvMapping | ||
) |
Function*************************************************************
Synopsis [Stops the AIG manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 172 of file ivyMan.c.
|
inlinestatic |
Function*************************************************************
Synopsis [Sets the pair of equivalent nodes in HAIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 246 of file ivyHaig.c.
Function*************************************************************
Synopsis [Creates a new node in HAIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 183 of file ivyHaig.c.
void Ivy_ManHaigPostprocess | ( | Ivy_Man_t * | p, |
int | fVerbose | ||
) |
Function*************************************************************
Synopsis [Prints statistics of the HAIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 350 of file ivyHaig.c.
void Ivy_ManHaigSimulate | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Simulate HAIG using modified 3-valued simulation.]
Description []
SideEffects []
SeeAlso []
Definition at line 440 of file ivyHaig.c.
void Ivy_ManHaigStart | ( | Ivy_Man_t * | p, |
int | fVerbose | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Starts HAIG for the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 94 of file ivyHaig.c.
void Ivy_ManHaigStop | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Stops HAIG for the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 159 of file ivyHaig.c.
|
inlinestatic |
void Ivy_ManIncrementTravId | ( | Ivy_Man_t * | p | ) |
DECLARATIONS ///.
CFile****************************************************************
FileName [ivyUtil.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [And-Inverter Graph package.]
Synopsis [Various procedures.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - May 11, 2006.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Increments the current traversal ID of the network.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file ivyUtil.c.
int Ivy_ManIsAcyclic | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Detects combinational loops.]
Description [This procedure is based on the idea suggested by Donald Chai. As we traverse the network and visit the nodes, we need to distinquish three types of nodes: (1) those that are visited for the first time, (2) those that have been visited in this traversal but are currently not on the traversal path, (3) those that have been visited and are currently on the travesal path. When the node of type (3) is encountered, it means that there is a combinational loop. To mark the three types of nodes, two new values of the traversal IDs are used.]
SideEffects []
SeeAlso []
Definition at line 373 of file ivyDfs.c.
Function*************************************************************
Synopsis [Collect the latches.]
Description []
SideEffects []
SeeAlso []
Definition at line 227 of file ivyUtil.c.
|
inlinestatic |
Function*************************************************************
Synopsis [Returns the nodes by level.]
Description []
SideEffects []
SeeAlso []
Definition at line 224 of file ivyDfs.c.
int Ivy_ManLevels | ( | Ivy_Man_t * | p | ) |
void Ivy_ManMakeSeq | ( | Ivy_Man_t * | p, |
int | nLatches, | ||
int * | pInits | ||
) |
Function*************************************************************
Synopsis [Converts a combinational AIG manager into a sequential one.]
Description []
SideEffects []
SeeAlso []
Definition at line 482 of file ivyMan.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
void Ivy_ManPrintStats | ( | Ivy_Man_t * | p | ) |
void Ivy_ManPrintVerbose | ( | Ivy_Man_t * | p, |
int | fHaig | ||
) |
Function*************************************************************
Synopsis [Prints node in HAIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 714 of file ivyUtil.c.
int Ivy_ManPropagateBuffers | ( | Ivy_Man_t * | p, |
int | fUpdateLevel | ||
) |
Function*************************************************************
Synopsis [Returns the number of dangling nodes removed.]
Description []
SideEffects []
SeeAlso []
Definition at line 414 of file ivyMan.c.
Function*************************************************************
Synopsis [Computes required levels for each node.]
Description [Assumes topological ordering of the nodes.]
SideEffects []
SeeAlso []
Definition at line 250 of file ivyDfs.c.
void Ivy_ManResetLevels | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Performs several passes of rewriting on the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 86 of file ivyResyn.c.
DECLARATIONS ///.
CFile****************************************************************
FileName [ivyResyn.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [And-Inverter Graph package.]
Synopsis [AIG rewriting script.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - May 11, 2006.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Performs several passes of rewriting on the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file ivyResyn.c.
int Ivy_ManRewriteAlg | ( | Ivy_Man_t * | p, |
int | fUpdateLevel, | ||
int | fUseZeroCost | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Algebraic AIG rewriting.]
Description []
SideEffects []
SeeAlso []
Definition at line 49 of file ivyRwrAlg.c.
int Ivy_ManRewritePre | ( | Ivy_Man_t * | p, |
int | fUpdateLevel, | ||
int | fUseZeroCost, | ||
int | fVerbose | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Performs incremental rewriting of the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 55 of file ivyRwr.c.
int Ivy_ManRewriteSeq | ( | Ivy_Man_t * | p, |
int | fUseZeroCost, | ||
int | fVerbose | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Performs incremental rewriting of the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 63 of file ivySeq.c.
Function*************************************************************
Synopsis [Performs several passes of rewriting on the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 155 of file ivyResyn.c.
void Ivy_ManSeqFindCut | ( | Ivy_Man_t * | p, |
Ivy_Obj_t * | pRoot, | ||
Vec_Int_t * | vFront, | ||
Vec_Int_t * | vInside, | ||
int | nSize | ||
) |
Function*************************************************************
Synopsis [Computes one sequential cut of the given size.]
Description []
SideEffects []
SeeAlso []
Definition at line 183 of file ivyCut.c.
int Ivy_ManSeqRewrite | ( | Ivy_Man_t * | p, |
int | fUpdateLevel, | ||
int | fUseZeroCost | ||
) |
int Ivy_ManSetLevels | ( | Ivy_Man_t * | p, |
int | fHaig | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 47 of file ivyShow.c.
Ivy_Man_t* Ivy_ManStart | ( | ) |
DECLARATIONS ///.
CFile****************************************************************
FileName [ivyMan.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [And-Inverter Graph package.]
Synopsis [AIG manager.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - May 11, 2006.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Starts the AIG manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file ivyMan.c.
void Ivy_ManStartFanout | ( | Ivy_Man_t * | p | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Starts the fanout representation.]
Description []
SideEffects []
SeeAlso []
Definition at line 136 of file ivyFanout.c.
Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 85 of file ivyMan.c.
void Ivy_ManStartMemory | ( | Ivy_Man_t * | p | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Starts the internal memory manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 49 of file ivyMem.c.
void Ivy_ManStop | ( | Ivy_Man_t * | p | ) |
void Ivy_ManStopFanout | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Stops the fanout representation.]
Description []
SideEffects []
SeeAlso []
Definition at line 162 of file ivyFanout.c.
void Ivy_ManStopMemory | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Stops the internal memory manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 66 of file ivyMem.c.
Function*************************************************************
Synopsis [Implements the miter.]
Description []
SideEffects []
SeeAlso []
Ivy_Obj_t* Ivy_Multi | ( | Ivy_Man_t * | p, |
Ivy_Obj_t ** | pArgs, | ||
int | nArgs, | ||
Ivy_Type_t | Type | ||
) |
Function*************************************************************
Synopsis [Old code.]
Description []
SideEffects []
SeeAlso []
Definition at line 246 of file ivyOper.c.
Ivy_Obj_t* Ivy_Multi1 | ( | Ivy_Man_t * | p, |
Ivy_Obj_t ** | pArgs, | ||
int | nArgs, | ||
Ivy_Type_t | Type | ||
) |
Ivy_Obj_t* Ivy_Multi_rec | ( | Ivy_Man_t * | p, |
Ivy_Obj_t ** | ppObjs, | ||
int | nObjs, | ||
Ivy_Type_t | Type | ||
) |
Function*************************************************************
Synopsis [Constructs the well-balanced tree of gates.]
Description [Disregards levels and possible logic sharing.]
SideEffects []
SeeAlso []
Definition at line 225 of file ivyOper.c.
Ivy_Obj_t* Ivy_MultiBalance_rec | ( | Ivy_Man_t * | p, |
Ivy_Obj_t ** | pArgs, | ||
int | nArgs, | ||
Ivy_Type_t | Type | ||
) |
int Ivy_MultiPlus | ( | Ivy_Man_t * | p, |
Vec_Ptr_t * | vLeaves, | ||
Vec_Ptr_t * | vCone, | ||
Ivy_Type_t | Type, | ||
int | nLimit, | ||
Vec_Ptr_t * | vSols | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Constructs a balanced tree while taking sharing into account.]
Description [Returns 1 if the implementation exists.]
SideEffects []
SeeAlso []
Definition at line 58 of file ivyMulti.c.
Function*************************************************************
Synopsis [Implements ITE operation.]
Description []
SideEffects []
SeeAlso []
Definition at line 158 of file ivyOper.c.
Ivy_Obj_t* Ivy_NodeBalanceBuildSuper | ( | Ivy_Man_t * | p, |
Vec_Ptr_t * | vSuper, | ||
Ivy_Type_t | Type, | ||
int | fUpdateLevel | ||
) |
Function*************************************************************
Synopsis [Builds implication supergate.]
Description []
SideEffects []
SeeAlso []
Definition at line 175 of file ivyBalance.c.
Ivy_Store_t* Ivy_NodeFindCutsAll | ( | Ivy_Man_t * | p, |
Ivy_Obj_t * | pObj, | ||
int | nLeaves | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 892 of file ivyCut.c.
Function*************************************************************
Synopsis [Fixes buffer fanins.]
Description [This situation happens because NodeReplace is a lazy procedure, which does not propagate the change to the fanouts but instead records the change in the form of a buf/inv node.]
SideEffects []
SeeAlso []
Definition at line 442 of file ivyObj.c.
Function*************************************************************
Synopsis [Add the fanout.]
Description []
SideEffects []
SeeAlso []
Definition at line 183 of file ivyFanout.c.
Definition at line 275 of file ivy.h.
Definition at line 276 of file ivy.h.
|
inlinestatic |
|
inlinestatic |
Function*************************************************************
Synopsis [Starts iteration through the fanouts.]
Description [Copies the currently available fanouts into the array.]
SideEffects [Can be used while the fanouts are being removed.]
SeeAlso []
Definition at line 262 of file ivyFanout.c.
Function*************************************************************
Synopsis [Connect the object to the fanin.]
Description []
SideEffects []
SeeAlso []
Definition at line 150 of file ivyObj.c.
Function*************************************************************
Synopsis [Create the new node assuming it does not exist.]
Description []
SideEffects []
SeeAlso []
Definition at line 77 of file ivyObj.c.
|
inlinestatic |
DECLARATIONS ///.
CFile****************************************************************
FileName [ivyObj.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [And-Inverter Graph package.]
Synopsis [Adding/removing objects.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - May 11, 2006.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Create the new node assuming it does not exist.]
Description []
SideEffects []
SeeAlso []
Function*************************************************************
Synopsis [Create the new node assuming it does not exist.]
Description []
SideEffects []
SeeAlso []
Function*************************************************************
Synopsis [Deletes the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 255 of file ivyObj.c.
Function*************************************************************
Synopsis [Deletes the MFFC of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 299 of file ivyObj.c.
Function*************************************************************
Synopsis [Removes the fanout.]
Description []
SideEffects []
SeeAlso []
Definition at line 205 of file ivyFanout.c.
Function*************************************************************
Synopsis [Connect the object to the fanin.]
Description []
SideEffects []
SeeAlso []
Definition at line 185 of file ivyObj.c.
Definition at line 277 of file ivy.h.
Function*************************************************************
Synopsis [Reads one fanout.]
Description [Returns fanout if there is only one fanout.]
SideEffects []
SeeAlso []
Definition at line 299 of file ivyFanout.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
int Ivy_ObjIsMuxType | ( | Ivy_Obj_t * | pNode | ) |
Function*************************************************************
Synopsis [Returns 1 if the node is the root of MUX or EXOR/NEXOR.]
Description []
SideEffects []
SeeAlso []
Definition at line 479 of file ivyUtil.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 279 of file ivy.h.
Function*************************************************************
Synopsis [Labels MFFC with the current label.]
Description []
SideEffects []
SeeAlso []
Definition at line 359 of file ivyUtil.c.
Function*************************************************************
Synopsis [Replaces the first fanin of the node by the new fanin.]
Description []
SideEffects []
SeeAlso []
Definition at line 224 of file ivyObj.c.
void Ivy_ObjPatchFanout | ( | Ivy_Man_t * | p, |
Ivy_Obj_t * | pFanin, | ||
Ivy_Obj_t * | pFanoutOld, | ||
Ivy_Obj_t * | pFanoutNew | ||
) |
Function*************************************************************
Synopsis [Replaces the fanout of pOld to be pFanoutNew.]
Description []
SideEffects []
SeeAlso []
Definition at line 237 of file ivyFanout.c.
Function*************************************************************
Synopsis [Prints node in HAIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 629 of file ivyUtil.c.
Function*************************************************************
Synopsis [Reads one fanout.]
Description [Returns fanout if there is only one fanout.]
SideEffects []
SeeAlso []
Definition at line 283 of file ivyFanout.c.
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 517 of file ivyUtil.c.
void Ivy_ObjReplace | ( | Ivy_Man_t * | p, |
Ivy_Obj_t * | pObjOld, | ||
Ivy_Obj_t * | pObjNew, | ||
int | fDeleteOld, | ||
int | fFreeTop, | ||
int | fUpdateLevel | ||
) |
Function*************************************************************
Synopsis [Replaces one object by another.]
Description [Both objects are currently in the manager. The new object (pObjNew) should be used instead of the old object (pObjOld). If the new object is complemented or used, the buffer is added.]
SideEffects []
SeeAlso []
Definition at line 328 of file ivyObj.c.
|
inlinestatic |
|
inlinestatic |
Function*************************************************************
Synopsis [Recursively updates fanout levels.]
Description []
SideEffects []
SeeAlso []
Definition at line 382 of file ivyUtil.c.
Function*************************************************************
Synopsis [Recursively updates fanout levels.]
Description []
SideEffects []
SeeAlso []
Definition at line 444 of file ivyUtil.c.
Ivy_Obj_t* Ivy_Oper | ( | Ivy_Man_t * | p, |
Ivy_Obj_t * | p0, | ||
Ivy_Obj_t * | p1, | ||
Ivy_Type_t | Type | ||
) |
Function*************************************************************
Synopsis [Implements Boolean OR.]
Description []
SideEffects []
SeeAlso []
int Ivy_TableCountEntries | ( | Ivy_Man_t * | p | ) |
Function*************************************************************
Synopsis [Count the number of nodes in the table.]
Description []
SideEffects []
SeeAlso []
Definition at line 187 of file ivyTable.c.
Function*************************************************************
Synopsis [Deletes the node from the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 132 of file ivyTable.c.
Function*************************************************************
Synopsis [Adds the node to the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 105 of file ivyTable.c.
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Checks if node with the given attributes is in the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 71 of file ivyTable.c.
void Ivy_TableProfile | ( | Ivy_Man_t * | p | ) |
Function********************************************************************
Synopsis [Profiles the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 250 of file ivyTable.c.
Function*************************************************************
Synopsis [Updates the table to point to the new node.]
Description [If the old node (pObj) is in the table, updates the table to point to an object with different ID (ObjIdNew). The table should not contain an object with ObjIdNew (this is currently not checked).]
SideEffects []
SeeAlso []
Definition at line 165 of file ivyTable.c.
int Ivy_TruthDsd | ( | unsigned | uTruth, |
Vec_Int_t * | vTree | ||
) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Computes DSD of truth table of 5 variables or less.]
Description [Returns 1 if the function is a constant or is fully DSD decomposable using AND/EXOR/MUX gates.]
SideEffects []
SeeAlso []
Definition at line 166 of file ivyDsd.c.
unsigned Ivy_TruthDsdCompute | ( | Vec_Int_t * | vTree | ) |
Function*************************************************************
Synopsis [Computes truth table of decomposition tree for verification.]
Description []
SideEffects []
SeeAlso []
Definition at line 478 of file ivyDsd.c.
void Ivy_TruthDsdComputePrint | ( | unsigned | uTruth | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 678 of file ivyDsd.c.
void Ivy_TruthDsdPrint | ( | FILE * | pFile, |
Vec_Int_t * | vTree | ||
) |
Function*************************************************************
Synopsis [Prints the decomposition tree.]
Description []
SideEffects []
SeeAlso []
Definition at line 568 of file ivyDsd.c.