oagTimerOptMinDelay.h

Go to the documentation of this file.
00001 /************************************************************
00002 * 
00003 * File: oagTimerOptMinDelay.h
00004 * Author: Santiago Mok (smok@ee.ucla.edu)
00005 * Created: 01-26-2011
00006 * Last Modified: Mon 14 Feb 2011 01:34:16 PM PST
00007 *
00008 ************************************************************/
00009 #if !defined(oagTimerOptMinDelay_P)
00010 #define oagTimerOptMinDelay_P
00011 
00012 #include "oaDesignDB.h"
00013 #include "oagTimerTimer.h"
00014 #include "oagTimerUtil.h"
00015 
00016 #include <map>
00017 #include <vector>
00018 namespace oagTimer{
00019 /*---------------------------------------------------------*/
00020 class OptMinDelay{
00021   public:
00022     OptMinDelay(oaDesign *d, Timer *t);
00023     ~OptMinDelay();
00024     void run();
00025 
00026   private: 
00027     double getDelaySum();
00028     vector<int> getIndices(oaModInst *inst);
00029     void updateLM();
00030     void reverseLM();
00031     void saveCurrSizing();
00032     void reverseSizing();
00033     void save();
00034     void reload();
00035 
00036     //Debug:
00037     void test1();
00038     void test2();
00039     void printLMAssignment();
00040     double globalLM;
00041 
00042   private:
00043     oaDesign *design;
00044     Timer *timing;
00045     map<oaModInst*,oaString> currSizing;
00046     map<oaModInst*,oaString> bestDesign;
00047 
00048     int _N; // # of LM;
00049     double tau, alpha1, alpha2;
00050     Util ut;
00051     vector<oaModInst*> G; 
00052     
00053 };
00054 /*---------------------------------------------------------*/
00055 }//namespace
00056 #endif

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