MUX2.h revision 10447
17199Sgblack@eecs.umich.edu#ifndef __DSENT_MODEL_STD_CELLS_MUX2_H__ 27199Sgblack@eecs.umich.edu#define __DSENT_MODEL_STD_CELLS_MUX2_H__ 37199Sgblack@eecs.umich.edu 47199Sgblack@eecs.umich.edu#include "util/CommonType.h" 57199Sgblack@eecs.umich.edu#include "model/std_cells/StdCell.h" 67199Sgblack@eecs.umich.edu 77199Sgblack@eecs.umich.edunamespace DSENT 87199Sgblack@eecs.umich.edu{ 97199Sgblack@eecs.umich.edu class MUX2 : public StdCell 107199Sgblack@eecs.umich.edu { 117199Sgblack@eecs.umich.edu // A 2-input MUX standard cell 127199Sgblack@eecs.umich.edu public: 137199Sgblack@eecs.umich.edu MUX2(const String& instance_name_, const TechModel* tech_model_); 147199Sgblack@eecs.umich.edu virtual ~MUX2(); 157199Sgblack@eecs.umich.edu 167199Sgblack@eecs.umich.edu public: 177199Sgblack@eecs.umich.edu // Set a list of properties' name needed to construct model 187199Sgblack@eecs.umich.edu void initProperties(); 197199Sgblack@eecs.umich.edu // Cache the standard cell 207199Sgblack@eecs.umich.edu void cacheStdCell(StdCellLib* cell_lib_, double drive_strength_); 217199Sgblack@eecs.umich.edu 227199Sgblack@eecs.umich.edu protected: 237199Sgblack@eecs.umich.edu // Build the model 247199Sgblack@eecs.umich.edu virtual void constructModel(); 257199Sgblack@eecs.umich.edu virtual void updateModel(); 267199Sgblack@eecs.umich.edu virtual void evaluateModel(); 277199Sgblack@eecs.umich.edu virtual void useModel(); 287199Sgblack@eecs.umich.edu virtual void propagateTransitionInfo(); 297199Sgblack@eecs.umich.edu 307199Sgblack@eecs.umich.edu }; // class MUX2 317199Sgblack@eecs.umich.edu} // namespace DSENT 327199Sgblack@eecs.umich.edu 337199Sgblack@eecs.umich.edu#endif // __DSENT_MODEL_STD_CELLS_MUX2_H__ 347199Sgblack@eecs.umich.edu 357199Sgblack@eecs.umich.edu