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