ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
mpmCore.c File Reference
#include "aig/gia/gia.h"
#include "mpmInt.h"
Include dependency graph for mpmCore.c:

Go to the source code of this file.

Functions

ABC_NAMESPACE_IMPL_START void Mpm_ManSetParsDefault (Mpm_Par_t *p)
 DECLARATIONS ///.
 
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

◆ Mpm_ManLutMapping()

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}
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
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)
Definition mpmCore.c:75
#define MPM_CUT_MAX
INCLUDES ///.
Definition mpmInt.h:50
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
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
Here is the call graph for this function:

◆ Mpm_ManPerformLutMapping()

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 )
84 if ( p->pPars->fVerbose )
86 pNew = (Gia_Man_t *)Mpm_ManFromIfLogic( p );
87 Mpm_ManStop( p );
88 return pNew;
89}
void * Mpm_ManFromIfLogic(Mpm_Man_t *pMan)
Definition mpmAbc.c:213
void Mpm_ManPrintStatsInit(Mpm_Man_t *p)
Definition mpmMan.c:166
struct Mpm_Man_t_ Mpm_Man_t
Definition mpmInt.h:94
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
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Mpm_ManSetParsDefault()

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}
struct Mpm_Par_t_ Mpm_Par_t
Definition mpm.h:56
char * memset()
Here is the call graph for this function: