abc-master
|
#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.
Data Structures | |
struct | Hop_Obj_t_ |
struct | Hop_Man_t_ |
Macros | |
#define | Hop_ManForEachPi(p, pObj, i) Vec_PtrForEachEntry( Hop_Obj_t *, p->vPis, pObj, i ) |
ITERATORS ///. More... | |
#define | Hop_ManForEachPo(p, pObj, i) Vec_PtrForEachEntry( Hop_Obj_t *, p->vPos, pObj, i ) |
#define | Hop_ManForEachNode(p, pObj, i) |
Typedefs | |
typedef typedefABC_NAMESPACE_HEADER_START struct Hop_Man_t_ | Hop_Man_t |
INCLUDES ///. More... | |
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 | |||
) | Vec_PtrForEachEntry( Hop_Obj_t *, p->vPis, pObj, i ) |
#define Hop_ManForEachPo | ( | p, | |
pObj, | |||
i | |||
) | Vec_PtrForEachEntry( Hop_Obj_t *, p->vPos, 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 |
Function*************************************************************
Synopsis [Performs canonicization step.]
Description [The argument nodes can be complemented.]
SideEffects []
SeeAlso []
Definition at line 104 of file hopOper.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
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.
void Hop_ConeUnmark_rec | ( | Hop_Obj_t * | pObj | ) |
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.
int Hop_DagSize | ( | Hop_Obj_t * | pObj | ) |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
void Hop_ManAddMemory | ( | Hop_Man_t * | p | ) |
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.
|
inlinestatic |
FUNCTION DECLARATIONS ///.
FUNCTION DECLARATIONS ///.
Function*************************************************************
Synopsis [Performs algebraic balancing of the AIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 51 of file hopBalance.c.
int Hop_ManCheck | ( | Hop_Man_t * | p | ) |
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.
void Hop_ManCleanData | ( | Hop_Man_t * | p | ) |
int Hop_ManCleanup | ( | Hop_Man_t * | p | ) |
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.
unsigned* Hop_ManConvertAigToTruth | ( | Hop_Man_t * | p, |
Hop_Obj_t * | pRoot, | ||
int | nVars, | ||
Vec_Int_t * | vTruth, | ||
int | fMsbFirst | ||
) |
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.
int Hop_ManCountLevels | ( | Hop_Man_t * | p | ) |
Function*************************************************************
Synopsis [Computes the max number of levels in the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 116 of file hopDfs.c.
void Hop_ManCreateRefs | ( | Hop_Man_t * | p | ) |
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.
void Hop_ManDumpBlif | ( | Hop_Man_t * | p, |
char * | pFileName | ||
) |
Function*************************************************************
Synopsis [Writes the AIG into the BLIF file.]
Description []
SideEffects []
SeeAlso []
Definition at line 509 of file hopUtil.c.
|
inlinestatic |
|
inlinestatic |
void Hop_ManIncrementTravId | ( | Hop_Man_t * | p | ) |
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.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
void Hop_ManPrintStats | ( | Hop_Man_t * | p | ) |
void Hop_ManPrintVerbose | ( | Hop_Man_t * | p, |
int | fHaig | ||
) |
Function*************************************************************
Synopsis [Prints node in HAIG.]
Description []
SideEffects []
SeeAlso []
Definition at line 482 of file hopUtil.c.
Hop_Man_t* Hop_ManStart | ( | ) |
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.
void Hop_ManStartMemory | ( | Hop_Man_t * | p | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Starts the internal memory manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 49 of file hopMem.c.
void Hop_ManStop | ( | Hop_Man_t * | p | ) |
void Hop_ManStopMemory | ( | Hop_Man_t * | p | ) |
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 []
Function*************************************************************
Synopsis [Implements ITE operation.]
Description []
SideEffects []
SeeAlso []
Hop_Obj_t* Hop_NodeBalanceBuildSuper | ( | Hop_Man_t * | p, |
Vec_Ptr_t * | vSuper, | ||
Hop_Type_t | Type, | ||
int | fUpdateLevel | ||
) |
Function*************************************************************
Synopsis [Builds implication supergate.]
Description []
SideEffects []
SeeAlso []
Definition at line 243 of file hopBalance.c.
Definition at line 186 of file hop.h.
|
inlinestatic |
Definition at line 188 of file hop.h.
Definition at line 187 of file hop.h.
|
inlinestatic |
Definition at line 189 of file hop.h.
|
inlinestatic |
void Hop_ObjCleanData_rec | ( | Hop_Obj_t * | pObj | ) |
|
inlinestatic |
Function*************************************************************
Synopsis [Detects multi-input gate rooted at this node.]
Description []
SideEffects []
SeeAlso []
Definition at line 133 of file hopUtil.c.
Function*************************************************************
Synopsis [Create the new node assuming it does not exist.]
Description []
SideEffects []
SeeAlso []
Definition at line 97 of file hopObj.c.
|
inlinestatic |
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.
Definition at line 310 of file hopDfs.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
int Hop_ObjIsMuxType | ( | Hop_Obj_t * | pNode | ) |
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.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 191 of file hop.h.
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.
void Hop_ObjPrintVerbose | ( | Hop_Obj_t * | pObj, |
int | fHaig | ||
) |
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 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.
|
inlinestatic |
|
inlinestatic |
Hop_Obj_t* Hop_Oper | ( | Hop_Man_t * | p, |
Hop_Obj_t * | p0, | ||
Hop_Obj_t * | p1, | ||
Hop_Type_t | Type | ||
) |
Function*************************************************************
Synopsis [Implements Boolean OR.]
Description []
SideEffects []
SeeAlso []
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.
int Hop_TableCountEntries | ( | Hop_Man_t * | p | ) |
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.
void Hop_TableProfile | ( | Hop_Man_t * | p | ) |
Function********************************************************************
Synopsis [Profiles the hash table.]
Description []
SideEffects []
SeeAlso []
Definition at line 212 of file hopTable.c.
Function*************************************************************
Synopsis [Transfers the AIG from one manager into another.]
Description []
SideEffects []
SeeAlso []
Definition at line 353 of file hopDfs.c.