|
libraries/onchipcommunication/common/Link.hGo to the documentation of this file.00001 //============================================================================ 00002 // Author : Alessandro Pinto <apinto@eecs.berkeley.edu> 00003 // University of California, Berkeley 00004 // 545 Cory Hall, Berkeley, CA 94720 00005 // Copyright : See COPYING file that comes with this distribution 00006 //============================================================================ 00007 00008 #ifndef LIBRARIES_WIREDBAS_COMMON_LINK_H_ 00009 #define LIBRARIES_WIREDBAS_COMMON_LINK_H_ 00010 00011 #include "Node.h" 00012 #include "InstantiableLink.h" 00013 #include "quantities/WiringPath.h" 00014 #include "quantities/CommoditySet.h" 00015 #include "models/onchipcommunication/common/AreaModel.h" 00016 #include "models/onchipcommunication/common/PowerModel.h" 00017 #include "models/onchipcommunication/common/DelayModel.h" 00018 00019 namespace cosi { 00020 00021 namespace library { 00022 00023 namespace onchipcommunication { 00024 00025 class Link : public cosi::library::onchipcommunication::InstantiableLink { 00026 protected: 00027 cosi::models::onchipcommunication::LinkAreaModel* mAreaModel; 00028 cosi::models::onchipcommunication::LinkPowerModel* mPowerModel; 00029 cosi::models::onchipcommunication::LinkDelayModel* mDelayModel; 00030 00031 public: 00032 Link(); 00033 virtual ~Link(); 00034 00035 void SetAreaModel(cosi::models::onchipcommunication::LinkAreaModel* pModel); 00036 00037 void 00038 SetPowerModel( 00039 cosi::models::onchipcommunication::LinkPowerModel* pModel); 00040 00041 void 00042 SetDelayModel( 00043 cosi::models::onchipcommunication::LinkDelayModel* pModel); 00044 00045 00046 //COST METRICS 00047 virtual double GetDeviceArea(WiringPath P) = 0; 00048 virtual double GetWiringArea(WiringPath P) = 0; 00049 virtual double GetStaticPower(WiringPath P) = 0; 00050 virtual double GetDynamicPower(WiringPath P, CommoditySet pCommodities) = 0; 00051 00052 00053 //PERFORMANCE METRICS 00054 virtual double GetDelay(WiringPath P) = 0; 00055 00056 virtual std::string GetComponentName() = 0; 00057 virtual std::string GetComponentType() = 0; 00058 00059 }; 00060 00061 } 00062 00063 } 00064 00065 } 00066 00067 #endif /*LINK_H_*/ Generated on Sun Sep 7 18:37:42 2008 for COSI by 1.5.4 |