\hypertarget{class_open_chams_1_1_device}{}\section{Device Class Reference}
\label{class_open_chams_1_1_device}\index{Device@{Device}}
Inheritance diagram for Device\+:\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2.000000cm]{class_open_chams_1_1_device}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{class_open_chams_1_1_transistor}{Transistor}} $\ast$ \mbox{\hyperlink{class_open_chams_1_1_device_ad45d34f8765dd113a5b12289efe66c07}{add\+Transistor}} (const std\+::string \&)
\begin{DoxyCompactList}\small\item\em adds a \mbox{\hyperlink{class_open_chams_1_1_transistor}{Transistor}} to the device. \end{DoxyCompactList}\item 
\mbox{\hyperlink{class_open_chams_1_1_device_af5d1871d38a605955d7848d07df6d9a4}{Device}} (const std\+::string \&name, const std\+::string \&model, unsigned order, const std\+::string \&mos\+Type, bool source\+Bulk\+Connected, \mbox{\hyperlink{class_open_chams_1_1_netlist}{Netlist}} $\ast$)
\begin{DoxyCompactList}\small\item\em creates a new device. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{class_open_chams_1_1_device_a831ce553c23908f447a5be332ecd5946}\label{class_open_chams_1_1_device_a831ce553c23908f447a5be332ecd5946}} 
const std\+::string \& \mbox{\hyperlink{class_open_chams_1_1_device_a831ce553c23908f447a5be332ecd5946}{get\+Mos\+Type}} ()
\begin{DoxyCompactList}\small\item\em returns the mos type of the device. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{class_open_chams_1_1_device_a4033525cab6387eb057f71f5feed9802}\label{class_open_chams_1_1_device_a4033525cab6387eb057f71f5feed9802}} 
const std\+::vector$<$ \mbox{\hyperlink{class_open_chams_1_1_transistor}{Transistor}} $\ast$ $>$ \& \mbox{\hyperlink{class_open_chams_1_1_device_a4033525cab6387eb057f71f5feed9802}{get\+Transistors}} ()
\begin{DoxyCompactList}\small\item\em returns the list of device\textquotesingle{}s transistors. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{class_open_chams_1_1_device_aa9d93f306256ac57b8bb8a4cb436c8d3}\label{class_open_chams_1_1_device_aa9d93f306256ac57b8bb8a4cb436c8d3}} 
bool \mbox{\hyperlink{class_open_chams_1_1_device_aa9d93f306256ac57b8bb8a4cb436c8d3}{has\+No\+Transistors}} ()
\begin{DoxyCompactList}\small\item\em returns true if the device has no transistors. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{class_open_chams_1_1_device_a29ed1982e1a8b3a634df8d0c70039669}\label{class_open_chams_1_1_device_a29ed1982e1a8b3a634df8d0c70039669}} 
bool \mbox{\hyperlink{class_open_chams_1_1_device_a29ed1982e1a8b3a634df8d0c70039669}{is\+Source\+Bulk\+Connected}} ()
\begin{DoxyCompactList}\small\item\em returns true if the device\textquotesingle{}s bulk is source connected. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
This class describes a \mbox{\hyperlink{class_open_chams_1_1_device}{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 \mbox{\hyperlink{class_open_chams_1_1_device}{Device}} inherits all \mbox{\hyperlink{class_open_chams_1_1_instance}{Instance}} methods and adds specific properties\+: mos type, bulk connection and list of internal transistors.

\begin{DoxyNote}{Note}
Althought today \mbox{\hyperlink{class_open_chams_1_1_device}{Device}} object only consider Transistor\+Family devices, it will have to consider other devices, such as Capacitor when C\+H\+A\+MS project will. 
\end{DoxyNote}


\subsection{Constructor \& Destructor Documentation}
\mbox{\Hypertarget{class_open_chams_1_1_device_af5d1871d38a605955d7848d07df6d9a4}\label{class_open_chams_1_1_device_af5d1871d38a605955d7848d07df6d9a4}} 
\index{Open\+Chams\+::\+Device@{Open\+Chams\+::\+Device}!Device@{Device}}
\index{Device@{Device}!Open\+Chams\+::\+Device@{Open\+Chams\+::\+Device}}
\subsubsection{\texorpdfstring{Device()}{Device()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_open_chams_1_1_device}{Device}} (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{name,  }\item[{const std\+::string \&}]{model,  }\item[{unsigned}]{order,  }\item[{const std\+::string \&}]{mos\+Type,  }\item[{bool}]{source\+Bulk\+Connected,  }\item[{\mbox{\hyperlink{class_open_chams_1_1_netlist}{Netlist}} $\ast$}]{netlist }\end{DoxyParamCaption})}



creates a new device. 


\begin{DoxyParams}{Parameters}
{\em name} & the name of the instance. \\
\hline
{\em model} & the model of the instance. \\
\hline
{\em mos\+Type} & the mos type (N\+M\+OS or P\+M\+OS). \\
\hline
{\em netlist} & the netlist to which the instance belongs. \\
\hline
\end{DoxyParams}


\subsection{Member Function Documentation}
\mbox{\Hypertarget{class_open_chams_1_1_device_ad45d34f8765dd113a5b12289efe66c07}\label{class_open_chams_1_1_device_ad45d34f8765dd113a5b12289efe66c07}} 
\index{Open\+Chams\+::\+Device@{Open\+Chams\+::\+Device}!add\+Transistor@{add\+Transistor}}
\index{add\+Transistor@{add\+Transistor}!Open\+Chams\+::\+Device@{Open\+Chams\+::\+Device}}
\subsubsection{\texorpdfstring{add\+Transistor()}{addTransistor()}}
{\footnotesize\ttfamily \mbox{\hyperlink{class_open_chams_1_1_transistor}{Transistor}} $\ast$ add\+Transistor (\begin{DoxyParamCaption}\item[{const std\+::string \&}]{name }\end{DoxyParamCaption})}



adds a \mbox{\hyperlink{class_open_chams_1_1_transistor}{Transistor}} to the device. 


\begin{DoxyParams}{Parameters}
{\em name} & the name of the transistor.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the newly created \mbox{\hyperlink{class_open_chams_1_1_transistor}{Transistor}}. 
\end{DoxyReturn}
