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