abc/src/misc/tim/tim.h

116 lines
5.5 KiB
C
Raw Normal View History

2007-09-06 17:01:00 +02:00
/**CFile****************************************************************
2008-01-31 05:01:00 +01:00
FileName [tim.h]
2007-09-06 17:01:00 +02:00
SystemName [ABC: Logic synthesis and verification system.]
2012-09-22 07:00:39 +02:00
PackageName [Hierarchy/timing manager.]
2007-09-06 17:01:00 +02:00
Synopsis [External declarations.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
2008-01-31 05:01:00 +01:00
Revision [$Id: tim.h,v 1.00 2007/04/28 00:00:00 alanmi Exp $]
2007-09-06 17:01:00 +02:00
***********************************************************************/
2012-01-21 13:30:10 +01:00
#ifndef ABC__aig__tim__tim_h
#define ABC__aig__tim__tim_h
2007-09-06 17:01:00 +02:00
2010-11-01 09:35:04 +01:00
2007-09-06 17:01:00 +02:00
////////////////////////////////////////////////////////////////////////
/// INCLUDES ///
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
/// PARAMETERS ///
////////////////////////////////////////////////////////////////////////
2010-11-01 09:35:04 +01:00
ABC_NAMESPACE_HEADER_START
2009-02-15 17:01:00 +01:00
2007-09-06 17:01:00 +02:00
////////////////////////////////////////////////////////////////////////
/// BASIC TYPES ///
////////////////////////////////////////////////////////////////////////
2008-01-31 05:01:00 +01:00
typedef struct Tim_Man_t_ Tim_Man_t;
2007-09-06 17:01:00 +02:00
////////////////////////////////////////////////////////////////////////
/// MACRO DEFINITIONS ///
////////////////////////////////////////////////////////////////////////
2012-05-03 13:54:40 +02:00
#define TIM_ETERNITY 1000000000
2008-01-31 05:01:00 +01:00
2007-09-06 17:01:00 +02:00
////////////////////////////////////////////////////////////////////////
/// ITERATORS ///
////////////////////////////////////////////////////////////////////////
2008-01-31 05:01:00 +01:00
////////////////////////////////////////////////////////////////////////
/// SEQUENTIAL ITERATORS ///
////////////////////////////////////////////////////////////////////////
2007-09-06 17:01:00 +02:00
////////////////////////////////////////////////////////////////////////
/// FUNCTION DECLARATIONS ///
////////////////////////////////////////////////////////////////////////
2012-09-22 07:00:39 +02:00
/*=== timBox.c ===========================================================*/
extern void Tim_ManCreateBox( Tim_Man_t * p, int firstIn, int nIns, int firstOut, int nOuts, int iDelayTable );
extern int Tim_ManBoxForCi( Tim_Man_t * p, int iCo );
extern int Tim_ManBoxForCo( Tim_Man_t * p, int iCi );
extern int Tim_ManBoxInputFirst( Tim_Man_t * p, int iBox );
extern int Tim_ManBoxOutputFirst( Tim_Man_t * p, int iBox );
extern int Tim_ManBoxInputNum( Tim_Man_t * p, int iBox );
extern int Tim_ManBoxOutputNum( Tim_Man_t * p, int iBox );
extern float * Tim_ManBoxDelayTable( Tim_Man_t * p, int iBox );
/*=== timDump.c ===========================================================*/
extern Vec_Str_t * Tim_ManSave( Tim_Man_t * p );
extern Tim_Man_t * Tim_ManLoad( Vec_Str_t * p );
/*=== timMan.c ===========================================================*/
2008-04-04 17:01:00 +02:00
extern Tim_Man_t * Tim_ManStart( int nCis, int nCos );
2012-09-22 07:00:39 +02:00
extern Tim_Man_t * Tim_ManDup( Tim_Man_t * p, int fUnitDelay );
2008-01-31 05:01:00 +01:00
extern void Tim_ManStop( Tim_Man_t * p );
2010-11-01 09:35:04 +01:00
extern void Tim_ManStopP( Tim_Man_t ** p );
2008-01-31 05:01:00 +01:00
extern void Tim_ManPrint( Tim_Man_t * p );
2012-09-22 07:00:39 +02:00
extern int Tim_ManCiNum( Tim_Man_t * p );
extern int Tim_ManCoNum( Tim_Man_t * p );
extern int Tim_ManPiNum( Tim_Man_t * p );
extern int Tim_ManPoNum( Tim_Man_t * p );
extern int Tim_ManBoxNum( Tim_Man_t * p );
extern int Tim_ManDelayTableNum( Tim_Man_t * p );
extern void Tim_ManSetDelayTables( Tim_Man_t * p, Vec_Ptr_t * vDelayTables );
2008-03-30 17:01:00 +02:00
extern void Tim_ManTravIdDisable( Tim_Man_t * p );
extern void Tim_ManTravIdEnable( Tim_Man_t * p );
2012-09-22 07:00:39 +02:00
/*=== timTime.c ===========================================================*/
extern void Tim_ManInitPiArrival( Tim_Man_t * p, int iPi, float Delay );
extern void Tim_ManInitPoRequired( Tim_Man_t * p, int iPo, float Delay );
extern void Tim_ManInitPiArrivalAll( Tim_Man_t * p, float Delay );
extern void Tim_ManInitPoRequiredAll( Tim_Man_t * p, float Delay );
extern void Tim_ManSetCoArrival( Tim_Man_t * p, int iCo, float Delay );
extern void Tim_ManSetCiRequired( Tim_Man_t * p, int iCi, float Delay );
extern void Tim_ManSetCoRequired( Tim_Man_t * p, int iCo, float Delay );
extern float Tim_ManGetCiArrival( Tim_Man_t * p, int iCi );
extern float Tim_ManGetCoRequired( Tim_Man_t * p, int iCo );
/*=== timTrav.c ===========================================================*/
extern void Tim_ManIncrementTravId( Tim_Man_t * p );
2008-04-02 17:01:00 +02:00
extern void Tim_ManSetCurrentTravIdBoxInputs( Tim_Man_t * p, int iBox );
extern void Tim_ManSetCurrentTravIdBoxOutputs( Tim_Man_t * p, int iBox );
2008-04-04 17:01:00 +02:00
extern void Tim_ManSetPreviousTravIdBoxInputs( Tim_Man_t * p, int iBox );
extern void Tim_ManSetPreviousTravIdBoxOutputs( Tim_Man_t * p, int iBox );
extern int Tim_ManIsCiTravIdCurrent( Tim_Man_t * p, int iCi );
extern int Tim_ManIsCoTravIdCurrent( Tim_Man_t * p, int iCo );
2010-11-01 09:35:04 +01:00
ABC_NAMESPACE_HEADER_END
2007-09-06 17:01:00 +02:00
#endif
////////////////////////////////////////////////////////////////////////
/// END OF FILE ///
////////////////////////////////////////////////////////////////////////