BroadcastHTree.h revision 10447:a465576671d4
1#ifndef __DSENT_MODEL_ELECTRICAL_BROADCAST_HTREE_H__ 2#define __DSENT_MODEL_ELECTRICAL_BROADCAST_HTREE_H__ 3 4#include "util/CommonType.h" 5#include "model/ElectricalModel.h" 6 7#include <vector> 8 9namespace DSENT 10{ 11 using std::vector; 12 13 class StdCell; 14 class ElectricalLoad; 15 class ElectricalTimingTree; 16 17 class BroadcastHTree : public ElectricalModel 18 { 19 public: 20 BroadcastHTree(const String& instance_name_, const TechModel* tech_model_); 21 virtual ~BroadcastHTree(); 22 23 public: 24 // Set a list of properties' name needed to construct model 25 void initParameters(); 26 // Set a list of properties' name needed to construct model 27 void initProperties(); 28 29 // Clone and return a new instance 30 virtual BroadcastHTree* clone() const; 31 32 protected: 33 // Build the model 34 virtual void constructModel(); 35 virtual void updateModel(); 36 virtual void useModel(); 37 virtual void propagateTransitionInfo(); 38 39 private: 40 vector<StdCell*> m_repeaters_; 41 vector<ElectricalLoad*> m_repeater_loads_; 42 vector<ElectricalTimingTree*> m_timing_trees_; 43 vector<unsigned int> m_number_segments_; 44 45 vector<StdCell*> m_leaf_drivers_; 46 ElectricalLoad* m_leaf_load_; 47 StdCell* m_leaf_head_driver_; 48 ElectricalLoad* m_leaf_head_load_; 49 50 }; // class BroadcastHTree 51} // namespace DSENT 52 53#endif // __DSENT_MODEL_ELECTRICAL_BROADCAST_HTREE_H__ 54 55