ElectricalNet.h revision 10447
110447Snilay@cs.wisc.edu#ifndef __DSENT_MODEL_ELECTRICAL_NET_H__ 210447Snilay@cs.wisc.edu#define __DSENT_MODEL_ELECTRICAL_NET_H__ 310447Snilay@cs.wisc.edu 410447Snilay@cs.wisc.edu#include "util/CommonType.h" 510447Snilay@cs.wisc.edu#include "model/timing_graph/ElectricalTimingNode.h" 610447Snilay@cs.wisc.edu 710447Snilay@cs.wisc.edunamespace DSENT 810447Snilay@cs.wisc.edu{ 910447Snilay@cs.wisc.edu class ElectricalLoad; 1010447Snilay@cs.wisc.edu 1110447Snilay@cs.wisc.edu class ElectricalNet : public ElectricalTimingNode 1210447Snilay@cs.wisc.edu { 1310447Snilay@cs.wisc.edu public: 1410447Snilay@cs.wisc.edu ElectricalNet(const String& instance_name_, ElectricalModel* model_); 1510447Snilay@cs.wisc.edu virtual ~ElectricalNet(); 1610447Snilay@cs.wisc.edu 1710447Snilay@cs.wisc.edu public: 1810447Snilay@cs.wisc.edu // Set distributed res/cap 1910447Snilay@cs.wisc.edu void setDistributedRes(double distributed_res_); 2010447Snilay@cs.wisc.edu void setDistributedCap(double distributed_cap_); 2110447Snilay@cs.wisc.edu // Get distributed res/cap 2210447Snilay@cs.wisc.edu double getDistributedRes() const; 2310447Snilay@cs.wisc.edu double getDistributedCap() const; 2410447Snilay@cs.wisc.edu // Calculate wiring delay (or net delay) 2510447Snilay@cs.wisc.edu double calculateDelay() const; 2610447Snilay@cs.wisc.edu // Calculate transition 2710447Snilay@cs.wisc.edu double calculateTransition() const; 2810447Snilay@cs.wisc.edu // get maximum of upstream drive resistance 2910447Snilay@cs.wisc.edu double getMaxUpstreamRes() const; 3010447Snilay@cs.wisc.edu // get total amount of downstream load capacitance 3110447Snilay@cs.wisc.edu double getTotalDownstreamCap() const; 3210447Snilay@cs.wisc.edu 3310447Snilay@cs.wisc.edu virtual bool isNet() const; 3410447Snilay@cs.wisc.edu 3510447Snilay@cs.wisc.edu private: 3610447Snilay@cs.wisc.edu // Disable copy constructor 3710447Snilay@cs.wisc.edu ElectricalNet(const ElectricalNet& net_); 3810447Snilay@cs.wisc.edu 3910447Snilay@cs.wisc.edu private: 4010447Snilay@cs.wisc.edu // Name of this instance 4110447Snilay@cs.wisc.edu String m_instance_name_; 4210447Snilay@cs.wisc.edu // Distributed capacitance and resistance of the net 4310447Snilay@cs.wisc.edu double m_distributed_res_; 4410447Snilay@cs.wisc.edu double m_distributed_cap_; 4510447Snilay@cs.wisc.edu }; 4610447Snilay@cs.wisc.edu 4710447Snilay@cs.wisc.edu} // namespace DSENT 4810447Snilay@cs.wisc.edu 4910447Snilay@cs.wisc.edu#endif // __DSENT_MODEL_ELECTRICAL_NET_H__ 5010447Snilay@cs.wisc.edu 51