65 lines
2.0 KiB
C++
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
|
|
|