56 int i, Config, iClass;
64 printf(
"Skipping cell %s with %d inputs and %d outputs\n", pRepr->
pName, pRepr->
n_inputs, pRepr->
n_outputs );
72 printf(
"Skipping cell %s with non-DSD function\n", pRepr->
pName );
75 iClass = Config >> 17;
76 Config = (pRepr->
Id << 17) | (Config & 0x1FFFF);
83 printf(
"Gate %5d %-30s : ", pRepr->
Id, pRepr->
pName );
84 printf(
"Class %3d ", iClass );
85 printf(
"Area %10.3f ", pRepr->
area );
119 if ( pMioGate == NULL )
124 assert( pMioGate != NULL );
171 int i, k, iNode, iMigLit, fCompl, Config;
175 if ( vNpnGatesMio == NULL )
177 printf(
"Genlib library does not match SCL library.\n" );
227 for ( k = 0; k < (int)pCutBest->
nLeaves; k++ )
229 assert( (Config >> 6) < 720 );
230 iMigLit = pCutBest->
pLeaves[ (int)(p->
Perm6[Config >> 6][k]) ];
Abc_Ntk_t * Mpm_ManPerformCellMapping(Mig_Man_t *pMig, Mpm_Par_t *pPars, Mio_Library_t *pMio)
static unsigned Abc_ObjId(Abc_Obj_t *pObj)
Mio_Gate_t * Mio_LibraryReadGateByName(Mio_Library_t *pLib, char *pName, char *pOutName)
Abc_Ntk_t * Mpm_ManDeriveMappedAbcNtk(Mpm_Man_t *p, Mio_Library_t *pMio)
static Vec_Ptr_t * Vec_PtrStart(int nSize)
static int Mig_ManObjNum(Mig_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Wec_t_ Vec_Wec_t
INCLUDES ///.
int Mpm_CutCheckDsd6(Mpm_Man_t *p, word t)
static Mig_Obj_t * Mig_ManObj(Mig_Man_t *p, int v)
void Gia_ManStop(Gia_Man_t *p)
ABC_NAMESPACE_IMPL_START Vec_Wec_t * Mpm_ManFindDsdMatches(Mpm_Man_t *p, void *pScl)
DECLARATIONS ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
#define Mig_ManForEachCo(p, pObj, i)
void Mpm_ManPrepare(Mpm_Man_t *p)
static Vec_Wec_t * Vec_WecStart(int nSize)
static int Abc_Var2Lit(int Var, int fCompl)
static int Mig_ObjIsNode(Mig_Obj_t *p)
#define Mig_ManForEachObj(p, pObj)
MACRO DEFINITIONS ///.
Vec_Ptr_t * Mpm_ManFindCells(Mio_Library_t *pMio, SC_Lib *pScl, Vec_Wec_t *vNpnConfigs)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst1(Abc_Ntk_t *pNtk)
#define SC_LibForEachCellClass(p, pCell, i)
void Kit_DsdPrintFromTruth(unsigned *pTruth, int nVars)
static Abc_Obj_t * Abc_NtkObj(Abc_Ntk_t *pNtk, int i)
static Vec_Int_t * Vec_IntStartFull(int nSize)
static int Abc_LitNotCond(int Lit, int c)
static int Mig_ObjId(Mig_Obj_t *p)
Abc_Ntk_t * Mpm_ManCellMapping(Gia_Man_t *pGia, Mpm_Par_t *pPars, void *pMio)
static int Vec_WecSize(Vec_Wec_t *p)
Abc_Obj_t * Mpm_ManGetAbcNode(Abc_Ntk_t *pNtk, Vec_Int_t *vCopy, int iMigLit)
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
ABC_DLL Abc_Ntk_t * Abc_NtkAlloc(Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan)
DECLARATIONS ///.
static void Vec_IntWriteEntry(Vec_Int_t *p, int i, int Entry)
ABC_DLL void Abc_NtkAddDummyPoNames(Abc_Ntk_t *pNtk)
static int Abc_LitIsCompl(int Lit)
#define Vec_WecForEachLevel(vGlob, vVec, i)
MACRO DEFINITIONS ///.
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeInv(Abc_Ntk_t *pNtk, Abc_Obj_t *pFanin)
void Mig_ManStop(Mig_Man_t *p)
static int Vec_IntEntry(Vec_Int_t *p, int i)
unsigned __int64 word
DECLARATIONS ///.
#define ABC_NAMESPACE_IMPL_END
Gia_Man_t * Gia_ManDupMuxes(Gia_Man_t *p, int Limit)
STRUCTURE DEFINITIONS ///.
static void Vec_IntPush(Vec_Int_t *p, int Entry)
Vec_Int_t * Mpm_ManFindMappedNodes(Mpm_Man_t *p)
static Abc_Obj_t * Abc_NtkCreatePi(Abc_Ntk_t *pNtk)
static SC_Pin * SC_CellPin(SC_Cell *p, int i)
void Mpm_ManStop(Mpm_Man_t *p)
void Mpm_ManPrintStats(Mpm_Man_t *p)
static SC_Cell * SC_LibCell(SC_Lib *p, int i)
static void Vec_PtrWriteEntry(Vec_Ptr_t *p, int i, void *Entry)
#define ABC_NAMESPACE_IMPL_START
static Vec_Int_t * Vec_WecEntry(Vec_Wec_t *p, int i)
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
Mpm_Man_t * Mpm_ManStart(Mig_Man_t *pMig, Mpm_Par_t *pPars)
DECLARATIONS ///.
static int Abc_LitNot(int Lit)
#define MPM_CUT_MAX
INCLUDES ///.
static ABC_NAMESPACE_IMPL_START word Truth[8]
DECLARATIONS ///.
static int Vec_IntSize(Vec_Int_t *p)
static int Mpm_ObjMapRef(Mpm_Man_t *p, Mig_Obj_t *pObj)
void Extra_PrintBinary(FILE *pFile, unsigned Sign[], int nBits)
static word * Vec_WrdArray(Vec_Wrd_t *p)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst0(Abc_Ntk_t *pNtk)
void Mpm_ManPerform(Mpm_Man_t *p)
#define MPM_VAR_MAX
INCLUDES ///.
static Abc_Obj_t * Abc_NtkCreateNode(Abc_Ntk_t *pNtk)
static int Abc_Lit2Var(int Lit)
#define Mig_ManForEachCi(p, pObj, i)
static Mpm_Cut_t * Mpm_ObjCutBestP(Mpm_Man_t *p, Mig_Obj_t *pObj)
static void Vec_IntFree(Vec_Int_t *p)
Mig_Man_t * Mig_ManCreate(void *pGia)
FUNCTION DECLARATIONS ///.
void Mpm_ManPrintStatsInit(Mpm_Man_t *p)
ABC_DLL void Abc_NtkAddDummyPiNames(Abc_Ntk_t *pNtk)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
static Abc_Obj_t * Abc_NtkCreatePo(Abc_Ntk_t *pNtk)
static int Mig_ObjFaninLit(Mig_Obj_t *p, int i)
static void Vec_PtrFree(Vec_Ptr_t *p)