#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include "misc/vec/vec.h"#include "misc/util/utilCex.h"
Go to the source code of this file.
Classes | |
| struct | Aig_Obj_t_ |
| struct | Aig_Man_t_ |
| struct | Aig_Cut_t_ |
| struct | Aig_ManCut_t_ |
Macros | |
| #define | Aig_ObjForEachCut(p, pObj, pCut, i) |
| #define | Aig_CutForEachLeaf(p, pCut, pLeaf, i) |
| #define | Aig_ManForEachCi(p, pObj, i) |
| ITERATORS ///. | |
| #define | Aig_ManForEachCiReverse(p, pObj, i) |
| #define | Aig_ManForEachCo(p, pObj, i) |
| #define | Aig_ManForEachCoReverse(p, pObj, i) |
| #define | Aig_ManForEachObj(p, pObj, i) |
| #define | Aig_ManForEachObjReverse(p, pObj, i) |
| #define | Aig_ManForEachObjVec(vIds, p, pObj, i) |
| #define | Aig_ManForEachObjVecReverse(vIds, p, pObj, i) |
| #define | Aig_ManForEachNode(p, pObj, i) |
| #define | Aig_ManForEachNodeReverse(p, pObj, i) |
| #define | Aig_ManForEachExor(p, pObj, i) |
| #define | Aig_ManForEachExorReverse(p, pObj, i) |
| #define | Aig_ObjForEachFanout(p, pObj, pFanout, iFan, i) |
| #define | Aig_ManForEachPiSeq(p, pObj, i) |
| SEQUENTIAL ITERATORS ///. | |
| #define | Aig_ManForEachLoSeq(p, pObj, i) |
| #define | Aig_ManForEachPoSeq(p, pObj, i) |
| #define | Aig_ManForEachLiSeq(p, pObj, i) |
| #define | Aig_ManForEachLiLoSeq(p, pObjLi, pObjLo, k) |
Typedefs | |
| typedef typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ | Aig_Man_t |
| INCLUDES ///. | |
| typedef struct Aig_Obj_t_ | Aig_Obj_t |
| typedef struct Aig_MmFixed_t_ | Aig_MmFixed_t |
| typedef struct Aig_MmFlex_t_ | Aig_MmFlex_t |
| typedef struct Aig_MmStep_t_ | Aig_MmStep_t |
| typedef struct Aig_ManCut_t_ | Aig_ManCut_t |
| typedef struct Aig_Cut_t_ | Aig_Cut_t |
Enumerations | |
| enum | Aig_Type_t { AIG_OBJ_NONE , AIG_OBJ_CONST1 , AIG_OBJ_CI , AIG_OBJ_CO , AIG_OBJ_BUF , AIG_OBJ_AND , AIG_OBJ_EXOR , AIG_OBJ_VOID } |
| #define Aig_CutForEachLeaf | ( | p, | |
| pCut, | |||
| pLeaf, | |||
| i ) |
| #define Aig_ManForEachCi | ( | p, | |
| pObj, | |||
| i ) |
ITERATORS ///.
Definition at line 393 of file aig.h.
| #define Aig_ManForEachCiReverse | ( | p, | |
| pObj, | |||
| i ) |
Definition at line 395 of file aig.h.
| #define Aig_ManForEachCo | ( | p, | |
| pObj, | |||
| i ) |
| #define Aig_ManForEachCoReverse | ( | p, | |
| pObj, | |||
| i ) |
| #define Aig_ManForEachExor | ( | p, | |
| pObj, | |||
| i ) |
Definition at line 418 of file aig.h.
| #define Aig_ManForEachExorReverse | ( | p, | |
| pObj, | |||
| i ) |
Definition at line 420 of file aig.h.
| #define Aig_ManForEachLiLoSeq | ( | p, | |
| pObjLi, | |||
| pObjLo, | |||
| k ) |
| #define Aig_ManForEachLiSeq | ( | p, | |
| pObj, | |||
| i ) |
Definition at line 447 of file aig.h.
| #define Aig_ManForEachLoSeq | ( | p, | |
| pObj, | |||
| i ) |
| #define Aig_ManForEachNode | ( | p, | |
| pObj, | |||
| i ) |
Definition at line 413 of file aig.h.
| #define Aig_ManForEachNodeReverse | ( | p, | |
| pObj, | |||
| i ) |
Definition at line 415 of file aig.h.
| #define Aig_ManForEachObj | ( | p, | |
| pObj, | |||
| i ) |
| #define Aig_ManForEachObjReverse | ( | p, | |
| pObj, | |||
| i ) |
| #define Aig_ManForEachObjVec | ( | vIds, | |
| p, | |||
| pObj, | |||
| i ) |
| #define Aig_ManForEachObjVecReverse | ( | vIds, | |
| p, | |||
| pObj, | |||
| i ) |
Definition at line 410 of file aig.h.
| #define Aig_ManForEachPiSeq | ( | p, | |
| pObj, | |||
| i ) |
SEQUENTIAL ITERATORS ///.
Definition at line 438 of file aig.h.
| #define Aig_ManForEachPoSeq | ( | p, | |
| pObj, | |||
| i ) |
| #define Aig_ObjForEachCut | ( | p, | |
| pObj, | |||
| pCut, | |||
| i ) |
| #define Aig_ObjForEachFanout | ( | p, | |
| pObj, | |||
| pFanout, | |||
| iFan, | |||
| i ) |
Definition at line 427 of file aig.h.
| typedef struct Aig_Cut_t_ Aig_Cut_t |
| typedef typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t |
INCLUDES ///.
CFile****************************************************************
FileName [aig.h]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [External declarations.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
] PARAMETERS /// BASIC TYPES ///
| typedef struct Aig_ManCut_t_ Aig_ManCut_t |
| typedef struct Aig_MmFixed_t_ Aig_MmFixed_t |
| typedef struct Aig_MmFlex_t_ Aig_MmFlex_t |
| typedef struct Aig_MmStep_t_ Aig_MmStep_t |
| typedef struct Aig_Obj_t_ Aig_Obj_t |
| enum Aig_Type_t |
| Enumerator | |
|---|---|
| AIG_OBJ_NONE | |
| AIG_OBJ_CONST1 | |
| AIG_OBJ_CI | |
| AIG_OBJ_CO | |
| AIG_OBJ_BUF | |
| AIG_OBJ_AND | |
| AIG_OBJ_EXOR | |
| AIG_OBJ_VOID | |
Definition at line 57 of file aig.h.
Function*************************************************************
Synopsis [Performs canonicization step.]
Description [The argument nodes can be complemented.]
SideEffects []
SeeAlso []
Definition at line 104 of file aigOper.c.

Function*************************************************************
Synopsis [Composes the AIG (pRoot) with the function (pFunc) using PI var (iVar).]
Description []
SideEffects []
SeeAlso []
Definition at line 980 of file aigDfs.c.

|
extern |
Function*************************************************************
Synopsis [Computes the cuts for all nodes in the static AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 631 of file aigCuts.c.


|
extern |
Function*************************************************************
Synopsis [Counts the number of AIG nodes rooted at this cone.]
Description []
SideEffects []
SeeAlso []
Definition at line 704 of file aigDfs.c.


Function*************************************************************
Synopsis [Creates AND function with nVars inputs.]
Description []
SideEffects []
SeeAlso []
Definition at line 474 of file aigOper.c.

Function*************************************************************
Synopsis [Creates AND function with nVars inputs.]
Description []
SideEffects []
SeeAlso []
Definition at line 516 of file aigOper.c.

Function*************************************************************
Synopsis [Creates AND function with nVars inputs.]
Description []
SideEffects []
SeeAlso []
Definition at line 495 of file aigOper.c.

|
extern |
Function*************************************************************
Synopsis [Counts the number of AIG nodes rooted at this cone.]
Description []
SideEffects []
SeeAlso []
Definition at line 726 of file aigDfs.c.


Function*************************************************************
Synopsis [Performs canonicization step.]
Description [The argument nodes can be complemented.]
SideEffects []
SeeAlso []
Definition at line 220 of file aigOper.c.


|
extern |
Function*************************************************************
Synopsis [Returns the composite name of the file.]
Description []
SideEffects []
SeeAlso []
Definition at line 1083 of file aigUtil.c.


FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Returns i-th elementary variable.]
Description []
SideEffects []
SeeAlso []
Definition at line 63 of file aigOper.c.


|
extern |
Function*************************************************************
Synopsis [Adds POs for the nodes that otherwise would be dangling.]
Description [Returns the number of POs added.]
SideEffects []
SeeAlso []
Definition at line 293 of file aigMan.c.

FUNCTION DECLARATIONS ///.
FUNCTION DECLARATIONS ///.
CFile****************************************************************
FileName [aigCheck.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [AIG checking procedures.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Checks the consistency of the AIG manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file aigCheck.c.


|
extern |
Function*************************************************************
Synopsis [Checks if the markA is reset.]
Description []
SideEffects []
SeeAlso []
Definition at line 132 of file aigCheck.c.
|
extern |
Function*************************************************************
Synopsis [Checks the consistency of phase assignment.]
Description []
SideEffects []
SeeAlso []
Definition at line 151 of file aigCheck.c.

Function*************************************************************
Synopsis [Constructively accumulates choices.]
Description []
SideEffects []
SeeAlso []
Definition at line 1564 of file aigPart.c.


|
extern |
Function*************************************************************
Synopsis [Computes levels for AIG with choices and white boxes.]
Description []
SideEffects []
SeeAlso []
Definition at line 595 of file aigDfs.c.


|
extern |
Function*************************************************************
Synopsis [Sets the PI/PO numbers.]
Description []
SideEffects []
SeeAlso []
Definition at line 1020 of file aigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Performs partitioned choice computation.]
Description [Assumes that each output in the second AIG cannot have more supp vars than the same output in the first AIG.]
SideEffects []
SeeAlso []
Definition at line 1247 of file aigPart.c.


|
extern |
Function*************************************************************
Synopsis [Removes PIs without fanouts.]
Description [Returns the number of PIs removed.]
SideEffects []
SeeAlso []
Definition at line 314 of file aigMan.c.

|
extern |
Function*************************************************************
Synopsis [Sets the PI/PO numbers.]
Description []
SideEffects []
SeeAlso []
Definition at line 999 of file aigUtil.c.

|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
Function*************************************************************
Synopsis [Cleans the data pointers for the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 224 of file aigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Removes combinational logic that does not feed into POs.]
Description [Returns the number of dangling nodes removed.]
SideEffects []
SeeAlso []
Definition at line 265 of file aigMan.c.

|
extern |
Function*************************************************************
Synopsis [Removes POs with constant input.]
Description [Returns the number of POs removed.]
SideEffects []
SeeAlso []
Definition at line 345 of file aigMan.c.


|
extern |
Function*************************************************************
Synopsis [Computes strongly connected components of registers.]
Description []
SideEffects []
SeeAlso []
Definition at line 489 of file aigScl.c.


|
extern |
Function*************************************************************
Synopsis [Reduces the circuit using ternary simulation.]
Description []
SideEffects []
SeeAlso []
Definition at line 498 of file aigTsim.c.


|
extern |
Function*************************************************************
Synopsis [Returns the number of dangling nodes removed.]
Description []
SideEffects []
SeeAlso []
Definition at line 310 of file aigScl.c.

|
extern |
Function*************************************************************
Synopsis [Transfer representatives and return the number of critical fanouts.]
Description []
SideEffects []
SeeAlso []
Function*************************************************************
Synopsis [Creates the miter of the two AIG managers.]
Description [Oper is the operation to perform on the outputs of the miter. Oper == 0 is XOR Oper == 1 is complemented implication (p1 => p2) Oper == 2 is OR Oper == 3 is AND ]
SideEffects []
SeeAlso []
Definition at line 1049 of file aigDup.c.


|
extern |
|
extern |
Function*************************************************************
Synopsis [Computes truth table of the cut.]
Description [The returned pointer should be used immediately.]
SideEffects []
SeeAlso []
Definition at line 80 of file aigTruth.c.


Function*************************************************************
Synopsis [Collects objects of the AIG in the DFS order.]
Description [Works with choice nodes.]
SideEffects []
SeeAlso []
Definition at line 145 of file aigDfs.c.


Function*************************************************************
Synopsis [Collects objects of the AIG in the DFS order.]
Description []
SideEffects []
SeeAlso []
Definition at line 228 of file aigDfs.c.

Function*************************************************************
Synopsis [Collects internal nodes in the DFS order.]
Description []
SideEffects []
SeeAlso []
Definition at line 405 of file aigDfs.c.


Function*************************************************************
Synopsis [Collects internal nodes and PIs in the DFS order.]
Description []
SideEffects []
SeeAlso []
Definition at line 347 of file aigDfs.c.


Function*************************************************************
Synopsis [Collects objects of the AIG in the DFS order.]
Description [Works with choice nodes.]
SideEffects []
SeeAlso []
Definition at line 285 of file aigDfs.c.


Function*************************************************************
Synopsis [Collects internal nodes in the reverse DFS order.]
Description []
SideEffects []
SeeAlso []
Definition at line 472 of file aigDfs.c.


|
extern |
Function*************************************************************
Synopsis [Write speculative miter for one node.]
Description []
SideEffects []
SeeAlso []
Definition at line 725 of file aigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Writes the AIG into a BLIF file.]
Description []
SideEffects []
SeeAlso []
Definition at line 746 of file aigUtil.c.


|
extern |
Function*************************************************************
Synopsis [Writes the AIG into a Verilog file.]
Description []
SideEffects []
SeeAlso []
Definition at line 861 of file aigUtil.c.

Function*************************************************************
Synopsis [Duplicates AIG with only one primary output.]
Description []
SideEffects []
SeeAlso []
Definition at line 1255 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description [Orders nodes as follows: PIs, ANDs, POs.]
SideEffects []
SeeAlso []
Definition at line 345 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description [This duplicator works for AIGs with choices.]
SideEffects []
SeeAlso []
Definition at line 563 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description [This duplicator works for AIGs with choices.]
SideEffects []
SeeAlso []
Definition at line 694 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager to have EXOR gates.]
Description [Assumes topological ordering of the nodes.]
SideEffects []
SeeAlso []
Definition at line 462 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description [Assumes topological ordering of nodes.]
SideEffects []
SeeAlso []
Definition at line 871 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description [This duplicator works for AIGs with choices.]
SideEffects []
SeeAlso []
Definition at line 763 of file aigDup.c.

Function*************************************************************
Synopsis [Duplicates AIG with only one primary output.]
Description []
SideEffects []
SeeAlso []
Definition at line 1302 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates AIG with only one primary output.]
Description []
SideEffects []
SeeAlso []
Definition at line 1152 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description [Assumes topological ordering of the nodes.]
SideEffects []
SeeAlso []
Definition at line 277 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates AIG with only one primary output.]
Description []
SideEffects []
SeeAlso []
Definition at line 1099 of file aigDup.c.

Function*************************************************************
Synopsis [Duplicates AIG while substituting representatives.]
Description []
SideEffects []
SeeAlso []
Definition at line 267 of file aigRepr.c.


Function*************************************************************
Synopsis [Duplicates AIG with representatives without removing registers.]
Description []
SideEffects []
SeeAlso []
Definition at line 323 of file aigRepr.c.

Function*************************************************************
Synopsis [Duplicates AIG while substituting representatives.]
Description []
SideEffects []
SeeAlso []
Definition at line 920 of file aigDup.c.

Function*************************************************************
Synopsis [Duplicates AIG while substituting representatives.]
Description []
SideEffects []
SeeAlso []
Definition at line 995 of file aigDup.c.

DECLARATIONS ///.
CFile****************************************************************
FileName [aigDup.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [AIG duplication (re-strashing).]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description [Orders nodes as follows: PIs, ANDs, POs.]
SideEffects []
SeeAlso []
Definition at line 46 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description [Orders nodes as follows: PIs, ANDs, POs.]
SideEffects [This procedure assumes that buffers are not used during HAIG recording. This way, each HAIG node is in one-to-one correspondence with old HAIG node. There is no need to create new nodes, just reassign the pointers. If it were not the case, we would need to create HAIG nodes for each new node duplicated. ]
SeeAlso []
Definition at line 184 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager recursively.]
Description []
SideEffects []
SeeAlso []
Definition at line 157 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates part of the AIG manager.]
Description [Orders nodes as follows: PIs, ANDs, POs.]
SideEffects []
SeeAlso []
Definition at line 240 of file aigDup.c.


Function*************************************************************
Synopsis [Derives AIG with hints.]
Description []
SideEffects []
SeeAlso []
Definition at line 107 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description [Assumes topological ordering of the nodes.]
SideEffects []
SeeAlso []
Definition at line 413 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates AIG with only one primary output.]
Description []
SideEffects []
SeeAlso []
Definition at line 1199 of file aigDup.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description [Assumes topological ordering of nodes.]
SideEffects []
SeeAlso []
Definition at line 835 of file aigDup.c.


Function*************************************************************
Synopsis [Extracts the miter composed of XOR of the two nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 147 of file aigMan.c.

|
extern |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Create fanout for all objects in the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 56 of file aigFanout.c.


|
extern |
Function*************************************************************
Synopsis [Deletes fanout for all objects in the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 89 of file aigFanout.c.

|
extern |
Function*************************************************************
Synopsis [Computes one sequential cut of the given size.]
Description []
SideEffects []
SeeAlso []
Definition at line 145 of file aigWin.c.


|
extern |
|
extern |
Function*************************************************************
Synopsis [Performs partitioned choice computation.]
Description [Assumes that each output in the second AIG cannot have more supp vars than the same output in the first AIG.]
SideEffects []
SeeAlso []
Definition at line 1379 of file aigPart.c.


|
extern |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Performs timeframe expansion of the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 51 of file aigFrames.c.


|
extern |
Function*************************************************************
Synopsis [Make sure AIG has not gaps in the numeric order.]
Description []
SideEffects []
SeeAlso []
|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [aigUtil.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [Various procedures.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Increments the current traversal ID of the network.]
Description []
SideEffects []
SeeAlso []
Definition at line 44 of file aigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Complements the constraint outputs.]
Description []
SideEffects []
SeeAlso []
Definition at line 1561 of file aigUtil.c.

Function*************************************************************
Synopsis [Levelizes the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 321 of file aigDfs.c.


|
extern |
Function*************************************************************
Synopsis [Computes the max number of levels in the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 500 of file aigDfs.c.

|
extern |
Function*************************************************************
Synopsis [Collect the latches.]
Description []
SideEffects []
SeeAlso []
Definition at line 102 of file aigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Marks the nodes that are Creates choices.]
Description [The input AIG is assumed to have representatives assigned.]
SideEffects []
SeeAlso []
Definition at line 481 of file aigRepr.c.


|
extern |
Function*************************************************************
Synopsis [Create partitioned miter of the two AIGs.]
Description [Assumes that each output in the second AIG cannot have more supp vars than the same output in the first AIG.]
SideEffects []
SeeAlso []
Definition at line 1189 of file aigPart.c.


Function*************************************************************
Synopsis [Collects muxes.]
Description []
SideEffects []
SeeAlso []
Definition at line 1478 of file aigUtil.c.


Function*************************************************************
Synopsis [Dereferences muxes.]
Description []
SideEffects []
SeeAlso []
Definition at line 1501 of file aigUtil.c.


Function*************************************************************
Synopsis [References muxes.]
Description []
SideEffects []
SeeAlso []
Definition at line 1531 of file aigUtil.c.


Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description [This duplicator works for AIGs with choices.]
SideEffects []
SeeAlso []
Definition at line 626 of file aigDup.c.


|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [aigOrder.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [Dynamically updated topological order.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Initializes the order datastructure.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file aigOrder.c.

|
extern |
Function*************************************************************
Synopsis [Deletes the order datastructure.]
Description []
SideEffects []
SeeAlso []
Definition at line 76 of file aigOrder.c.
|
extern |
Function*************************************************************
Synopsis [Divides a large partition into several ones.]
Description []
SideEffects []
SeeAlso []
Definition at line 513 of file aigPartReg.c.

Function*************************************************************
Synopsis [Perform the naive partitioning.]
Description []
SideEffects []
SeeAlso []
Definition at line 941 of file aigPart.c.

|
extern |
Function*************************************************************
Synopsis [Perform the smart partitioning.]
Description []
SideEffects []
SeeAlso []
Definition at line 686 of file aigPart.c.


|
extern |
Function*************************************************************
Synopsis [Perform the smart partitioning.]
Description []
SideEffects []
SeeAlso []
Definition at line 811 of file aigPart.c.

|
extern |
Function*************************************************************
Synopsis [Stops the AIG manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 379 of file aigMan.c.


|
extern |
Function*************************************************************
Synopsis [Prints node in HAIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 698 of file aigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Creates a sequence of random numbers.]
Description []
SideEffects []
SeeAlso [http://www.codeproject.com/KB/recipes/SimpleRNG.aspx]
Definition at line 1170 of file aigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Creates a sequence of random numbers.]
Description []
SideEffects []
SeeAlso []
Definition at line 1200 of file aigUtil.c.


|
extern |
Function*************************************************************
Synopsis [Creates random info for the primary inputs.]
Description []
SideEffects []
SeeAlso []
Definition at line 1218 of file aigUtil.c.

Function*************************************************************
Synopsis [Reduces the latches.]
Description []
SideEffects []
SeeAlso []
Definition at line 455 of file aigScl.c.


|
extern |
Function*************************************************************
Synopsis [Computes partitioning of registers.]
Description []
SideEffects []
SeeAlso []
Definition at line 308 of file aigPartReg.c.


Function*************************************************************
Synopsis [Computes partitioning of registers.]
Description []
SideEffects []
SeeAlso []
Definition at line 474 of file aigPartReg.c.

Function*************************************************************
Synopsis [Computes partitioning of registers.]
Description []
SideEffects []
SeeAlso []
Definition at line 413 of file aigPartReg.c.

|
extern |
Function*************************************************************
Synopsis [Creates projection of 1-hot registers onto the given partition.]
Description [Assumes that the relevant register outputs are labeled with the current traversal ID.]
SideEffects []
SeeAlso []
Definition at line 248 of file aigPartReg.c.

Function*************************************************************
Synopsis [Iteratively rehashes the AIG.]
Description [The input AIG is assumed to have representatives assigned.]
SideEffects []
SeeAlso []
Definition at line 454 of file aigRepr.c.


|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [aigScl.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [Sequential cleanup.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Remaps the manager.]
Description [Map in the array specifies for each CI node the node that should be used after remapping.]
SideEffects []
SeeAlso []
Definition at line 46 of file aigScl.c.


Function*************************************************************
Synopsis [Reports the reduction of the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 415 of file aigMan.c.

|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [aigRepr.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [Handing node representatives.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Starts the array of representatives.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file aigRepr.c.


|
extern |
|
extern |
Function*************************************************************
Synopsis [Reset reference counters.]
Description []
SideEffects []
SeeAlso []
Definition at line 122 of file aigUtil.c.

Function*************************************************************
Synopsis [Performs forward retiming.]
Description []
SideEffects []
SeeAlso []
Definition at line 125 of file aigRetF.c.


|
extern |
Function*************************************************************
Synopsis [Gives the current ABC network to AIG manager for processing.]
Description []
SideEffects []
SeeAlso []
Definition at line 650 of file aigScl.c.


|
extern |
Function*************************************************************
Synopsis [Returns the number of dangling nodes removed.]
Description []
SideEffects []
SeeAlso []
Definition at line 158 of file aigScl.c.


|
extern |
Function*************************************************************
Synopsis [Returns the number of dangling nodes removed.]
Description [This cleanup procedure is different in that it removes logic but does not remove the dangling latches.]
SideEffects []
SeeAlso []
Definition at line 257 of file aigScl.c.


|
extern |
Function*************************************************************
Synopsis [Sets the PI/PO numbers.]
Description []
SideEffects []
SeeAlso []
Definition at line 978 of file aigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Handle the counter-example.]
Description []
SideEffects []
SeeAlso []
Definition at line 1449 of file aigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Sets the number of registers in the AIG manager.]
Description [This procedure should be called after the manager is fully constructed.]
SideEffects []
SeeAlso []
Definition at line 438 of file aigMan.c.

Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 341 of file aigShow.c.


|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [aigMan.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [AIG manager.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Starts the AIG manager.]
Description [The argument of this procedure is a soft limit on the the number of nodes, or 0 if the limit is unknown.]
SideEffects []
SeeAlso []
Definition at line 47 of file aigMan.c.

Function*************************************************************
Synopsis [Duplicates the AIG manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 92 of file aigMan.c.


|
extern |
|
extern |
Function*************************************************************
Synopsis [Prepares for the computation of required levels.]
Description [This procedure should be called before the required times are used. It starts internal data structures, which records the level from the COs of the network nodes in reverse topologogical order.]
SideEffects []
SeeAlso []
Definition at line 142 of file aigTiming.c.


|
extern |
Function*************************************************************
Synopsis [Stops the AIG manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 187 of file aigMan.c.

|
extern |
|
extern |
|
extern |
Function*************************************************************
Synopsis [Cleans the data structures used to compute required levels.]
Description []
SideEffects []
SeeAlso []
Definition at line 175 of file aigTiming.c.

Function*************************************************************
Synopsis [Computes supports of the POs in the multi-output AIG.]
Description [Returns the array of integer arrays containing indices of the primary inputs for each primary output.]
SideEffects [Adds the integer PO number at end of each array.]
SeeAlso []
Definition at line 273 of file aigPart.c.


Function*************************************************************
Synopsis [Computes the set of outputs for each input.]
Description [Returns the array of integer arrays containing indices of the primary outputsf for each primary input.]
SideEffects []
SeeAlso []
Definition at line 385 of file aigPart.c.


Function*************************************************************
Synopsis [Returns the register dependency matrix.]
Description []
SideEffects []
SeeAlso []
Definition at line 418 of file aigPart.c.


Function*************************************************************
Synopsis [Duplicates AIG while substituting representatives.]
Description []
SideEffects []
SeeAlso []
Definition at line 211 of file aigRepr.c.


Function*************************************************************
Synopsis [Incrementally updates level of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 195 of file aigTiming.c.


Function*************************************************************
Synopsis [Incrementally updates level of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 247 of file aigTiming.c.


|
extern |
Function*************************************************************
Synopsis [Verifies direct level of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 307 of file aigTiming.c.
|
extern |
Function*************************************************************
Synopsis [Verifies reverse level of the nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 334 of file aigTiming.c.

|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [aigDfs.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [DFS traversal procedures.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Verifies that the objects are in a topo order.]
Description []
SideEffects []
SeeAlso []
Definition at line 46 of file aigDfs.c.


Function*************************************************************
Synopsis [Implements the miter.]
Description []
SideEffects []
SeeAlso []
Definition at line 431 of file aigOper.c.

Function*************************************************************
Synopsis [Implements the miter.]
Description []
SideEffects []
SeeAlso []
Definition at line 453 of file aigOper.c.


|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 161 of file aigMem.c.

|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 212 of file aigMem.c.

|
extern |
|
extern |
|
extern |
Function*************************************************************
Synopsis []
Description [Relocates all the memory except the first chunk.]
SideEffects []
SeeAlso []
Definition at line 232 of file aigMem.c.

|
extern |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Allocates memory pieces of fixed size.]
Description [The size of the chunk is computed as the minimum of 1024 entries and 64K. Can only work with entry size at least 4 byte long.]
SideEffects []
SeeAlso []
Definition at line 96 of file aigMem.c.


|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 132 of file aigMem.c.

|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 366 of file aigMem.c.

|
extern |
|
extern |
Function*************************************************************
Synopsis []
Description [Relocates all the memory except the first chunk.]
SideEffects []
SeeAlso []
Definition at line 415 of file aigMem.c.

|
extern |
Function*************************************************************
Synopsis [Allocates entries of flexible size.]
Description [Can only work with entry size at least 4 byte long.]
SideEffects []
SeeAlso []
Definition at line 305 of file aigMem.c.


|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 337 of file aigMem.c.

|
extern |
Function*************************************************************
Synopsis [Creates the entry.]
Description []
SideEffects []
SeeAlso []
Definition at line 538 of file aigMem.c.

|
extern |
Function*************************************************************
Synopsis [Recycles the entry.]
Description []
SideEffects []
SeeAlso []
Definition at line 571 of file aigMem.c.

|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
|
extern |
Function*************************************************************
Synopsis [Starts the hierarchical memory manager.]
Description [This manager can allocate entries of any size. Iternally they are mapped into the entries with the number of bytes equal to the power of 2. The smallest entry size is 8 bytes. The next one is 16 bytes etc. So, if the user requests 6 bytes, he gets 8 byte entry. If we asks for 25 bytes, he gets 32 byte entry etc. The input parameters "nSteps" says how many fixed memory managers are employed internally. Calling this procedure with nSteps equal to 10 results in 10 hierarchically arranged internal memory managers, which can allocate up to 4096 (1Kb) entries. Requests for larger entries are handed over to malloc() and then ABC_FREE()ed.]
SideEffects []
SeeAlso []
Definition at line 472 of file aigMem.c.

|
extern |
|
extern |
Function*************************************************************
Synopsis [Implements ITE operation.]
Description []
SideEffects []
SeeAlso []
Definition at line 317 of file aigOper.c.


|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [aigMffc.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [Computation of MFFCs.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Dereferences the node's MFFC.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file aigMffc.c.


Function*************************************************************
Synopsis [Returns the result of intersecting the two vectors.]
Description [Assumes that the vectors are sorted in the increasing order.]
SideEffects []
SeeAlso []
Definition at line 1277 of file aigUtil.c.
|
extern |
Function*************************************************************
Synopsis [Expands the cut by adding the most closely related node.]
Description [Returns 1 if the cut exists.]
SideEffects []
SeeAlso []
Definition at line 265 of file aigMffc.c.


Function*************************************************************
Synopsis [Labels the nodes in the MFFC.]
Description [Returns the number of internal nodes in the MFFC.]
SideEffects []
SeeAlso []
Definition at line 211 of file aigMffc.c.


Function*************************************************************
Synopsis [Labels the nodes in the MFFC.]
Description [Returns the number of internal nodes in the MFFC.]
SideEffects []
SeeAlso []
Definition at line 236 of file aigMffc.c.


Function*************************************************************
Synopsis [Collects the support of depth-limited MFFC.]
Description [Returns the number of internal nodes in the MFFC.]
SideEffects []
SeeAlso []
Definition at line 179 of file aigMffc.c.


|
extern |
Function*************************************************************
Synopsis [References the node's MFFC.]
Description []
SideEffects []
SeeAlso []
Definition at line 86 of file aigMffc.c.


Function*************************************************************
Synopsis [Returns the result of merging the two vectors.]
Description [Assumes that the vectors are sorted in the increasing order.]
SideEffects []
SeeAlso []
Definition at line 1238 of file aigUtil.c.
Function*************************************************************
Synopsis [Adds fanout (pFanout) of node (pObj).]
Description []
SideEffects []
SeeAlso []
Definition at line 107 of file aigFanout.c.


Function*************************************************************
Synopsis [Returns 1 if pOld is in the TFI of pNew.]
Description []
SideEffects []
SeeAlso []
Definition at line 435 of file aigRepr.c.


|
extern |
Function*************************************************************
Synopsis [Recursively cleans the data pointers in the cone of the node.]
Description [Applicable to small AIGs only because no caching is performed.]
SideEffects []
SeeAlso []
Definition at line 243 of file aigUtil.c.


Function*************************************************************
Synopsis [Resets reverse level of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 83 of file aigTiming.c.

Function*************************************************************
Synopsis [Computes the internal nodes of the cut.]
Description [Does not include the leaves of the cut.]
SideEffects []
SeeAlso []
Definition at line 1031 of file aigDfs.c.


Function*************************************************************
Synopsis [Detects multi-input gate rooted at this node.]
Description []
SideEffects []
SeeAlso []
Definition at line 289 of file aigUtil.c.


Function*************************************************************
Synopsis [Collects the nodes of the supergate.]
Description []
SideEffects []
SeeAlso []
Definition at line 1111 of file aigDfs.c.


Function*************************************************************
Synopsis [Procedure used for sorting the nodes in increasing order of IDs.]
Description []
SideEffects []
SeeAlso []
Definition at line 496 of file aigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Connect the object to the fanin.]
Description []
SideEffects []
SeeAlso []
Definition at line 126 of file aigObj.c.


Function*************************************************************
Synopsis [Create the new node assuming it does not exist.]
Description []
SideEffects []
SeeAlso []
Definition at line 89 of file aigObj.c.


DECLARATIONS ///.
CFile****************************************************************
FileName [aigObj.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [Adding/removing objects.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Creates primary input.]
Description []
SideEffects []
SeeAlso []
Function*************************************************************
Synopsis [Creates primary output with the given driver.]
Description []
SideEffects []
SeeAlso []
Definition at line 66 of file aigObj.c.

Function*************************************************************
Synopsis [Set the representative.]
Description []
SideEffects []
SeeAlso []
Definition at line 83 of file aigRepr.c.

Function*************************************************************
Synopsis [Deletes the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 209 of file aigObj.c.

Function*************************************************************
Synopsis [Deletes the MFFC of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 232 of file aigObj.c.


Function*************************************************************
Synopsis [Deletes the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 261 of file aigObj.c.

Function*************************************************************
Synopsis [Disconnects the object from the fanins.]
Description []
SideEffects []
SeeAlso []
Definition at line 171 of file aigObj.c.


|
extern |
Function*************************************************************
Synopsis [Returns 1 if the node is the root of MUX or EXOR/NEXOR.]
Description []
SideEffects []
SeeAlso []
Definition at line 307 of file aigUtil.c.

|
extern |
Function*************************************************************
Synopsis [Advances the order forward.]
Description []
SideEffects []
SeeAlso []
Definition at line 162 of file aigOrder.c.
|
extern |
Function*************************************************************
Synopsis [Inserts an entry before iNext.]
Description []
SideEffects []
SeeAlso []
Definition at line 95 of file aigOrder.c.


|
extern |
Function*************************************************************
Synopsis [Removes the entry.]
Description [If iPrev is removed, it slides backward. If iNext is removed, it slides forward.]
SideEffects []
SeeAlso []
Definition at line 130 of file aigOrder.c.
Function*************************************************************
Synopsis [Replaces the first fanin of the node by the new fanin.]
Description []
SideEffects []
SeeAlso []
Definition at line 282 of file aigObj.c.


Function*************************************************************
Synopsis [Verbose printing of the AIG node.]
Description []
SideEffects []
SeeAlso []
Definition at line 316 of file aigObj.c.

Function*************************************************************
Synopsis [Prints Eqn formula for the AIG rooted at this node.]
Description [The formula is in terms of PIs, which should have their names assigned in pObj->pData fields.]
SideEffects []
SeeAlso []
Definition at line 519 of file aigUtil.c.


|
extern |
Function*************************************************************
Synopsis [Prints node in HAIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 653 of file aigUtil.c.

Function*************************************************************
Synopsis [Prints Verilog formula for the AIG rooted at this node.]
Description [The formula is in terms of PIs, which should have their names assigned in pObj->pData fields.]
SideEffects []
SeeAlso []
Definition at line 566 of file aigUtil.c.


Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 476 of file aigUtil.c.


Function*************************************************************
Synopsis [Recognizes what nodes are inputs of the EXOR.]
Description []
SideEffects []
SeeAlso []
Definition at line 343 of file aigUtil.c.

|
extern |
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 387 of file aigUtil.c.


Function*************************************************************
Synopsis [Removes fanout (pFanout) of node (pObj).]
Description []
SideEffects []
SeeAlso []
Definition at line 154 of file aigFanout.c.

|
extern |
Function*************************************************************
Synopsis [Replaces one object by another.]
Description [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 and the new object remains in the manager; otherwise, the new object is deleted.]
SideEffects []
SeeAlso []
Definition at line 467 of file aigObj.c.


Function*************************************************************
Synopsis [Returns required level of the node.]
Description [Converts the reverse levels of the node into its required level as follows: ReqLevel(Node) = MaxLevels(Ntk) + 1 - LevelR(Node).]
SideEffects []
SeeAlso []
Definition at line 100 of file aigTiming.c.

|
extern |
Function*************************************************************
Synopsis [Perform one operation.]
Description [The argument nodes can be complemented.]
SideEffects []
SeeAlso []
Definition at line 83 of file aigOper.c.


Function*************************************************************
Synopsis [Counts the support size of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 846 of file aigDfs.c.


Function*************************************************************
Synopsis [Counts the support size of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 868 of file aigDfs.c.


Function*************************************************************
Synopsis [Counts the support size of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 772 of file aigDfs.c.


|
extern |
Function********************************************************************
Synopsis [Profiles the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 265 of file aigTable.c.

|
extern |
Function*************************************************************
Synopsis [Count the number of nodes in the table.]
Description []
SideEffects []
SeeAlso []
Definition at line 218 of file aigTable.c.

Function*************************************************************
Synopsis [Deletes the node from the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 196 of file aigTable.c.

Function*************************************************************
Synopsis [Adds the new node to the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 173 of file aigTable.c.


Function*************************************************************
Synopsis [Checks if node with the given attributes is in the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 116 of file aigTable.c.

Function*************************************************************
Synopsis [Checks if node with the given attributes is in the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 146 of file aigTable.c.


|
extern |
Function********************************************************************
Synopsis [Profiles the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 239 of file aigTable.c.
|
extern |
Function*************************************************************
Synopsis [Returns the time stamp.]
Description [The file should be closed.]
SideEffects []
SeeAlso []
Definition at line 62 of file aigUtil.c.


|
extern |
Function*************************************************************
Synopsis [Transfers the AIG from one manager into another.]
Description []
SideEffects []
SeeAlso []
Definition at line 918 of file aigDfs.c.

Function*************************************************************
Synopsis [Transfers the classes.]
Description []
SideEffects []
SeeAlso []
Definition at line 533 of file aigRepr.c.

Function*************************************************************
Synopsis [Performs forward retiming with the given limit on depth.]
Description []
SideEffects []
SeeAlso []
Definition at line 834 of file aigRet.c.

