21#if !defined(RETIME_H_)
46#define VISITED_E 0x001
47#define VISITED_R 0x002
48#define VISITED (VISITED_E | VISITED_R)
50#define CROSS_BOUNDARY 0x008
54#define INIT_CARE (INIT_0 | INIT_1)
55#define CONSERVATIVE 0x080
56#define BLOCK_OR_CONS (BLOCK | CONSERVATIVE)
57#define BIAS_NODE 0x100
60#define MAX(a,b) ((a)>(b)?(a):(b))
61#define MIN(a,b) ((a)<(b)?(a):(b))
80#define FDATA( x ) (pManMR->pDataArray+Abc_ObjId(x))
81#define FSET( x, y ) FDATA(x)->mark |= y
82#define FUNSET( x, y ) FDATA(x)->mark &= ~y
83#define FTEST( x, y ) (FDATA(x)->mark & y)
84#define FTIMEEDGES( x ) &(pManMR->vTimeEdges[Abc_ObjId( x )])
138#define vprintf if (pManMR->fVerbose) printf
141 assert(!Abc_ObjIsLatch(pObj));
142 FDATA(pObj)->pred = pPred;
145 return FDATA(pObj)->pred;
151 int fComputeInitState,
int fGuaranteeInitState,
int fBlockConst,
152 int fForward,
int fBackward,
int nMaxIters,
153 int maxDelay,
int fFastButConservative);
struct Abc_Obj_t_ Abc_Obj_t
struct Abc_Ntk_t_ Abc_Ntk_t
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
pcover complement(pcube *T)
void Abc_ObjPrintNeighborhood(Abc_Obj_t *pObj, int depth)
void Abc_FlowRetime_ClearFlows(int fClearAll)
int Abc_FlowRetime_IsAcrossCut(Abc_Obj_t *pCur, Abc_Obj_t *pNext)
void Abc_FlowRetime_UpdateLags()
void Abc_ObjBetterTransferFanout(Abc_Obj_t *pFrom, Abc_Obj_t *pTo, int complement)
void Abc_FlowRetime_ConstrainExact(Abc_Obj_t *pObj)
int Abc_FlowRetime_SolveBackwardInit(Abc_Ntk_t *pNtk)
int dfsfast_e(Abc_Obj_t *pObj, Abc_Obj_t *pPred)
int Abc_FlowRetime_GetLag(Abc_Obj_t *pObj)
struct MinRegMan_t_ MinRegMan_t
struct NodeLag_T_ NodeLag_t
void Abc_FlowRetime_AddInitBias()
int dfsplain_e(Abc_Obj_t *pObj, Abc_Obj_t *pPred)
int Abc_FlowRetime_PushFlows(Abc_Ntk_t *pNtk, int fVerbose)
int dfsplain_r(Abc_Obj_t *pObj, Abc_Obj_t *pPred)
void Abc_FlowRetime_ConstrainConserv(Abc_Ntk_t *pNtk)
int dfsfast_r(Abc_Obj_t *pObj, Abc_Obj_t *pPred)
void Abc_FlowRetime_PrintInitStateInfo(Abc_Ntk_t *pNtk)
void Abc_FlowRetime_SetLag(Abc_Obj_t *pObj, int lag)
void Abc_FlowRetime_RemoveInitBias()
void Abc_FlowRetime_UpdateForwardInit(Abc_Ntk_t *pNtk)
int Abc_FlowRetime_RefineConstraints()
Abc_Ntk_t * Abc_FlowRetime_NtkSilentRestrash(Abc_Ntk_t *pNtk, int fCleanup)
void Abc_FlowRetime_InitState(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
void Abc_FlowRetime_UpdateBackwardInit(Abc_Ntk_t *pNtk)
struct Flow_Data_t_ Flow_Data_t
void Abc_FlowRetime_ConstrainInit()
void print_node(Abc_Obj_t *pObj)
struct InitConstraint_t_ InitConstraint_t
void Abc_FlowRetime_InitTiming(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
void Abc_FlowRetime_SetupBackwardInit(Abc_Ntk_t *pNtk)
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)
FUNCTION DEFINITIONS ///.
void Abc_FlowRetime_ConstrainExactAll(Abc_Ntk_t *pNtk)
void Abc_FlowRetime_FreeTiming(Abc_Ntk_t *pNtk)
void dfsfast_preorder(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Vec_Ptr_t * vInitConstraints
Vec_Int_t * vSinkDistHist
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.