libraries/onchipcommunication/common/Link.h

Go 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  doxygen 1.5.4
Contact 
©2002-2018 U.C. Regents