Commit efb8ad0a by Alan Mishchenko

Extending and improving timing manager.

parent 7f65f0d7
...@@ -151,9 +151,11 @@ extern char * Mio_GateReadSop ( Mio_Gate_t * pGate ); ...@@ -151,9 +151,11 @@ extern char * Mio_GateReadSop ( Mio_Gate_t * pGate );
extern Vec_Int_t * Mio_GateReadExpr ( Mio_Gate_t * pGate ); extern Vec_Int_t * Mio_GateReadExpr ( Mio_Gate_t * pGate );
extern word Mio_GateReadTruth ( Mio_Gate_t * pGate ); extern word Mio_GateReadTruth ( Mio_Gate_t * pGate );
extern int Mio_GateReadValue ( Mio_Gate_t * pGate ); extern int Mio_GateReadValue ( Mio_Gate_t * pGate );
extern int Mio_GateReadCell ( Mio_Gate_t * pGate );
extern char * Mio_GateReadPinName ( Mio_Gate_t * pGate, int iPin ); extern char * Mio_GateReadPinName ( Mio_Gate_t * pGate, int iPin );
extern float Mio_GateReadPinDelay ( Mio_Gate_t * pGate, int iPin ); extern float Mio_GateReadPinDelay ( Mio_Gate_t * pGate, int iPin );
extern void Mio_GateSetValue ( Mio_Gate_t * pGate, int Value ); extern void Mio_GateSetValue ( Mio_Gate_t * pGate, int Value );
extern void Mio_GateSetCell ( Mio_Gate_t * pGate, int Cell );
extern int Mio_GateIsInv ( Mio_Gate_t * pGate ); extern int Mio_GateIsInv ( Mio_Gate_t * pGate );
extern char * Mio_PinReadName ( Mio_Pin_t * pPin ); extern char * Mio_PinReadName ( Mio_Pin_t * pPin );
extern Mio_PinPhase_t Mio_PinReadPhase ( Mio_Pin_t * pPin ); extern Mio_PinPhase_t Mio_PinReadPhase ( Mio_Pin_t * pPin );
......
...@@ -18,6 +18,9 @@ ...@@ -18,6 +18,9 @@
***********************************************************************/ ***********************************************************************/
#ifndef ABC__scl_Con__h
#define ABC__scl_Con__h
ABC_NAMESPACE_HEADER_START ABC_NAMESPACE_HEADER_START
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
...@@ -279,11 +282,11 @@ static inline float Scl_ConGetOutReqFloat( int i ) { return Scl_Wrd2Flt( Scl_ ...@@ -279,11 +282,11 @@ static inline float Scl_ConGetOutReqFloat( int i ) { return Scl_Wrd2Flt( Scl_
static inline float Scl_ConGetOutLoadFloat( int i ) { return Scl_Wrd2Flt( Scl_ConGetOutLoad(i) ); } static inline float Scl_ConGetOutLoadFloat( int i ) { return Scl_Wrd2Flt( Scl_ConGetOutLoad(i) ); }
ABC_NAMESPACE_HEADER_END
#endif
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
/// END OF FILE /// /// END OF FILE ///
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////
ABC_NAMESPACE_HEADER_END
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
#include "misc/util/utilTruth.h" #include "misc/util/utilTruth.h"
#include "opt/dau/dau.h" #include "opt/dau/dau.h"
#include "map/mio/exp.h" #include "map/mio/exp.h"
#include "map/scl/sclCon.h"
#include "base/main/main.h"
ABC_NAMESPACE_IMPL_START ABC_NAMESPACE_IMPL_START
...@@ -212,10 +214,10 @@ p->timeLib = Abc_Clock(); ...@@ -212,10 +214,10 @@ p->timeLib = Abc_Clock();
p->timeLib = Abc_Clock() - p->timeLib; p->timeLib = Abc_Clock() - p->timeLib;
if ( !pPars->fArea ) if ( !pPars->fArea )
{ {
if ( p->pMit ) if ( Abc_FrameReadLibScl() )
p->pMit = Sfm_MitStart( pLib, NULL, pNtk, p->DeltaCrit ); p->pMit = Sfm_MitStart( pLib, (SC_Lib *)Abc_FrameReadLibScl(), Scl_ConReadMan(), pNtk, p->DeltaCrit );
else else
p->pTim = Sfm_TimStart( pLib, NULL, pNtk, p->DeltaCrit ); p->pTim = Sfm_TimStart( pLib, Scl_ConReadMan(), pNtk, p->DeltaCrit );
} }
if ( pPars->fVeryVerbose ) if ( pPars->fVeryVerbose )
// if ( pPars->fVerbose ) // if ( pPars->fVerbose )
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include "misc/vec/vec.h" #include "misc/vec/vec.h"
#include "sat/bsat/satSolver.h" #include "sat/bsat/satSolver.h"
#include "misc/util/utilNam.h" #include "misc/util/utilNam.h"
#include "map/scl/sclLib.h"
#include "map/scl/sclCon.h" #include "map/scl/sclCon.h"
#include "misc/st/st.h" #include "misc/st/st.h"
#include "map/mio/mio.h" #include "map/mio/mio.h"
...@@ -226,7 +227,7 @@ extern int Sfm_TimPriorityNodes( Sfm_Tim_t * p, Vec_Int_t * vCands, int ...@@ -226,7 +227,7 @@ extern int Sfm_TimPriorityNodes( Sfm_Tim_t * p, Vec_Int_t * vCands, int
extern int Sfm_TimNodeIsNonCritical( Sfm_Tim_t * p, Abc_Obj_t * pPivot, Abc_Obj_t * pNode ); extern int Sfm_TimNodeIsNonCritical( Sfm_Tim_t * p, Abc_Obj_t * pPivot, Abc_Obj_t * pNode );
extern int Sfm_TimEvalRemapping( Sfm_Tim_t * p, Vec_Int_t * vFanins, Vec_Int_t * vMap, Mio_Gate_t * pGate1, char * pFans1, Mio_Gate_t * pGate2, char * pFans2 ); extern int Sfm_TimEvalRemapping( Sfm_Tim_t * p, Vec_Int_t * vFanins, Vec_Int_t * vMap, Mio_Gate_t * pGate1, char * pFans1, Mio_Gate_t * pGate2, char * pFans2 );
/*=== sfmMit.c ==========================================================*/ /*=== sfmMit.c ==========================================================*/
extern Sfm_Mit_t * Sfm_MitStart( Mio_Library_t * pLib, Scl_Con_t * pExt, Abc_Ntk_t * pNtk, int DeltaCrit ); extern Sfm_Mit_t * Sfm_MitStart( Mio_Library_t * pLib, SC_Lib * pScl, Scl_Con_t * pExt, Abc_Ntk_t * pNtk, int DeltaCrit );
extern void Sfm_MitStop( Sfm_Mit_t * p ); extern void Sfm_MitStop( Sfm_Mit_t * p );
extern int Sfm_MitReadNtkDelay( Sfm_Mit_t * p ); extern int Sfm_MitReadNtkDelay( Sfm_Mit_t * p );
extern int Sfm_MitReadObjDelay( Sfm_Mit_t * p, int iObj ); extern int Sfm_MitReadObjDelay( Sfm_Mit_t * p, int iObj );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment