MatrixArbiter.h revision 10448
12SN/A/* Copyright (c) 2012 Massachusetts Institute of Technology 21762SN/A * 32SN/A * Permission is hereby granted, free of charge, to any person obtaining a copy 42SN/A * of this software and associated documentation files (the "Software"), to deal 52SN/A * in the Software without restriction, including without limitation the rights 62SN/A * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 72SN/A * copies of the Software, and to permit persons to whom the Software is 82SN/A * furnished to do so, subject to the following conditions: 92SN/A * 102SN/A * The above copyright notice and this permission notice shall be included in 112SN/A * all copies or substantial portions of the Software. 122SN/A * 132SN/A * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 142SN/A * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 152SN/A * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 162SN/A * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 172SN/A * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 182SN/A * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 192SN/A * THE SOFTWARE. 202SN/A */ 212SN/A 222SN/A#ifndef __DSENT_MODEL_ELECTRICAL_MATRIX_ARBITER_H__ 232SN/A#define __DSENT_MODEL_ELECTRICAL_MATRIX_ARBITER_H__ 242SN/A 252SN/A#include "util/CommonType.h" 262SN/A#include "model/ElectricalModel.h" 272665Ssaidi@eecs.umich.edu 282665Ssaidi@eecs.umich.edunamespace DSENT 292SN/A{ 302SN/A class MatrixArbiter : public ElectricalModel 312439SN/A { 322984Sgblack@eecs.umich.edu public: 33146SN/A MatrixArbiter(const String& instance_name_, const TechModel* tech_model_); 34146SN/A virtual ~MatrixArbiter(); 35146SN/A 36146SN/A public: 37146SN/A // Set a list of properties' name needed to construct model 38146SN/A void initParameters(); 391717SN/A // Set a list of properties' name needed to construct model 40146SN/A void initProperties(); 411717SN/A 42146SN/A // Clone and return a new instance 431977SN/A virtual MatrixArbiter* clone() const; 442623SN/A 452683Sktlim@umich.edu protected: 461717SN/A // Build the model 47146SN/A virtual void constructModel(); 482683Sktlim@umich.edu virtual void propagateTransitionInfo(); 493348Sbinkertn@umich.edu 502036SN/A }; // class MatrixArbiter 51146SN/A} // namespace DSENT 5256SN/A 5356SN/A#endif // __DSENT_MODEL_ELECTRICAL_MATRIX_ARBITER_H__ 5456SN/A 55695SN/A