ElectricalDelay.cc revision 10447
110447Snilay@cs.wisc.edu
210447Snilay@cs.wisc.edu#include "model/timing_graph/ElectricalDelay.h"
310447Snilay@cs.wisc.edu#include "model/timing_graph/ElectricalLoad.h"
410447Snilay@cs.wisc.edu
510447Snilay@cs.wisc.edunamespace DSENT
610447Snilay@cs.wisc.edu{
710447Snilay@cs.wisc.edu    //-------------------------------------------------------------------------
810447Snilay@cs.wisc.edu    // Electrical Delay
910447Snilay@cs.wisc.edu    //-------------------------------------------------------------------------
1010447Snilay@cs.wisc.edu
1110447Snilay@cs.wisc.edu    ElectricalDelay::ElectricalDelay(const String& instance_name_, ElectricalModel* model_)
1210447Snilay@cs.wisc.edu        : ElectricalTimingNode(instance_name_, model_), m_delay_(0.0)
1310447Snilay@cs.wisc.edu    {
1410447Snilay@cs.wisc.edu
1510447Snilay@cs.wisc.edu    }
1610447Snilay@cs.wisc.edu
1710447Snilay@cs.wisc.edu    ElectricalDelay::~ElectricalDelay()
1810447Snilay@cs.wisc.edu    {
1910447Snilay@cs.wisc.edu
2010447Snilay@cs.wisc.edu    }
2110447Snilay@cs.wisc.edu
2210447Snilay@cs.wisc.edu    void ElectricalDelay::setDelay(double delay_)
2310447Snilay@cs.wisc.edu    {
2410447Snilay@cs.wisc.edu        m_delay_ = delay_;
2510447Snilay@cs.wisc.edu        return;
2610447Snilay@cs.wisc.edu    }
2710447Snilay@cs.wisc.edu
2810447Snilay@cs.wisc.edu    double ElectricalDelay::getDelay() const
2910447Snilay@cs.wisc.edu    {
3010447Snilay@cs.wisc.edu        return m_delay_;
3110447Snilay@cs.wisc.edu    }
3210447Snilay@cs.wisc.edu
3310447Snilay@cs.wisc.edu    double ElectricalDelay::calculateDelay() const
3410447Snilay@cs.wisc.edu    {
3510447Snilay@cs.wisc.edu        return m_delay_;
3610447Snilay@cs.wisc.edu    }
3710447Snilay@cs.wisc.edu
3810447Snilay@cs.wisc.edu    double ElectricalDelay::calculateTransition() const
3910447Snilay@cs.wisc.edu    {
4010447Snilay@cs.wisc.edu        return 1.386 * getMaxUpstreamRes() * getTotalDownstreamCap();
4110447Snilay@cs.wisc.edu    }
4210447Snilay@cs.wisc.edu
4310447Snilay@cs.wisc.edu    double ElectricalDelay::getMaxUpstreamRes() const
4410447Snilay@cs.wisc.edu    {
4510447Snilay@cs.wisc.edu        return ElectricalTimingNode::getMaxUpstreamRes();
4610447Snilay@cs.wisc.edu    }
4710447Snilay@cs.wisc.edu
4810447Snilay@cs.wisc.edu    double ElectricalDelay::getTotalDownstreamCap() const
4910447Snilay@cs.wisc.edu    {
5010447Snilay@cs.wisc.edu        return ElectricalTimingNode::getTotalDownstreamCap();
5110447Snilay@cs.wisc.edu    }
5210447Snilay@cs.wisc.edu
5310447Snilay@cs.wisc.edu} // namespace DSENT
5410447Snilay@cs.wisc.edu
5510447Snilay@cs.wisc.edu
56