OpticalLinkBackendTx.h revision 10447
12SN/A#ifndef __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDTX_H__ 210595Sgabeblack@google.com#define __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDTX_H__ 31762SN/A 42SN/A#include "util/CommonType.h" 52SN/A#include "model/ElectricalModel.h" 62SN/A 72SN/Anamespace DSENT 82SN/A{ 92SN/A class OpticalLinkBackendTx : public ElectricalModel 102SN/A { 112SN/A // An optical link backend tx contains everything needed for thermal 122SN/A // tuning of rings, bit-reshuffling (if necessary), and serialization (if necessary) 132SN/A public: 142SN/A OpticalLinkBackendTx(const String& instance_name_, const TechModel* tech_model_); 152SN/A virtual ~OpticalLinkBackendTx(); 162SN/A 172SN/A public: 182SN/A // Set a list of properties' name needed to construct model 192SN/A void initParameters(); 202SN/A // Set a list of properties' name needed to construct model 212SN/A void initProperties(); 222SN/A 232SN/A protected: 242SN/A // Build the model 252SN/A virtual void constructModel(); 262SN/A virtual void updateModel(); 272SN/A virtual void propagateTransitionInfo(); 282665Ssaidi@eecs.umich.edu 292665Ssaidi@eecs.umich.edu private: 302SN/A // Calculate ring tuning power 312SN/A double getRingTuningPower(); 322SN/A // Calculate the degree of bit re-order muxing (for the bit-reshuffler) 332SN/A unsigned int getBitReorderDegree(); 342SN/A 353960Sgblack@eecs.umich.edu }; // class OpticalLinkBackendTx 3677SN/A} // namespace DSENT 378229Snate@binkert.org 388229Snate@binkert.org#endif // __DSENT_MODEL_OPTICAL_OPTICALLINKBACKENDTX_H__ 392986Sgblack@eecs.umich.edu 4010595Sgabeblack@google.com