00001
00002
00003
00004
00005
00006
00007
00008
00009 #if !defined(oagCellMaster_P)
00010 #define oagCellMaster_P
00011
00012 #include <assert.h>
00013 #include <list>
00014 #include "string.h"
00015
00016 #include "oaDesignDB.h"
00017 #include "oagTimerLibData.h"
00018 #include "oagTimerLibParserInt.h"
00019 #include "oagTimerUtil.h"
00020
00021
00022 namespace oagTimer {
00023
00024 using namespace std;
00025 using namespace oa;
00026
00037 class CellMaster {
00038 friend class CellData;
00039 friend class LibData;
00040 friend class Timer;
00041 friend class Util;
00042
00043
00044
00045 public:
00046 CellMaster(){
00047 name = oaString();
00048 area = 0;
00049 leakage_power = 0;
00050 isSequential = false;
00051 }
00052 ~CellMaster(){}
00053
00054 public:
00056 oaString name;
00058 oaString basename;
00060 oaString footprint;
00062 double strength;
00064 double area;
00066 double leakage_power;
00068 bool isSequential;
00069
00070
00075 void setLibCellName(const char *s);
00076
00078 private:
00079 static oaVoidPointerAppDef<oaModule> *_modAppDef;
00080
00082 static void initAppDefs();
00083
00091 static CellMaster *create(oaModule *mod);
00092
00098 static CellMaster *get(oaModule *mod);
00099
00101 public:
00102 void printCellData();
00103 };
00104
00105 }
00106 #endif //define