#include "gia.h"#include "misc/tim/tim.h"#include "misc/util/utilTruth.h"#include "sat/bsat/satStore.h"#include "misc/util/utilNam.h"#include "map/scl/sclCon.h"#include "misc/vec/vecHsh.h"#include <unistd.h>
Go to the source code of this file.
Classes | |
| struct | Sbl_Man_t_ |
Macros | |
| #define | KSAT_OBJS 24 |
| #define | KSAT_MINTS 64 |
| #define | KSAT_SPACE (4+3*KSAT_OBJS+3*KSAT_MINTS) |
Typedefs | |
| typedef typedefABC_NAMESPACE_IMPL_START struct Sbl_Man_t_ | Sbl_Man_t |
| DECLARATIONS ///. | |
Enumerations | |
| enum | Gia_ManGate_t { GIA_GATE_ZERO , GIA_GATE_ONE , GIA_GATE_BUF , GIA_GATE_INV , GIA_GATE_NAN2 , GIA_GATE_NOR2 , GIA_GATE_AOI21 , GIA_GATE_NAN3 , GIA_GATE_NOR3 , GIA_GATE_OAI21 , GIA_GATE_AOI22 , GIA_GATE_OAI22 , RTM_VAL_VOID } |
| enum | Gia_ManGate2_t { GIA_GATE2_ZERO , GIA_GATE2_ONE , GIA_GATE2_BUF , GIA_GATE2_INV , GIA_GATE2_NAN2 , GIA_GATE2_NOR2 , GIA_GATE2_AOI21 , GIA_GATE2_NAN3 , GIA_GATE2_NOR3 , GIA_GATE2_OAI21 , GIA_GATE2_NOR4 , GIA_GATE2_AOI211 , GIA_GATE2_AOI22 , GIA_GATE2_NAN4 , GIA_GATE2_OAI211 , GIA_GATE2_OAI22 , GIA_GATE2_VOID } |
Functions | |
| sat_solver * | Sbm_AddCardinSolver (int LogN, Vec_Int_t **pvVars) |
| Sbl_Man_t * | Sbl_ManAlloc (Gia_Man_t *pGia, int Number) |
| FUNCTION DEFINITIONS ///. | |
| void | Sbl_ManClean (Sbl_Man_t *p) |
| void | Sbl_ManStop (Sbl_Man_t *p) |
| void | Sbl_ManGetCurrentMapping (Sbl_Man_t *p) |
| int | Sbl_ManComputeDelay (Sbl_Man_t *p, int iLut, Vec_Int_t *vFanins) |
| int | Sbl_ManCreateTiming (Sbl_Man_t *p, int DelayStart) |
| int | Sbl_ManEvaluateMappingEdge (Sbl_Man_t *p, int DelayGlo) |
| int | Sbl_ManCriticalFanin (Sbl_Man_t *p, int iLut, Vec_Int_t *vFanins) |
| int | Sbl_ManEvaluateMapping (Sbl_Man_t *p, int DelayGlo) |
| void | Sbl_ManUpdateMapping (Sbl_Man_t *p) |
| int | Sbl_ManComputeCuts (Sbl_Man_t *p) |
| int | Sbl_ManCreateCnf (Sbl_Man_t *p) |
| void | Sbl_ManWindow (Sbl_Man_t *p) |
| int | Sbl_ManWindow2 (Sbl_Man_t *p, int iPivot) |
| int | Sbl_ManTestSat (Sbl_Man_t *p, int iPivot) |
| void | Sbl_ManPrintRuntime (Sbl_Man_t *p) |
| void | Gia_ManLutSat (Gia_Man_t *pGia, int LutSize, int nNumber, int nImproves, int nBTLimit, int DelayMax, int nEdges, int fDelay, int fReverse, int fVerbose, int fVeryVerbose) |
| Vec_Int_t * | Gia_RunKadical (char *pFileNameIn, char *pFileNameOut, int Seed, int nBTLimit, int TimeOut, int fVerbose, int *pStatus) |
| int | Gia_SatVarReqPos (int i) |
| int | Gia_SatVarReqNeg (int i) |
| int | Gia_SatVarAckPos (int i) |
| int | Gia_SatVarAckNeg (int i) |
| int | Gia_SatVarInv (int i) |
| int | Gia_SatVarFan0 (int i) |
| int | Gia_SatVarFan1 (int i) |
| int | Gia_SatValReqPos (Vec_Int_t *p, int i) |
| int | Gia_SatValReqNeg (Vec_Int_t *p, int i) |
| int | Gia_SatValAckPos (Vec_Int_t *p, int i) |
| int | Gia_SatValAckNeg (Vec_Int_t *p, int i) |
| int | Gia_SatValInv (Vec_Int_t *p, int i) |
| int | Gia_SatValFan0 (Vec_Int_t *p, int i) |
| int | Gia_SatValFan1 (Vec_Int_t *p, int i) |
| void | Gia_SatDumpClause (Vec_Str_t *vStr, int *pLits, int nLits) |
| void | Gia_SatDumpLiteral (Vec_Str_t *vStr, int Lit) |
| void | Gia_SatDumpKlause (Vec_Str_t *vStr, int nIns, int nAnds, int nBound) |
| Vec_Str_t * | Gia_ManSimpleCnf (Gia_Man_t *p, int nBound) |
| Vec_Int_t * | Gia_ManDeriveSimpleMapping (Gia_Man_t *p, Vec_Int_t *vRes) |
| void | Gia_ManSimplePrintMapping (Vec_Int_t *vRes, int nIns) |
| int | Gia_ManDumpCnf (char *pFileName, Vec_Str_t *vStr, int nVars) |
| int | Gia_ManDumpCnf2 (Vec_Str_t *vStr, int nVars, int argc, char **argv, abctime Time, int Status) |
| int | Gia_ManSimpleMapping (Gia_Man_t *p, int nBound, int Seed, int nBTLimit, int nTimeout, int fVerbose, int fKeepFile, int argc, char **argv) |
| int | Gia_KSatVarInv (int *pMap, int i) |
| int | Gia_KSatVarAnd (int *pMap, int i) |
| int | Gia_KSatVarEqu (int *pMap, int i) |
| int | Gia_KSatVarRef (int *pMap, int i) |
| int | Gia_KSatVarFan (int *pMap, int i, int f, int k) |
| int | Gia_KSatVarMin (int *pMap, int i, int m, int k) |
| void | Gia_KSatSetInv (int *pMap, int i, int iVar) |
| void | Gia_KSatSetAnd (int *pMap, int i, int iVar) |
| void | Gia_KSatSetEqu (int *pMap, int i, int iVar) |
| void | Gia_KSatSetRef (int *pMap, int i, int iVar) |
| void | Gia_KSatSetFan (int *pMap, int i, int f, int k, int iVar) |
| void | Gia_KSatSetMin (int *pMap, int i, int m, int k, int iVar) |
| int | Gia_KSatValInv (int *pMap, int i, Vec_Int_t *vRes) |
| int | Gia_KSatValAnd (int *pMap, int i, Vec_Int_t *vRes) |
| int | Gia_KSatValEqu (int *pMap, int i, Vec_Int_t *vRes) |
| int | Gia_KSatValRef (int *pMap, int i, Vec_Int_t *vRes) |
| int | Gia_KSatValFan (int *pMap, int i, int f, int k, Vec_Int_t *vRes) |
| int | Gia_KSatValMin (int *pMap, int i, int m, int k, Vec_Int_t *vRes) |
| int * | Gia_KSatMapInit (int nIns, int nNodes, word Truth, int *pnVars) |
| int | Gia_KSatFindFan (int *pMap, int i, int f, Vec_Int_t *vRes) |
| Vec_Int_t * | Gia_ManKSatGenLevels (char *pGuide, int nIns, int nNodes) |
| Vec_Str_t * | Gia_ManKSatCnf (int *pMap, int nIns, int nNodes, int nBound, int fMultiLevel, char *pGuide) |
| Vec_Int_t * | Gia_ManDeriveKSatMappingArray (Gia_Man_t *p, Vec_Int_t *vRes) |
| Gia_Man_t * | Gia_ManDeriveKSatMapping (Vec_Int_t *vRes, int *pMap, int nIns, int nNodes, int fVerbose) |
| word | Gia_ManGetTruth (Gia_Man_t *p) |
| Gia_Man_t * | Gia_ManKSatMapping (word Truth, int nIns, int nNodes, int nBound, int Seed, int fMultiLevel, int nBTLimit, int nTimeout, int fVerbose, int fKeepFile, int argc, char **argv, char *pGuide) |
| #define KSAT_MINTS 64 |
Definition at line 1620 of file giaSatLut.c.
| #define KSAT_OBJS 24 |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1619 of file giaSatLut.c.
| #define KSAT_SPACE (4+3*KSAT_OBJS+3*KSAT_MINTS) |
Definition at line 1621 of file giaSatLut.c.
| typedef typedefABC_NAMESPACE_IMPL_START struct Sbl_Man_t_ Sbl_Man_t |
DECLARATIONS ///.
CFile****************************************************************
FileName [giaSatLut.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Scalable AIG package.]
Synopsis []
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
]
Definition at line 42 of file giaSatLut.c.
| enum Gia_ManGate2_t |
Definition at line 1904 of file giaSatLut.c.
| enum Gia_ManGate_t |
| Enumerator | |
|---|---|
| GIA_GATE_ZERO | |
| GIA_GATE_ONE | |
| GIA_GATE_BUF | |
| GIA_GATE_INV | |
| GIA_GATE_NAN2 | |
| GIA_GATE_NOR2 | |
| GIA_GATE_AOI21 | |
| GIA_GATE_NAN3 | |
| GIA_GATE_NOR3 | |
| GIA_GATE_OAI21 | |
| GIA_GATE_AOI22 | |
| GIA_GATE_OAI22 | |
| RTM_VAL_VOID | |
Definition at line 1443 of file giaSatLut.c.
| int Gia_KSatFindFan | ( | int * | pMap, |
| int | i, | ||
| int | f, | ||
| Vec_Int_t * | vRes ) |
Definition at line 1676 of file giaSatLut.c.


| int * Gia_KSatMapInit | ( | int | nIns, |
| int | nNodes, | ||
| word | Truth, | ||
| int * | pnVars ) |
Definition at line 1644 of file giaSatLut.c.


| void Gia_KSatSetAnd | ( | int * | pMap, |
| int | i, | ||
| int | iVar ) |
| void Gia_KSatSetEqu | ( | int * | pMap, |
| int | i, | ||
| int | iVar ) |
| void Gia_KSatSetFan | ( | int * | pMap, |
| int | i, | ||
| int | f, | ||
| int | k, | ||
| int | iVar ) |
Definition at line 1634 of file giaSatLut.c.

| void Gia_KSatSetInv | ( | int * | pMap, |
| int | i, | ||
| int | iVar ) |
| void Gia_KSatSetMin | ( | int * | pMap, |
| int | i, | ||
| int | m, | ||
| int | k, | ||
| int | iVar ) |
Definition at line 1635 of file giaSatLut.c.

| void Gia_KSatSetRef | ( | int * | pMap, |
| int | i, | ||
| int | iVar ) |
| int Gia_KSatValAnd | ( | int * | pMap, |
| int | i, | ||
| Vec_Int_t * | vRes ) |
| int Gia_KSatValEqu | ( | int * | pMap, |
| int | i, | ||
| Vec_Int_t * | vRes ) |
Definition at line 1639 of file giaSatLut.c.
| int Gia_KSatValFan | ( | int * | pMap, |
| int | i, | ||
| int | f, | ||
| int | k, | ||
| Vec_Int_t * | vRes ) |
Definition at line 1641 of file giaSatLut.c.

| int Gia_KSatValInv | ( | int * | pMap, |
| int | i, | ||
| Vec_Int_t * | vRes ) |
| int Gia_KSatValMin | ( | int * | pMap, |
| int | i, | ||
| int | m, | ||
| int | k, | ||
| Vec_Int_t * | vRes ) |
Definition at line 1642 of file giaSatLut.c.
| int Gia_KSatValRef | ( | int * | pMap, |
| int | i, | ||
| Vec_Int_t * | vRes ) |
Definition at line 1640 of file giaSatLut.c.
| int Gia_KSatVarAnd | ( | int * | pMap, |
| int | i ) |
| int Gia_KSatVarEqu | ( | int * | pMap, |
| int | i ) |
| int Gia_KSatVarFan | ( | int * | pMap, |
| int | i, | ||
| int | f, | ||
| int | k ) |
| int Gia_KSatVarInv | ( | int * | pMap, |
| int | i ) |
| int Gia_KSatVarMin | ( | int * | pMap, |
| int | i, | ||
| int | m, | ||
| int | k ) |
| int Gia_KSatVarRef | ( | int * | pMap, |
| int | i ) |
| Gia_Man_t * Gia_ManDeriveKSatMapping | ( | Vec_Int_t * | vRes, |
| int * | pMap, | ||
| int | nIns, | ||
| int | nNodes, | ||
| int | fVerbose ) |
Definition at line 1992 of file giaSatLut.c.


Definition at line 1924 of file giaSatLut.c.
Definition at line 1459 of file giaSatLut.c.


| int Gia_ManDumpCnf | ( | char * | pFileName, |
| Vec_Str_t * | vStr, | ||
| int | nVars ) |
Definition at line 1536 of file giaSatLut.c.

| int Gia_ManDumpCnf2 | ( | Vec_Str_t * | vStr, |
| int | nVars, | ||
| int | argc, | ||
| char ** | argv, | ||
| abctime | Time, | ||
| int | Status ) |
Definition at line 1544 of file giaSatLut.c.


Definition at line 2038 of file giaSatLut.c.

| Vec_Str_t * Gia_ManKSatCnf | ( | int * | pMap, |
| int | nIns, | ||
| int | nNodes, | ||
| int | nBound, | ||
| int | fMultiLevel, | ||
| char * | pGuide ) |
Definition at line 1715 of file giaSatLut.c.


| Vec_Int_t * Gia_ManKSatGenLevels | ( | char * | pGuide, |
| int | nIns, | ||
| int | nNodes ) |
Definition at line 1686 of file giaSatLut.c.

| Gia_Man_t * Gia_ManKSatMapping | ( | word | Truth, |
| int | nIns, | ||
| int | nNodes, | ||
| int | nBound, | ||
| int | Seed, | ||
| int | fMultiLevel, | ||
| int | nBTLimit, | ||
| int | nTimeout, | ||
| int | fVerbose, | ||
| int | fKeepFile, | ||
| int | argc, | ||
| char ** | argv, | ||
| char * | pGuide ) |
Definition at line 2051 of file giaSatLut.c.

| void Gia_ManLutSat | ( | Gia_Man_t * | pGia, |
| int | LutSize, | ||
| int | nNumber, | ||
| int | nImproves, | ||
| int | nBTLimit, | ||
| int | DelayMax, | ||
| int | nEdges, | ||
| int | fDelay, | ||
| int | fReverse, | ||
| int | fVerbose, | ||
| int | fVeryVerbose ) |
Definition at line 1190 of file giaSatLut.c.

Definition at line 1339 of file giaSatLut.c.


| int Gia_ManSimpleMapping | ( | Gia_Man_t * | p, |
| int | nBound, | ||
| int | Seed, | ||
| int | nBTLimit, | ||
| int | nTimeout, | ||
| int | fVerbose, | ||
| int | fKeepFile, | ||
| int | argc, | ||
| char ** | argv ) |
Definition at line 1572 of file giaSatLut.c.


| void Gia_ManSimplePrintMapping | ( | Vec_Int_t * | vRes, |
| int | nIns ) |
Definition at line 1513 of file giaSatLut.c.


| Vec_Int_t * Gia_RunKadical | ( | char * | pFileNameIn, |
| char * | pFileNameOut, | ||
| int | Seed, | ||
| int | nBTLimit, | ||
| int | TimeOut, | ||
| int | fVerbose, | ||
| int * | pStatus ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1237 of file giaSatLut.c.


| void Gia_SatDumpClause | ( | Vec_Str_t * | vStr, |
| int * | pLits, | ||
| int | nLits ) |
Definition at line 1316 of file giaSatLut.c.

| void Gia_SatDumpKlause | ( | Vec_Str_t * | vStr, |
| int | nIns, | ||
| int | nAnds, | ||
| int | nBound ) |
Definition at line 1326 of file giaSatLut.c.


| void Gia_SatDumpLiteral | ( | Vec_Str_t * | vStr, |
| int | Lit ) |
Definition at line 1322 of file giaSatLut.c.


| int Gia_SatValAckNeg | ( | Vec_Int_t * | p, |
| int | i ) |
| int Gia_SatValAckPos | ( | Vec_Int_t * | p, |
| int | i ) |
| int Gia_SatValFan0 | ( | Vec_Int_t * | p, |
| int | i ) |
| int Gia_SatValFan1 | ( | Vec_Int_t * | p, |
| int | i ) |
| int Gia_SatValInv | ( | Vec_Int_t * | p, |
| int | i ) |
| int Gia_SatValReqNeg | ( | Vec_Int_t * | p, |
| int | i ) |
| int Gia_SatValReqPos | ( | Vec_Int_t * | p, |
| int | i ) |
| int Gia_SatVarAckNeg | ( | int | i | ) |
Definition at line 1303 of file giaSatLut.c.

| int Gia_SatVarAckPos | ( | int | i | ) |
Definition at line 1302 of file giaSatLut.c.

| int Gia_SatVarFan0 | ( | int | i | ) |
Definition at line 1305 of file giaSatLut.c.

| int Gia_SatVarFan1 | ( | int | i | ) |
Definition at line 1306 of file giaSatLut.c.

| int Gia_SatVarInv | ( | int | i | ) |
Definition at line 1304 of file giaSatLut.c.

| int Gia_SatVarReqNeg | ( | int | i | ) |
Definition at line 1301 of file giaSatLut.c.

| int Gia_SatVarReqPos | ( | int | i | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 1300 of file giaSatLut.c.

FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 132 of file giaSatLut.c.


| void Sbl_ManClean | ( | Sbl_Man_t * | p | ) |
Definition at line 178 of file giaSatLut.c.


| int Sbl_ManComputeCuts | ( | Sbl_Man_t * | p | ) |
Definition at line 740 of file giaSatLut.c.

Function*************************************************************
Synopsis [Timing computation.]
Description []
SideEffects []
SeeAlso []
Definition at line 314 of file giaSatLut.c.

| int Sbl_ManCreateCnf | ( | Sbl_Man_t * | p | ) |
Definition at line 856 of file giaSatLut.c.


| int Sbl_ManCreateTiming | ( | Sbl_Man_t * | p, |
| int | DelayStart ) |
Definition at line 321 of file giaSatLut.c.


Function*************************************************************
Synopsis [Given mapping in p->vSolCur, check the critical path.]
Description [Returns 1 if the mapping satisfies the timing. Returns 0, if the critical path is detected.]
SideEffects []
SeeAlso []
Definition at line 465 of file giaSatLut.c.

| int Sbl_ManEvaluateMapping | ( | Sbl_Man_t * | p, |
| int | DelayGlo ) |
Definition at line 473 of file giaSatLut.c.


| int Sbl_ManEvaluateMappingEdge | ( | Sbl_Man_t * | p, |
| int | DelayGlo ) |
Function*************************************************************
Synopsis [Given mapping in p->vSolCur, check if mapping meets delay.]
Description []
SideEffects []
SeeAlso []
Definition at line 433 of file giaSatLut.c.


| void Sbl_ManGetCurrentMapping | ( | Sbl_Man_t * | p | ) |
Function*************************************************************
Synopsis [For each node in the window, create fanins.]
Description []
SideEffects []
SeeAlso []
Definition at line 268 of file giaSatLut.c.

| void Sbl_ManPrintRuntime | ( | Sbl_Man_t * | p | ) |
Definition at line 1176 of file giaSatLut.c.

| void Sbl_ManStop | ( | Sbl_Man_t * | p | ) |
Definition at line 217 of file giaSatLut.c.


| int Sbl_ManTestSat | ( | Sbl_Man_t * | p, |
| int | iPivot ) |
Definition at line 967 of file giaSatLut.c.


| void Sbl_ManUpdateMapping | ( | Sbl_Man_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 537 of file giaSatLut.c.

| void Sbl_ManWindow | ( | Sbl_Man_t * | p | ) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 929 of file giaSatLut.c.
| int Sbl_ManWindow2 | ( | Sbl_Man_t * | p, |
| int | iPivot ) |
Definition at line 946 of file giaSatLut.c.


|
extern |
Definition at line 456 of file giaSatMap.c.
