summaryrefslogtreecommitdiffstats
path: root/src/base/main
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2018-12-09 15:18:12 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2018-12-09 15:18:12 -0800
commit36585eff57d16171bb4a53fdc6348613d44eabe6 (patch)
tree4c0368dc4b7022f5aa80282d3301b784465adbdb /src/base/main
parentfe03f0423de9718b122d6200042ecb553520fb0f (diff)
downloadabc-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.h5
-rw-r--r--src/base/main/main.h2
-rw-r--r--src/base/main/mainFrame.c10
-rw-r--r--src/base/main/mainInt.h2
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;
};