summaryrefslogtreecommitdiffstats
path: root/src/misc/tim/tim.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-01-21 04:30:10 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2012-01-21 04:30:10 -0800
commit8014f25f6db719fa62336f997963532a14c568f6 (patch)
treec691ee91a3a2d452a2bd24ac89a8c717beaa7af7 /src/misc/tim/tim.h
parentc44cc5de9429e6b4f1c05045fcf43c9cb96437b5 (diff)
downloadabc-8014f25f6db719fa62336f997963532a14c568f6.tar.gz
abc-8014f25f6db719fa62336f997963532a14c568f6.tar.bz2
abc-8014f25f6db719fa62336f997963532a14c568f6.zip
Major restructuring of the code.
Diffstat (limited to 'src/misc/tim/tim.h')
-rw-r--r--src/misc/tim/tim.h110
1 files changed, 110 insertions, 0 deletions
diff --git a/src/misc/tim/tim.h b/src/misc/tim/tim.h
new file mode 100644
index 00000000..d921bcc5
--- /dev/null
+++ b/src/misc/tim/tim.h
@@ -0,0 +1,110 @@
+/**CFile****************************************************************
+
+ FileName [tim.h]
+
+ SystemName [ABC: Logic synthesis and verification system.]
+
+ PackageName [A timing manager.]
+
+ Synopsis [External declarations.]
+
+ Author [Alan Mishchenko]
+
+ Affiliation [UC Berkeley]
+
+ Date [Ver. 1.0. Started - April 28, 2007.]
+
+ Revision [$Id: tim.h,v 1.00 2007/04/28 00:00:00 alanmi Exp $]
+
+***********************************************************************/
+
+#ifndef ABC__aig__tim__tim_h
+#define ABC__aig__tim__tim_h
+
+
+////////////////////////////////////////////////////////////////////////
+/// INCLUDES ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// PARAMETERS ///
+////////////////////////////////////////////////////////////////////////
+
+
+
+ABC_NAMESPACE_HEADER_START
+
+
+////////////////////////////////////////////////////////////////////////
+/// BASIC TYPES ///
+////////////////////////////////////////////////////////////////////////
+
+typedef struct Tim_Man_t_ Tim_Man_t;
+
+////////////////////////////////////////////////////////////////////////
+/// MACRO DEFINITIONS ///
+////////////////////////////////////////////////////////////////////////
+
+#define TIM_ETERNITY 10000
+
+////////////////////////////////////////////////////////////////////////
+/// ITERATORS ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// SEQUENTIAL ITERATORS ///
+////////////////////////////////////////////////////////////////////////
+
+////////////////////////////////////////////////////////////////////////
+/// FUNCTION DECLARATIONS ///
+////////////////////////////////////////////////////////////////////////
+
+/*=== time.c ===========================================================*/
+extern Tim_Man_t * Tim_ManStart( int nCis, int nCos );
+extern Tim_Man_t * Tim_ManDup( Tim_Man_t * p, int fDiscrete );
+extern Tim_Man_t * Tim_ManDupUnit( Tim_Man_t * p );
+extern Tim_Man_t * Tim_ManDupApprox( Tim_Man_t * p );
+extern void Tim_ManStop( Tim_Man_t * p );
+extern void Tim_ManStopP( Tim_Man_t ** p );
+extern void Tim_ManPrint( Tim_Man_t * p );
+extern void Tim_ManTravIdDisable( Tim_Man_t * p );
+extern void Tim_ManTravIdEnable( Tim_Man_t * p );
+extern void Tim_ManSetCurrentTravIdBoxInputs( Tim_Man_t * p, int iBox );
+extern void Tim_ManSetCurrentTravIdBoxOutputs( Tim_Man_t * p, int iBox );
+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 );
+extern void Tim_ManSetDelayTables( Tim_Man_t * p, Vec_Ptr_t * vDelayTables );
+extern void Tim_ManCreateBox( Tim_Man_t * p, int * pIns, int nIns, int * pOuts, int nOuts, float * pDelayTable );
+extern void Tim_ManCreateBoxFirst( Tim_Man_t * p, int firstIn, int nIns, int firstOut, int nOuts, float * pDelayTable );
+extern void Tim_ManIncrementTravId( Tim_Man_t * p );
+extern void Tim_ManInitCiArrival( Tim_Man_t * p, int iCi, float Delay );
+extern void Tim_ManInitCoRequired( Tim_Man_t * p, int iCo, 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 void Tim_ManSetCiArrivalAll( Tim_Man_t * p, float Delay );
+extern void Tim_ManSetCoRequiredAll( Tim_Man_t * p, float Delay );
+extern float Tim_ManGetCiArrival( Tim_Man_t * p, int iCi );
+extern float Tim_ManGetCoRequired( Tim_Man_t * p, int iCo );
+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 void Tim_ManChangeForAdders( Tim_Man_t * p );
+
+
+
+ABC_NAMESPACE_HEADER_END
+
+
+
+#endif
+
+////////////////////////////////////////////////////////////////////////
+/// END OF FILE ///
+////////////////////////////////////////////////////////////////////////
+