diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2021-09-03 18:14:10 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2021-09-03 18:14:10 -0700 |
commit | ed9c16d4f5e1484bb287c30a6af50832a62d35ec (patch) | |
tree | a57b8a2dd0e8b07cbfd3cd54b633e0dbb846201a /src | |
parent | a718318740a3a50f6058b3d64330dbe8ca1e6303 (diff) | |
download | abc-ed9c16d4f5e1484bb287c30a6af50832a62d35ec.tar.gz abc-ed9c16d4f5e1484bb287c30a6af50832a62d35ec.tar.bz2 abc-ed9c16d4f5e1484bb287c30a6af50832a62d35ec.zip |
Additional MiniLUT API.
Diffstat (limited to 'src')
-rw-r--r-- | src/aig/gia/giaMini.c | 17 | ||||
-rw-r--r-- | src/base/main/abcapis.h | 1 |
2 files changed, 18 insertions, 0 deletions
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 ); |