MultiplexerCrossbar.h revision 10447:a465576671d4
1#ifndef __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_CROSSBAR_H__
2#define __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_CROSSBAR_H__
3
4#include "util/CommonType.h"
5#include "model/ElectricalModel.h"
6
7namespace DSENT
8{
9    // A model for a NxM W-bit multiplexer-based crossbar
10    class MultiplexerCrossbar : public ElectricalModel
11    {
12        public:
13            MultiplexerCrossbar(const String& instance_name_, const TechModel* tech_model_);
14            virtual ~MultiplexerCrossbar();
15
16        public:
17            // Set a list of paramerters' name needed to construct model
18            void initParameters();
19            // Set a list of peroperties' name needed to construct model
20            void initProperties();
21
22            // Clone and return a new instance
23            virtual MultiplexerCrossbar* clone() const;
24
25        protected:
26            // Build the model
27            virtual void constructModel();
28            virtual void updateModel();
29            virtual void propagateTransitionInfo();
30
31        private:
32            // Disable copy constructor
33            MultiplexerCrossbar(const MultiplexerCrossbar& crossbar_);
34    }; // class MultiplexerCrossbar
35} // namespace DSENT
36
37#endif // __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_CROSSBAR_H__
38
39