49 lines
1.5 KiB
C++
49 lines
1.5 KiB
C++
// -*- C++ -*-
|
|
|
|
namespace OpenChams {
|
|
/*! \class Device
|
|
*
|
|
* This class describes a Device.
|
|
*
|
|
* A device is a leaf instance which means its model is not defined in a external file but is described inside the device.
|
|
* As an instance, the Device inherits all Instance methods and adds specific properties: mos type, bulk connection and list of internal transistors.
|
|
*
|
|
* \note Althought today Device object only consider TransistorFamily devices, it will have to consider other devices, such as Capacitor when CHAMS project will.
|
|
*/
|
|
|
|
/*! \fn Device::Device(Name name, Name model, Name mosType, Netlist* netlist)
|
|
* \brief creates a new device.
|
|
*
|
|
* \param name the name of the instance.
|
|
* \param model the model of the instance.
|
|
* \param mosType the mos type (NMOS or PMOS).
|
|
* \param netlist the netlist to which the instance belongs.
|
|
*/
|
|
|
|
/*! \fn inline Name Device::getMosType()
|
|
* \brief returns the mos type of the device.
|
|
*/
|
|
|
|
/*! \fn inline bool Device::isSourceBulkConnected()
|
|
* \brief returns true if the device's bulk is source connected.
|
|
*/
|
|
|
|
/*! \fn Transistor* Device::addTransistor(Name name)
|
|
* \brief adds a Transistor to the device.
|
|
*
|
|
* \param name the name of the transistor.
|
|
*
|
|
* \return the newly created Transistor.
|
|
*/
|
|
|
|
/*! \fn inline bool Device::hasNoTransistors()
|
|
* \brief returns true if the device has no transistors.
|
|
*/
|
|
|
|
/*! \fn inline const std::vector<Transistor*>& Device::getTransistors()
|
|
* \brief returns the list of device's transistors.
|
|
*/
|
|
|
|
}
|
|
|