ElectricalNet.h revision 10447:a465576671d4
1#ifndef __DSENT_MODEL_ELECTRICAL_NET_H__
2#define __DSENT_MODEL_ELECTRICAL_NET_H__
3
4#include "util/CommonType.h"
5#include "model/timing_graph/ElectricalTimingNode.h"
6
7namespace DSENT
8{
9    class ElectricalLoad;
10
11    class ElectricalNet : public ElectricalTimingNode
12    {
13        public:
14            ElectricalNet(const String& instance_name_, ElectricalModel* model_);
15            virtual ~ElectricalNet();
16
17        public:
18            // Set distributed res/cap
19            void setDistributedRes(double distributed_res_);
20            void setDistributedCap(double distributed_cap_);
21            // Get distributed res/cap
22            double getDistributedRes() const;
23            double getDistributedCap() const;
24            // Calculate wiring delay (or net delay)
25            double calculateDelay() const;
26            // Calculate transition
27            double calculateTransition() const;
28            // get maximum of upstream drive resistance
29            double getMaxUpstreamRes() const;
30            // get total amount of downstream load capacitance
31            double getTotalDownstreamCap() const;
32
33            virtual bool isNet() const;
34
35        private:
36            // Disable copy constructor
37            ElectricalNet(const ElectricalNet& net_);
38
39        private:
40            // Name of this instance
41            String m_instance_name_;
42            // Distributed capacitance and resistance of the net
43            double m_distributed_res_;
44            double m_distributed_cap_;
45    };
46
47} // namespace DSENT
48
49#endif // __DSENT_MODEL_ELECTRICAL_NET_H__
50
51