oagTimerCellMaster.h

Go to the documentation of this file.
00001 /************************************************************
00002 * 
00003 * File: oagTimerCellMaster.h
00004 * Author: Santiago Mok (smok@ee.ucla.edu)
00005 * Created: 05-13-2010
00006 * Last Modified: Sat 19 Mar 2011 12:38:20 PM PDT
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   //friend class Opt;
00043   //friend class PeepHole;
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 }; //class 
00104 
00105 }//namespace
00106 #endif //define

Generated on Thu Aug 25 14:24:04 2011 by  doxygen 1.3.9.1