#include "gia.h"#include "misc/util/utilNam.h"#include "misc/vec/vecWec.h"#include "misc/tim/tim.h"
Go to the source code of this file.
Classes | |
| struct | Str_Obj_t_ |
| struct | Str_Ntk_t_ |
| struct | Str_Man_t_ |
| struct | Str_Edg_t_ |
| struct | Str_Mux_t_ |
Macros | |
| #define | STR_SUPER 100 |
| DECLARATIONS ///. | |
| #define | MAX_TREE 10000 |
| #define | Str_NtkManForEachObj(p, pObj) |
| #define | Str_NtkManForEachObjVec(vVec, p, pObj, i) |
Typedefs | |
| typedef struct Str_Obj_t_ | Str_Obj_t |
| typedef struct Str_Ntk_t_ | Str_Ntk_t |
| typedef struct Str_Man_t_ | Str_Man_t |
| typedef struct Str_Edg_t_ | Str_Edg_t |
| typedef struct Str_Mux_t_ | Str_Mux_t |
Enumerations | |
| enum | { STR_NONE = 0 , STR_CONST0 = 1 , STR_PI = 2 , STR_AND = 3 , STR_XOR = 4 , STR_MUX = 5 , STR_BUF = 6 , STR_PO = 7 , STR_UNUSED = 8 } |
Functions | |
| Gia_Man_t * | Str_NtkToGia (Gia_Man_t *pGia, Str_Ntk_t *p) |
| Gia_Man_t * | Gia_ManDupMuxesNoHash (Gia_Man_t *p) |
| void | Str_MuxInputsCollect_rec (Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Int_t *vNodes) |
| void | Str_MuxInputsCollect (Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Int_t *vNodes) |
| void | Str_MuxStructCollect_rec (Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Int_t *vNodes) |
| void | Str_MuxStructCollect (Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Int_t *vNodes) |
| void | Str_MuxStructDump_rec (Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Str_t *vStr) |
| void | Str_MuxStructDump (Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Str_t *vStr) |
| int | Str_ManMuxCountOne (char *p) |
| Vec_Wec_t * | Str_ManDeriveTrees (Gia_Man_t *p) |
| Vec_Int_t * | Str_ManCreateRoots (Vec_Wec_t *vGroups, int nObjs) |
| void | Str_MuxTraverse_rec (Gia_Man_t *p, int i) |
| void | Str_ManCheckOverlap (Gia_Man_t *p, Vec_Wec_t *vGroups) |
| void | Str_ManNormalize_rec (Str_Ntk_t *pNtk, Gia_Man_t *p, Gia_Obj_t *pObj, Vec_Wec_t *vGroups, Vec_Int_t *vRoots) |
| Str_Ntk_t * | Str_ManNormalizeInt (Gia_Man_t *p, Vec_Wec_t *vGroups, Vec_Int_t *vRoots) |
| Str_Ntk_t * | Str_ManNormalize (Gia_Man_t *p) |
| int | Str_ManVectorAffinity (Gia_Man_t *p, Vec_Int_t *vSuper, Vec_Int_t *vDelay, word *Matrix, int nLimit) |
| void | Str_NtkBalanceMulti2 (Gia_Man_t *pNew, Str_Ntk_t *p, Str_Obj_t *pObj, Vec_Int_t *vDelay, int nLutSize) |
| int | Str_NtkBalanceTwo (Gia_Man_t *pNew, Str_Ntk_t *p, Str_Obj_t *pObj, int i, int j, Vec_Int_t *vDelay, int *pCost, int *pSuper, word *pMatrix, int nSize, int nLutSize, int CostBest) |
| void | Str_NtkBalanceMulti (Gia_Man_t *pNew, Str_Ntk_t *p, Str_Obj_t *pObj, Vec_Int_t *vDelay, int nLutSize) |
| void | Str_NtkBalanceMux (Gia_Man_t *pNew, Str_Ntk_t *p, Str_Obj_t *pObj, Vec_Int_t *vDelay, int nLutSize, int nGroups, int nMuxes, int fRecursive, int fOptArea, int fVerbose) |
| Gia_Man_t * | Str_NtkBalance (Gia_Man_t *pGia, Str_Ntk_t *p, int nLutSize, int fUseMuxes, int fRecursive, int fOptArea, int fVerbose) |
| Gia_Man_t * | Gia_ManLutBalance (Gia_Man_t *p, int nLutSize, int fUseMuxes, int fRecursive, int fOptArea, int fVerbose) |
| void | Str_MuxDelayPrint_rec (Str_Mux_t *pMux, int i) |
| int | Str_MuxDelayEdge_rec (Str_Mux_t *pMux, int i) |
| void | Str_MuxCreate (Str_Mux_t *pTree, Str_Ntk_t *pNtk, int iMux, int nMuxes, Vec_Int_t *vDelay, int nLutSize) |
| int | Str_MuxToGia_rec (Gia_Man_t *pNew, Str_Mux_t *pMux, int i, Vec_Int_t *vDelay) |
| void | Str_MuxChangeOnce (Str_Mux_t *pTree, int *pPath, int i, int k, Str_Mux_t *pBackup, Gia_Man_t *pNew, Vec_Int_t *vDelay) |
| void | Str_MuxChangeUndo (Str_Mux_t *pTree, int *pPath, int i, int k, Str_Mux_t *pBackup) |
| int | Str_MuxFindPathEdge_rec (Str_Mux_t *pMux, int i, int *pPath, int *pnLength) |
| int | Str_MuxFindPath_rec (Str_Mux_t *pMux, int *pPath, int *pnLength) |
| Str_Mux_t * | Str_MuxFindBranching (Str_Mux_t *pRoot, int i) |
| int | Str_MuxTryOnce (Gia_Man_t *pNew, Str_Ntk_t *pNtk, Str_Mux_t *pTree, Str_Mux_t *pRoot, int Edge, Vec_Int_t *vDelay, int fVerbose) |
| int | Str_MuxRestruct_rec (Gia_Man_t *pNew, Str_Ntk_t *pNtk, Str_Mux_t *pTree, Str_Mux_t *pRoot, int Edge, Vec_Int_t *vDelay, int fVerbose) |
| int | Str_MuxRestructure2 (Gia_Man_t *pNew, Str_Ntk_t *pNtk, int iMux, int nMuxes, Vec_Int_t *vDelay, int nLutSize, int fVerbose) |
| int | Str_MuxRestructure1 (Gia_Man_t *pNew, Str_Ntk_t *pNtk, int iMux, int nMuxes, Vec_Int_t *vDelay, int nLutSize, int fVerbose) |
| int | Str_MuxRestructure (Gia_Man_t *pNew, Str_Ntk_t *pNtk, int iMux, int nMuxes, Vec_Int_t *vDelay, int nLutSize, int fRecursive, int fOptArea, int fVerbose) |
| int | Str_MuxRestructAreaThree (Gia_Man_t *pNew, Str_Mux_t *pMux, Vec_Int_t *vDelay, int fVerbose) |
| int | Str_MuxRestructArea_rec (Gia_Man_t *pNew, Str_Mux_t *pTree, Str_Mux_t *pRoot, int i, Vec_Int_t *vDelay, int fVerbose) |
| int | Str_MuxRestructureArea (Gia_Man_t *pNew, Str_Ntk_t *pNtk, int iMux, int nMuxes, Vec_Int_t *vDelay, int nLutSize, int fVerbose) |
| #define Str_NtkManForEachObj | ( | p, | |
| pObj ) |
| #define Str_NtkManForEachObjVec | ( | vVec, | |
| p, | |||
| pObj, | |||
| i ) |
| #define STR_SUPER 100 |
DECLARATIONS ///.
CFile****************************************************************
FileName [giaStr.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Scalable AIG package.]
Synopsis [AIG structuring.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
]
| typedef struct Str_Edg_t_ Str_Edg_t |
| typedef struct Str_Man_t_ Str_Man_t |
| typedef struct Str_Mux_t_ Str_Mux_t |
| typedef struct Str_Ntk_t_ Str_Ntk_t |
| typedef struct Str_Obj_t_ Str_Obj_t |
| anonymous enum |
Function*************************************************************
Synopsis [Constructs a normalized AIG without structural hashing.]
Description []
SideEffects []
SeeAlso []
Definition at line 225 of file giaStr.c.

| Gia_Man_t * Gia_ManLutBalance | ( | Gia_Man_t * | p, |
| int | nLutSize, | ||
| int | fUseMuxes, | ||
| int | fRecursive, | ||
| int | fOptArea, | ||
| int | fVerbose ) |
Function*************************************************************
Synopsis [Test normalization procedure.]
Description []
SideEffects []
SeeAlso []
Definition at line 1384 of file giaStr.c.


Definition at line 446 of file giaStr.c.


Definition at line 420 of file giaStr.c.

Definition at line 362 of file giaStr.c.


| int Str_ManMuxCountOne | ( | char * | p | ) |
Definition at line 755 of file giaStr.c.


| void Str_ManNormalize_rec | ( | Str_Ntk_t * | pNtk, |
| Gia_Man_t * | p, | ||
| Gia_Obj_t * | pObj, | ||
| Vec_Wec_t * | vGroups, | ||
| Vec_Int_t * | vRoots ) |
Function*************************************************************
Synopsis [Constructs AIG ordered for balancing.]
Description []
SideEffects []
SeeAlso []
Definition at line 639 of file giaStr.c.


Definition at line 728 of file giaStr.c.


| int Str_ManVectorAffinity | ( | Gia_Man_t * | p, |
| Vec_Int_t * | vSuper, | ||
| Vec_Int_t * | vDelay, | ||
| word * | Matrix, | ||
| int | nLimit ) |
Definition at line 862 of file giaStr.c.


| void Str_MuxChangeOnce | ( | Str_Mux_t * | pTree, |
| int * | pPath, | ||
| int | i, | ||
| int | k, | ||
| Str_Mux_t * | pBackup, | ||
| Gia_Man_t * | pNew, | ||
| Vec_Int_t * | vDelay ) |
Definition at line 1546 of file giaStr.c.


| void Str_MuxCreate | ( | Str_Mux_t * | pTree, |
| Str_Ntk_t * | pNtk, | ||
| int | iMux, | ||
| int | nMuxes, | ||
| Vec_Int_t * | vDelay, | ||
| int | nLutSize ) |
Definition at line 1500 of file giaStr.c.


| int Str_MuxDelayEdge_rec | ( | Str_Mux_t * | pMux, |
| int | i ) |
Definition at line 1489 of file giaStr.c.


| void Str_MuxDelayPrint_rec | ( | Str_Mux_t * | pMux, |
| int | i ) |
Definition at line 1462 of file giaStr.c.


Definition at line 1634 of file giaStr.c.

| int Str_MuxFindPath_rec | ( | Str_Mux_t * | pMux, |
| int * | pPath, | ||
| int * | pnLength ) |
Definition at line 1622 of file giaStr.c.


| int Str_MuxFindPathEdge_rec | ( | Str_Mux_t * | pMux, |
| int | i, | ||
| int * | pPath, | ||
| int * | pnLength ) |
Definition at line 1614 of file giaStr.c.


Definition at line 309 of file giaStr.c.


Function*************************************************************
Synopsis [Constructs AIG ordered for balancing.]
Description []
SideEffects []
SeeAlso []
Definition at line 298 of file giaStr.c.


| int Str_MuxRestruct_rec | ( | Gia_Man_t * | pNew, |
| Str_Ntk_t * | pNtk, | ||
| Str_Mux_t * | pTree, | ||
| Str_Mux_t * | pRoot, | ||
| int | Edge, | ||
| Vec_Int_t * | vDelay, | ||
| int | fVerbose ) |
Definition at line 1693 of file giaStr.c.


| int Str_MuxRestructArea_rec | ( | Gia_Man_t * | pNew, |
| Str_Mux_t * | pTree, | ||
| Str_Mux_t * | pRoot, | ||
| int | i, | ||
| Vec_Int_t * | vDelay, | ||
| int | fVerbose ) |
Definition at line 1790 of file giaStr.c.


| int Str_MuxRestructAreaThree | ( | Gia_Man_t * | pNew, |
| Str_Mux_t * | pMux, | ||
| Vec_Int_t * | vDelay, | ||
| int | fVerbose ) |
Function*************************************************************
Synopsis [Perform MUX restructuring for area.]
Description []
SideEffects []
SeeAlso []
Definition at line 1775 of file giaStr.c.


| int Str_MuxRestructure | ( | Gia_Man_t * | pNew, |
| Str_Ntk_t * | pNtk, | ||
| int | iMux, | ||
| int | nMuxes, | ||
| Vec_Int_t * | vDelay, | ||
| int | nLutSize, | ||
| int | fRecursive, | ||
| int | fOptArea, | ||
| int | fVerbose ) |
Definition at line 1750 of file giaStr.c.


| int Str_MuxRestructure1 | ( | Gia_Man_t * | pNew, |
| Str_Ntk_t * | pNtk, | ||
| int | iMux, | ||
| int | nMuxes, | ||
| Vec_Int_t * | vDelay, | ||
| int | nLutSize, | ||
| int | fVerbose ) |
Definition at line 1727 of file giaStr.c.


| int Str_MuxRestructure2 | ( | Gia_Man_t * | pNew, |
| Str_Ntk_t * | pNtk, | ||
| int | iMux, | ||
| int | nMuxes, | ||
| Vec_Int_t * | vDelay, | ||
| int | nLutSize, | ||
| int | fVerbose ) |
Definition at line 1704 of file giaStr.c.


| int Str_MuxRestructureArea | ( | Gia_Man_t * | pNew, |
| Str_Ntk_t * | pNtk, | ||
| int | iMux, | ||
| int | nMuxes, | ||
| Vec_Int_t * | vDelay, | ||
| int | nLutSize, | ||
| int | fVerbose ) |
Definition at line 1851 of file giaStr.c.


Definition at line 325 of file giaStr.c.


Definition at line 346 of file giaStr.c.


Definition at line 333 of file giaStr.c.


| void Str_MuxTraverse_rec | ( | Gia_Man_t * | p, |
| int | i ) |
| int Str_MuxTryOnce | ( | Gia_Man_t * | pNew, |
| Str_Ntk_t * | pNtk, | ||
| Str_Mux_t * | pTree, | ||
| Str_Mux_t * | pRoot, | ||
| int | Edge, | ||
| Vec_Int_t * | vDelay, | ||
| int | fVerbose ) |
Definition at line 1654 of file giaStr.c.


| Gia_Man_t * Str_NtkBalance | ( | Gia_Man_t * | pGia, |
| Str_Ntk_t * | p, | ||
| int | nLutSize, | ||
| int | fUseMuxes, | ||
| int | fRecursive, | ||
| int | fOptArea, | ||
| int | fVerbose ) |
Definition at line 1293 of file giaStr.c.


| void Str_NtkBalanceMulti | ( | Gia_Man_t * | pNew, |
| Str_Ntk_t * | p, | ||
| Str_Obj_t * | pObj, | ||
| Vec_Int_t * | vDelay, | ||
| int | nLutSize ) |
Definition at line 1093 of file giaStr.c.


| void Str_NtkBalanceMulti2 | ( | Gia_Man_t * | pNew, |
| Str_Ntk_t * | p, | ||
| Str_Obj_t * | pObj, | ||
| Vec_Int_t * | vDelay, | ||
| int | nLutSize ) |
Function*************************************************************
Synopsis [Perform balancing.]
Description []
SideEffects []
SeeAlso []
Definition at line 1043 of file giaStr.c.

| void Str_NtkBalanceMux | ( | Gia_Man_t * | pNew, |
| Str_Ntk_t * | p, | ||
| Str_Obj_t * | pObj, | ||
| Vec_Int_t * | vDelay, | ||
| int | nLutSize, | ||
| int | nGroups, | ||
| int | nMuxes, | ||
| int | fRecursive, | ||
| int | fOptArea, | ||
| int | fVerbose ) |
Definition at line 1259 of file giaStr.c.


| int Str_NtkBalanceTwo | ( | Gia_Man_t * | pNew, |
| Str_Ntk_t * | p, | ||
| Str_Obj_t * | pObj, | ||
| int | i, | ||
| int | j, | ||
| Vec_Int_t * | vDelay, | ||
| int * | pCost, | ||
| int * | pSuper, | ||
| word * | pMatrix, | ||
| int | nSize, | ||
| int | nLutSize, | ||
| int | CostBest ) |
Definition at line 1057 of file giaStr.c.


Definition at line 172 of file giaStr.c.
