Skip to content

Commit 96a1b5c

Browse files
committed
update for 2024
1 parent 3e0e0c3 commit 96a1b5c

File tree

1 file changed

+123
-0
lines changed

1 file changed

+123
-0
lines changed

doc/bjtexample.tex

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
\documentclass[11pt]{article}
2+
\newcommand{\devsim}{\mbox{DEVSIM}}
3+
\newcommand{\devsimllc}{\mbox{DEVSIM LLC}}
4+
\newcommand{\gmsh}{\mbox{Gmsh}}
5+
\newcommand{\matplotlib}{\mbox{matplotlib}}
6+
\newcommand{\numpy}{\mbox{NumPy}}
7+
\newcommand{\python}{\mbox{Python}}
8+
\newcommand{\visit}{\mbox{VisIt}}
9+
10+
\usepackage{indentfirst}
11+
\usepackage{fullpage}
12+
\usepackage{helvet}
13+
\renewcommand{\familydefault}{\sfdefault}
14+
\usepackage{mathptmx}
15+
%\usepackage[dvips,colorlinks,breaklinks,pagebackref,citecolor=blue,urlcolor=blue,bookmarks,bookmarksnumbered,linkcolor=blue]{hyperref}
16+
\usepackage[colorlinks,breaklinks,pagebackref,citecolor=blue,urlcolor=blue,bookmarks,bookmarksnumbered,linkcolor=blue]{hyperref}
17+
\title{\devsim\ BJT Example}
18+
\author{Juan E. Sanchez\\ juan.sanchez@devsim.com}
19+
20+
\setcounter{secnumdepth}{2}
21+
22+
\begin{document}
23+
\maketitle
24+
\thispagestyle{empty}
25+
\section{Introduction}
26+
This package includes the examples for the article ``Semiconductor Device Simulation Using \devsim''. In this example, the meshing, modeling, simulation, and visualization for a bipolar junction transistor~(BJT) is developed.
27+
%\section{Installation}
28+
%\subsection{\devsim}
29+
\devsim\ is an open source simulation software for technology computer-aided design~(TCAD) and is developed by \devsimllc. It uses a generalized partial-differential equation~(PDE) approach to perform semiconductor device simulation on a mesh. The software and documentation is available from \url{http://www.devsim.org}.
30+
31+
In addition to \devsim, the following software packages are used to perform meshing, analysis, and visualization of results.
32+
33+
~\\~\\
34+
\noindent
35+
\begin{tabular}{p{1.5cm}p{5cm}p{5cm}p{2cm}}
36+
\hline\noalign{\smallskip}
37+
Name & Description & Website & License$^a$ \\
38+
\gmsh & Mesh Generator & \url{http://geuz.org/gmsh} & GPL\\
39+
\matplotlib & Python 2D Plotting Library & \url{http://matplotlib.org} & \matplotlib \\
40+
\numpy & Python Scientific Computing & \url{http://numpy.org} & BSD\\
41+
\python & Scripting Language & \url{http://python.org} & PSF\\
42+
\visit & Visualization Tool & \url{http://visit.llnl.gov} & BSD\\
43+
\noalign{\smallskip}\hline\noalign{\smallskip}
44+
\end{tabular}
45+
46+
\section{Running the Examples}
47+
\begin{minipage}{\textwidth}
48+
Here are some of the files in the package used for simulation.
49+
50+
\begin{tabular}{ll}
51+
\texttt{bjt.geo} & Mesh description for \gmsh\\
52+
\texttt{bjt.msh} & Resulting gmsh mesh\\
53+
\texttt{initial\_guess.py} & Creates initial guess from Potential only simulation\\
54+
\texttt{refinement.py} & Sets up E-field based refinements for creating background mesh\\
55+
\texttt{netdoping.py} & Specifies analytical doping profile\\
56+
\texttt{bjt\_refine.py} & Runs \devsim\ to create a background mesh\\
57+
\texttt{bjt\_bgmesh.pos} & Background mesh generated by \devsim\ for refinement using \gmsh\\
58+
\texttt{physics/} & subdirectory containing physics files used in simulation.
59+
\end{tabular}
60+
\end{minipage}
61+
62+
\subsection{Meshing and Refinement}
63+
64+
The file \texttt{bjt.geo} contains the initial mesh specification for the bjt structure. This file is run through \gmsh\ in order to create a triangular mesh for use in \devsim. The resulting mesh file is called \texttt{bjt.msh}. In order to create a mesh suitable for devsim, the \texttt{bjt\_refine.py} script is run to create a background mesh with element sizes appropriate for simulation. The background mesh is then used with the original mesh specification to create a refined mesh. This procedure is repeated until the mesh is sufficiently refined for use in \devsim.
65+
66+
\begin{minipage}{\textwidth}
67+
The steps are:
68+
\begin{verbatim}
69+
gmsh -2 bjt.geo
70+
devsim bjt_refine.py
71+
gmsh -2 bjt.geo -bgm ./bjt_bgmesh.pos
72+
devsim bjt_refine.py
73+
gmsh -2 bjt.geo -bgm ./bjt_bgmesh.pos
74+
devsim bjt_refine.py
75+
gmsh -2 bjt.geo -bgm ./bjt_bgmesh.pos
76+
devsim bjt_refine.py
77+
gmsh -2 bjt.geo -bgm ./bjt_bgmesh.pos
78+
devsim bjt_refine.py
79+
\end{verbatim}
80+
\end{minipage}
81+
\\~\\
82+
83+
The resulting mesh from each \devsim\ run can be visualized by running Visit.
84+
\begin{verbatim}
85+
visit bjt_refine.tec
86+
\end{verbatim}
87+
\subsection{Simulation}
88+
The dc and ac sweeps used in the publication are listed in \texttt{simsbatch.txt}. These simulations can be run in sequence or in parallel.
89+
90+
\subsubsection{$V_c$ sweep}
91+
For a given value of $V_b$, sweep $V_c$ from $0$ to $1.5$~V.
92+
\begin{verbatim}
93+
bjt_circuit2.py 0.1 &> data/vb2_0.1.out
94+
\end{verbatim}
95+
96+
\subsubsection{$V_b$ sweep}
97+
For a given value of $V_c$, sweep $V_b$ from $0$ to $1.0$~V.
98+
\begin{verbatim}
99+
devsim bjt_circuit3.py 0.0 &> data/vc_0.0.out
100+
\end{verbatim}
101+
102+
\subsubsection{$V_e$ sweep}
103+
For a given value of $V_c$, sweep $V_e$ from $0$ to $-1.0$~V.
104+
\begin{verbatim}
105+
devsim bjt_circuit4.py 0.0 &> data/ve_0.0.out
106+
\end{verbatim}
107+
108+
\subsubsection{Small-signal ac sweep}
109+
For a given value of $V_c$, sweep $V_e$ from $0$ to $-1.0$~V. Do a small signal frequency sweep from fmin to fmax with given points per decade.
110+
\begin{verbatim}
111+
devsim bjt_circuit5.py 0.0 1e3 1e11 3 &> data/ssac_0.0.out
112+
\end{verbatim}
113+
114+
\subsection{Visualization}
115+
The \texttt{data/} directory contains scripts used to generate the plots used for publication. A script was written to collect the data from the simulations to create plots using \texttt{matplotlib}. This script is in the \texttt{data/} directory and is called \texttt{prep.sh}.
116+
117+
\begin{tabular}{ll}
118+
\texttt{ft.py} & Small-signal ft simulation\\
119+
\texttt{gummel.py} & Ic, Ib versus Vbe.\\
120+
\texttt{ic\_vec.py} & Ic versus Vce.\\
121+
\end{tabular}
122+
\end{document}
123+

0 commit comments

Comments
 (0)