Router.h revision 10447
1#ifndef __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_H__ 2#define __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_H__ 3 4#include "util/CommonType.h" 5#include "model/ElectricalModel.h" 6 7namespace DSENT 8{ 9 /** \class Router 10 * \param Input ports: In[0-9]* 11 * \param Output ports: Out[0-9]* 12 */ 13 class Router : public ElectricalModel 14 { 15 public: 16 Router(const String& instance_name_, const TechModel* tech_model_); 17 virtual ~Router(); 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 Router* clone() const; 27 28 protected: 29 // Build the model 30 virtual void constructModel(); 31 virtual void updateModel(); 32 virtual void propagateTransitionInfo(); 33 34 private: 35 void createRouterInputPort(); 36 void createVirtualChannelAllocator(); 37 void createSwitchAllocator(); 38 void createCrossbar(); 39 void createClockTree(); 40 void createPipelineReg(); 41 42 }; // class Router 43} // namespace DSENT 44 45#endif // __DSENT_MODEL_ELECTRICAL_ROUTER_ROUTER_H__ 46 47