ElectricalTimingOptimizer.h revision 10447
110447Snilay@cs.wisc.edu#ifndef __DSENT_MODEL_TIMING_GRAPH_ELECTRICAL_TIMING_OPTIMIZER_H__
210447Snilay@cs.wisc.edu#define __DSENT_MODEL_TIMING_GRAPH_ELECTRICAL_TIMING_OPTIMIZER_H__
310447Snilay@cs.wisc.edu
410447Snilay@cs.wisc.edu#include "util/CommonType.h"
510447Snilay@cs.wisc.edu#include "model/ElectricalModel.h"
610447Snilay@cs.wisc.edu
710447Snilay@cs.wisc.edunamespace DSENT
810447Snilay@cs.wisc.edu{
910447Snilay@cs.wisc.edu    // This model is only used to optimize the timing
1010447Snilay@cs.wisc.edu    class ElectricalTimingOptimizer : public ElectricalModel
1110447Snilay@cs.wisc.edu    {
1210447Snilay@cs.wisc.edu        public:
1310447Snilay@cs.wisc.edu            ElectricalTimingOptimizer(const String& instance_name_, const TechModel* tech_model_);
1410447Snilay@cs.wisc.edu            virtual ~ElectricalTimingOptimizer();
1510447Snilay@cs.wisc.edu
1610447Snilay@cs.wisc.edu        public:
1710447Snilay@cs.wisc.edu            void setModel(ElectricalModel* model_);
1810447Snilay@cs.wisc.edu            ElectricalModel* getModel();
1910447Snilay@cs.wisc.edu
2010447Snilay@cs.wisc.edu        protected:
2110447Snilay@cs.wisc.edu            // Build the optimizer
2210447Snilay@cs.wisc.edu            virtual void constructModel();
2310447Snilay@cs.wisc.edu
2410447Snilay@cs.wisc.edu        private:
2510447Snilay@cs.wisc.edu            ElectricalModel* m_model_;
2610447Snilay@cs.wisc.edu    }; // class ElectricalTimingOptimizer
2710447Snilay@cs.wisc.edu} // namespace
2810447Snilay@cs.wisc.edu
2910447Snilay@cs.wisc.edu#endif // __DSENT_MODEL_TIMING_GRAPH_ELECTRICAL_TIMING_OPTIMIZER_H__
3010447Snilay@cs.wisc.edu
31