DSENT.h revision 10447:a465576671d4
1#ifndef __DSENT_DSENT_H__
2#define __DSENT_DSENT_H__
3
4// For DSENT operations
5#include "libutil/OptionParser.h"
6#include "libutil/Calculator.h"
7#include "util/CommonType.h"
8#include "util/Config.h"
9#include "util/Result.h"
10#include "model/Model.h"
11#include "model/ModelGen.h"
12
13// For timing optimization
14#include "model/ElectricalModel.h"
15#include "model/timing_graph/ElectricalNet.h"
16#include "model/timing_graph/ElectricalTimingTree.h"
17#include "model/timing_graph/ElectricalTimingOptimizer.h"
18#include "model/PortInfo.h"
19
20namespace DSENT
21{
22    using LibUtil::OptionParser;
23    using LibUtil::Calculator;
24
25    class DSENT
26    {
27        protected:
28            class DSENTCalculator : public Calculator
29            {
30                public:
31                    DSENTCalculator();
32                    virtual ~DSENTCalculator();
33
34                protected:
35                    virtual double getEnvVar(const String& var_name_) const;
36            }; // class DSENTCalculator
37
38        public:
39            static void run(int argc_, char** argv_);
40
41        protected:
42            static void setRuntimeOptions(OptionParser* option_parser_);
43            static void initialize(int argc_, char** argv_);
44            static void buildModel();
45            static void processQuery();
46            static const void* processQuery(const String& query_str_, bool is_print_);
47            static void finalize();
48
49            static void performTimingOpt();
50            static void reportTiming();
51
52            static void processEvaluate();
53
54        protected:
55            static Model* ms_model_;
56
57            static bool ms_is_verbose_;
58
59    }; // class DSENT
60
61} // namespace DSENT
62
63#endif // __DSENT_DSENT_H__
64
65