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