oagTimer::Opt Class Reference
#include <oagTimerOpt.h>
Collaboration diagram for oagTimer::Opt:
[legend]List of all members.
|
Public Member Functions |
| Opt (oaDesign *d, Timer *t) |
| ~Opt () |
void | run () |
void | peepHoleOpt (int lvl, int i) |
void | doOneOPT () |
Private Member Functions |
bool | retry () |
bool | isValidTiming (TimeType new_arr, TimeType new_slack, double curr_arr) |
bool | validComb (float val) |
void | initDesign () |
void | querySensitivities () |
void | markSwappedFanouts (instVector insts) |
bool | isAllVisited (vector< oaModInst * > insts) |
bool | isFanoutMarked (instVector insts) |
bool | scanPeepHoles (sensitivityData s) |
void | scanPeepHoles (oaModInst *) |
void | scanPeepHoles (oaModInst *root, instVector fo, int size) |
bool | setNewMaster (CellData *cell, oaString newMaster) |
void | doSizing () |
bool | isVisited (oaModInst *inst) |
bool | doSwap (SizingData list) |
bool | doSwap (sensitivityData d) |
void | markVisited (vector< oaModInst * > f) |
void | genAllCombinations () |
bool | genCombinations (vector< oaModInst * >::iterator &list_iter, SizingData &data_list) |
void | initDataStruct (SizingData &_data) |
instVector | Preprocess_Peepholes (oaModInst *root, instVector vec) |
vector< combTimingData > | PreprocessComb_Slack (vector< instVector > vec) |
vector< combTimingData > | PreprocessComb_Slew (vector< instVector > vec) |
vector< combTimingData > | rankFanoutWeight (vector< instVector > vec) |
double | getDownSizeDelaySensitivity (CellData *c) |
double | getUpSizeSensitivity (oaModInst *i) |
double | getDownSizeSensitivity (oaModInst *i) |
void | getUpSizeSensitivities (CellData *c) |
double | getDownSizeSensitivities (CellData *c) |
double | getInInstTermSlack (oaModInst *inst) |
void | clearContainers () |
void | printVisitedCells () |
void | printCombinations (SizingData _s) |
void | printAllFanouts (vector< InstsMap > vm) |
void | printKOptTable (oaModInst *h, vector< instVector > T) |
void | printRootNodeSorting (vector< instTimingData > data_vector, int type) |
map< oaOccInstTerm *, double > | getTimingInformation (vector< oaModInst * > insts) |
void | printTimingData (map< oaOccInstTerm *, double > list) |
void | printSensitivityList () |
Private Attributes |
oaDesign * | design |
Timer * | timing |
PeepHole * | ph |
Util | ut |
int | level |
int | currFanoutLevel |
int | currRankLevel |
bool | any_move_taken |
bool | currPHMoveTaken |
Modes | mode |
vector< oaModInst * > | currPH_list |
int | max_fo |
int | currNotTaken |
instVector | design_Insts |
instVector | takenSwapInstsChecklist |
vector< instTimingData > | design_Insts_type2 |
vector< rootData > | multiLevelRootInstances |
vector< sensitivityData > | sensitivity_sorted_Insts |
vector< sensitivityData > | upsized_sensitivity_Insts |
vector< sensitivityData > | downsized_sensitivity_Insts |
instVector | PeepholeChecklist |
int | totalNumOfTrials |
int | numOfTrials |
int | numOfTaken |
int | totalNumOfTaken |
int | numOfZeroOPTMove |
int | numOfOneOPTMove |
int | numOfTwoOPTMove |
map< oaModInst *, int > | sizedRootNodeCount |
int | numOfOneTaken |
int | numOfTimingInfeasiblePH |
int | curr_counter |
int | numOfPeepholeTrials |
int | curr_ph_counter |
int | total_ph_counter |
double | numOfTakeninBucket |
double | numOfTrialinBucket |
int | numOfFanoutsTakenTwice |
bool | fo_taken |
bool | issueReturn |
vector< int > | takenFanoutCounter |
Friends |
class | PeepHole |
Constructor & Destructor Documentation
oagTimer::Opt::Opt |
( |
oaDesign * |
d, |
|
|
Timer * |
t |
|
) |
|
|
Here is the call graph for this function:
Member Function Documentation
void oagTimer::Opt::clearContainers |
( |
|
) |
[private] |
|
void oagTimer::Opt::doOneOPT |
( |
|
) |
|
|
Here is the call graph for this function:
void oagTimer::Opt::doSizing |
( |
|
) |
[private] |
|
|
This function try out various upsizes for root and downsizes for fanout cell succesively and select the first combination that decreases leakage power and is timing feasible none void |
Here is the call graph for this function:
bool oagTimer::Opt::doSwap |
( |
SizingData |
list |
) |
[private] |
|
Here is the call graph for this function:
void oagTimer::Opt::genAllCombinations |
( |
|
) |
[private] |
|
Here is the call graph for this function:
bool oagTimer::Opt::genCombinations |
( |
vector< oaModInst * >::iterator & |
list_iter, |
|
|
SizingData & |
data_list |
|
) |
[private] |
|
Here is the call graph for this function:
double oagTimer::Opt::getDownSizeDelaySensitivity |
( |
CellData * |
c |
) |
[private] |
|
|
This function query the difference in delay for changing its master to the next avaiable downsize CellData: the cell instance to change it master double: the delay sensitivity of downsizing |
Here is the call graph for this function:
double oagTimer::Opt::getDownSizeSensitivities |
( |
CellData * |
c |
) |
[private] |
|
Here is the call graph for this function:
double oagTimer::Opt::getDownSizeSensitivity |
( |
oaModInst * |
i |
) |
[private] |
|
double oagTimer::Opt::getInInstTermSlack |
( |
oaModInst * |
inst |
) |
[private] |
|
Here is the call graph for this function:
map< oaOccInstTerm *, double > oagTimer::Opt::getTimingInformation |
( |
vector< oaModInst * > |
insts |
) |
[private] |
|
Here is the call graph for this function:
void oagTimer::Opt::getUpSizeSensitivities |
( |
CellData * |
c |
) |
[private] |
|
Here is the call graph for this function:
double oagTimer::Opt::getUpSizeSensitivity |
( |
oaModInst * |
i |
) |
[private] |
|
void oagTimer::Opt::initDataStruct |
( |
SizingData & |
_data |
) |
[private] |
|
void oagTimer::Opt::initDesign |
( |
|
) |
[private] |
|
bool oagTimer::Opt::isAllVisited |
( |
vector< oaModInst * > |
insts |
) |
[private] |
|
bool oagTimer::Opt::isFanoutMarked |
( |
instVector |
insts |
) |
[private] |
|
bool oagTimer::Opt::isValidTiming |
( |
TimeType |
new_arr, |
|
|
TimeType |
new_slack, |
|
|
double |
curr_arr |
|
) |
[private] |
|
bool oagTimer::Opt::isVisited |
( |
oaModInst * |
inst |
) |
[private] |
|
void oagTimer::Opt::markSwappedFanouts |
( |
instVector |
insts |
) |
[private] |
|
void oagTimer::Opt::markVisited |
( |
vector< oaModInst * > |
f |
) |
[private] |
|
void oagTimer::Opt::peepHoleOpt |
( |
int |
lvl, |
|
|
int |
i |
|
) |
|
|
Here is the call graph for this function:
|
Prune peepholes that seems not feasible for sizing The processing occur after all possible enumeration of size n fanout are generated 1) Remove PH if root and all fanouts in the peephole are min size 2) Remove PH if all fanouts in the peephole does not contain other sizes 3) Remove PH if all fanouts in the peephole are critical vector of enumerated combinations vector of sorted enumeration |
Here is the call graph for this function:
|
Sort the fanout in decreasing order based on the min input slack value The processing occur after all possible enumeration of size n fanout are generated vector of enumerated combinations vector of sorted enumeration |
|
Sort the fanout in increasing order based on the max input slew value The processing occur after all possible enumeration of size n fanout are generated vector of enumerated combinations vector of sorted enumeration |
void oagTimer::Opt::printAllFanouts |
( |
vector< InstsMap > |
vm |
) |
[private] |
|
void oagTimer::Opt::printCombinations |
( |
SizingData |
_s |
) |
[private] |
|
void oagTimer::Opt::printKOptTable |
( |
oaModInst * |
h, |
|
|
vector< instVector > |
T |
|
) |
[private] |
|
void oagTimer::Opt::printRootNodeSorting |
( |
vector< instTimingData > |
data_vector, |
|
|
int |
type |
|
) |
[private] |
|
void oagTimer::Opt::printSensitivityList |
( |
|
) |
[private] |
|
Here is the call graph for this function:
void oagTimer::Opt::printTimingData |
( |
map< oaOccInstTerm *, double > |
list |
) |
[private] |
|
Here is the call graph for this function:
void oagTimer::Opt::printVisitedCells |
( |
|
) |
[private] |
|
void oagTimer::Opt::querySensitivities |
( |
|
) |
[private] |
|
Here is the call graph for this function:
bool oagTimer::Opt::retry |
( |
|
) |
[private] |
|
void oagTimer::Opt::run |
( |
|
) |
|
|
Here is the call graph for this function:
void oagTimer::Opt::scanPeepHoles |
( |
oaModInst * |
root, |
|
|
instVector |
fo, |
|
|
int |
size |
|
) |
[private] |
|
Here is the call graph for this function:
void oagTimer::Opt::scanPeepHoles |
( |
oaModInst * |
|
) |
[private] |
|
Here is the call graph for this function:
Here is the call graph for this function:
bool oagTimer::Opt::setNewMaster |
( |
CellData * |
cell, |
|
|
oaString |
newMaster |
|
) |
[private] |
|
|
This function set the given new master of the given CellData inst and check if the new swapping is timing feasible CellData: cell instance to be swap oaString: new master lib cell name bool: wether the new master is timing feasible |
Here is the call graph for this function:
bool oagTimer::Opt::validComb |
( |
float |
val |
) |
[private] |
|
Here is the call graph for this function:
Friends And Related Function Documentation
Member Data Documentation
The documentation for this class was generated from the following files:
Generated on Thu Aug 25 14:25:32 2011 by
1.3.9.1