From ed9c16d4f5e1484bb287c30a6af50832a62d35ec Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Fri, 3 Sep 2021 18:14:10 -0700 Subject: Additional MiniLUT API. --- src/aig/gia/giaMini.c | 17 +++++++++++++++++ src/base/main/abcapis.h | 1 + 2 files changed, 18 insertions(+) (limited to 'src') diff --git a/src/aig/gia/giaMini.c b/src/aig/gia/giaMini.c index 7a18d2d2..045b3b0e 100644 --- a/src/aig/gia/giaMini.c +++ b/src/aig/gia/giaMini.c @@ -589,6 +589,23 @@ int * Abc_FrameReadMiniLutNameMapping( Abc_Frame_t * pAbc ) Gia_ManStop( pGia ); return pRes; } +int * Abc_FrameReadMiniLutSwitching( Abc_Frame_t * pAbc ) +{ + Vec_Int_t * vSwitching; + int i, iObj, * pRes = NULL; + if ( pAbc->pGiaMiniLut == NULL ) + { + printf( "GIA derived from MiniLut is not available.\n" ); + return NULL; + } + vSwitching = Gia_ManComputeSwitchProbs( pAbc->pGiaMiniLut, 48, 16, 0 ); + pRes = ABC_CALLOC( int, Vec_IntSize(pAbc->vCopyMiniLut) ); + Vec_IntForEachEntry( pAbc->vCopyMiniLut, iObj, i ) + if ( iObj >= 0 ) + pRes[i] = Vec_IntEntry( vSwitching, iObj ); + Vec_IntFree( vSwitching ); + return pRes; +} /**Function************************************************************* diff --git a/src/base/main/abcapis.h b/src/base/main/abcapis.h index e384896d..1523baad 100644 --- a/src/base/main/abcapis.h +++ b/src/base/main/abcapis.h @@ -80,6 +80,7 @@ extern ABC_DLL void Abc_NtkSetFlopNum( Abc_Frame_t * pAbc, int nFlops ); extern ABC_DLL void Abc_FrameGiaInputMiniLut( Abc_Frame_t * pAbc, void * pMiniLut ); extern ABC_DLL void * Abc_FrameGiaOutputMiniLut( Abc_Frame_t * pAbc ); extern ABC_DLL char * Abc_FrameGiaOutputMiniLutAttr( Abc_Frame_t * pAbc, void * pMiniLut ); +extern ABC_DLL int * Abc_FrameReadMiniLutSwitching( Abc_Frame_t * pAbc ); // procedures to input/output NDR data-structure extern ABC_DLL void Abc_FrameInputNdr( Abc_Frame_t * pAbc, void * pData ); -- cgit v1.2.3