diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2018-12-09 15:18:12 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2018-12-09 15:18:12 -0800 |
commit | 36585eff57d16171bb4a53fdc6348613d44eabe6 (patch) | |
tree | 4c0368dc4b7022f5aa80282d3301b784465adbdb /src/base/main | |
parent | fe03f0423de9718b122d6200042ecb553520fb0f (diff) | |
download | abc-36585eff57d16171bb4a53fdc6348613d44eabe6.tar.gz abc-36585eff57d16171bb4a53fdc6348613d44eabe6.tar.bz2 abc-36585eff57d16171bb4a53fdc6348613d44eabe6.zip |
Experiments with retiming (adding new APIs).
Diffstat (limited to 'src/base/main')
-rw-r--r-- | src/base/main/abcapis.h | 5 | ||||
-rw-r--r-- | src/base/main/main.h | 2 | ||||
-rw-r--r-- | src/base/main/mainFrame.c | 10 | ||||
-rw-r--r-- | src/base/main/mainInt.h | 2 |
4 files changed, 17 insertions, 2 deletions
diff --git a/src/base/main/abcapis.h b/src/base/main/abcapis.h index 9ac2036a..e384896d 100644 --- a/src/base/main/abcapis.h +++ b/src/base/main/abcapis.h @@ -81,6 +81,11 @@ extern ABC_DLL void Abc_FrameGiaInputMiniLut( Abc_Frame_t * pAbc, void * pMini extern ABC_DLL void * Abc_FrameGiaOutputMiniLut( Abc_Frame_t * pAbc ); extern ABC_DLL char * Abc_FrameGiaOutputMiniLutAttr( Abc_Frame_t * pAbc, void * pMiniLut ); +// procedures to input/output NDR data-structure +extern ABC_DLL void Abc_FrameInputNdr( Abc_Frame_t * pAbc, void * pData ); +extern ABC_DLL void * Abc_FrameOutputNdr( Abc_Frame_t * pAbc ); +extern ABC_DLL int * Abc_FrameOutputNdrArray( Abc_Frame_t * pAbc ); + // procedures to set CI/CO arrival/required times extern ABC_DLL void Abc_NtkSetCiArrivalTime( Abc_Frame_t * pAbc, int iCi, float Rise, float Fall ); extern ABC_DLL void Abc_NtkSetCoRequiredTime( Abc_Frame_t * pAbc, int iCo, float Rise, float Fall ); diff --git a/src/base/main/main.h b/src/base/main/main.h index d7f68be4..2efb3358 100644 --- a/src/base/main/main.h +++ b/src/base/main/main.h @@ -89,7 +89,7 @@ extern ABC_DLL void Abc_FrameReplaceCurrentNetwork( Abc_Frame_t * p, extern ABC_DLL void Abc_FrameUnmapAllNetworks( Abc_Frame_t * p ); extern ABC_DLL void Abc_FrameDeleteAllNetworks( Abc_Frame_t * p ); -extern ABC_DLL void Abc_FrameSetGlobalFrame( Abc_Frame_t * p ); +extern ABC_DLL void Abc_FrameSetGlobalFrame( Abc_Frame_t * p ); extern ABC_DLL Abc_Frame_t * Abc_FrameGetGlobalFrame(); extern ABC_DLL Abc_Frame_t * Abc_FrameReadGlobalFrame(); diff --git a/src/base/main/mainFrame.c b/src/base/main/mainFrame.c index eff730d8..1d54f4e4 100644 --- a/src/base/main/mainFrame.c +++ b/src/base/main/mainFrame.c @@ -22,6 +22,7 @@ #include "mainInt.h" #include "bool/dec/dec.h" #include "map/if/if.h" +#include "aig/miniaig/ndr.h" #ifdef ABC_USE_CUDD #include "bdd/extrab/extraBdd.h" @@ -83,6 +84,10 @@ int Abc_FrameReadCexRegNum( Abc_Frame_t * p ) { return s_GlobalFr int Abc_FrameReadCexPo( Abc_Frame_t * p ) { return s_GlobalFrame->pCex->iPo; } int Abc_FrameReadCexFrame( Abc_Frame_t * p ) { return s_GlobalFrame->pCex->iFrame; } +void Abc_FrameInputNdr( Abc_Frame_t * pAbc, void * pData ) { Ndr_Delete(s_GlobalFrame->pNdr); s_GlobalFrame->pNdr = pData; } +void * Abc_FrameOutputNdr( Abc_Frame_t * pAbc ) { void * pData = s_GlobalFrame->pNdr; s_GlobalFrame->pNdr = NULL; return pData; } +int * Abc_FrameOutputNdrArray( Abc_Frame_t * pAbc ) { int * pArray = s_GlobalFrame->pNdrArray; s_GlobalFrame->pNdrArray = NULL; return pArray; } + void Abc_FrameSetLibLut( void * pLib ) { s_GlobalFrame->pLibLut = pLib; } void Abc_FrameSetLibBox( void * pLib ) { s_GlobalFrame->pLibBox = pLib; } void Abc_FrameSetLibGen( void * pLib ) { s_GlobalFrame->pLibGen = pLib; } @@ -232,7 +237,9 @@ void Abc_FrameDeallocate( Abc_Frame_t * p ) ABC_FREE( p->pCex ); Vec_IntFreeP( &p->pAbcWlcInv ); Abc_NamDeref( s_GlobalFrame->pJsonStrs ); - Vec_WecFreeP(&s_GlobalFrame->vJsonObjs ); + Vec_WecFreeP( &s_GlobalFrame->vJsonObjs ); + Ndr_Delete( s_GlobalFrame->pNdr ); + ABC_FREE( s_GlobalFrame->pNdrArray ); Gia_ManStopP( &p->pGiaMiniAig ); Gia_ManStopP( &p->pGiaMiniLut ); @@ -240,6 +247,7 @@ void Abc_FrameDeallocate( Abc_Frame_t * p ) Vec_IntFreeP( &p->vCopyMiniLut ); ABC_FREE( p->pArray ); ABC_FREE( p->pBoxes ); + ABC_FREE( p ); s_GlobalFrame = NULL; diff --git a/src/base/main/mainInt.h b/src/base/main/mainInt.h index e55e6e7f..7317c36f 100644 --- a/src/base/main/mainInt.h +++ b/src/base/main/mainInt.h @@ -150,6 +150,8 @@ struct Abc_Frame_t_ Vec_Int_t * vCopyMiniLut; int * pArray; int * pBoxes; + void * pNdr; + int * pNdrArray; Abc_Frame_Callback_BmcFrameDone_Func pFuncOnFrameDone; }; |