oagTimer::ElmoreWireModel Class Reference
#include <oagTimerElmoreWireModel.h>
Inheritance diagram for oagTimer::ElmoreWireModel:
[legend]Collaboration diagram for oagTimer::ElmoreWireModel:
[legend]List of all members.
|
Public Member Functions |
| ElmoreWireModel () |
| ~ElmoreWireModel () |
double | ElmoreWireModel::getWireCapEff (double netLoad, double netRes, DelayType Td, DelayType Tx) |
double | ElmoreWireModel::getWireRes (oaNet *net) |
void | setUnit (const char *time, const char *cap) |
DelayType | getWireCap (oaNet *net) |
DelayType | getWireDelay (oaNet *net) |
DelayType | getWireDelay (oaNet *net, _outputMap &outputPin, _inputMap &inputPin) |
Public Attributes |
oaNode * | parentNode |
Private Member Functions |
bool | isPinNode (oaNode *node) |
double | getInputPinCap (oaNode *n) |
void | storeTopPath (oaNode *currentNode, oaFloat _res, oaFloat _elm) |
void | storeInpPin (oaNode *currNode, oaFloat _res, oaFloat _elm) |
void | updateTopPathElmoreValue (oaFloat _currCap) |
bool | isTopPathNode (oaNode *node) |
void | clearCurrentPath () |
void | clearPathCap () |
void | clearAll () |
void | findNext (nodeData &node, oaNode *previousNode) |
void | oaTraversePath (oaNode *parentNode, oaNode *previousNode) |
oaTerm * | getTerm (oaNode *n) |
oaInstTerm * | getInstTerm (oaNode *n) |
Private Attributes |
oaFloat | _currPathRes |
oaFloat | _currNodeCap |
oaFloat | _currPathCap |
oaFloat | _retPathCap |
oaFloat | _currElmorePath |
oaAnalysisPoint * | _currentAP |
vector< oaNode * > | _currNodeVector |
inputPinMap | inputPinCap |
_PathMap | topPath |
_PathMap | luMap |
_inputPinMap | inputTerm |
termMap | _terms |
instTermMap | _instTerms |
bool | branch |
bool | pinBranch |
double | time_factor |
double | cap_factor |
Constructor & Destructor Documentation
oagTimer::ElmoreWireModel::ElmoreWireModel |
( |
|
) |
|
|
Here is the call graph for this function:
Member Function Documentation
void oagTimer::ElmoreWireModel::clearAll |
( |
|
) |
[private] |
|
Here is the call graph for this function:
void oagTimer::ElmoreWireModel::clearCurrentPath |
( |
|
) |
[private] |
|
void oagTimer::ElmoreWireModel::clearPathCap |
( |
|
) |
[private] |
|
double oagTimer::ElmoreWireModel::ElmoreWireModel::getWireCapEff |
( |
double |
netLoad, |
|
|
double |
netRes, |
|
|
DelayType |
Td, |
|
|
DelayType |
Tx |
|
) |
|
|
|
Calculate and return effective capacitance |
double oagTimer::ElmoreWireModel::ElmoreWireModel::getWireRes |
( |
oaNet * |
net |
) |
|
|
|
Get total resistor values in the wire network |
void oagTimer::ElmoreWireModel::findNext |
( |
nodeData & |
node, |
|
|
oaNode * |
previousNode |
|
) |
[private] |
|
|
Search for left and right groundedNode and store it in the structure - Parameters:
-
| node | struct that hold current node data |
| prevsNode | pointer to previous node |
|
Here is the call graph for this function:
double oagTimer::ElmoreWireModel::getInputPinCap |
( |
oaNode * |
n |
) |
[private] |
|
|
Get the gate input capacitance for elmore delay calculations - Parameters:
-
| n | The node of the input pin |
- Returns:
- the gate input pin capacitance
|
oaInstTerm * oagTimer::ElmoreWireModel::getInstTerm |
( |
oaNode * |
n |
) |
[private] |
|
|
Return the corresponding input instTerm to the given node - Parameters:
-
| n | node of the input instTerm |
|
oaTerm * oagTimer::ElmoreWireModel::getTerm |
( |
oaNode * |
n |
) |
[private] |
|
|
Return the corresponding output term to the given node - Parameters:
-
| n | node of the output term |
|
double oagTimer::ElmoreWireModel::getWireCap |
( |
oaNet * |
net |
) |
[virtual] |
|
|
- Todo:
- We need more sophisticated methods here (i.e. caps depend on exact source and sink pins).
Implements oagTimer::WireModel. |
Here is the call graph for this function:
Here is the call graph for this function:
DelayType oagTimer::ElmoreWireModel::getWireDelay |
( |
oaNet * |
net |
) |
[virtual] |
|
|
- Todo:
- We need more sophisticated methods here (i.e. delays depend on exact source and sink pins).
Implements oagTimer::WireModel. |
bool oagTimer::ElmoreWireModel::isPinNode |
( |
oaNode * |
node |
) |
[private] |
|
bool oagTimer::ElmoreWireModel::isTopPathNode |
( |
oaNode * |
node |
) |
[private] |
|
|
Check if it has reached all downstream nodes |
void oagTimer::ElmoreWireModel::oaTraversePath |
( |
oaNode * |
parentNode, |
|
|
oaNode * |
previousNode |
|
) |
[private] |
|
|
Recursive function that start from the input of a Term or output of an instTerm, tranverses the wire to get the parasitics(resistance and capacitance) value for elmore delay calculations, and end until all the wire terminals are reached (output of a Term or input of an instTerm) - Parameters:
-
| parentNode | pointer to current node |
| prevs | pointer to previous node |
|
Here is the call graph for this function:
void oagTimer::ElmoreWireModel::setUnit |
( |
const char * |
time, |
|
|
const char * |
cap |
|
) |
|
|
|
Set the unit factor for cap_unit and time unit according to the specification in the .lib library - Parameters:
-
| time | The time unit |
| cap | The cap unit |
|
void oagTimer::ElmoreWireModel::storeInpPin |
( |
oaNode * |
currNode, |
|
|
oaFloat |
_res, |
|
|
oaFloat |
_elm |
|
) |
[private] |
|
|
Save the current input pin elmore value - Parameters:
-
| currNode | current input pin node |
| _res | current path resistor |
| _elm | current path elmore value |
|
void oagTimer::ElmoreWireModel::storeTopPath |
( |
oaNode * |
currentNode, |
|
|
oaFloat |
_res, |
|
|
oaFloat |
_elm |
|
) |
[private] |
|
|
If node branches or Input Pin follow down, save the current path values - Parameters:
-
| _node | current branching node |
| _res | current path resistor |
| _elm | current path elmore value |
|
void oagTimer::ElmoreWireModel::updateTopPathElmoreValue |
( |
oaFloat |
_currCap |
) |
[private] |
|
|
Update and sum Top Path existing elmore Delay Value - Parameters:
-
| _currCap | Current Path capacitor value to update the elmore value of the top path |
|
Member Data Documentation
The documentation for this class was generated from the following files:
Generated on Thu Aug 25 14:25:04 2011 by
1.3.9.1