ElectricalLoad.h revision 10447
1#ifndef __DSENT_MODEL_ELECTRICAL_LOAD_H__
2#define __DSENT_MODEL_ELECTRICAL_LOAD_H__
3
4#include "util/CommonType.h"
5#include "model/timing_graph/ElectricalTimingNode.h"
6
7namespace DSENT
8{
9    class ElectricalModel;
10    class ElectricalDriver;
11
12    class ElectricalLoad : public ElectricalTimingNode
13    {
14        public:
15            ElectricalLoad(const String& instance_name_, ElectricalModel* model_);
16            virtual ~ElectricalLoad();
17
18        public:
19            // Set the input capacitance of this input port
20            void setLoadCap(double load_cap_);
21            // Get the load capacitance
22            double getLoadCap() const;
23            // Get total load capacitance
24            double getTotalDownstreamCap() const;
25            // Calculate delay due to total load capacitance
26            double calculateDelay() const;
27            // Calculate transition
28            double calculateTransition() const;
29
30            bool isLoad() const;
31
32        private:
33            // Disable copy constructor
34            ElectricalLoad(const ElectricalLoad& load_);
35
36        private:
37            // Load capacitance
38            double m_load_cap_;
39    };
40} // namespace DSENT
41
42#endif // __DSENT_MODEL_ELECTRICAL_LOAD_H__
43
44