#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include "misc/vec/vec.h"#include "sat/bsat/satSolver.h"#include "misc/util/utilNam.h"#include "misc/util/utilTruth.h"#include "map/scl/sclLib.h"#include "map/scl/sclCon.h"#include "bool/kit/kit.h"#include "misc/st/st.h"#include "map/mio/mio.h"#include "base/abc/abc.h"#include "sbd.h"

Go to the source code of this file.
Classes | |
| struct | Sbd_Str_t_ |
Macros | |
| #define | SBD_SAT_UNDEC 0x1234567812345678 |
| INCLUDES ///. | |
| #define | SBD_SAT_SAT 0x8765432187654321 |
| #define | SBD_LUTS_MAX 2 |
| #define | SBD_SIZE_MAX 4 |
| #define | SBD_DIV_MAX 10 |
| #define | SBD_FVAR_MAX 100 |
Typedefs | |
| typedef struct Sbd_Sto_t_ | Sbd_Sto_t |
| BASIC TYPES ///. | |
| typedef struct Sbd_Srv_t_ | Sbd_Srv_t |
| typedef struct Sbd_Str_t_ | Sbd_Str_t |
Functions | |
| Sbd_Sto_t * | Sbd_StoAlloc (Gia_Man_t *pGia, Vec_Int_t *vMirrors, int nLutSize, int nCutSize, int nCutNum, int fCutMin, int fVerbose) |
| MACRO DEFINITIONS ///. | |
| void | Sbd_StoFree (Sbd_Sto_t *p) |
| int | Sbd_StoObjRefs (Sbd_Sto_t *p, int iObj) |
| void | Sbd_StoRefObj (Sbd_Sto_t *p, int iObj, int iMirror) |
| void | Sbd_StoDerefObj (Sbd_Sto_t *p, int iObj) |
| void | Sbd_StoComputeCutsConst0 (Sbd_Sto_t *p, int iObj) |
| void | Sbd_StoComputeCutsObj (Sbd_Sto_t *p, int iObj, int Delay, int Level) |
| void | Sbd_StoComputeCutsCi (Sbd_Sto_t *p, int iObj, int Delay, int Level) |
| int | Sbd_StoComputeCutsNode (Sbd_Sto_t *p, int iObj) |
| void | Sbd_StoSaveBestDelayCut (Sbd_Sto_t *p, int iObj, int *pCut) |
| int | Sbd_StoObjBestCut (Sbd_Sto_t *p, int iObj, int nSize, int *pLeaves) |
| Sbd_Srv_t * | Sbd_ManCutServerStart (Gia_Man_t *pGia, Vec_Int_t *vMirrors, Vec_Int_t *vLutLevs, Vec_Int_t *vLevs, Vec_Int_t *vRefs, int nLutSize, int nCutSize, int nCutNum, int fVerbose) |
| FUNCTION DEFINITIONS ///. | |
| void | Sbd_ManCutServerStop (Sbd_Srv_t *p) |
| int | Sbd_ManCutServerFirst (Sbd_Srv_t *p, int iObj, int *pLeaves) |
| word | Sbd_ManSolve (sat_solver *pSat, int PivotVar, int FreeVar, Vec_Int_t *vDivSet, Vec_Int_t *vDivVars, Vec_Int_t *vDivValues, Vec_Int_t *vTemp) |
| sat_solver * | Sbd_ManSatSolver (sat_solver *pSat, Gia_Man_t *p, Vec_Int_t *vMirrors, int Pivot, Vec_Int_t *vWinObjs, Vec_Int_t *vObj2Var, Vec_Int_t *vTfo, Vec_Int_t *vRoots, int fQbf) |
| DECLARATIONS ///. | |
| int | Sbd_ManCollectConstants (sat_solver *pSat, int nCareMints[2], int PivotVar, word *pVarSims[], Vec_Int_t *vInds) |
| int | Sbd_ManCollectConstantsNew (sat_solver *pSat, Vec_Int_t *vDivVars, int nConsts, int PivotVar, word *pOnset, word *pOffset) |
| Vec_Bit_t * | Sbc_ManCriticalPath (Gia_Man_t *p) |
| int | Sbd_ProblemSolve (Gia_Man_t *p, Vec_Int_t *vMirrors, int Pivot, Vec_Int_t *vWinObjs, Vec_Int_t *vObj2Var, Vec_Int_t *vTfo, Vec_Int_t *vRoots, Vec_Int_t *vDivSet, int nStrs, Sbd_Str_t *pStr0) |
| #define SBD_SAT_UNDEC 0x1234567812345678 |
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 ///
| typedef struct Sbd_Srv_t_ Sbd_Srv_t |
| typedef struct Sbd_Sto_t_ Sbd_Sto_t |
| typedef struct Sbd_Str_t_ Sbd_Str_t |
Definition at line 119 of file sbdPath.c.


|
extern |
Definition at line 411 of file sbdWin.c.

|
extern |
Definition at line 433 of file sbdWin.c.

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


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

|
extern |
|
extern |
DECLARATIONS ///.
CFile****************************************************************
FileName [sbd.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [SAT-based optimization using internal don't-cares.]
Synopsis []
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
] FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Constructs SAT solver for the window.]
Description [The window for the pivot node (Pivot) is represented as a DFS ordered array of objects (vWinObjs) whose indexed in the array (which will be used as SAT variables) are given in array vObj2Var. The TFO nodes are listed as the last ones in vWinObjs. The root nodes are labeled with Abc_LitIsCompl() in vTfo and also given in vRoots. If fQbf is 1, returns the instance meant for QBF solving. It is using the last variable (LastVar) as the placeholder for the second copy of the pivot node.]
SideEffects []
SeeAlso []
Definition at line 52 of file sbdWin.c.


|
extern |
Function*************************************************************
Synopsis [Solves one SAT problem.]
Description [Computes node function for PivotVar with fanins in vDivSet using don't-care represented in the SAT solver. Uses array vValues to return the values of the first Vec_IntSize(vValues) SAT variables in case the implementation of the node with the given fanins does not exist.]
SideEffects []
SeeAlso []
Definition at line 178 of file sbdWin.c.


|
extern |
Function*************************************************************
Synopsis [Solves QBF problem for the given window.]
Description []
SideEffects []
SeeAlso []
Definition at line 187 of file sbdLut.c.


|
extern |
MACRO DEFINITIONS ///.
FUNCTION DECLARATIONS ///
Function*************************************************************
Synopsis [Incremental cut computation.]
Description []
SideEffects []
SeeAlso []
Definition at line 667 of file sbdCut.c.

|
extern |
Definition at line 724 of file sbdCut.c.


|
extern |
|
extern |
|
extern |
Definition at line 702 of file sbdCut.c.

|
extern |
Definition at line 778 of file sbdCut.c.


|
extern |
|
extern |
Definition at line 802 of file sbdCut.c.

|
extern |
|
extern |
Definition at line 750 of file sbdCut.c.
