oagTimerDesignData.h

Go to the documentation of this file.
00001 /************************************************************
00002 * 
00003 * File: oagTimerDesignData.h
00004 * Author: Santiago Mok (smok@ee.ucla.edu)
00005 * Created: 05-21-2010
00006 * Last Modified: Sat 10 Jul 2010 06:37:36 PM PDT
00007 *
00008 ************************************************************/
00009 #if !defined(oagTimerDesignData_P)
00010 #define oagTimerDesignData_P
00011 
00012 #include <map>
00013 #include <iostream>
00014 #include <vector>
00015 #include "oaDesignDB.h"
00016 /*---------------------------------------------------------*/
00017 using namespace std;
00018 using namespace oa;
00019 /*---------------------------------------------------------*/
00020 typedef map<oaModInst*,int> InstsMap;
00021 /*---------------------------------------------------------*/
00022 namespace oagTimer{
00023 /*---------------------------------------------------------*/
00024 class DesignData{ 
00025   public:
00026     DesignData();
00027     ~DesignData();
00028 
00029 /*---------------------------------------------------------*/
00031   public:
00032     void add(oaDesign *des);
00033     void buildTopological(oaDesign *des);
00034     vector<InstsMap>::iterator getNextIter();
00035     vector<InstsMap>::iterator getCurrIter();
00036     void moveNextIter();
00037     bool hasNext();
00038 
00039     InstsMap getCurrCellInsts();
00040     InstsMap getAllPI();
00041     InstsMap getAllP0();
00042     void getAllFanouts(InstsMap currInsts, vector<InstsMap> &vec);
00043     oaModInst* getPI();
00044     oaModInst* getP0();
00045     vector<InstsMap> getMap(); 
00046   private:
00047     void buildDesGraph();
00048     oaModNet* getOutputNet(oaModInst *inst);
00049     void getFanouts(InstsMap fanin);
00050 /*---------------------------------------------------------*/
00052   private:
00053     oaDesign *design;
00054 
00055     vector<InstsMap> desGraph;
00056     vector<InstsMap>::iterator level_iter; 
00057 };//class DesignData
00058 /*---------------------------------------------------------*/
00059 }//namespace
00060 #endif

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