#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include "misc/vec/vec.h"#include "misc/mem/mem.h"#include "misc/tim/tim.h"#include "misc/util/utilNam.h"#include "misc/vec/vecMem.h"#include "misc/util/utilTruth.h"#include "opt/dau/dau.h"#include "misc/vec/vecHash.h"#include "misc/vec/vecWec.h"#include "map/if/acd/ac_wrapper.h"
Go to the source code of this file.
Classes | |
| struct | Ifif_Par_t_ |
| struct | If_Par_t_ |
| struct | If_LibLut_t_ |
| struct | If_Man_t_ |
| struct | If_Cut_t_ |
| struct | If_Set_t_ |
| struct | If_Obj_t_ |
| struct | If_Box_t_ |
| struct | If_LibBox_t_ |
Macros | |
| #define | IF_MAX_LUTSIZE 32 |
| INCLUDES ///. | |
| #define | IF_MAX_FUNC_LUTSIZE 15 |
| #define | IF_INFINITY 100000000 |
| #define | IF_COST_MAX 4095 |
| #define | IF_BIG_CHAR ((char)120) |
| #define | IF_MIN(a, b) |
| MACRO DEFINITIONS ///. | |
| #define | IF_MAX(a, b) |
| #define | IF_FLOAT_LARGE ((float)1.0e+20) |
| #define | IF_FLOAT_SMALL ((float)1.0e-20) |
| #define | IF_INT_LARGE (10000000) |
| #define | If_ManForEachCi(p, pObj, i) |
| #define | If_ManForEachCo(p, pObj, i) |
| #define | If_ManForEachPi(p, pObj, i) |
| #define | If_ManForEachPo(p, pObj, i) |
| #define | If_ManForEachLatchInput(p, pObj, i) |
| #define | If_ManForEachLatchOutput(p, pObj, i) |
| #define | If_ManForEachObj(p, pObj, i) |
| #define | If_ManForEachObjReverse(p, pObj, i) |
| #define | If_ManForEachNode(p, pObj, i) |
| #define | If_ObjForEachCut(pObj, pCut, i) |
| #define | If_CutForEachLeaf(p, pCut, pLeaf, i) |
| #define | If_CutForEachLeafReverse(p, pCut, pLeaf, i) |
| #define | If_CutForEachLeafSeq(p, pCut, pLeaf, Shift, i) |
Typedefs | |
| typedef struct If_Man_t_ | If_Man_t |
| BASIC TYPES ///. | |
| typedef struct If_Par_t_ | If_Par_t |
| typedef struct If_Obj_t_ | If_Obj_t |
| typedef struct If_Cut_t_ | If_Cut_t |
| typedef struct If_Set_t_ | If_Set_t |
| typedef struct If_LibLut_t_ | If_LibLut_t |
| typedef struct If_LibBox_t_ | If_LibBox_t |
| typedef struct If_DsdMan_t_ | If_DsdMan_t |
| typedef struct Ifn_Ntk_t_ | Ifn_Ntk_t |
| typedef struct Ifif_Par_t_ | Ifif_Par_t |
| typedef struct If_Box_t_ | If_Box_t |
Enumerations | |
| enum | If_Type_t { IF_NONE , IF_CONST1 , IF_CI , IF_CO , IF_AND , IF_VOID } |
Functions | |
| void | If_ManSetDefaultPars (If_Par_t *pPars) |
| FUNCTION DECLARATIONS ///. | |
| int | If_ManPerformMapping (If_Man_t *p) |
| int | If_ManPerformMappingComb (If_Man_t *p) |
| void | If_ManComputeSwitching (If_Man_t *p) |
| FUNCTION DEFINITIONS ///. | |
| int | If_CutVerifyCuts (If_Set_t *pCutSet, int fOrdered) |
| int | If_CutFilter (If_Set_t *pCutSet, If_Cut_t *pCut, int fSaveCut0) |
| void | If_CutSort (If_Man_t *p, If_Set_t *pCutSet, If_Cut_t *pCut) |
| void | If_CutOrder (If_Cut_t *pCut) |
| int | If_CutMergeOrdered (If_Man_t *p, If_Cut_t *pCut0, If_Cut_t *pCut1, If_Cut_t *pCut) |
| int | If_CutMerge (If_Man_t *p, If_Cut_t *pCut0, If_Cut_t *pCut1, If_Cut_t *pCut) |
| int | If_CutCheck (If_Cut_t *pCut) |
| void | If_CutPrint (If_Cut_t *pCut) |
| void | If_CutPrintTiming (If_Man_t *p, If_Cut_t *pCut) |
| void | If_CutLift (If_Cut_t *pCut) |
| float | If_CutAreaFlow (If_Man_t *p, If_Cut_t *pCut) |
| float | If_CutEdgeFlow (If_Man_t *p, If_Cut_t *pCut) |
| float | If_CutPowerFlow (If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pRoot) |
| float | If_CutAverageRefs (If_Man_t *p, If_Cut_t *pCut) |
| float | If_CutAreaDeref (If_Man_t *p, If_Cut_t *pCut) |
| float | If_CutAreaRef (If_Man_t *p, If_Cut_t *pCut) |
| float | If_CutAreaDerefed (If_Man_t *p, If_Cut_t *pCut) |
| float | If_CutAreaRefed (If_Man_t *p, If_Cut_t *pCut) |
| float | If_CutEdgeDeref (If_Man_t *p, If_Cut_t *pCut) |
| float | If_CutEdgeRef (If_Man_t *p, If_Cut_t *pCut) |
| float | If_CutEdgeDerefed (If_Man_t *p, If_Cut_t *pCut) |
| float | If_CutEdgeRefed (If_Man_t *p, If_Cut_t *pCut) |
| float | If_CutPowerDeref (If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pRoot) |
| float | If_CutPowerRef (If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pRoot) |
| float | If_CutPowerDerefed (If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pRoot) |
| float | If_CutPowerRefed (If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pRoot) |
| word | If_CutPerformDerive07 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr) |
| int | If_CutPerformCheck07 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr) |
| int | If_CutPerformCheck08 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr) |
| int | If_CutPerformCheck10 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr) |
| int | If_CutPerformCheck16 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr) |
| int | If_CutPerformCheckXX (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr) |
| int | If_CutPerformCheck45 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr) |
| int | If_CutPerformCheck54 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr) |
| int | If_CutPerformCheck75 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr) |
| float | If_CutDelayLutStruct (If_Man_t *p, If_Cut_t *pCut, char *pStr, float WireDelay) |
| int | If_CluCheckExt (void *p, word *pTruth, int nVars, int nLutLeaf, int nLutRoot, char *pLut0, char *pLut1, word *pFunc0, word *pFunc1) |
| int | If_CluCheckExt3 (void *p, word *pTruth, int nVars, int nLutLeaf, int nLutLeaf2, int nLutRoot, char *pLut0, char *pLut1, char *pLut2, word *pFunc0, word *pFunc1, word *pFunc2) |
| int | If_CluCheckXXExt (void *p, word *pTruth, int nVars, int nLutLeaf, int nLutRoot, char *pLut0, char *pLut1, word *pFunc0, word *pFunc1) |
| int | If_MatchCheck1 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr) |
| int | If_MatchCheck2 (If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr) |
| int | If_CutDelaySop (If_Man_t *p, If_Cut_t *pCut) |
| int | If_CutSopBalanceEvalInt (Vec_Int_t *vCover, int *pTimes, int *pFaninLits, Vec_Int_t *vAig, int *piRes, int nSuppAll, int *pArea) |
| int | If_CutSopBalanceEval (If_Man_t *p, If_Cut_t *pCut, Vec_Int_t *vAig) |
| int | If_CutSopBalancePinDelaysInt (Vec_Int_t *vCover, int *pTimes, word *pFaninRes, int nSuppAll, word *pRes) |
| int | If_CutSopBalancePinDelays (If_Man_t *p, If_Cut_t *pCut, char *pPerm) |
| int | If_CutLutBalanceEval (If_Man_t *p, If_Cut_t *pCut) |
| int | If_CutLutBalancePinDelays (If_Man_t *p, If_Cut_t *pCut, char *pPerm) |
| int | If_LutDecEval (If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pObj, int optDelay, int fFirst) |
| int | If_Lut2DecEval (If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pObj, int optDelay, int fFirst) |
| int | If_LutDecReEval (If_Man_t *p, If_Cut_t *pCut) |
| float | If_LutDecPinRequired (If_Man_t *p, If_Cut_t *pCut, int i, float required) |
| If_DsdMan_t * | If_DsdManAlloc (int nVars, int nLutSize) |
| void | If_DsdManAllocIsops (If_DsdMan_t *p, int nLutSize) |
| void | If_DsdManPrint (If_DsdMan_t *p, char *pFileName, int Number, int Support, int fOccurs, int fTtDump, int fVerbose) |
| void | If_DsdManTune (If_DsdMan_t *p, int LutSize, int fFast, int fAdd, int fSpec, int fVerbose) |
| void | Id_DsdManTuneStr (If_DsdMan_t *p, char *pStruct, int nConfls, int nProcs, int nInputs, int fVerbose) |
| void | If_DsdManFree (If_DsdMan_t *p, int fVerbose) |
| void | If_DsdManSave (If_DsdMan_t *p, char *pFileName) |
| If_DsdMan_t * | If_DsdManLoad (char *pFileName) |
| void | If_DsdManMerge (If_DsdMan_t *p, If_DsdMan_t *pNew) |
| void | If_DsdManCleanOccur (If_DsdMan_t *p, int fVerbose) |
| void | If_DsdManCleanMarks (If_DsdMan_t *p, int fVerbose) |
| void | If_DsdManInvertMarks (If_DsdMan_t *p, int fVerbose) |
| If_DsdMan_t * | If_DsdManFilter (If_DsdMan_t *p, int Limit) |
| int | If_DsdManCompute (If_DsdMan_t *p, word *pTruth, int nLeaves, unsigned char *pPerm, char *pLutStruct) |
| char * | If_DsdManFileName (If_DsdMan_t *p) |
| FUNCTION DEFINITIONS ///. | |
| int | If_DsdManVarNum (If_DsdMan_t *p) |
| int | If_DsdManObjNum (If_DsdMan_t *p) |
| int | If_DsdManLutSize (If_DsdMan_t *p) |
| int | If_DsdManTtBitNum (If_DsdMan_t *p) |
| int | If_DsdManPermBitNum (If_DsdMan_t *p) |
| void | If_DsdManSetLutSize (If_DsdMan_t *p, int nLutSize) |
| int | If_DsdManSuppSize (If_DsdMan_t *p, int iDsd) |
| int | If_DsdManCheckDec (If_DsdMan_t *p, int iDsd) |
| int | If_DsdManReadMark (If_DsdMan_t *p, int iDsd) |
| void | If_DsdManSetNewAsUseless (If_DsdMan_t *p) |
| word * | If_DsdManGetFuncConfig (If_DsdMan_t *p, int iDsd) |
| char * | If_DsdManGetCellStr (If_DsdMan_t *p) |
| unsigned | If_DsdManCheckXY (If_DsdMan_t *p, int iDsd, int LutSize, int fDerive, unsigned uMaskNot, int fHighEffort, int fVerbose) |
| int | If_CutDsdBalanceEval (If_Man_t *p, If_Cut_t *pCut, Vec_Int_t *vAig) |
| int | If_CutDsdBalancePinDelays (If_Man_t *p, If_Cut_t *pCut, char *pPerm) |
| void | Id_DsdManTuneThresh (If_DsdMan_t *p, int fUnate, int fThresh, int fThreshHeuristic, int fVerbose) |
| If_LibLut_t * | If_LibLutRead (char *FileName) |
| If_LibLut_t * | If_LibLutDup (If_LibLut_t *p) |
| void | If_LibLutFree (If_LibLut_t *pLutLib) |
| void | If_LibLutPrint (If_LibLut_t *pLutLib) |
| int | If_LibLutDelaysAreDiscrete (If_LibLut_t *pLutLib) |
| int | If_LibLutDelaysAreDifferent (If_LibLut_t *pLutLib) |
| If_LibLut_t * | If_LibLutSetSimple (int nLutSize) |
| float | If_LibLutFastestPinDelay (If_LibLut_t *p) |
| float | If_LibLutSlowestPinDelay (If_LibLut_t *p) |
| If_LibBox_t * | If_LibBoxStart () |
| void | If_LibBoxFree (If_LibBox_t *p) |
| int | If_LibBoxNum (If_LibBox_t *p) |
| If_Box_t * | If_LibBoxReadBox (If_LibBox_t *p, int Id) |
| If_Box_t * | If_LibBoxFindBox (If_LibBox_t *p, char *pName) |
| void | If_LibBoxAdd (If_LibBox_t *p, If_Box_t *pBox) |
| If_LibBox_t * | If_LibBoxRead (char *pFileName) |
| If_LibBox_t * | If_LibBoxRead2 (char *pFileName) |
| void | If_LibBoxPrint (FILE *pFile, If_LibBox_t *p) |
| void | If_LibBoxWrite (char *pFileName, If_LibBox_t *p) |
| int | If_LibBoxLoad (char *pFileName) |
| If_Box_t * | If_BoxStart (char *pName, int Id, int nPis, int nPos, int fSeq, int fBlack, int fOuter) |
| FUNCTION DEFINITIONS ///. | |
| If_Man_t * | If_ManStart (If_Par_t *pPars) |
| FUNCTION DEFINITIONS ///. | |
| void | If_ManRestart (If_Man_t *p) |
| void | If_ManStop (If_Man_t *p) |
| If_Obj_t * | If_ManCreateCi (If_Man_t *p) |
| If_Obj_t * | If_ManCreateCo (If_Man_t *p, If_Obj_t *pDriver) |
| If_Obj_t * | If_ManCreateAnd (If_Man_t *p, If_Obj_t *pFan0, If_Obj_t *pFan1) |
| If_Obj_t * | If_ManCreateXor (If_Man_t *p, If_Obj_t *pFan0, If_Obj_t *pFan1) |
| If_Obj_t * | If_ManCreateMux (If_Man_t *p, If_Obj_t *pFan0, If_Obj_t *pFan1, If_Obj_t *pCtrl) |
| void | If_ManCreateChoice (If_Man_t *p, If_Obj_t *pRepr) |
| void | If_ManSetupCutTriv (If_Man_t *p, If_Cut_t *pCut, int ObjId) |
| void | If_ManSetupCiCutSets (If_Man_t *p) |
| If_Set_t * | If_ManSetupNodeCutSet (If_Man_t *p, If_Obj_t *pObj) |
| void | If_ManDerefNodeCutSet (If_Man_t *p, If_Obj_t *pObj) |
| void | If_ManDerefChoiceCutSet (If_Man_t *p, If_Obj_t *pObj) |
| void | If_ManSetupSetAll (If_Man_t *p, int nCrossCut) |
| int * | If_CutArrTimeProfile (If_Man_t *p, If_Cut_t *pCut) |
| void | If_ObjPerformMappingAnd (If_Man_t *p, If_Obj_t *pObj, int Mode, int fPreprocess, int fFirst) |
| void | If_ObjPerformMappingChoice (If_Man_t *p, If_Obj_t *pObj, int Mode, int fPreprocess) |
| int | If_ManPerformMappingRound (If_Man_t *p, int nCutsUsed, int Mode, int fPreprocess, int fFirst, char *pLabel) |
| void | If_ManImproveMapping (If_Man_t *p) |
| FUNCTION DEFINITIONS ///. | |
| void * | If_ManSatBuildXY (int nLutSize) |
| DECLARATIONS ///. | |
| void * | If_ManSatBuildXYZ (int nLutSize) |
| void | If_ManSatUnbuild (void *p) |
| int | If_ManSatCheckXY (void *pSat, int nLutSize, word *pTruth, int nVars, unsigned uSet, word *pTBound, word *pTFree, Vec_Int_t *vLits) |
| unsigned | If_ManSatCheckXYall (void *pSat, int nLutSize, word *pTruth, int nVars, Vec_Int_t *vLits) |
| int | If_ManPerformMappingSeq (If_Man_t *p) |
| float | If_CutDelay (If_Man_t *p, If_Obj_t *pObj, If_Cut_t *pCut) |
| void | If_CutPropagateRequired (If_Man_t *p, If_Obj_t *pObj, If_Cut_t *pCut, float Required) |
| float | If_ManDelayMax (If_Man_t *p, int fSeq) |
| void | If_ManComputeRequired (If_Man_t *p) |
| void | If_CutRotatePins (If_Man_t *p, If_Cut_t *pCut) |
| int | If_CutComputeTruth (If_Man_t *p, If_Cut_t *pCut, If_Cut_t *pCut0, If_Cut_t *pCut1, int fCompl0, int fCompl1) |
| int | If_CutComputeTruthPerm (If_Man_t *p, If_Cut_t *pCut, If_Cut_t *pCut0, If_Cut_t *pCut1, int fCompl0, int fCompl1) |
| Vec_Mem_t * | If_DeriveHashTable6 (int nVars, word Truth) |
| int | If_CutCheckTruth6 (If_Man_t *p, If_Cut_t *pCut) |
| Ifn_Ntk_t * | Ifn_NtkParse (char *pStr) |
| int | Ifn_NtkTtBits (char *pStr) |
| int | Ifn_NtkMatch (Ifn_Ntk_t *p, word *pTruth, int nVars, int nConfls, int fVerbose, int fVeryVerbose, word *pConfig) |
| void | Ifn_NtkPrint (Ifn_Ntk_t *p) |
| int | Ifn_NtkLutSizeMax (Ifn_Ntk_t *p) |
| int | Ifn_NtkInputNum (Ifn_Ntk_t *p) |
| void * | If_ManSatBuildFromCell (char *pStr, Vec_Int_t **pvPiVars, Vec_Int_t **pvPoVars, Ifn_Ntk_t **ppNtk) |
| int | If_ManSatFindCofigBits (void *pSat, Vec_Int_t *vPiVars, Vec_Int_t *vPoVars, word *pTruth, int nVars, word Perm, int nInps, Vec_Int_t *vValues) |
| int | If_ManSatDeriveGiaFromBits (void *pNew, Ifn_Ntk_t *p, word *pTtData, Vec_Int_t *vLeaves, Vec_Int_t *vValues) |
| void * | If_ManDeriveGiaFromCells (void *p) |
| void | If_ManCleanNodeCopy (If_Man_t *p) |
| DECLARATIONS ///. | |
| void | If_ManCleanCutData (If_Man_t *p) |
| void | If_ManCleanMarkV (If_Man_t *p) |
| float | If_ManScanMapping (If_Man_t *p) |
| float | If_ManScanMappingDirect (If_Man_t *p) |
| float | If_ManScanMappingSeq (If_Man_t *p) |
| void | If_ManResetOriginalRefs (If_Man_t *p) |
| int | If_ManCrossCut (If_Man_t *p) |
| Vec_Ptr_t * | If_ManReverseOrder (If_Man_t *p) |
| void | If_ManMarkMapping (If_Man_t *p) |
| Vec_Ptr_t * | If_ManCollectMappingDirect (If_Man_t *p) |
| Vec_Int_t * | If_ManCollectMappingInt (If_Man_t *p) |
| int | If_ManCountSpecialPos (If_Man_t *p) |
| void | If_CutTraverse (If_Man_t *p, If_Obj_t *pRoot, If_Cut_t *pCut, Vec_Ptr_t *vNodes) |
| void | If_ObjPrint (If_Obj_t *pObj) |
| int | acd_evaluate (word *pTruth, unsigned nVars, int lutSize, unsigned *pdelay, unsigned *cost, int try_no_late_arrival) |
| int | acd_decompose (word *pTruth, unsigned nVars, int lutSize, unsigned *pdelay, unsigned char *decomposition) |
| int | acd2_evaluate (word *pTruth, unsigned nVars, int lutSize, unsigned *pdelay, unsigned *cost, int try_no_late_arrival) |
| int | acd2_decompose (word *pTruth, unsigned nVars, int lutSize, unsigned *pdelay, unsigned char *decomposition) |
| #define If_CutForEachLeaf | ( | p, | |
| pCut, | |||
| pLeaf, | |||
| i ) |
| #define If_CutForEachLeafReverse | ( | p, | |
| pCut, | |||
| pLeaf, | |||
| i ) |
| #define If_CutForEachLeafSeq | ( | p, | |
| pCut, | |||
| pLeaf, | |||
| Shift, | |||
| i ) |
Definition at line 510 of file if.h.
| #define If_ManForEachCi | ( | p, | |
| pObj, | |||
| i ) |
Definition at line 474 of file if.h.
| #define If_ManForEachCo | ( | p, | |
| pObj, | |||
| i ) |
| #define If_ManForEachLatchInput | ( | p, | |
| pObj, | |||
| i ) |
Definition at line 486 of file if.h.
| #define If_ManForEachLatchOutput | ( | p, | |
| pObj, | |||
| i ) |
Definition at line 488 of file if.h.
| #define If_ManForEachNode | ( | p, | |
| pObj, | |||
| i ) |
| #define If_ManForEachObj | ( | p, | |
| pObj, | |||
| i ) |
| #define If_ManForEachObjReverse | ( | p, | |
| pObj, | |||
| i ) |
| #define If_ManForEachPi | ( | p, | |
| pObj, | |||
| i ) |
Definition at line 480 of file if.h.
| #define If_ManForEachPo | ( | p, | |
| pObj, | |||
| i ) |
| #define IF_MAX_LUTSIZE 32 |
INCLUDES ///.
CFile****************************************************************
FileName [if.h]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [FPGA mapping based on priority cuts.]
Synopsis [External declarations.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - November 21, 2006.]
Revision [
] PARAMETERS ///
| #define IF_MIN | ( | a, | |
| b ) |
| #define If_ObjForEachCut | ( | pObj, | |
| pCut, | |||
| i ) |
| typedef struct If_DsdMan_t_ If_DsdMan_t |
| typedef struct If_LibBox_t_ If_LibBox_t |
| typedef struct If_LibLut_t_ If_LibLut_t |
| typedef struct Ifif_Par_t_ Ifif_Par_t |
| typedef struct Ifn_Ntk_t_ Ifn_Ntk_t |
| enum If_Type_t |
|
extern |
Definition at line 98 of file ac_wrapper.cpp.

|
extern |
Definition at line 75 of file ac_wrapper.cpp.

|
extern |
Definition at line 51 of file ac_wrapper.cpp.

|
extern |
C++File**************************************************************
FileName [ac_wrapper.cpp]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Ashenhurst-Curtis decomposition.]
Synopsis [Interface with the FPGA mapping package.]
Author [Alessandro Tempia Calvino]
Affiliation [EPFL]
Date [Ver. 1.0. Started - November 20, 2023.]
Definition at line 26 of file ac_wrapper.cpp.

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

|
extern |
|
extern |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 49 of file ifLibBox.c.

|
extern |
Definition at line 2066 of file ifDec16.c.


|
extern |
Definition at line 2079 of file ifDec16.c.


|
extern |
Definition at line 301 of file ifDec66.c.


Function*************************************************************
Synopsis [Computes area of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1056 of file ifCut.c.


Function*************************************************************
Synopsis [Computes area of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1110 of file ifCut.c.


Function*************************************************************
Synopsis [Computes area flow.]
Description []
SideEffects []
SeeAlso []
Definition at line 927 of file ifCut.c.

Function*************************************************************
Synopsis [Computes area of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1083 of file ifCut.c.


Function*************************************************************
Synopsis [Computes area of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1133 of file ifCut.c.

Function*************************************************************
Synopsis [Returns arrival time profile of the cut.]
Description [The procedure returns static storage, which should not be deallocated and is only valid until before the procedure is called again.]
SideEffects []
SeeAlso []
Definition at line 143 of file ifMap.c.

Function*************************************************************
Synopsis [Average number of references of the leaves.]
Description []
SideEffects []
SeeAlso []
|
extern |
Function*************************************************************
Synopsis [Checks correctness of the cut.]
Description []
SideEffects []
SeeAlso []
Definition at line 834 of file ifCut.c.
|
extern |
Function*************************************************************
Synopsis [Truth table computation.]
Description []
SideEffects []
SeeAlso []
Definition at line 99 of file ifTruth.c.


|
extern |
Definition at line 269 of file ifTruth.c.


Function*************************************************************
Synopsis [Computes delay.]
Description []
SideEffects []
SeeAlso []
Definition at line 91 of file ifTime.c.


Definition at line 2103 of file ifDec16.c.

Definition at line 64 of file ifDelay.c.

Definition at line 2322 of file ifDsd.c.


Definition at line 2183 of file ifDsd.c.


Function*************************************************************
Synopsis [Computes area of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1157 of file ifCut.c.


Function*************************************************************
Synopsis [Computes edge of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1211 of file ifCut.c.


Function*************************************************************
Synopsis [Computes area flow.]
Description []
SideEffects []
SeeAlso []
Definition at line 965 of file ifCut.c.

Function*************************************************************
Synopsis [Computes area of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1184 of file ifCut.c.


Function*************************************************************
Synopsis [Computes area of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1234 of file ifCut.c.

Function*************************************************************
Synopsis [Returns 1 if the cut is contained.]
Description []
SideEffects []
SeeAlso []
Definition at line 146 of file ifCut.c.

|
extern |
Function*************************************************************
Synopsis [Moves the cut over the latch.]
Description []
SideEffects []
SeeAlso []
Function*************************************************************
Synopsis [Evaluate delay using SOP balancing.]
Description []
SideEffects []
SeeAlso []
Definition at line 369 of file ifDelay.c.


Function*************************************************************
Synopsis [Evaluate delay using SOP balancing.]
Description []
SideEffects []
SeeAlso []
Definition at line 327 of file ifDelay.c.

Function*************************************************************
Synopsis [Prepares the object for FPGA mapping.]
Description []
SideEffects []
SeeAlso []
Definition at line 364 of file ifCut.c.

Function*************************************************************
Synopsis [Prepares the object for FPGA mapping.]
Description []
SideEffects []
SeeAlso []
Definition at line 290 of file ifCut.c.

|
extern |
Function*************************************************************
Synopsis [Orders the leaves of the cut.]
Description []
SideEffects []
SeeAlso []
|
extern |
Function*************************************************************
Synopsis [Performs additional check.]
Description []
SideEffects []
SeeAlso []
Definition at line 1060 of file ifDec07.c.


|
extern |
Function*************************************************************
Synopsis [Performs additional check.]
Description []
SideEffects []
SeeAlso []
Definition at line 475 of file ifDec08.c.

|
extern |
Function*************************************************************
Synopsis [Performs additional check.]
Description []
SideEffects []
SeeAlso []
Definition at line 474 of file ifDec10.c.

|
extern |
Function*************************************************************
Synopsis [Performs additional check.]
Description []
SideEffects []
SeeAlso []
Definition at line 2216 of file ifDec16.c.


|
extern |
Definition at line 1865 of file ifDec16.c.


|
extern |
Definition at line 1886 of file ifDec16.c.


|
extern |
Function*************************************************************
Synopsis [Performs additional check.]
Description []
SideEffects []
SeeAlso []
Definition at line 303 of file ifDec75.c.

|
extern |
Function*************************************************************
Synopsis [Performs ACD into 66 cascade.]
Description []
SideEffects []
SeeAlso []
Definition at line 363 of file ifDec66.c.

|
extern |
Function*************************************************************
Synopsis [Performs additional check.]
Description []
SideEffects []
SeeAlso []
Definition at line 1018 of file ifDec07.c.


Function*************************************************************
Synopsis [Computes area of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1258 of file ifCut.c.


Function*************************************************************
Synopsis [Computes Power of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1314 of file ifCut.c.


Function*************************************************************
Synopsis [Computes area flow.]
Description []
SideEffects []
SeeAlso []
Definition at line 1003 of file ifCut.c.

Function*************************************************************
Synopsis [Computes area of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1286 of file ifCut.c.


Function*************************************************************
Synopsis [Computes area of the first level.]
Description [The cut need to be derefed.]
SideEffects []
SeeAlso []
Definition at line 1337 of file ifCut.c.

|
extern |
Function*************************************************************
Synopsis [Prints one cut.]
Description []
SideEffects []
SeeAlso []
Definition at line 864 of file ifCut.c.

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


Definition at line 68 of file ifTruth.c.


Definition at line 248 of file ifDelay.c.


|
extern |
Function*************************************************************
Synopsis [Evaluate delay using SOP balancing.]
Description []
SideEffects []
SeeAlso []
Definition at line 192 of file ifDelay.c.

Definition at line 159 of file ifDelay.c.


|
extern |
Function*************************************************************
Synopsis [Compute pin delays.]
Description []
SideEffects []
SeeAlso []
Definition at line 120 of file ifDelay.c.

Function*************************************************************
Synopsis [Performs incremental sorting of cuts.]
Description [Currently only the trivial sorting is implemented.]
SideEffects []
SeeAlso []
Definition at line 746 of file ifCut.c.


Definition at line 565 of file ifUtil.c.

|
extern |
Definition at line 62 of file ifCut.c.

Function*************************************************************
Synopsis [Check the function of 6-input LUT.]
Description []
SideEffects []
SeeAlso []
Definition at line 345 of file ifTruth.c.


|
extern |
Definition at line 264 of file ifDsd.c.


|
extern |
Definition at line 306 of file ifDsd.c.


|
extern |
|
extern |
Definition at line 2017 of file ifDsd.c.


|
extern |
Definition at line 1255 of file ifDsd.c.
|
extern |
|
extern |
Function*************************************************************
Synopsis [Add the function to the DSD manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 2063 of file ifDsd.c.


|
extern |
|
extern |
Definition at line 1294 of file ifDsd.c.

|
extern |
Definition at line 333 of file ifDsd.c.


|
extern |
|
extern |
|
extern |
|
extern |
Definition at line 1106 of file ifDsd.c.

|
extern |
|
extern |
Definition at line 1201 of file ifDsd.c.

|
extern |
|
extern |
|
extern |
Definition at line 701 of file ifDsd.c.


|
extern |
|
extern |
Function*************************************************************
Synopsis [Saving/loading DSD manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 1049 of file ifDsd.c.

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

|
extern |
|
extern |
Definition at line 136 of file ifLibBox.c.

|
extern |
Definition at line 125 of file ifLibBox.c.

|
extern |
Definition at line 98 of file ifLibBox.c.


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

|
extern |
|
extern |
Definition at line 339 of file ifLibBox.c.


|
extern |
Definition at line 278 of file ifLibBox.c.

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


|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 121 of file ifLibBox.c.
|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 86 of file ifLibBox.c.

|
extern |
Definition at line 356 of file ifLibBox.c.

|
extern |
Function*************************************************************
Synopsis [Returns 1 if the delays are discrete.]
Description []
SideEffects []
SeeAlso []
Definition at line 407 of file ifLibLut.c.
|
extern |
Function*************************************************************
Synopsis [Returns 1 if the delays are discrete.]
Description []
SideEffects []
SeeAlso []
Definition at line 383 of file ifLibLut.c.
|
extern |
Function*************************************************************
Synopsis [Duplicates the LUT library.]
Description []
SideEffects []
SeeAlso []
Definition at line 312 of file ifLibLut.c.

|
extern |
Function*************************************************************
Synopsis [Gets the delay of the fastest pin.]
Description []
SideEffects []
SeeAlso []
Definition at line 478 of file ifLibLut.c.
|
extern |
Function*************************************************************
Synopsis [Frees the LUT library.]
Description []
SideEffects []
SeeAlso []
Definition at line 332 of file ifLibLut.c.

|
extern |
Function*************************************************************
Synopsis [Prints the LUT library.]
Description []
SideEffects []
SeeAlso []
Definition at line 352 of file ifLibLut.c.
|
extern |
Function*************************************************************
Synopsis [Reads the description of LUTs from the LUT library file.]
Description []
SideEffects []
SeeAlso []
Definition at line 202 of file ifLibLut.c.

|
extern |
Function*************************************************************
Synopsis [Sets simple LUT library.]
Description []
SideEffects []
SeeAlso []
Definition at line 438 of file ifLibLut.c.

|
extern |
Function*************************************************************
Synopsis [Gets the delay of the slowest pin.]
Description []
SideEffects []
SeeAlso []
Definition at line 494 of file ifLibLut.c.
|
extern |
Definition at line 508 of file ifDelay.c.


|
extern |
Definition at line 415 of file ifDelay.c.


Definition at line 597 of file ifDelay.c.

|
extern |
Function*************************************************************
Synopsis [Sets all the cut data to NULL.]
Description []
SideEffects []
SeeAlso []
Definition at line 64 of file ifUtil.c.

|
extern |
|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [ifUtil.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [FPGA mapping based on priority cuts.]
Synopsis [Various utilities.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - November 21, 2006.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Sets all the node copy to NULL.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file ifUtil.c.

Function*************************************************************
Synopsis [Collects nodes used in the mapping in the topological order.]
Description []
SideEffects []
SeeAlso []
Definition at line 462 of file ifUtil.c.

Function*************************************************************
Synopsis [Collects nodes used in the mapping in the topological order.]
Description [Represents mapping as an array of integers.]
SideEffects []
SeeAlso []
Definition at line 486 of file ifUtil.c.

|
extern |
Function*************************************************************
Synopsis [Computes the required times of all nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 313 of file ifTime.c.


|
extern |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Interface with the FPGA mapping package.]
Description []
SideEffects []
SeeAlso []
Definition at line 59 of file abcIf.c.


|
extern |
Function*************************************************************
Synopsis [Returns the number of POs pointing to the same internal nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 520 of file ifUtil.c.
Function*************************************************************
Synopsis [Create the new node assuming it does not exist.]
Description []
SideEffects []
SeeAlso []
Definition at line 384 of file ifMan.c.

Function*************************************************************
Synopsis [Creates the choice node.]
Description [Should be called after the equivalence class nodes are linked.]
SideEffects []
SeeAlso []
Definition at line 460 of file ifMan.c.

Function*************************************************************
Synopsis [Creates primary input.]
Description []
SideEffects []
SeeAlso []
Definition at line 334 of file ifMan.c.

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

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


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


|
extern |
Function*************************************************************
Synopsis [Computes cross-cut of the circuit.]
Description []
SideEffects []
SeeAlso []
Definition at line 316 of file ifUtil.c.

|
extern |
Function*************************************************************
Synopsis [Returns the max delay of the POs.]
Description []
SideEffects []
SeeAlso []
Definition at line 269 of file ifTime.c.

Function*************************************************************
Synopsis [Dereferences cutset of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 663 of file ifMan.c.

Function*************************************************************
Synopsis [Dereferences cutset of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 620 of file ifMan.c.

|
extern |
Function*************************************************************
Synopsis [Derive GIA using programmable bits.]
Description []
SideEffects []
SeeAlso []
Definition at line 825 of file ifTune.c.

|
extern |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Improves current mapping using expand/Expand of one cut.]
Description [Assumes current mapping assigned and required times computed.]
SideEffects []
SeeAlso []
Definition at line 51 of file ifReduce.c.


|
extern |
Function*************************************************************
Synopsis [Computes area, references, and nodes used in the mapping.]
Description []
SideEffects []
SeeAlso []
Definition at line 434 of file ifUtil.c.


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


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


|
extern |
Function*************************************************************
Synopsis [Performs one mapping pass over all nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 606 of file ifMap.c.


|
extern |
Function*************************************************************
Synopsis [Performs sequential mapping.]
Description []
SideEffects []
SeeAlso []
Definition at line 334 of file ifSeq.c.

|
extern |
Function*************************************************************
Synopsis [Computes area, references, and nodes used in the mapping.]
Description [Collects the nodes in reverse topological order in array p->vMapping.]
SideEffects []
SeeAlso []
Definition at line 287 of file ifUtil.c.

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


Function*************************************************************
Synopsis [Computes the reverse topological order of nodes.]
Description []
SideEffects []
SeeAlso []
Definition at line 363 of file ifUtil.c.


|
extern |
Definition at line 633 of file ifTune.c.

|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [ifSat.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [FPGA mapping based on priority cuts.]
Synopsis [SAT-based evaluation.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - November 21, 2006.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Builds SAT instance for the given structure.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file ifSat.c.


|
extern |
Definition at line 64 of file ifSat.c.

|
extern |
Function*************************************************************
Synopsis [Returns config string for the given truth table.]
Description []
SideEffects []
SeeAlso []
Definition at line 151 of file ifSat.c.


|
extern |
Definition at line 477 of file ifSat.c.


|
extern |
Function*************************************************************
Synopsis [Derive GIA using programmable bits.]
Description []
SideEffects []
SeeAlso []
Definition at line 742 of file ifTune.c.


|
extern |
Definition at line 698 of file ifTune.c.


|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
FUNCTION DECLARATIONS ///.
FUNCTION DECLARATIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 47 of file ifCore.c.


|
extern |
Function*************************************************************
Synopsis [Prepares memory for one cut.]
Description []
SideEffects []
SeeAlso []
Definition at line 566 of file ifMan.c.


Function*************************************************************
Synopsis [Prepares memory for one cut.]
Description []
SideEffects []
SeeAlso []
Definition at line 517 of file ifMan.c.

Function*************************************************************
Synopsis [Prepares cutset of the node.]
Description [Elementary cutset will be added last.]
SideEffects []
SeeAlso []
Definition at line 597 of file ifMan.c.

|
extern |
Function*************************************************************
Synopsis [Dereferences cutset of the node.]
Description []
SideEffects []
SeeAlso []
Definition at line 693 of file ifMan.c.


FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Starts the AIG manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 50 of file ifMan.c.


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


|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
|
extern |
|
extern |
Function*************************************************************
Synopsis [Finds the best cut for the given node.]
Description [Mapping modes: delay (0), area flow (1), area (2).]
SideEffects []
SeeAlso []
Definition at line 162 of file ifMap.c.


Function*************************************************************
Synopsis [Finds the best cut for the choice node.]
Description []
SideEffects []
SeeAlso []
Definition at line 521 of file ifMap.c.


|
extern |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 604 of file ifUtil.c.
|
extern |
|
extern |
|
extern |
Definition at line 1328 of file ifTune.c.


|
extern |
Definition at line 440 of file ifTune.c.


|
extern |