DFFQ.h revision 10447
110447Snilay@cs.wisc.edu#ifndef __DSENT_MODEL_STD_CELLS_DFFQ_H__
210447Snilay@cs.wisc.edu#define __DSENT_MODEL_STD_CELLS_DFFQ_H__
310447Snilay@cs.wisc.edu
410447Snilay@cs.wisc.edu#include "util/CommonType.h"
510447Snilay@cs.wisc.edu#include "model/std_cells/StdCell.h"
610447Snilay@cs.wisc.edu#include "model/TransitionInfo.h"
710447Snilay@cs.wisc.edu
810447Snilay@cs.wisc.edunamespace DSENT
910447Snilay@cs.wisc.edu{
1010447Snilay@cs.wisc.edu    class DFFQ : public StdCell
1110447Snilay@cs.wisc.edu    {
1210447Snilay@cs.wisc.edu        // A DQ flip-flop
1310447Snilay@cs.wisc.edu        public:
1410447Snilay@cs.wisc.edu            DFFQ(const String& instance_name_, const TechModel* tech_model_);
1510447Snilay@cs.wisc.edu            virtual ~DFFQ();
1610447Snilay@cs.wisc.edu
1710447Snilay@cs.wisc.edu        public:
1810447Snilay@cs.wisc.edu            // Set a list of properties' name needed to construct model
1910447Snilay@cs.wisc.edu            void initProperties();
2010447Snilay@cs.wisc.edu            // Cache the standard cell
2110447Snilay@cs.wisc.edu            void cacheStdCell(StdCellLib* cell_lib_, double drive_strength_);
2210447Snilay@cs.wisc.edu
2310447Snilay@cs.wisc.edu        private:
2410447Snilay@cs.wisc.edu            TransitionInfo m_trans_M_;
2510447Snilay@cs.wisc.edu
2610447Snilay@cs.wisc.edu        protected:
2710447Snilay@cs.wisc.edu            // Build the model
2810447Snilay@cs.wisc.edu            virtual void constructModel();
2910447Snilay@cs.wisc.edu            virtual void updateModel();
3010447Snilay@cs.wisc.edu            virtual void evaluateModel();
3110447Snilay@cs.wisc.edu            virtual void useModel();
3210447Snilay@cs.wisc.edu            virtual void propagateTransitionInfo();
3310447Snilay@cs.wisc.edu
3410447Snilay@cs.wisc.edu    }; // class DFFQ
3510447Snilay@cs.wisc.edu} // namespace DSENT
3610447Snilay@cs.wisc.edu
3710447Snilay@cs.wisc.edu#endif // __DSENT_MODEL_STD_CELLS_INV_H__
3810447Snilay@cs.wisc.edu
39