DSENT.h revision 10447
110447Snilay@cs.wisc.edu#ifndef __DSENT_DSENT_H__
210447Snilay@cs.wisc.edu#define __DSENT_DSENT_H__
310447Snilay@cs.wisc.edu
410447Snilay@cs.wisc.edu// For DSENT operations
510447Snilay@cs.wisc.edu#include "libutil/OptionParser.h"
610447Snilay@cs.wisc.edu#include "libutil/Calculator.h"
710447Snilay@cs.wisc.edu#include "util/CommonType.h"
810447Snilay@cs.wisc.edu#include "util/Config.h"
910447Snilay@cs.wisc.edu#include "util/Result.h"
1010447Snilay@cs.wisc.edu#include "model/Model.h"
1110447Snilay@cs.wisc.edu#include "model/ModelGen.h"
1210447Snilay@cs.wisc.edu
1310447Snilay@cs.wisc.edu// For timing optimization
1410447Snilay@cs.wisc.edu#include "model/ElectricalModel.h"
1510447Snilay@cs.wisc.edu#include "model/timing_graph/ElectricalNet.h"
1610447Snilay@cs.wisc.edu#include "model/timing_graph/ElectricalTimingTree.h"
1710447Snilay@cs.wisc.edu#include "model/timing_graph/ElectricalTimingOptimizer.h"
1810447Snilay@cs.wisc.edu#include "model/PortInfo.h"
1910447Snilay@cs.wisc.edu
2010447Snilay@cs.wisc.edunamespace DSENT
2110447Snilay@cs.wisc.edu{
2210447Snilay@cs.wisc.edu    using LibUtil::OptionParser;
2310447Snilay@cs.wisc.edu    using LibUtil::Calculator;
2410447Snilay@cs.wisc.edu
2510447Snilay@cs.wisc.edu    class DSENT
2610447Snilay@cs.wisc.edu    {
2710447Snilay@cs.wisc.edu        protected:
2810447Snilay@cs.wisc.edu            class DSENTCalculator : public Calculator
2910447Snilay@cs.wisc.edu            {
3010447Snilay@cs.wisc.edu                public:
3110447Snilay@cs.wisc.edu                    DSENTCalculator();
3210447Snilay@cs.wisc.edu                    virtual ~DSENTCalculator();
3310447Snilay@cs.wisc.edu
3410447Snilay@cs.wisc.edu                protected:
3510447Snilay@cs.wisc.edu                    virtual double getEnvVar(const String& var_name_) const;
3610447Snilay@cs.wisc.edu            }; // class DSENTCalculator
3710447Snilay@cs.wisc.edu
3810447Snilay@cs.wisc.edu        public:
3910447Snilay@cs.wisc.edu            static void run(int argc_, char** argv_);
4010447Snilay@cs.wisc.edu
4110447Snilay@cs.wisc.edu        protected:
4210447Snilay@cs.wisc.edu            static void setRuntimeOptions(OptionParser* option_parser_);
4310447Snilay@cs.wisc.edu            static void initialize(int argc_, char** argv_);
4410447Snilay@cs.wisc.edu            static void buildModel();
4510447Snilay@cs.wisc.edu            static void processQuery();
4610447Snilay@cs.wisc.edu            static const void* processQuery(const String& query_str_, bool is_print_);
4710447Snilay@cs.wisc.edu            static void finalize();
4810447Snilay@cs.wisc.edu
4910447Snilay@cs.wisc.edu            static void performTimingOpt();
5010447Snilay@cs.wisc.edu            static void reportTiming();
5110447Snilay@cs.wisc.edu
5210447Snilay@cs.wisc.edu            static void processEvaluate();
5310447Snilay@cs.wisc.edu
5410447Snilay@cs.wisc.edu        protected:
5510447Snilay@cs.wisc.edu            static Model* ms_model_;
5610447Snilay@cs.wisc.edu
5710447Snilay@cs.wisc.edu            static bool ms_is_verbose_;
5810447Snilay@cs.wisc.edu
5910447Snilay@cs.wisc.edu    }; // class DSENT
6010447Snilay@cs.wisc.edu
6110447Snilay@cs.wisc.edu} // namespace DSENT
6210447Snilay@cs.wisc.edu
6310447Snilay@cs.wisc.edu#endif // __DSENT_DSENT_H__
6410447Snilay@cs.wisc.edu
65