00001
00002
00003
00004
00005
00006
00007
00008 #ifndef ROUTER_H_
00009 #define ROUTER_H_
00010
00011 #include <string>
00012 #include <sstream>
00013 #include "libraries/onchipcommunication/common/Node.h"
00014 #include "quantities/onchipcommunication/Interface.h"
00015 #include "quantities/onchipcommunication/NodeParameter.h"
00016 #include "networks/onchipcommunication/PlatformInstance.h"
00017 #include "networks/onchipcommunication/Implementation.h"
00018 #include "models/onchipcommunication/common/AreaModel.h"
00019 #include "models/onchipcommunication/common/PowerModel.h"
00020
00021 namespace cosi {
00022
00023 namespace library {
00024
00025 namespace onchipcommunication {
00026
00027 class Router : public cosi::library::onchipcommunication::Node {
00028
00029 cosi::quantity::onchipcommunication::NodeParameter* mParam;
00030
00031 public:
00032
00033 Router(int Nin, int Nout, int Vch, int Length, int Width, double Fclk,
00034 cosi::library::onchipcommunication::Technology pTech);
00035
00036 virtual ~Router();
00037
00038 cosi::commstruct::onchipcommunication::PlatformInstance
00039 * GetPlatformInstance(int V, Position pP);
00040
00041 cosi::commstruct::onchipcommunication::Implementation
00042 * GetImplementationInstance(int V, Position pP, TransferTable pT);
00043
00044 double GetArea();
00045
00046 double GetStaticPower();
00047
00048 double GetDynamicPower(std::map< std::string , CommoditySet > pCommodities);
00049
00050 std::string ComponentName;
00051 static std::string ComponentType;
00052
00053 std::string GetComponentName();
00054 std::string GetComponentType();
00055
00056 };
00057
00058 }
00059
00060 }
00061
00062 }
00063
00064 #endif