abc-master
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include "misc/vec/vec.h"
#include "sat/bsat/satSolver.h"
#include "sfm.h"
Go to the source code of this file.
Data Structures | |
struct | Sfm_Ntk_t_ |
BASIC TYPES ///. More... | |
Macros | |
#define | SFM_FANIN_MAX 6 |
INCLUDES ///. More... | |
#define | SFM_SAT_UNDEC 0x1234567812345678 |
#define | SFM_SAT_SAT 0x8765432187654321 |
#define | Sfm_NtkForEachPi(p, i) for ( i = 0; i < p->nPis; i++ ) |
MACRO DEFINITIONS ///. More... | |
#define | Sfm_NtkForEachPo(p, i) for ( i = p->nObjs - p->nPos; i < p->nObjs; i++ ) |
#define | Sfm_NtkForEachNode(p, i) for ( i = p->nPis; i + p->nPos < p->nObjs; i++ ) |
#define | Sfm_NtkForEachNodeReverse(p, i) for ( i = p->nObjs - p->nPos - 1; i >= p->nPis; i-- ) |
#define | Sfm_ObjForEachFanin(p, Node, Fan, i) for ( i = 0; i < Sfm_ObjFaninNum(p, Node) && ((Fan = Sfm_ObjFanin(p, Node, i)), 1); i++ ) |
#define | Sfm_ObjForEachFanout(p, Node, Fan, i) for ( i = 0; i < Sfm_ObjFanoutNum(p, Node) && ((Fan = Sfm_ObjFanout(p, Node, i)), 1); i++ ) |
Functions | |
static int | Sfm_NtkPiNum (Sfm_Ntk_t *p) |
static int | Sfm_NtkPoNum (Sfm_Ntk_t *p) |
static int | Sfm_NtkNodeNum (Sfm_Ntk_t *p) |
static int | Sfm_ObjIsPi (Sfm_Ntk_t *p, int i) |
static int | Sfm_ObjIsPo (Sfm_Ntk_t *p, int i) |
static int | Sfm_ObjIsNode (Sfm_Ntk_t *p, int i) |
static int | Sfm_ObjIsFixed (Sfm_Ntk_t *p, int i) |
static int | Sfm_ObjAddsLevelArray (Vec_Str_t *p, int i) |
static int | Sfm_ObjAddsLevel (Sfm_Ntk_t *p, int i) |
static Vec_Int_t * | Sfm_ObjFiArray (Sfm_Ntk_t *p, int i) |
static Vec_Int_t * | Sfm_ObjFoArray (Sfm_Ntk_t *p, int i) |
static int | Sfm_ObjFaninNum (Sfm_Ntk_t *p, int i) |
static int | Sfm_ObjFanoutNum (Sfm_Ntk_t *p, int i) |
static int | Sfm_ObjRefIncrement (Sfm_Ntk_t *p, int iObj) |
static int | Sfm_ObjRefDecrement (Sfm_Ntk_t *p, int iObj) |
static int | Sfm_ObjFanin (Sfm_Ntk_t *p, int i, int k) |
static int | Sfm_ObjFanout (Sfm_Ntk_t *p, int i, int k) |
static int | Sfm_ObjSatVar (Sfm_Ntk_t *p, int iObj) |
static void | Sfm_ObjSetSatVar (Sfm_Ntk_t *p, int iObj, int Num) |
static void | Sfm_ObjCleanSatVar (Sfm_Ntk_t *p, int Num) |
static void | Sfm_NtkCleanVars (Sfm_Ntk_t *p) |
static int | Sfm_ObjLevel (Sfm_Ntk_t *p, int iObj) |
static void | Sfm_ObjSetLevel (Sfm_Ntk_t *p, int iObj, int Lev) |
static int | Sfm_ObjLevelR (Sfm_Ntk_t *p, int iObj) |
static void | Sfm_ObjSetLevelR (Sfm_Ntk_t *p, int iObj, int Lev) |
static int | Sfm_ObjUpdateFaninCount (Sfm_Ntk_t *p, int iObj) |
static void | Sfm_ObjResetFaninCount (Sfm_Ntk_t *p, int iObj) |
void | Kit_DsdPrintFromTruth (unsigned *pTruth, int nVars) |
void | Sfm_PrintCnf (Vec_Str_t *vCnf) |
FUNCTION DECLARATIONS ///. More... | |
int | Sfm_TruthToCnf (word Truth, int nVars, Vec_Int_t *vCover, Vec_Str_t *vCnf) |
Vec_Wec_t * | Sfm_CreateCnf (Sfm_Ntk_t *p) |
void | Sfm_TranslateCnf (Vec_Wec_t *vRes, Vec_Str_t *vCnf, Vec_Int_t *vFaninMap, int iPivotVar) |
Sfm_Ntk_t * | Sfm_ConstructNetwork (Vec_Wec_t *vFanins, int nPis, int nPos) |
void | Sfm_NtkPrepare (Sfm_Ntk_t *p) |
void | Sfm_NtkUpdate (Sfm_Ntk_t *p, int iNode, int f, int iFaninNew, word uTruth) |
int | Sfm_NtkWindowToSolver (Sfm_Ntk_t *p) |
FUNCTION DEFINITIONS ///. More... | |
word | Sfm_ComputeInterpolant (Sfm_Ntk_t *p) |
int | Sfm_ObjMffcSize (Sfm_Ntk_t *p, int iObj) |
int | Sfm_NtkCreateWindow (Sfm_Ntk_t *p, int iNode, int fVerbose) |
#define SFM_FANIN_MAX 6 |
INCLUDES ///.
CFile****************************************************************
FileName [rsbInt.h]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [SAT-based optimization using internal don't-cares.]
Synopsis [Internal declarations.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
]PARAMETERS ///
#define Sfm_ObjForEachFanin | ( | p, | |
Node, | |||
Fan, | |||
i | |||
) | for ( i = 0; i < Sfm_ObjFaninNum(p, Node) && ((Fan = Sfm_ObjFanin(p, Node, i)), 1); i++ ) |
#define Sfm_ObjForEachFanout | ( | p, | |
Node, | |||
Fan, | |||
i | |||
) | for ( i = 0; i < Sfm_ObjFanoutNum(p, Node) && ((Fan = Sfm_ObjFanout(p, Node, i)), 1); i++ ) |
void Kit_DsdPrintFromTruth | ( | unsigned * | pTruth, |
int | nVars | ||
) |
Function*************************************************************
Synopsis [Print the DSD formula.]
Description []
SideEffects []
SeeAlso []
Definition at line 490 of file kitDsd.c.
Function*************************************************************
Synopsis [Takes SAT solver and returns interpolant.]
Description [If interpolant does not exist, records difference variables.]
SideEffects []
SeeAlso []
Definition at line 162 of file sfmSat.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 122 of file sfmCnf.c.
|
inlinestatic |
Definition at line 151 of file sfmInt.h.
int Sfm_NtkCreateWindow | ( | Sfm_Ntk_t * | p, |
int | iNode, | ||
int | fVerbose | ||
) |
Definition at line 334 of file sfmWin.c.
|
inlinestatic |
void Sfm_NtkPrepare | ( | Sfm_Ntk_t * | p | ) |
Definition at line 195 of file sfmNtk.c.
Definition at line 314 of file sfmNtk.c.
int Sfm_NtkWindowToSolver | ( | Sfm_Ntk_t * | p | ) |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Converts a window into a SAT solver.]
Description []
SideEffects []
SeeAlso []
Definition at line 54 of file sfmSat.c.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 150 of file sfmInt.h.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Definition at line 160 of file sfmInt.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 154 of file sfmInt.h.
|
inlinestatic |
Definition at line 157 of file sfmInt.h.
|
inlinestatic |
Definition at line 149 of file sfmInt.h.
|
inlinestatic |
Definition at line 159 of file sfmInt.h.
void Sfm_PrintCnf | ( | Vec_Str_t * | vCnf | ) |
FUNCTION DECLARATIONS ///.
FUNCTION DECLARATIONS ///.
CFile****************************************************************
FileName [sfmCnf.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [SAT-based optimization using internal don't-cares.]
Synopsis [CNF computation.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 46 of file sfmCnf.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 153 of file sfmCnf.c.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 71 of file sfmCnf.c.