00001
00002
00003
00004
00005
00006
00007
00008
00009 #if !defined(oagTimerKickMove_P)
00010 #define oagTimerKickMove_P
00011
00012 #include <cstdlib>
00013 #include <cstdio>
00014 #include <map>
00015 #include <vector>
00016 #include <list>
00017
00018 #include "oaDesignDB.h"
00019 #include "oagTimerTimer.h"
00020
00021 namespace oagTimer{
00022
00023 using namespace oa;
00024 using namespace std;
00025
00026 class kickMove {
00027 public:
00028 kickMove(oaDesign *des, Timer *t);
00029 ~kickMove();
00030 void run(int max);
00031 void createUpsizeList();
00032 bool doUpsizing();
00033 void doOneOpt();
00034
00035 void saveBestDesign();
00036 void restoreBestDesign();
00037 map<oaModInst*,oaString> tempDesign;
00038 map<oaModInst*,oaString> bestDesign;
00039 list<oaModInst*> kickMoves;
00040 oaDesign *topDesign;
00041 Timer *timer;
00042 int _N;
00043 };
00044 }
00045 #endif