ElectricalDelay.cc revision 10447
11060SN/A
22702SN/A#include "model/timing_graph/ElectricalDelay.h"
31060SN/A#include "model/timing_graph/ElectricalLoad.h"
41060SN/A
51060SN/Anamespace DSENT
61060SN/A{
71060SN/A    //-------------------------------------------------------------------------
81060SN/A    // Electrical Delay
91060SN/A    //-------------------------------------------------------------------------
101060SN/A
111060SN/A    ElectricalDelay::ElectricalDelay(const String& instance_name_, ElectricalModel* model_)
121060SN/A        : ElectricalTimingNode(instance_name_, model_), m_delay_(0.0)
131060SN/A    {
141060SN/A
151060SN/A    }
161060SN/A
171060SN/A    ElectricalDelay::~ElectricalDelay()
181060SN/A    {
191060SN/A
201060SN/A    }
211060SN/A
221060SN/A    void ElectricalDelay::setDelay(double delay_)
231060SN/A    {
241060SN/A        m_delay_ = delay_;
251060SN/A        return;
261060SN/A    }
272665SN/A
282665SN/A    double ElectricalDelay::getDelay() const
291060SN/A    {
301060SN/A        return m_delay_;
311060SN/A    }
322292SN/A
331060SN/A    double ElectricalDelay::calculateDelay() const
341060SN/A    {
351060SN/A        return m_delay_;
361060SN/A    }
371061SN/A
381060SN/A    double ElectricalDelay::calculateTransition() const
392980Sgblack@eecs.umich.edu    {
401060SN/A        return 1.386 * getMaxUpstreamRes() * getTotalDownstreamCap();
412669SN/A    }
421060SN/A
431060SN/A    double ElectricalDelay::getMaxUpstreamRes() const
441060SN/A    {
451060SN/A        return ElectricalTimingNode::getMaxUpstreamRes();
461060SN/A    }
471060SN/A
481060SN/A    double ElectricalDelay::getTotalDownstreamCap() const
491060SN/A    {
501060SN/A        return ElectricalTimingNode::getTotalDownstreamCap();
511060SN/A    }
522292SN/A
532292SN/A} // namespace DSENT
541060SN/A
552292SN/A
561060SN/A