00001
00002
00003
00004
00005
00006
00007
00008 #ifndef HOPOWERMODEL_H_
00009 #define HOPOWERMODEL_H_
00010
00011 #include <vector>
00012 #include "models/onchipcommunication/common/PowerModel.h"
00013 #include "io/onchipcommunication/HoOrionModelParser.h"
00014 #include "include/onchipcommunication/typedefs.h"
00015
00016 namespace cosi {
00017
00018 namespace models {
00019
00020 namespace onchipcommunication {
00021
00022 class HoPowerModel : public LinkPowerModel {
00023 public:
00024 HoPowerModel(cosi::library::onchipcommunication::Technology pTech);
00025 virtual ~HoPowerModel();
00026 double GetDynamicPower(Name pName,
00027 cosi::quantity::onchipcommunication::Interface pSource,
00028 cosi::quantity::onchipcommunication::Interface pDest,
00029 WiringPath pPath, CommoditySet pCommodities,
00030 cosi::quantity::onchipcommunication::LinkParameter pParam);
00031 double GetStaticPower(Name pName,
00032 cosi::quantity::onchipcommunication::Interface pSource,
00033 cosi::quantity::onchipcommunication::Interface pDest,
00034 WiringPath pPath,
00035 cosi::quantity::onchipcommunication::LinkParameter pParam);
00036 private:
00037 double mHopt;
00038 double mKopt;
00039 double mWmin;
00040 double mR0;
00041 double mC0;
00042 double mCp;
00043 double mK1 , mK2 , mK3 ;
00044 double mIoff ;
00045 double mVdd ;
00046 double mEdyn ;
00047 double mPl ;
00048 double mDelay ;
00049 std::vector<double> mR;
00050 std::vector<double> mC;
00051 std::vector<double> mPitch;
00052
00053 };
00054
00055 }
00056
00057 }
00058
00059 }
00060
00061 #endif