00001
00002
00003
00004
00005
00006
00007
00008 #ifndef POINTTOPOINTBUS_H_
00009 #define POINTTOPOINTBUS_H_
00010
00011 #include "networks/onchipcommunication/PlatformInstance.h"
00012 #include "networks/onchipcommunication/Implementation.h"
00013 #include "libraries/onchipcommunication/common/Link.h"
00014 #include "quantities/onchipcommunication/Interface.h"
00015 #include "models/onchipcommunication/common/AreaModel.h"
00016 #include "models/onchipcommunication/common/PowerModel.h"
00017 #include "include/onchipcommunication/typedefs.h"
00018 #include "quantities/onchipcommunication/LinkParameter.h"
00019 #include "quantities/onchipcommunication/NodeParameter.h"
00020
00021
00022 namespace cosi {
00023
00024 namespace library {
00025
00026 namespace onchipcommunication {
00027
00028 class PointToPointBus : public Link {
00029
00030 cosi::quantity::onchipcommunication::LinkParameter* mParam;
00031 public:
00032
00033 PointToPointBus(int Width , Technology pTech);
00034
00035 virtual ~PointToPointBus();
00036
00037
00038 double GetDeviceArea(WiringPath P);
00039
00040 double GetWiringArea(WiringPath P);
00041
00042 double GetStaticPower(WiringPath P);
00043
00044 double GetDynamicPower(WiringPath P, CommoditySet pCommodities);
00045
00046 double GetDelay(WiringPath P) ;
00047
00048 cosi::commstruct::onchipcommunication::PlatformInstance
00049 * GetPlatformInstance(int U, std::string pPortsU, int V,
00050 std::string pPortV) ;
00051
00052 cosi::commstruct::onchipcommunication::Implementation
00053 * GetImplementationInstance(int U, std::string pPortsU, int V,
00054 std::string pPortV, WiringPath pPath) ;
00055
00056 cosi::commstruct::onchipcommunication::Implementation
00057 * GetImplementationInstance(int U, std::string pPortsU, int V,
00058 std::string pPortV, WiringPath pPath,
00059 CommoditySet pCommodities);
00060
00061 static std::string ComponentName;
00062 static std::string ComponentType;
00063
00064 std::string GetComponentName() ;
00065 std::string GetComponentType() ;
00066
00067 };
00068
00069 }
00070
00071 }
00072
00073 }
00074
00075 #endif