summaryrefslogtreecommitdiffstats
path: root/src/opt/fret/fretime.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/opt/fret/fretime.h')
-rw-r--r--src/opt/fret/fretime.h205
1 files changed, 0 insertions, 205 deletions
diff --git a/src/opt/fret/fretime.h b/src/opt/fret/fretime.h
deleted file mode 100644
index 2d70d7e3..00000000
--- a/src/opt/fret/fretime.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/**CFile****************************************************************
-
- FileName [fretime.h]
-
- SystemName [ABC: Logic synthesis and verification system.]
-
- PackageName [Flow-based retiming package.]
-
- Synopsis [Header file for retiming package.]
-
- Author [Aaron Hurst]
-
- Affiliation [UC Berkeley]
-
- Date [Ver. 1.0. Started - January 1, 2008.]
-
- Revision [$Id: fretime.h,v 1.00 2008/01/01 00:00:00 ahurst Exp $]
-
-***********************************************************************/
-
-#if !defined(RETIME_H_)
-#define RETIME_H_
-
-
-#include "abc.h"
-
-ABC_NAMESPACE_HEADER_START
-
-
-// #define IGNORE_TIMING
-// #define DEBUG_PRINT_FLOWS
-// #define DEBUG_VISITED
-// #define DEBUG_PREORDER
-#define DEBUG_CHECK
-// #define DEBUG_PRINT_LEVELS
-
-////////////////////////////////////////////////////////////////////////
-/// DECLARATIONS ///
-////////////////////////////////////////////////////////////////////////
-
-#define MAX_DIST 30000
-
-// flags in Flow_Data structure...
-#define VISITED_E 0x001
-#define VISITED_R 0x002
-#define VISITED (VISITED_E | VISITED_R)
-#define FLOW 0x004
-#define CROSS_BOUNDARY 0x008
-#define BLOCK 0x010
-#define INIT_0 0x020
-#define INIT_1 0x040
-#define INIT_CARE (INIT_0 | INIT_1)
-#define CONSERVATIVE 0x080
-#define BLOCK_OR_CONS (BLOCK | CONSERVATIVE)
-#define BIAS_NODE 0x100
-
-typedef struct Flow_Data_t_ {
- unsigned int mark : 16;
-
- union {
- Abc_Obj_t *pred;
- /* unsigned int var; */
- Abc_Obj_t *pInitObj;
- Abc_Obj_t *pCopy;
- Vec_Ptr_t *vNodes;
- };
-
- unsigned int e_dist : 16;
- unsigned int r_dist : 16;
-} Flow_Data_t;
-
-// useful macros for manipulating Flow_Data structure...
-#define FDATA( x ) (pManMR->pDataArray+Abc_ObjId(x))
-#define FSET( x, y ) FDATA(x)->mark |= y
-#define FUNSET( x, y ) FDATA(x)->mark &= ~y
-#define FTEST( x, y ) (FDATA(x)->mark & y)
-#define FTIMEEDGES( x ) &(pManMR->vTimeEdges[Abc_ObjId( x )])
-
-typedef struct NodeLag_T_ {
- int id;
- int lag;
-} NodeLag_t;
-
-typedef struct InitConstraint_t_ {
- Abc_Obj_t *pBiasNode;
-
- Vec_Int_t vNodes;
- Vec_Int_t vLags;
-
-} InitConstraint_t;
-
-typedef struct MinRegMan_t_ {
-
- // problem description:
- int maxDelay;
- int fComputeInitState, fGuaranteeInitState, fBlockConst;
- int nNodes, nLatches;
- int fForwardOnly, fBackwardOnly;
- int fConservTimingOnly;
- int nMaxIters;
- int fVerbose;
- Abc_Ntk_t *pNtk;
-
- int nPreRefine;
-
- // problem state
- int fIsForward;
- int fSinkDistTerminate;
- int nExactConstraints, nConservConstraints;
- int fSolutionIsDc;
- int constraintMask;
- int iteration, subIteration;
- Vec_Int_t *vLags;
-
- // problem data
- Vec_Int_t *vSinkDistHist;
- Flow_Data_t *pDataArray;
- Vec_Ptr_t *vTimeEdges;
- Vec_Ptr_t *vExactNodes;
- Vec_Ptr_t *vInitConstraints;
- Abc_Ntk_t *pInitNtk;
- Vec_Ptr_t *vNodes; // re-useable struct
-
- NodeLag_t *pInitToOrig;
- int sizeInitToOrig;
-
-} MinRegMan_t ;
-
-extern MinRegMan_t *pManMR;
-
-#define vprintf if (pManMR->fVerbose) printf
-
-static inline void FSETPRED(Abc_Obj_t *pObj, Abc_Obj_t *pPred) {
- assert(!Abc_ObjIsLatch(pObj)); // must preserve field to maintain init state linkage
- FDATA(pObj)->pred = pPred;
-}
-static inline Abc_Obj_t * FGETPRED(Abc_Obj_t *pObj) {
- return FDATA(pObj)->pred;
-}
-
-/*=== fretMain.c ==========================================================*/
-
-Abc_Ntk_t * Abc_FlowRetime_MinReg( Abc_Ntk_t * pNtk, int fVerbose,
- int fComputeInitState, int fGuaranteeInitState, int fBlockConst,
- int fForward, int fBackward, int nMaxIters,
- int maxDelay, int fFastButConservative);
-
-void print_node(Abc_Obj_t *pObj);
-
-void Abc_ObjBetterTransferFanout( Abc_Obj_t * pFrom, Abc_Obj_t * pTo, int compl );
-
-int Abc_FlowRetime_PushFlows( Abc_Ntk_t * pNtk, int fVerbose );
-int Abc_FlowRetime_IsAcrossCut( Abc_Obj_t *pCur, Abc_Obj_t *pNext );
-void Abc_FlowRetime_ClearFlows( int fClearAll );
-
-int Abc_FlowRetime_GetLag( Abc_Obj_t *pObj );
-void Abc_FlowRetime_SetLag( Abc_Obj_t *pObj, int lag );
-
-void Abc_FlowRetime_UpdateLags( );
-
-void Abc_ObjPrintNeighborhood( Abc_Obj_t *pObj, int depth );
-
-Abc_Ntk_t * Abc_FlowRetime_NtkSilentRestrash( Abc_Ntk_t * pNtk, int fCleanup );
-
-/*=== fretFlow.c ==========================================================*/
-
-int dfsplain_e( Abc_Obj_t *pObj, Abc_Obj_t *pPred );
-int dfsplain_r( Abc_Obj_t *pObj, Abc_Obj_t *pPred );
-
-void dfsfast_preorder( Abc_Ntk_t *pNtk );
-int dfsfast_e( Abc_Obj_t *pObj, Abc_Obj_t *pPred );
-int dfsfast_r( Abc_Obj_t *pObj, Abc_Obj_t *pPred );
-
-/*=== fretInit.c ==========================================================*/
-
-void Abc_FlowRetime_PrintInitStateInfo( Abc_Ntk_t * pNtk );
-
-void Abc_FlowRetime_InitState( Abc_Ntk_t * pNtk );
-
-void Abc_FlowRetime_UpdateForwardInit( Abc_Ntk_t * pNtk );
-void Abc_FlowRetime_UpdateBackwardInit( Abc_Ntk_t * pNtk );
-
-void Abc_FlowRetime_SetupBackwardInit( Abc_Ntk_t * pNtk );
-int Abc_FlowRetime_SolveBackwardInit( Abc_Ntk_t * pNtk );
-
-void Abc_FlowRetime_ConstrainInit( );
-void Abc_FlowRetime_AddInitBias( );
-void Abc_FlowRetime_RemoveInitBias( );
-
-/*=== fretTime.c ==========================================================*/
-
-void Abc_FlowRetime_InitTiming( Abc_Ntk_t *pNtk );
-void Abc_FlowRetime_FreeTiming( Abc_Ntk_t *pNtk );
-
-int Abc_FlowRetime_RefineConstraints( );
-
-void Abc_FlowRetime_ConstrainConserv( Abc_Ntk_t * pNtk );
-void Abc_FlowRetime_ConstrainExact( Abc_Obj_t * pObj );
-void Abc_FlowRetime_ConstrainExactAll( Abc_Ntk_t * pNtk );
-
-
-
-ABC_NAMESPACE_HEADER_END
-
-#endif