summaryrefslogtreecommitdiffstats
path: root/src/aig/ntl/ntlTime.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2008-01-30 08:01:00 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2008-01-30 08:01:00 -0800
commit4d30a1e4f1edecff86d5066ce4653a370e59e5e1 (patch)
tree366355938a4af0a92f848841ac65374f338d691b /src/aig/ntl/ntlTime.c
parent6537f941887b06e588d3acfc97b5fdf48875cc4e (diff)
downloadabc-4d30a1e4f1edecff86d5066ce4653a370e59e5e1.tar.gz
abc-4d30a1e4f1edecff86d5066ce4653a370e59e5e1.tar.bz2
abc-4d30a1e4f1edecff86d5066ce4653a370e59e5e1.zip
Version abc80130
Diffstat (limited to 'src/aig/ntl/ntlTime.c')
-rw-r--r--src/aig/ntl/ntlTime.c128
1 files changed, 0 insertions, 128 deletions
diff --git a/src/aig/ntl/ntlTime.c b/src/aig/ntl/ntlTime.c
deleted file mode 100644
index 50f3d290..00000000
--- a/src/aig/ntl/ntlTime.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/**CFile****************************************************************
-
- FileName [ntlTime.c]
-
- SystemName [ABC: Logic synthesis and verification system.]
-
- PackageName [Netlist representation.]
-
- Synopsis [Creates timing manager.]
-
- Author [Alan Mishchenko]
-
- Affiliation [UC Berkeley]
-
- Date [Ver. 1.0. Started - June 20, 2005.]
-
- Revision [$Id: ntlTime.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $]
-
-***********************************************************************/
-
-#include "ntl.h"
-
-////////////////////////////////////////////////////////////////////////
-/// DECLARATIONS ///
-////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////
-/// FUNCTION DEFINITIONS ///
-////////////////////////////////////////////////////////////////////////
-
-/**Function*************************************************************
-
- Synopsis []
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-float * Ntl_ManCreateDelayTable( Vec_Int_t * vDelays, int nIns, int nOuts )
-{
- float * pDelayTable, Delay;
- int iIn, iOut, i, k;
- assert( Vec_IntSize(vDelays) % 3 == 0 );
- pDelayTable = ALLOC( float, nIns * nOuts );
- memset( pDelayTable, 0, sizeof(float) * nIns * nOuts );
- Vec_IntForEachEntry( vDelays, iIn, i )
- {
- iOut = Vec_IntEntry(vDelays, ++i);
- Delay = Aig_Int2Float( Vec_IntEntry(vDelays, ++i) );
- if ( iIn == -1 && iOut == -1 )
- for ( k = 0; k < nIns * nOuts; k++ )
- pDelayTable[k] = Delay;
- else if ( iIn == -1 )
- for ( k = 0; k < nIns; k++ )
- pDelayTable[iOut * nIns + k] = Delay;
- else if ( iOut == -1 )
- for ( k = 0; k < nOuts; k++ )
- pDelayTable[k * nIns + iIn] = Delay;
- else
- pDelayTable[iOut * nIns + iIn] = Delay;
- }
- return pDelayTable;
-}
-
-/**Function*************************************************************
-
- Synopsis []
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-Tim_Man_t * Ntl_ManCreateTiming( Ntl_Man_t * p )
-{
- Tim_Man_t * pMan;
- Vec_Ptr_t * vDelayTables;
- Ntl_Mod_t * pRoot, * pModel;
- Ntl_Obj_t * pObj;
- int i, curPi, iBox, Entry;
- assert( p->pAig != NULL );
- pRoot = Vec_PtrEntry( p->vModels, 0 );
- // start the timing manager
- pMan = Tim_ManStart( Aig_ManPiNum(p->pAig), Aig_ManPoNum(p->pAig) );
- // unpack the data in the arrival times
- if ( pRoot->vArrivals )
- Vec_IntForEachEntry( pRoot->vArrivals, Entry, i )
- Tim_ManInitPiArrival( pMan, Entry, Aig_Int2Float(Vec_IntEntry(pRoot->vArrivals,++i)) );
- // unpack the data in the required times
- if ( pRoot->vRequireds )
- Vec_IntForEachEntry( pRoot->vRequireds, Entry, i )
- Tim_ManInitPoRequired( pMan, Entry, Aig_Int2Float(Vec_IntEntry(pRoot->vRequireds,++i)) );
- // derive timing tables
- vDelayTables = Vec_PtrAlloc( Vec_PtrSize(p->vModels) );
- Ntl_ManForEachModel( p, pModel, i )
- {
- if ( pModel->vDelays )
- pModel->pDelayTable = Ntl_ManCreateDelayTable( pModel->vDelays, Ntl_ModelPiNum(pModel), Ntl_ModelPoNum(pModel) );
- Vec_PtrPush( vDelayTables, pModel->pDelayTable );
- }
- Tim_ManSetDelayTables( pMan, vDelayTables );
- // set up the boxes
- iBox = 0;
- curPi = Ntl_ModelCiNum(pRoot);
- Ntl_ManForEachBox( p, pObj, i )
- {
- Tim_ManCreateBoxFirst( pMan, Vec_IntEntry(p->vBox1Cos, iBox), Ntl_ObjFaninNum(pObj), curPi, Ntl_ObjFanoutNum(pObj), pObj->pImplem->pDelayTable );
- curPi += Ntl_ObjFanoutNum(pObj);
- iBox++;
- }
- // forget refs to the delay tables in the network
- Ntl_ManForEachModel( p, pModel, i )
- pModel->pDelayTable = NULL;
-// Tim_ManPrint( pMan );
- return pMan;
-}
-
-
-////////////////////////////////////////////////////////////////////////
-/// END OF FILE ///
-////////////////////////////////////////////////////////////////////////
-
-