// -*- 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& Device::getTransistors() * \brief returns the list of device's transistors. */ }