ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
mpmCore.c
Go to the documentation of this file.
1
20
21#include "aig/gia/gia.h"
22#include "mpmInt.h"
23
25
26
30
34
47{
48 memset( p, 0, sizeof(Mpm_Par_t) );
49 p->pLib = NULL; // LUT library
50 p->nNumCuts = 8; // cut number
51 p->fUseTruth = 0; // uses truth tables
52 p->fUseDsd = 0; // uses DSDs
53 p->fCutMin = 0; // enables cut minimization
54 p->fOneRound = 0; // enabled one round
55 p->DelayTarget = -1; // delay target
56 p->fDeriveLuts = 0; // use truth tables to derive AIG structure
57 p->fMap4Cnf = 0; // mapping for CNF
58 p->fMap4Aig = 0; // mapping for AIG
59 p->fMap4Gates = 0; // mapping for gates
60 p->fVerbose = 0; // verbose output
61 p->fVeryVerbose = 0; // verbose output
62}
63
76{
77 Gia_Man_t * pNew;
78 Mpm_Man_t * p;
79 p = Mpm_ManStart( pMig, pPars );
80 if ( p->pPars->fVerbose )
84 if ( p->pPars->fVerbose )
86 pNew = (Gia_Man_t *)Mpm_ManFromIfLogic( p );
87 Mpm_ManStop( p );
88 return pNew;
89}
91{
92 Mig_Man_t * p;
93 Gia_Man_t * pNew;
94 assert( pPars->pLib->LutMax <= MPM_VAR_MAX );
95 assert( pPars->nNumCuts <= MPM_CUT_MAX );
96 if ( pPars->fUseGates )
97 {
98 pGia = Gia_ManDupMuxes( pGia, 2 );
99 p = Mig_ManCreate( pGia );
100 Gia_ManStop( pGia );
101 }
102 else
103 p = Mig_ManCreate( pGia );
104 pNew = Mpm_ManPerformLutMapping( p, pPars );
105 Mig_ManStop( p );
106 return pNew;
107}
108
112
113
115
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
Cube * p
Definition exorList.c:222
void Gia_ManStop(Gia_Man_t *p)
Definition giaMan.c:82
Gia_Man_t * Gia_ManDupMuxes(Gia_Man_t *p, int Limit)
Definition giaMuxes.c:98
struct Gia_Man_t_ Gia_Man_t
Definition gia.h:96
void * Mpm_ManFromIfLogic(Mpm_Man_t *pMan)
Definition mpmAbc.c:213
Mig_Man_t * Mig_ManCreate(void *pGia)
FUNCTION DECLARATIONS ///.
Definition mpmAbc.c:83
Gia_Man_t * Mpm_ManLutMapping(Gia_Man_t *pGia, Mpm_Par_t *pPars)
Definition mpmCore.c:90
ABC_NAMESPACE_IMPL_START void Mpm_ManSetParsDefault(Mpm_Par_t *p)
DECLARATIONS ///.
Definition mpmCore.c:46
Gia_Man_t * Mpm_ManPerformLutMapping(Mig_Man_t *pMig, Mpm_Par_t *pPars)
Definition mpmCore.c:75
void Mpm_ManPrintStatsInit(Mpm_Man_t *p)
Definition mpmMan.c:166
struct Mpm_Man_t_ Mpm_Man_t
Definition mpmInt.h:94
#define MPM_CUT_MAX
INCLUDES ///.
Definition mpmInt.h:50
Mpm_Man_t * Mpm_ManStart(Mig_Man_t *pMig, Mpm_Par_t *pPars)
DECLARATIONS ///.
Definition mpmMan.c:45
void Mpm_ManPrintStats(Mpm_Man_t *p)
Definition mpmMan.c:173
void Mpm_ManPerform(Mpm_Man_t *p)
Definition mpmMap.c:833
void Mpm_ManPrepare(Mpm_Man_t *p)
Definition mpmMap.c:794
void Mpm_ManStop(Mpm_Man_t *p)
Definition mpmMan.c:111
void Mig_ManStop(Mig_Man_t *p)
Definition mpmMig.c:56
struct Mig_Man_t_ Mig_Man_t
Definition mpmMig.h:60
#define MPM_VAR_MAX
INCLUDES ///.
Definition mpm.h:40
struct Mpm_Par_t_ Mpm_Par_t
Definition mpm.h:56
int LutMax
Definition mpm.h:50
int fUseGates
Definition mpm.h:63
int nNumCuts
Definition mpm.h:61
Mpm_LibLut_t * pLib
Definition mpm.h:59
#define assert(ex)
Definition util_old.h:213
char * memset()