\node[nmos](mos) at (0,0) {};

\draw (mos.gate) 
    to [short,-o]   ++ (-0.45,0) coordinate(vgsplus)
      --++ (-0.6,0) to [V]  
        ++ (0,-1.5) to[short,-o] 
        ++ (0.6,0)  coordinate(vgsminus) to[short,-] 
        (vgsminus-|mos.source) coordinate (gnd) to[short,-] (mos.source);  

\draw (mos.drain) to[short,-]  ++ (0,0.5) coordinate(drainedge)
        to [short,i<=$I_{\mathrm{D}}$,-o]  ++ (1.5,0) coordinate(vdsplus) 
        to [short,-]                       ++ (0.6,0) coordinate (vdd) 
        to [V] (vdd|-gnd) 
        to [short,-o] ++(-0.6,0) coordinate(vdsminus) to[short,-*] (gnd);

\path [voltarrow](vgsplus) 
  edge[] node [midway,right,inner sep=1pt] {$V_{\mathrm{GS}}$} (vgsminus);
\path [voltarrow](vdsplus)
  edge[] node [midway,left,inner sep=1pt] {$V_{\mathrm{DS}}$} (vdsminus);

\tikzstyle{termstyle}=[font=\scriptsize\ttfamily,inner sep=1pt]

\node[anchor=south,termstyle] () at (mos.gate) {G};
\node[anchor=west ,termstyle] () at ($(mos.drain)!0.4!(mos.bulk)$) {D};
\node[anchor=west ,termstyle] () at ($(mos.source)!0.4!(mos.bulk)$) {S};

\node[ground] () at (gnd-|mos.source) {};