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