ADDF.h revision 10447
16253Sgblack@eecs.umich.edu#ifndef __DSENT_MODEL_STD_CELLS_ADDF_H__ 26253Sgblack@eecs.umich.edu#define __DSENT_MODEL_STD_CELLS_ADDF_H__ 36253Sgblack@eecs.umich.edu 46253Sgblack@eecs.umich.edu#include "util/CommonType.h" 56253Sgblack@eecs.umich.edu#include "model/std_cells/StdCell.h" 66253Sgblack@eecs.umich.edu#include "model/TransitionInfo.h" 76253Sgblack@eecs.umich.edu 86253Sgblack@eecs.umich.edunamespace DSENT 96253Sgblack@eecs.umich.edu{ 106253Sgblack@eecs.umich.edu // A full adder standard cell 116253Sgblack@eecs.umich.edu class ADDF : public StdCell 126253Sgblack@eecs.umich.edu { 136253Sgblack@eecs.umich.edu public: 146253Sgblack@eecs.umich.edu ADDF(const String& instance_name_, const TechModel* tech_model_); 156253Sgblack@eecs.umich.edu virtual ~ADDF(); 166253Sgblack@eecs.umich.edu 176253Sgblack@eecs.umich.edu public: 186253Sgblack@eecs.umich.edu // Set a list of properties needed to update model 196253Sgblack@eecs.umich.edu void initProperties(); 206253Sgblack@eecs.umich.edu // Cache the standard cell 216253Sgblack@eecs.umich.edu void cacheStdCell(StdCellLib* cell_lib_, double drive_strength_); 226253Sgblack@eecs.umich.edu private: 236253Sgblack@eecs.umich.edu TransitionInfo m_trans_P_; 246253Sgblack@eecs.umich.edu TransitionInfo m_trans_G_; 256253Sgblack@eecs.umich.edu TransitionInfo m_trans_CP_; 266253Sgblack@eecs.umich.edu 276253Sgblack@eecs.umich.edu protected: 286253Sgblack@eecs.umich.edu // Build the model 296253Sgblack@eecs.umich.edu virtual void constructModel(); 306253Sgblack@eecs.umich.edu virtual void updateModel(); 316255Sgblack@eecs.umich.edu virtual void evaluateModel(); 326712Snate@binkert.org virtual void useModel(); 336263Sgblack@eecs.umich.edu virtual void propagateTransitionInfo(); 346253Sgblack@eecs.umich.edu 356253Sgblack@eecs.umich.edu }; // class ADDF 366253Sgblack@eecs.umich.edu} // namespace DSENT 376254Sgblack@eecs.umich.edu 386254Sgblack@eecs.umich.edu#endif // __DSENT_MODEL_STD_CELLS_ADDF_H__ 396254Sgblack@eecs.umich.edu 406254Sgblack@eecs.umich.edu