abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
mpmCore.c File Reference
#include "aig/gia/gia.h"
#include "mpmInt.h"

Go to the source code of this file.

Functions

ABC_NAMESPACE_IMPL_START void Mpm_ManSetParsDefault (Mpm_Par_t *p)
 DECLARATIONS ///. More...
 
Gia_Man_tMpm_ManPerformLutMapping (Mig_Man_t *pMig, Mpm_Par_t *pPars)
 
Gia_Man_tMpm_ManLutMapping (Gia_Man_t *pGia, Mpm_Par_t *pPars)
 

Function Documentation

Gia_Man_t* Mpm_ManLutMapping ( Gia_Man_t pGia,
Mpm_Par_t pPars 
)

Definition at line 90 of file mpmCore.c.

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 }
void Gia_ManStop(Gia_Man_t *p)
Definition: giaMan.c:77
static Llb_Mgr_t * p
Definition: llb3Image.c:950
Gia_Man_t * Mpm_ManPerformLutMapping(Mig_Man_t *pMig, Mpm_Par_t *pPars)
Definition: mpmCore.c:75
int nNumCuts
Definition: mpm.h:61
void Mig_ManStop(Mig_Man_t *p)
Definition: mpmMig.c:56
int fUseGates
Definition: mpm.h:63
Gia_Man_t * Gia_ManDupMuxes(Gia_Man_t *p, int Limit)
Definition: giaMuxes.c:96
#define MPM_CUT_MAX
INCLUDES ///.
Definition: mpmInt.h:50
Definition: gia.h:95
#define MPM_VAR_MAX
INCLUDES ///.
Definition: mpm.h:40
Mpm_LibLut_t * pLib
Definition: mpm.h:59
#define assert(ex)
Definition: util_old.h:213
int LutMax
Definition: mpm.h:50
Mig_Man_t * Mig_ManCreate(void *pGia)
FUNCTION DECLARATIONS ///.
Definition: mpmAbc.c:83
Gia_Man_t* Mpm_ManPerformLutMapping ( Mig_Man_t pMig,
Mpm_Par_t pPars 
)

Function*************************************************************

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 75 of file mpmCore.c.

76 {
77  Gia_Man_t * pNew;
78  Mpm_Man_t * p;
79  p = Mpm_ManStart( pMig, pPars );
80  if ( p->pPars->fVerbose )
82  Mpm_ManPrepare( p );
83  Mpm_ManPerform( p );
84  if ( p->pPars->fVerbose )
85  Mpm_ManPrintStats( p );
86  pNew = (Gia_Man_t *)Mpm_ManFromIfLogic( p );
87  Mpm_ManStop( p );
88  return pNew;
89 }
Mpm_Par_t * pPars
Definition: mpmInt.h:98
static Llb_Mgr_t * p
Definition: llb3Image.c:950
void Mpm_ManPrepare(Mpm_Man_t *p)
Definition: mpmMap.c:794
int fVerbose
Definition: mpm.h:72
void * Mpm_ManFromIfLogic(Mpm_Man_t *pMan)
Definition: mpmAbc.c:213
void Mpm_ManStop(Mpm_Man_t *p)
Definition: mpmMan.c:111
void Mpm_ManPrintStats(Mpm_Man_t *p)
Definition: mpmMan.c:173
Mpm_Man_t * Mpm_ManStart(Mig_Man_t *pMig, Mpm_Par_t *pPars)
DECLARATIONS ///.
Definition: mpmMan.c:45
void Mpm_ManPerform(Mpm_Man_t *p)
Definition: mpmMap.c:833
Definition: gia.h:95
void Mpm_ManPrintStatsInit(Mpm_Man_t *p)
Definition: mpmMan.c:166
ABC_NAMESPACE_IMPL_START void Mpm_ManSetParsDefault ( Mpm_Par_t p)

DECLARATIONS ///.

MACRO DEFINITIONS ///.

CFile****************************************************************

FileName [mpmCore.c]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [Configurable technology mapper.]

Synopsis [Core procedures.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

Date [Ver. 1.0. Started - June 1, 2013.]

Revision [

Id:
mpmCore.c,v 1.00 2013/06/01 00:00:00 alanmi Exp

]FUNCTION DEFINITIONS /// Function*************************************************************

Synopsis []

Description []

SideEffects []

SeeAlso []

Definition at line 46 of file mpmCore.c.

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 }
char * memset()
int DelayTarget
Definition: mpm.h:62
int fCutMin
Definition: mpm.h:66
int fOneRound
Definition: mpm.h:67
int nNumCuts
Definition: mpm.h:61
int fVerbose
Definition: mpm.h:72
int fMap4Cnf
Definition: mpm.h:69
int fMap4Gates
Definition: mpm.h:71
int fMap4Aig
Definition: mpm.h:70
Definition: mpm.h:57
int fDeriveLuts
Definition: mpm.h:68
Mpm_LibLut_t * pLib
Definition: mpm.h:59
int fUseTruth
Definition: mpm.h:64
int fVeryVerbose
Definition: mpm.h:73
int fUseDsd
Definition: mpm.h:65