Contents Overview

-Deck layout

-Exercise One: Create a simple 1D Diode structure

-Exercise Two: Bias the 1D Diode structure

-Exercise Three: Inject a Beam of charge into the diode

-Exercise Four: Add defects into the 1D diode

-Exercise Five: Create a 2D structure

-Exercise Six: Apply a beam of light to the 2D structure

-Exercise Seven: 3D Pixel Array

-Exercise Eight: Advanced Automation Techniques

Creating a simulation deck in Atlas – Statement Order

GroupStatements

Structure SpecificationMESH

REGION

ELECTRODE

DOPING

Material & Model SpecificationMATERIAL

MODELS

CONTACT

INTERFACE

Numerical MethodsMETHOD

Electro-Optical SolutionLOG

SOLVE

LOAD

SAVE

Results AnalysisEXTRACT

TONYPLOT

N.B. This list is not exhaustive. Also, not every statement outlined above needs to be used.

Exercise One: Create a simple 1D Diode structure

We will use a simple structure to illustrate various parts of the tools. Specifically structure design, visualization and extraction of results.

Task 1: Design a 1D n+-p-p+ diode. Thickness,200μm, width, 1um, uniform substrate doping with a resistivity of concentration of 1E3 ohm.cm, P+ and N+ regions should have Gaussian doping, peak of 1E20. Save the structure.

Example 1 / Figure 1: Target device

go atlas

TITLE Exercise 1, Task 1: Create a 1D Diode Structure

# Define the Mesh

mesh

# X Mesh

x.mesh location=0.0 spacing=0.05

x.mesh location=1.0 spacing=0.05

# Y Mesh

y.mesh location=0 spacing=0.05

y.mesh location=5.0 spacing=1

y.mesh location=30 spacing=10

y.mesh location=170 spacing=10

y.mesh location=195 spacing=1

y.mesh location=200 spacing=0.05

# Define the region(s)

region number=1 silicon

# Define the electrode(s)

electrode top name=anode

electrode bottom name=cathode

# Define uniform substrate doping

#doping uniform conc=1.30e13 p.type

doping uniform resist=1e3 p.type

# Define Cathode N-Type Gaussian doping

doping gaus n.type peak=0 CONCENTRATION=2e19 junc=1.5

# Define Anode P-Type Gaussian doping

doping gaus p.type peak=200 CONCENTRATION=2e19 junc=198.5

# Save the structure

structure outfile=OneD_Diode.str

quit

Task 2: Vary the substrate resistivity and use the value in the name of the structure. Use the extract statement to extract the Net doping profile down the centre of the device.

go atlas

TITLE Exercise 1, Task 2: Create a 1D structure, vary resistivity of Substrate

set SubRes=1e4

# Define the Mesh

mesh

# X Mesh

x.mesh location=0.0 spacing=0.05

x.mesh location=1.0 spacing=0.05

# Y Mesh

y.mesh location=0 spacing=0.05

y.mesh location=5.0 spacing=1

y.mesh location=30 spacing=10

y.mesh location=170 spacing=10

y.mesh location=195 spacing=1

y.mesh location=200 spacing=0.05

# Define the region(s)

region number=1 silicon

# Define the electrode(s)

electrode top name=anode

electrode bottom name=cathode

# Define uniform substrate doping

#doping uniform conc=1.30e13 p.type

doping uniform resist=$SubRes p.type

# Define Cathode N-Type Gaussian doping

doping gaus n.type peak=0 CONCENTRATION=2e19 junc=1.5

# Define Anode P-Type Gaussian doping

doping gaus p.type peak=200 CONCENTRATION=2e19 junc=198.5

# Save the structure

structure outfile=OneD_Diode_NSub_$"SubRes".str

extract init inf="OneD_Diode_NSub_$'SubRes'.str"

extract name="NetDop_$'SubRes'" curve(depth,impurity="Net Doping" material="Silicon" \

mat.occno=1 x.val=0.5) outfile="NetDop_$'SubRes'.dat"

quit

Task 3:Now also use variables to vary the substrate thickness. Use the values in the name of the structure. Again, use the extract statement to extract the Net doping profile down the centre of the device.

go atlas

TITLE Exercise 1, Task 3: Create a 1D Structure, vary Resistivity and substrate thickness

set SubRes=1e4

set SubThick=200

# Define the Mesh

mesh

# X Mesh

x.mesh location=0.0 spacing=0.05

x.mesh location=1.0 spacing=0.05

# Y Mesh

y.mesh location=0 spacing=0.05

y.mesh location=5 spacing=1

y.mesh location=30 spacing=10

y.mesh location=$SubThick-30 spacing=10

y.mesh location=$SubThick-5 spacing=1

y.mesh location=$SubThick spacing=0.05

# Define the region(s)

region number=1 silicon

# Define the electrode(s)

electrode top name=anode

electrode bottom name=cathode

# Define uniform substrate doping

#doping uniform conc=1.30e13 p.type

doping uniform resist=$SubRes p.type

# Define Cathode N-Type Gaussian doping

doping gaus n.type peak=0 CONCENTRATION=2e19 junc=1.5

# Define Anode P-Type Gaussian doping

doping gaus p.type peak=200 CONCENTRATION=2e19 junc=198.5

# Save the structure

structure outfile=OneD_Diode_NSub_$"SubRes"_Th_$"SubThick".str

extract init inf="OneD_Diode_NSub_$"SubRes"_Th_$"SubThick".str"

extract name="NetDop_$'SubRes'_$'SubThick'" curve(depth,impurity="Net Doping" material="Silicon" \

mat.occno=1 x.val=0.5) outfile="NetDop_$'SubRes'_$'SubThick'.dat"

quit

Task 4:Create the same structure but now using Devedit

DevEdit version=2.8.18.R # file written Wed Aug 6 2014 11:59:29 GMT+1 (BST)

work.area x1=0 y1=0 x2=1 y2=200

# devedit 2.8.18.R (Thu Apr 10 02:21:30 PDT 2014)

# libMeshBuild 1.24.17 (Thu Apr 10 02:20:20 PDT 2014)

# libSSS 2.8.9 (Wed Apr 9 20:14:17 PDT 2014)

# libSVC_Misc 1.28.10 (Wed Apr 9 20:13:47 PDT 2014)

# libsflm 7.8.13 (Wed Apr 9 20:13:37 PDT 2014)

# libSDB 1.12.25 (Mon Mar 31 18:12:43 PDT 2014)

# libGeometry 1.30.10 (Tue Apr 1 17:39:36 PDT 2014)

# libCardDeck 1.32.15 (Wed Apr 9 20:13:01 PDT 2014)

# libDW_Set 1.28.10 (Wed Apr 9 20:12:58 PDT 2014)

# libSvcFile 1.14.12 (Mon Mar 31 18:11:24 PDT 2014)

# libsstl 1.10.5 (Mon Mar 31 18:11:26 PDT 2014)

# libDW_Misc 1.40.12 (Mon Mar 31 18:10:53 PDT 2014)

# libQSilCore 1.2.6 (Wed Apr 9 20:12:36 PDT 2014)

# libDW_Version 3.6.1 (Thu Mar 13 02:48:38 PDT 2014)

region reg=1 mat=Silicon color=0xffcc00 pattern=0x4 \

polygon="0,0 1,0 1,200 0,200"

#

impurity id=1 region.id=1 imp=Acceptors \

peak.value=13000000000000 ref.value=1000000000000 comb.func=Multiply

#

constr.mesh region=1 default

region reg=2 name=anode mat=Aluminum elec.id=2 work.func=0 color=0xffc8c8 pattern=0x7 \

line="0,0 1,0"

#

constr.mesh region=2 default

region reg=3 name=cathode mat=Aluminum elec.id=1 work.func=0 color=0xffc8c8 pattern=0x7 \

line="1,200 0,200"

#

constr.mesh region=3 default

impurity id=1 imp=Donors color=0x8c5d00 \

peak.value=1e+20 ref.value=1000000000000 comb.func=Multiply \

y1=0 y2=0 rolloff.y=both conc.func.y=Gaussian conc.param.y=0.4

impurity id=2 imp=Acceptors color=0x8c5d00 \

peak.value=1e+20 ref.value=1000000000000 comb.func=Multiply \

y1=200 y2=200 rolloff.y=both conc.func.y=Gaussian conc.param.y=0.4

# Set Meshing Parameters

#

base.mesh height=10 width=10

#

bound.cond !apply max.slope=30 max.ratio=100 rnd.unit=0.001 line.straightening=1 align.points when=automatic

#

imp.refine imp="Net Doping" scale=log sensitivity=0.17 transition=0.446684

imp.refine min.spacing=0.02

#

constr.mesh max.angle=90 max.ratio=300 max.height=10 \

max.width=0.05 min.height=0.0001 min.width=0.05

#

constr.mesh type=Semiconductor default

#

constr.mesh type=Insulator default

#

constr.mesh type=Metal default

#

constr.mesh type=Other default

#

constr.mesh region=1 default

#

constr.mesh region=2 default

#

constr.mesh region=3 default

Mesh Mode=MeshBuild

base.mesh height=10 width=10

bound.cond !apply max.slope=30 max.ratio=100 rnd.unit=0.001 line.straightening=1 align.Points when=automatic

Exercise Two: Bias the 1D Diode structure

We will use the simple structure created in the previous example and ramp up the bias on the anode electrode.

Task 1:Sweep the anode voltage from 0V to -400V and use a “SET” preferences file for tonyplot to plot the data in a pre-defined way. The lattice temperature is also defined using a set statement.

go atlas

TITLE Exercise 2, Task 1: Sweep the voltage on an electrode

set temp=236.15

# Load in the structure

mesh infile=OneD_Diode.str

# Define models, "bipolar" macro and print model parameters to runtime output (RTO)

models bipolar print temperature=$temp

# Define impact ionisation model

impact selb

# Set newton solver (default) and trap limit to 10

method newton trap maxtrap=10

# Solve for initial conditions

solve init

# from this point log IV data on all electrodes

log outf=IV_T$"temp".log

# Ramp the cathode voltage to 2V

solve vanode=-0.2 vstep=-0.2 vfinal=-2 name=anode

# Save structure at 2V

structure outfile=IV_T$"temp"_2V.str

solve vanode=-4 vstep=-2 vfinal=-10 name=anode

# Save structure at 10V

structure outfile=IV_T$"temp"_10V.str

solve vanode=-20 vstep=-10 vfinal=-400 name=anode

# Save structure at 400V

structure outfile=IV_T$"temp"_400V.str

# Plot the IV file and use he "set" preferences file

tonyplot IV_T$"temp".log -set E2T1.set

quit

Task 2:Monitor capacitance under reverse bias and extract the peak capacitance.

go atlas

TITLE Exercise 2, Task 2: Capacitance sweep and extract peak capacitance

set temp=236.15

# Load in the structure

mesh infile=OneD_Diode.str

# Define models, "bipolar" macro and print model parameters to runtime output (RTO)

models bipolar print temperature=$temp

# Define impact ionisation model

impact selb

# Set newton solver (default) and trap limit to 10

method newton trap maxtrap=10

# Solve for initial conditions

solve init

# from this point log IV data on all electrodes

log outf=IV_T$"temp"_C.log

# Ramp the cathode voltage to 2V

solve vanode=-0.2 vstep=-0.2 vfinal=-2 name=anode ac.analysis freq=10e3

# Save structure at 2V

structure outfile=IV_T$"temp"_2V_C.str

solve vanode=-4 vstep=-2 vfinal=-10 name=anode ac.analysis freq=10e3

# Save structure at 10V

structure outfile=IV_T$"temp"_10V_C.str

solve vanode=-20 vstep=-10 vfinal=-400 name=anode ac.analysis freq=10e3

# Save structure at 400V

structure outfile=IV_T$"temp"_400V_C.str

extract init inf="IV_T$"temp"_C.log"

extract name="MaxCV" max(curve(v."anode",c."anode""anode"))

# Plot the IV file and use he "set" preferences file

tonyplot IV_T$"temp"_C.log -set E2T2.set

quit

Exercise Three: Inject a Beam of charge into the diode

Now we will inject a beam of chargeinto the device using the SINGLEEVENTUPSET (SEU) statements. The beam is ramped up and then removed. Once the beam is removed we can monitor the decay in current on the electrodes.

Task 1:With a partially depleted device (-40V)

go atlas

TITLE Exercise 3, Task 1: Hit the 1D diode with a particle strike

# Define the Mesh

mesh infil=OneD_Diode.str

models bipolar print

impact selb

method newton trap maxtrap=10

solve init

# Ramp to partially deplete

solve vanode=-0.2 vstep=-0.2 vfinal=-2 name=anode

solve vanode=-4 vstep=-2 vfinal=-40 name=anode

# set up the track of the radiation for SEU

singleeventupset entry="0,-10,0." exit="0.9,200,0" radius=0.05 density=1.e18 \

t0=4.e-12 tc=2.e-12

log outf=seu_40V.log

solve tfinal=4.e-12 tstep=1.e-12

save outf=seu_40V_4e-12.str

solve tfinal=5.e-6 tstep=1.e-12

quit

Task 2:With a fully depleted device (-300V)

go atlas

TITLE Exercise 3, Task 2: Hit the 1D diode with a particle strike

# Define the Mesh

mesh infil=OneD_Diode.str

models bipolar print

impact selb

method newton trap maxtrap=10

solve init

# Ramp to fully deplete

solve vanode=-0.2 vstep=-0.2 vfinal=-2 name=anode

solve vanode=-4 vstep=-2 vfinal=-40 name=anode

solve vanode=-50 vstep=-10 vfinal=-300 name=anode

# set up the track of the radiation for SEU

singleeventupset entry="0,-10,0." exit="0.9,200,0" radius=0.05 density=1.e18 \

t0=4.e-12 tc=2.e-12

log outf=seu_300V.log

solve tfinal=4.e-12 tstep=1.e-12

save outf=seu_300V_4e-12.str

solve tfinal=5.e-6 tstep=1.e-12

quit

Exercise Four: Add defects into the 1D diode

Now we will introduce defects into the bandgap. We do this using a variable, the variable is also used in the naming of the log / structure files so we can compare easily without over writing.

go atlas

TITLE Exercise 4, Task 1: Introduce Defects into the Silicon

set fluence = 1e15

set d1=1.613*$fluence

set d2=0.9*$fluence

set d3=0.9*$fluence

# Load in the structure

mesh infile=OneD_Diode.str

# Define models, "bipolar" macro and print model parameters to runtime output (RTO)

models bipolar print

# Define the traps

trap acceptor e.level=0.42 density=$d1 degen=1 sign=9.5e-15 sigp=9.5e-14

trap acceptor e.level=0.46 density=$d2 degen=1 sign=5e-15 sigp=5e-14

trap donor e.level=0.36 density=$d3 degen=1 sign=3.23e-13 sigp=3.23e-14

# Set newton solver (default) and trap limit to 10

method newton trap maxtrap=10

# Solve for initial conditions

solve init

# from this point log IV data on all electrodes

log outf=IV_TRAP$"fluence".log

# Ramp the cathode voltage to 2V

solve vanode=-0.2 vstep=-0.2 vfinal=-2 name=anode

# Save structure at 2V

structure outfile=IV_TRAP$"fluence"_2V.str

solve vanode=-4 vstep=-2 vfinal=-10 name=anode

# Save structure at 10V

structure outfile=IV_TRAP$"fluence"_10V.str

solve vanode=-20 vstep=-10 vfinal=-400 name=anode

# Save structure at 400V

structure outfile=IV_TRAP$"fluence"_400V.str

# Plot the IV file and use he "set" preferences file

tonyplot IV_TRAP$"fluence".log -set E2T1.set

quit

Exercise Five: Create a 2D structure

Task 1:Create a 2D structure with 2 30 µm strips N+ in the centre, 50 µm apart. Three 15 µm wide Guard Rings should be placed on each side 30 µm apart. Add a uniform P type diffusion layer all along the front-side. The junction depth should be 0.5um. the N+ junction depth should be 1um. A backside electrode should be defined along with electrodes for the strips and guard rings.

go atlas

TITLE Exercise 5, Task 1: Create a 2D Structure

# Define the Mesh

mesh

# X Mesh

x.mesh location=0.0 spacing=2

x.mesh location=15.0 spacing=0.25

x.mesh location=22.5 spacing=1

x.mesh location=30.0 spacing=0.25

x.mesh location=45.0 spacing=2

x.mesh location=60.0 spacing=0.25

x.mesh location=67.5 spacing=1

x.mesh location=75.0 spacing=0.25

x.mesh location=90.0 spacing=2

x.mesh location=105.0 spacing=0.25

x.mesh location=112.5 spacing=1

x.mesh location=120.0 spacing=0.25

x.mesh location=135.0 spacing=2

x.mesh location=150.0 spacing=0.25

x.mesh location=165.0 spacing=1

x.mesh location=180.0 spacing=0.25

x.mesh location=205.0 spacing=2

x.mesh location=230.0 spacing=0.25

x.mesh location=245.0 spacing=1

x.mesh location=260.0 spacing=0.25

x.mesh location=275.0 spacing=2

x.mesh location=290.0 spacing=0.25

x.mesh location=297.5 spacing=1

x.mesh location=305.0 spacing=0.25

x.mesh location=320.0 spacing=2

x.mesh location=335.0 spacing=0.25

x.mesh location=342.5 spacing=1

x.mesh location=350.0 spacing=0.25

x.mesh location=365.0 spacing=2

x.mesh location=380.0 spacing=0.25

x.mesh location=387.5 spacing=1

x.mesh location=395.0 spacing=0.25

x.mesh location=410.0 spacing=2

# Y Mesh

y.mesh location=0 spacing=0.05

y.mesh location=5.0 spacing=1

y.mesh location=30 spacing=10

y.mesh location=170 spacing=10

y.mesh location=195 spacing=1

y.mesh location=200 spacing=0.05

# Define the region(s)

region number=1 silicon

# Define the electrode(s)

electrode name=GR1 x.min=16 x.max=29

electrode name=GR2 x.min=61 x.max=74

electrode name=GR3 x.min=106 x.max=119

electrode name=STR1 x.min=151 x.max=179

electrode name=STR2 x.min=231 x.max=259

electrode name=GR4 x.min=291 x.max=304

electrode name=GR5 x.min=336 x.max=349

electrode name=GR6 x.min=381 x.max=394

electrode bottom name=anode

# Define uniform substrate doping

doping uniform conc=1e14 p.type

# Define Cathode N-Type Gaussian doping

doping gaus n.type peak=0 CONCENTRATION=1e20 junc=1 x.min=15 x.max=30

doping gaus n.type peak=0 CONCENTRATION=1e20 junc=1 x.min=60 x.max=75

doping gaus n.type peak=0 CONCENTRATION=1e20 junc=1 x.min=105 x.max=120

doping gaus n.type peak=0 CONCENTRATION=1e20 junc=1 x.min=150 x.max=180

doping gaus n.type peak=0 CONCENTRATION=1e20 junc=1 x.min=230 x.max=260

doping gaus n.type peak=0 CONCENTRATION=1e20 junc=1 x.min=290 x.max=305

doping gaus n.type peak=0 CONCENTRATION=1e20 junc=1 x.min=335 x.max=350

doping gaus n.type peak=0 CONCENTRATION=1e20 junc=1 x.min=380 x.max=395

# Define Anode P-Type Gaussian doping

doping gaus p.type peak=200 CONCENTRATION=1e20 junc=198

# Define P-Type spray

doping gaus p.type peak=0 CONCENTRATION=5e16 junc=0.5

# Save the structure

structure outfile=TwoD_Diode.str

quit

Task 2: Ramp the bias on the structure, float the guard rings. Consider the number of CPU’s used and the numerical precision

go atlas simflags="-P 6 -80"

TITLE Exercise 5, Task 2: Sweep the voltage on an electrode

set temp=300

# Load in the structure

mesh infile=TwoD_Diode.str

# Set the guard ring contacts to current boundary conditions so they float

contact name=GR1 current

contact name=GR2 current

contact name=GR3 current

contact name=GR4 current

contact name=GR5 current

contact name=GR6 current

# Define models, "bipolar" macro and print model parameters to runtime output (RTO)

models bipolar print temperature=$temp

# Define impact ionisation model

impact selb

# Set newton solver (default) and trap limit to 10

method newton trap maxtrap=10

# Solve for initial conditions

solve init

# from this point log IV data on all electrodes

log outf=2D_IV_T$"temp".log

# Ramp the cathode voltage to 2V

solve vanode=-0.2 vstep=-0.2 vfinal=-2 name=anode

# Save structure at 2V

structure outfile=2D_IV_T$"temp"_2V.str

solve vanode=-4 vstep=-1 vfinal=-20 name=anode

# Save structure at 20V

structure outfile=2D_IV_T$"temp"_20V.str

# Plot the IV file and use he "set" preferences file

tonyplot 2D_IV_T$"temp".log -set E2T1.set

quit

Exercise Six: Apply a beam of light to the 2D structure

Simulate charge creation by a charged particle in the region between the 2 strips to study the charge sharing. Vary the angle and see how the current sharing changes.

go atlas simflags="-P 4"

TITLE Exercise 6, Task 1: Hit the 2D strucure with a beam of light

# Define the Mesh

mesh infile=TwoD_Diode.str

# Set the gaurd ring contacts to current boundary conditions so they float

contact name=GR1 current

contact name=GR2 current

contact name=GR3 current

contact name=GR4 current

contact name=GR5 current

contact name=GR6 current

models bipolar print

impact selb

method newton trap maxtrap=10

# Define the beam

beam num=1 x.o=205 y.o=-10.0 min.w=-2.0 max.w=2.0 wavelength=0.67 angle=90.0

#beam num=1 x.o=100 y.o=-10.0 min.w=-2.0 max.w=2.0 wavelength=0.67 angle=45.0

solve init

solve vanode=-0.2 vstep=-0.2 vfinal=-2 name=anode

solve vanode=-4 vstep=-2 vfinal=-10 name=anode

log outf=Beam.log

# Ramp the power on the beam up

solve b1=10 ramp.lit ramptime=1e-9 tstop=10e-9 tstep=2e-10

structure outfile=Beam.str

# Ramp the power on the beam down

solve b1=0 ramp.lit ramptime=1e-9 tstop=1.2e-6 tstep=2e-10

structure outfile=BeamFinal.str

tonyplot Beam.log -set E6T1.set

quit

Exercise Seven: 3D Pixel Array

Create a 3 x 3, 3D pixel array. The 2D plane on the screen is repeated into the depth of the page. Sometimes for meshing purposes it is better to treat the x-y plane as the top of the device rather than the side.