RepeatedLink.h revision 10447:a465576671d4
1#ifndef __DSENT_MODEL_ELECTRICAL_REPEATED_LINK_H__ 2#define __DSENT_MODEL_ELECTRICAL_REPEATED_LINK_H__ 3 4#include "util/CommonType.h" 5#include "model/ElectricalModel.h" 6 7namespace DSENT 8{ 9 class StdCell; 10 class ElectricalLoad; 11 class ElectricalTimingTree; 12 13 class RepeatedLink : public ElectricalModel 14 { 15 public: 16 RepeatedLink(const String& instance_name_, const TechModel* tech_model_); 17 virtual ~RepeatedLink(); 18 19 public: 20 // Set a list of properties' name needed to construct model 21 void initParameters(); 22 // Set a list of properties' name needed to construct model 23 void initProperties(); 24 25 // Clone and return a new instance 26 virtual RepeatedLink* clone() const; 27 28 protected: 29 // Build the model 30 virtual void constructModel(); 31 virtual void updateModel(); 32 virtual void useModel(); 33 virtual void propagateTransitionInfo(); 34 35 private: 36 // Use a repeater and a load to mimic a segment of the repeated link 37 StdCell* m_repeater_; 38 ElectricalLoad* m_repeater_load_; 39 ElectricalTimingTree* m_timing_tree_; 40 }; // class RepeatedLink 41} // namespace DSENT 42 43#endif // __DSENT_MODEL_ELECTRICAL_REPEATED_LINK_H__ 44 45