#include <oagTimerUtil.h>
Collaboration diagram for oagTimer::Util:
Public Member Functions | |
Util () | |
~Util () | |
void | add (oaDesign *d, Timer *t) |
double | getCellArea (oaInst *inst) |
oaString | getCellName (oaModInst *i) |
oaString | getCellName (oaOccInst *i) |
oaOccInstTerm * | findOccInTerms (oaDesign *design, oaModScalarInst *m) |
oaOccInstTerm * | findOccOutTerm (oaDesign *design, oaModScalarInst *m) |
oaModInstTerm * | getOutInstTerm (oaModNet *net) |
TimeType | getIOArr (oaModInst *i, oaDesign *design, Timer *timing, io_Type io) |
TimeType | getIOArr (oaOccInst *i, oaDesign *design, Timer *timing, io_Type io) |
DelayType | getIOSlack (oaModInst *i, oaDesign *design, Timer *timing, io_Type io) |
void | updateFanIOTiming (oaDesign *design, Timer *t, oaModInst *m) |
void | invalidateFanIOTiming (oaDesign *design, Timer *t, oaModInst *m) |
vector< oaModInst * > | getOtherFanin (oaModInst *currFanin, oaModInst *currCell) |
void | getMatchCells (vector< oaString > &list, int sizes) |
bool | isGreaterThan (oaString current, oaString other) |
bool | isLessThan (oaString current, oaString other) |
int | swapCell (oaString cellName, oaModInst *currModInst) |
Static Public Member Functions | |
void | getCellFootprint (oaString cellName, oaString &footprint) |
double | getCellLeakagePower (oaModInst *modInst) |
double | getCellLeakagePower (oaOccInst *occInst) |
double | getCellLeakagePower (oaInst *inst) |
double | getCellLeakagePower (oaModule *m) |
double | getCellLeakagePower (const char *s) |
double | getCellLeakagePower (oaString cellName) |
double | getTotalLeakPower (const oaDesign *design) |
double | getPowerSensitivity (const char *curr, const char *other) |
double | getCellInputCap (oaOccInstTerm *i, oaString s, Timer *timer) |
double | getCellDelayEstimate (oaOccInstTerm *inpTerm, oaString otherSize, double load, Timer *timer) |
DelayType | getCellRiseDelay (oaOccInstTerm *inPin) |
DelayType | getCellFallDelay (oaOccInstTerm *inPin) |
DelayType | getCellDelay (oaOccInstTerm *inPin) |
DelayType | getDeltaDelay (oaDesign *design, Timer *timing, CellData *c, oaString newSize) |
DelayType | getDeltaDelay (oaOccObject *block, TPointMaster *otherTM, Timer *timer) |
double | getUpSizeDeltaDelay (oaDesign *design, Timer *timing, CellData *c) |
DelayType | getWorstInputSlack (Timer *t, oaOccInst *inst) |
double | getDownSizeDeltaDelay (oaDesign *design, Timer *timing, CellData *c) |
bool | hasValidArrTime (Timer *timer, CellData *cell) |
double | getMaxNetDelay (oaOccInstTerm *t) |
oaString | getInstName (oaModInst *i) |
oaString | getInstName (oaOccInst *i) |
void | parseLibCellName (oaString &name, oaString &basename, double &size) |
void | parseVtSTLibCellName (oaString name, oaString &basename, double &size) |
void | parseSTLibCellName (oaString name, oaString &basename, double &size) |
void | parseNangateLibCellName (oaString name, oaString &basename, double &size) |
void | parseFootprintLibCellName (oaString name, oaString &basename, double &size) |
vector< instVector > | getCombinations (instVector insts, int k) |
void | genComb (instVector L, int k, vector< instVector > &T, instVector &C) |
void | Util::downSizeAll (oaDesign *design, Timer *timer) |
void | Util::changeToMinCellSize (oaDesign *design, Timer *timer) |
void | reportSlacks (oaDesign *design, Timer *timer) |
void | reportGates (oaDesign *design) |
void | reportTimingInfo (oaDesign *design, Timer *t) |
void | reportCellTiming (CellData *cell, Timer *t) |
void | reportAllCellTiming (oaDesign *design, Timer *t) |
void | reportTimingFlag (oaDesign *des) |
void | printAllNetData (oaDesign *design) |
std::string | getBlockName (oaOccObject *oPtr) |
void | linear_fit (double &a, double &b, double *x, double *y, int N) |
Private Attributes | |
oaDesign * | topDesign |
Timer * | timer |
|
|
|
|
|
|
|
|
|
|
|
|
|
returns the name of block object FIXME should move out of the timer class
|
|
|
|
|
|
This function estimate the cell delay for the given new size (otherSize) with respect to the given input arc (inpTerm) * The estimate is based on slew and load of current design configuration
|
Here is the call graph for this function:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Here is the call graph for this function:
|
|
|
This function queries the worst (R/F) delay (from input to output) with respect to the given input pin. t: the current timer object inPin: the input from delay propagates cell delay |
|
|
|
This function queries the difference in delay between the current OccObject and the same OccObject with the other TPointMaster *otherTM. OccObject: current cell block TPointMaster: timing point master for the other lib cell Timer: current timer object Arrival Time Sensitivity (newAT - currAT) |
Here is the call graph for this function:
|
This function queries the difference in arrival time between the current CellData and the same CellData with the new library size. oaDesign*: current top design Timer: current timer object CellData*: current cell data object to query deltaAT oaString: the new lib size to query AT for on the given CellData object Arrival Time Sensitivity (newAT - currAT) |
|
This function queries the change in delay if the next smaller cell size was used while keeping current input slew and output load cap oaDesign: the current top design hierarchy CellData: the cell to query its delta delay double: delta delay (DownSized Delay - Current Delay) *DBL_MAX is returned if no next size found |
Here is the call graph for this function:
|
|
|
|
|
|
Here is the call graph for this function:
|
|
Here is the call graph for this function:
|
|
Here is the call graph for this function:
|
|
|
This function query for the max net delay in the fanout of the given output pin
|
|
|
|
|
|
|
|
|
|
This function queries the change in delay if the next larger cell size was used while keeping current input slew and output load cap oaDesign: the current top design hierarchy CellData: the cell to query its delta delay double: delta delay (UpSized Delay - Current Delay) *DBL_MAX is returned if no next size found |
Here is the call graph for this function:
|
This function queries the worst slack at the input pins of the given instance t: the current timer object inst: the current occ instance object worst slack of all inputs |
Here is the call graph for this function:
|
This function perform slack time check two level fanout(s) downstream of the current instance and two level fanin(s) upstream |
Here is the call graph for this function:
|
|
Here is the call graph for this function:
|
|
|
|
|
A linear fitting routine by John Lee (y=ax+b) double: a is the coefficient double: b is y-intercept double*: x is the independent variable double*: y is the dependent variable int: N is the number of data points |
|
|
|
|
|
|
|
|
|
|
|
Debug statement that print all net information Net load for PI and Output arc of cell Net Delay for PO and Input arc of cell
|
|
|
Here is the call graph for this function:
|
|
Here is the call graph for this function:
|
|
Here is the call graph for this function:
|
|
Here is the call graph for this function:
|
|
|
|
Here is the call graph for this function:
|
|
|
|
Here is the call graph for this function:
|
|
|
|
|
|
|
|