#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:

|
||||||||||||
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
1.3.9.1