#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include "misc/vec/vec.h"

Go to the source code of this file.
Classes | |
| struct | Hop_Obj_t_ |
| struct | Hop_Man_t_ |
Macros | |
| #define | Hop_ManForEachPi(p, pObj, i) |
| ITERATORS ///. | |
| #define | Hop_ManForEachPo(p, pObj, i) |
| #define | Hop_ManForEachNode(p, pObj, i) |
Typedefs | |
| typedef typedefABC_NAMESPACE_HEADER_START struct Hop_Man_t_ | Hop_Man_t |
| INCLUDES ///. | |
| typedef struct Hop_Obj_t_ | Hop_Obj_t |
| typedef int | Hop_Edge_t |
Enumerations | |
| enum | Hop_Type_t { AIG_NONE , AIG_CONST1 , AIG_PI , AIG_PO , AIG_AND , AIG_EXOR , AIG_VOID } |
| #define Hop_ManForEachNode | ( | p, | |
| pObj, | |||
| i ) |
| #define Hop_ManForEachPi | ( | p, | |
| pObj, | |||
| i ) |
ITERATORS ///.
Definition at line 259 of file hop.h.
| #define Hop_ManForEachPo | ( | p, | |
| pObj, | |||
| i ) |
| typedef int Hop_Edge_t |
| typedef typedefABC_NAMESPACE_HEADER_START struct Hop_Man_t_ Hop_Man_t |
INCLUDES ///.
CFile****************************************************************
FileName [hop.h]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Minimalistic 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 Hop_Obj_t_ Hop_Obj_t |
| enum Hop_Type_t |
| Enumerator | |
|---|---|
| AIG_NONE | |
| AIG_CONST1 | |
| AIG_PI | |
| AIG_PO | |
| AIG_AND | |
| AIG_EXOR | |
| AIG_VOID | |
Definition at line 54 of file hop.h.
Function*************************************************************
Synopsis [Performs canonicization step.]
Description [The argument nodes can be complemented.]
SideEffects []
SeeAlso []
Definition at line 104 of file hopOper.c.


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


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


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


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


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


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


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


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


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


|
extern |
MACRO DEFINITIONS ///.
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 hopMem.c.
FUNCTION DECLARATIONS ///.
FUNCTION DECLARATIONS ///.
Function*************************************************************
Synopsis [Performs algebraic balancing of the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 51 of file hopBalance.c.

|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [hopCheck.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Minimalistic 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 hopCheck.c.


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

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

Definition at line 256 of file hopTruth.c.


|
extern |
Function*************************************************************
Synopsis [Computes truth table of the node.]
Description [Assumes that the structural support is no more than 8 inputs. Uses array vTruth to store temporary truth tables. The returned pointer should be used immediately.]
SideEffects []
SeeAlso []
Definition at line 143 of file hopTruth.c.


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


|
extern |
Function*************************************************************
Synopsis [Creates correct reference counters at each node.]
Description []
SideEffects []
SeeAlso []
Definition at line 152 of file hopDfs.c.
Function*************************************************************
Synopsis [Collects internal nodes in the DFS order.]
Description []
SideEffects []
SeeAlso []
Definition at line 68 of file hopDfs.c.


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

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

|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [hopUtil.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 hopUtil.c.

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

|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [hopMan.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Minimalistic 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 hopMan.c.


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


|
extern |
Function*************************************************************
Synopsis [Stops the internal memory manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 66 of file hopMem.c.

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

Function*************************************************************
Synopsis [Implements ITE operation.]
Description []
SideEffects []
SeeAlso []
Definition at line 187 of file hopOper.c.


|
extern |
Function*************************************************************
Synopsis [Builds implication supergate.]
Description []
SideEffects []
SeeAlso []
Definition at line 243 of file hopBalance.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 88 of file hopUtil.c.


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


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


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


Function*************************************************************
Synopsis [Sets an equivalence relation between the nodes.]
Description [Makes the representative of pNew point to the representaive of pOld.]
SideEffects []
SeeAlso []
Definition at line 260 of file hopObj.c.

DECLARATIONS ///.
CFile****************************************************************
FileName [hopObj.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Minimalistic 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 [Creates primary input.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file hopObj.c.

Function*************************************************************
Synopsis [Creates primary output with the given driver.]
Description []
SideEffects []
SeeAlso []
Definition at line 67 of file hopObj.c.

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


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


Function*************************************************************
Synopsis [Connect the object to the fanin.]
Description []
SideEffects []
SeeAlso []
Definition at line 159 of file hopObj.c.


Definition at line 310 of file hopDfs.c.

|
extern |
Function*************************************************************
Synopsis [Returns 1 if the node is the root of MUX or EXOR/NEXOR.]
Description []
SideEffects []
SeeAlso []
Definition at line 151 of file hopUtil.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 322 of file hopUtil.c.


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

|
extern |
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 369 of file hopUtil.c.


Function*************************************************************
Synopsis [Recognizes what nodes are inputs of the EXOR.]
Description []
SideEffects []
SeeAlso []
Definition at line 187 of file hopUtil.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 231 of file hopUtil.c.


Function*************************************************************
Synopsis [Returns the representative of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 241 of file hopObj.c.


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


Function*************************************************************
Synopsis [Permute the AIG according to the given permutation.]
Description []
SideEffects []
SeeAlso []
Definition at line 563 of file hopDfs.c.

Function*************************************************************
Synopsis [Remaps the AIG (pRoot) to have the given support (uSupp).]
Description []
SideEffects []
SeeAlso []
Definition at line 518 of file hopDfs.c.


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

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

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


FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Checks if a node with the given attributes is in the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 71 of file hopTable.c.

|
extern |
Function********************************************************************
Synopsis [Profiles the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 212 of file hopTable.c.
|
extern |
Function*************************************************************
Synopsis [Transfers the AIG from one manager into another.]
Description []
SideEffects []
SeeAlso []
Definition at line 353 of file hopDfs.c.

