ElectricalLoad.h revision 10447
110447Snilay@cs.wisc.edu#ifndef __DSENT_MODEL_ELECTRICAL_LOAD_H__
210447Snilay@cs.wisc.edu#define __DSENT_MODEL_ELECTRICAL_LOAD_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 ElectricalModel;
1010447Snilay@cs.wisc.edu    class ElectricalDriver;
1110447Snilay@cs.wisc.edu
1210447Snilay@cs.wisc.edu    class ElectricalLoad : public ElectricalTimingNode
1310447Snilay@cs.wisc.edu    {
1410447Snilay@cs.wisc.edu        public:
1510447Snilay@cs.wisc.edu            ElectricalLoad(const String& instance_name_, ElectricalModel* model_);
1610447Snilay@cs.wisc.edu            virtual ~ElectricalLoad();
1710447Snilay@cs.wisc.edu
1810447Snilay@cs.wisc.edu        public:
1910447Snilay@cs.wisc.edu            // Set the input capacitance of this input port
2010447Snilay@cs.wisc.edu            void setLoadCap(double load_cap_);
2110447Snilay@cs.wisc.edu            // Get the load capacitance
2210447Snilay@cs.wisc.edu            double getLoadCap() const;
2310447Snilay@cs.wisc.edu            // Get total load capacitance
2410447Snilay@cs.wisc.edu            double getTotalDownstreamCap() const;
2510447Snilay@cs.wisc.edu            // Calculate delay due to total load capacitance
2610447Snilay@cs.wisc.edu            double calculateDelay() const;
2710447Snilay@cs.wisc.edu            // Calculate transition
2810447Snilay@cs.wisc.edu            double calculateTransition() const;
2910447Snilay@cs.wisc.edu
3010447Snilay@cs.wisc.edu            bool isLoad() const;
3110447Snilay@cs.wisc.edu
3210447Snilay@cs.wisc.edu        private:
3310447Snilay@cs.wisc.edu            // Disable copy constructor
3410447Snilay@cs.wisc.edu            ElectricalLoad(const ElectricalLoad& load_);
3510447Snilay@cs.wisc.edu
3610447Snilay@cs.wisc.edu        private:
3710447Snilay@cs.wisc.edu            // Load capacitance
3810447Snilay@cs.wisc.edu            double m_load_cap_;
3910447Snilay@cs.wisc.edu    };
4010447Snilay@cs.wisc.edu} // namespace DSENT
4110447Snilay@cs.wisc.edu
4210447Snilay@cs.wisc.edu#endif // __DSENT_MODEL_ELECTRICAL_LOAD_H__
4310447Snilay@cs.wisc.edu
44