summaryrefslogtreecommitdiffstats
path: root/src/misc/tim/tim.h
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-09-21 22:00:39 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2012-09-21 22:00:39 -0700
commitfdd043ca341c908bc7dc2ad62fc9974152e4f740 (patch)
tree0ad9767db7e06ed2b41494ef39d8bed57b8464c0 /src/misc/tim/tim.h
parentc1f8baafb86cddf08f56a3bdd7329cad68b5413f (diff)
downloadabc-fdd043ca341c908bc7dc2ad62fc9974152e4f740.tar.gz
abc-fdd043ca341c908bc7dc2ad62fc9974152e4f740.tar.bz2
abc-fdd043ca341c908bc7dc2ad62fc9974152e4f740.zip
Upgrading hierarchy timing manager.
Diffstat (limited to 'src/misc/tim/tim.h')
-rw-r--r--src/misc/tim/tim.h63
1 files changed, 34 insertions, 29 deletions
diff --git a/src/misc/tim/tim.h b/src/misc/tim/tim.h
index 9a7667d5..1eb1de78 100644
--- a/src/misc/tim/tim.h
+++ b/src/misc/tim/tim.h
@@ -4,7 +4,7 @@
SystemName [ABC: Logic synthesis and verification system.]
- PackageName [A timing manager.]
+ PackageName [Hierarchy/timing manager.]
Synopsis [External declarations.]
@@ -30,10 +30,7 @@
/// PARAMETERS ///
////////////////////////////////////////////////////////////////////////
-
-
ABC_NAMESPACE_HEADER_START
-
////////////////////////////////////////////////////////////////////////
/// BASIC TYPES ///
@@ -59,43 +56,51 @@ typedef struct Tim_Man_t_ Tim_Man_t;
/// FUNCTION DECLARATIONS ///
////////////////////////////////////////////////////////////////////////
-/*=== time.c ===========================================================*/
+/*=== 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 ===========================================================*/
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 Tim_Man_t * Tim_ManDup( Tim_Man_t * p, int fUnitDelay );
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 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 );
extern void Tim_ManTravIdDisable( Tim_Man_t * p );
extern void Tim_ManTravIdEnable( Tim_Man_t * p );
+/*=== 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 );
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