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