oagTimer::TPointMaster Class Reference

#include <oagTimerTPointMaster.h>

List of all members.

Public Member Functions

 TPointMaster ()
 ~TPointMaster ()
void addInPath (oaModTerm *term, const ModelType *delay, const ModelType *slew, int transition)
void addOutPath (oaModTerm *term, const ModelType *delay, const ModelType *slew, int transition)

Public Attributes

double cap
double loadLimit

Static Public Attributes

const int TRANSITION_SRC_RISE = 0x01
const int TRANSITION_SRC_FALL = 0x02
const int TRANSITION_DST_RISE = 0x10
const int TRANSITION_DST_FALL = 0x20

Private Types

typedef std::vector< TimerPathpathVector
typedef std::vector< ModelType * > modelVector

Private Member Functions

void _makePath (TimerPath &p, oaModTerm *term, const ModelType *delay, const ModelType *slew, int transition)

Static Private Member Functions

void initAppDefs ()
 Initialize the appDefs associated with TPointMasters.
TPointMastercreate (oaModTerm *term)
TPointMasterget (oaModTerm *term)

Private Attributes

pathVector inPaths
pathVector outPaths
modelVector _models

Static Private Attributes

oaVoidPointerAppDef< oaModTerm > * _termAppDef = 0

Friends

class TPoint
class Timer
class Report
class LibData
class ElmoreWireModel
class PowerSenseOpt
class DuetSensitivity
class Opt
class Util
class TimerUtil
class SubTimer


Detailed Description

The TPointMaster class defines the necessary information at a point on the standard cell, which is an instTerm in the design and aTerm in the standard cell. When we do timing analysis, we need to go and find the corresponding TPointMaster and get all the timing information such as load, cap, delay table and slew table.

Todo:
Timing models are explicitly copied into the TPointMaster, once for each path which uses the model. This should be replaced by a pointer reference instead.


Member Typedef Documentation

typedef std::vector<ModelType *> oagTimer::TPointMaster::modelVector [private]
 

This defines the vector of the models

typedef std::vector<TimerPath> oagTimer::TPointMaster::pathVector [private]
 

This defines the vector of the paths


Constructor & Destructor Documentation

oagTimer::TPointMaster::TPointMaster  )  [inline]
 

The constructor.

oagTimer::TPointMaster::~TPointMaster  ) 
 

The destructor.


Member Function Documentation

void oagTimer::TPointMaster::_makePath TimerPath p,
oaModTerm *  term,
const ModelType delay,
const ModelType slew,
int  transition
[private]
 

Fill in the data fields for a TimerPath.

Todo:
This should be moved to a TimerPath constructor.
Parameters:
p Reference to the TimerPath to fill in.
term The ModTerm for the other point on the path.
delay The delay model of this path.
slew The slew model of this path.
transition The type of this path's transition.

void oagTimer::TPointMaster::addInPath oaModTerm *  term,
const ModelType delay,
const ModelType slew,
int  transition
 

Create a new path and add it to the list of input paths for this TPointMaster.

Parameters:
term The ModTerm for the other point on the path.
delay The delay model of this path.
slew The slew model of this path.
transition The type of this path's transition.

Here is the call graph for this function:

void oagTimer::TPointMaster::addOutPath oaModTerm *  term,
const ModelType delay,
const ModelType slew,
int  transition
 

Create a new path and add it to the list of output paths for this TPointMaster.

Parameters:
term The ModTerm for the other point on the path.
delay The delay model of this path.
slew The slew model of this path.
transition The type of this path's transition.

Here is the call graph for this function:

TPointMaster * oagTimer::TPointMaster::create oaModTerm *  term  )  [static, private]
 

Create a TPointMaster for the given ModTerm.

It is a fatal error to try to create a TPointMaster for a ModTerm which already has a TPointMaster.

Parameters:
term The ModTerm for which to create TPointMaster.
Returns:
The new TPointMaster.

Here is the call graph for this function:

TPointMaster * oagTimer::TPointMaster::get oaModTerm *  term  )  [static, private]
 

Get the TPointMaster for the given ModTerm, or 0 if the ModTerm has no TPointMaster.

Parameters:
term The ModTerm to query.
Returns:
The corresponding TPointMaster.

void oagTimer::TPointMaster::initAppDefs  )  [static, private]
 

Initialize the appDefs associated with TPointMasters.


Friends And Related Function Documentation

friend class DuetSensitivity [friend]
 

friend class ElmoreWireModel [friend]
 

friend class LibData [friend]
 

friend class Opt [friend]
 

friend class PowerSenseOpt [friend]
 

friend class Report [friend]
 

friend class SubTimer [friend]
 

friend class Timer [friend]
 

friend class TimerUtil [friend]
 

friend class TPoint [friend]
 

friend class Util [friend]
 


Member Data Documentation

modelVector oagTimer::TPointMaster::_models [private]
 

The vector of models associated with this timing point

oaVoidPointerAppDef< oaModTerm > * oagTimer::TPointMaster::_termAppDef = 0 [static, private]
 

double oagTimer::TPointMaster::cap
 

The capacitance at this timing point master.

pathVector oagTimer::TPointMaster::inPaths [private]
 

A vector of paths which end at this timing point

double oagTimer::TPointMaster::loadLimit
 

The load limit at this timing point master.

pathVector oagTimer::TPointMaster::outPaths [private]
 

A vector of paths which goes from this timing point

const int oagTimer::TPointMaster::TRANSITION_DST_FALL = 0x20 [static]
 

const int oagTimer::TPointMaster::TRANSITION_DST_RISE = 0x10 [static]
 

const int oagTimer::TPointMaster::TRANSITION_SRC_FALL = 0x02 [static]
 

const int oagTimer::TPointMaster::TRANSITION_SRC_RISE = 0x01 [static]
 


The documentation for this class was generated from the following files:
Generated on Thu Aug 25 14:26:12 2011 by  doxygen 1.3.9.1