ModelGen.h revision 10447
110447Snilay@cs.wisc.edu#ifndef __DSENT_MODEL_MODELGEN_H__
210447Snilay@cs.wisc.edu#define __DSENT_MODEL_MODELGEN_H__
310447Snilay@cs.wisc.edu
410447Snilay@cs.wisc.edu#include "util/CommonType.h"
510447Snilay@cs.wisc.edu
610447Snilay@cs.wisc.edunamespace DSENT
710447Snilay@cs.wisc.edu{
810447Snilay@cs.wisc.edu    class Model;
910447Snilay@cs.wisc.edu    class ElectricalModel;
1010447Snilay@cs.wisc.edu    class StdCell;
1110447Snilay@cs.wisc.edu    class TechModel;
1210447Snilay@cs.wisc.edu
1310447Snilay@cs.wisc.edu    class ModelGen
1410447Snilay@cs.wisc.edu    {
1510447Snilay@cs.wisc.edu        public:
1610447Snilay@cs.wisc.edu            // Create the model corresponding to the given String
1710447Snilay@cs.wisc.edu            static Model* createModel(const String& model_name_, const String& instance_name_, const TechModel* tech_model_);
1810447Snilay@cs.wisc.edu            // Create the standard cell corresponding to the given String
1910447Snilay@cs.wisc.edu            static StdCell* createStdCell(const String& std_cell_name_, const String& instance_name_, const TechModel* tech_model_);
2010447Snilay@cs.wisc.edu            // Create the ram corresponding to the given String
2110447Snilay@cs.wisc.edu            static ElectricalModel* createRAM(const String& ram_name_, const String& instance_name_, const TechModel* tech_model_);
2210447Snilay@cs.wisc.edu            // Create the crossbar corresponding to the given String
2310447Snilay@cs.wisc.edu            static ElectricalModel* createCrossbar(const String& crossbar_name_, const String& instance_name_, const TechModel* tech_model_);
2410447Snilay@cs.wisc.edu            // Print the available models
2510447Snilay@cs.wisc.edu            static void printAvailableModels();
2610447Snilay@cs.wisc.edu    };
2710447Snilay@cs.wisc.edu} // namespace DSENT
2810447Snilay@cs.wisc.edu
2910447Snilay@cs.wisc.edu#endif // __DSENT_MODEL_MODELGEN_H__
3010447Snilay@cs.wisc.edu
31