coriolis/vlsisapd/openChams/Transistor.h

65 lines
2.0 KiB
C++

/*
* Transistor.h
* openChams
*
* Created by damien dupuis on 01/03/10.
* Copyright 2010 UPMC / LIP6. All rights reserved.
*
*/
#ifndef __OPENCHAMS_TRANSISTOR_H__
#define __OPENCHAMS_TRANSISTOR_H__
#include <map>
#include "Name.h"
#include "Parameters.h"
namespace OpenChams {
class Instance;
class Net;
class Transistor {
public:
Transistor(Name, Instance*);
inline void addParameter(Name, double);
inline void addParameter(Name, std::string);
inline Parameters getParameters();
inline void setName(Name);
inline Name getName();
inline Name getGate();
inline Name getSource();
inline Name getDrain();
inline Name getBulk();
void setGate (Name);
void setSource(Name);
void setDrain (Name);
void setBulk (Name);
private:
bool checkConnector(Name);
Name _name;
Name _gate; // le nom du connecteur de _instance auquel la gate est reliée
Name _source; // le nom du connecteur de _instance auquel la source est reliée
Name _drain; // le nom du connecteur de _instance auquel le drain est relié
Name _bulk; // le nom du connecteur de _instance auquel le bulk est relié
Instance* _instance;
Parameters _params;
};
inline void Transistor::addParameter(Name name, double value) { _params.addParameter(name, value); };
inline void Transistor::addParameter(Name name, std::string eqStr) { _params.addParameter(name, eqStr); };
inline Parameters Transistor::getParameters() { return _params; };
inline void Transistor::setName (Name name) { _name = name; };
inline Name Transistor::getName() { return _name; };
inline Name Transistor::getGate() { return _gate; };
inline Name Transistor::getSource() { return _source; };
inline Name Transistor::getDrain() { return _drain; };
inline Name Transistor::getBulk() { return _bulk; };
} // namespace
#endif