BarrelShifter.h revision 10447
15643Sgblack@eecs.umich.edu#ifndef __DSENT_MODEL_ELECTRICAL_BARRELSHIFTER_H__
25643Sgblack@eecs.umich.edu#define __DSENT_MODEL_ELECTRICAL_BARRELSHIFTER_H__
35643Sgblack@eecs.umich.edu
45643Sgblack@eecs.umich.edu#include "util/CommonType.h"
55643Sgblack@eecs.umich.edu#include "model/ElectricalModel.h"
65643Sgblack@eecs.umich.edu
75643Sgblack@eecs.umich.edunamespace DSENT
85643Sgblack@eecs.umich.edu{
95643Sgblack@eecs.umich.edu    // A model on N-bit barrel-shifter. Shifts to the right by X
105643Sgblack@eecs.umich.edu    class BarrelShifter : public ElectricalModel
115643Sgblack@eecs.umich.edu    {
125643Sgblack@eecs.umich.edu        public:
135643Sgblack@eecs.umich.edu            BarrelShifter(const String& instance_name_, const TechModel* tech_model_);
145643Sgblack@eecs.umich.edu            virtual ~BarrelShifter();
155643Sgblack@eecs.umich.edu
165643Sgblack@eecs.umich.edu        public:
175643Sgblack@eecs.umich.edu            // Set a list of properties' name needed to construct model
185643Sgblack@eecs.umich.edu            void initParameters();
195643Sgblack@eecs.umich.edu            // Set a list of properties' name needed to construct model
205643Sgblack@eecs.umich.edu            void initProperties();
215643Sgblack@eecs.umich.edu
225643Sgblack@eecs.umich.edu            // Clone and return a new instance
235643Sgblack@eecs.umich.edu            virtual BarrelShifter* clone() const;
245643Sgblack@eecs.umich.edu
255643Sgblack@eecs.umich.edu        protected:
265643Sgblack@eecs.umich.edu            // Build the model
275643Sgblack@eecs.umich.edu            virtual void constructModel();
285643Sgblack@eecs.umich.edu            virtual void propagateTransitionInfo();
295643Sgblack@eecs.umich.edu
305643Sgblack@eecs.umich.edu    }; // class BarrelShifter
3111793Sbrandon.potter@amd.com} // namespace DSENT
3211793Sbrandon.potter@amd.com
336138Sgblack@eecs.umich.edu#endif // __DSENT_MODEL_ELECTRICAL_MULTIPLEXER_H__
345651Sgblack@eecs.umich.edu
358746Sgblack@eecs.umich.edu