Semiconductor Device Simulation Using DEVSIM Juan Sanchez July 2, - - PowerPoint PPT Presentation

semiconductor device simulation using devsim
SMART_READER_LITE
LIVE PREVIEW

Semiconductor Device Simulation Using DEVSIM Juan Sanchez July 2, - - PowerPoint PPT Presentation

Semiconductor Device Simulation Using DEVSIM Juan Sanchez July 2, 2018 Introduction PDE semiconductor device simulator Finite volume method Solves 1D, 2D, and 3D structures External meshing tools or internal mesher Symbolic


slide-1
SLIDE 1

Semiconductor Device Simulation Using DEVSIM

Juan Sanchez

July 2, 2018

slide-2
SLIDE 2

Introduction

  • PDE semiconductor device simulator
  • Finite volume method
  • Solves 1D, 2D, and 3D structures
  • External meshing tools or internal mesher
  • Symbolic model evaluation
  • Visualization using standard output formats

2

slide-3
SLIDE 3

Examples

Magnetic Potential Capacitance

3

slide-4
SLIDE 4

Device Equations

  • Drift-diffusion equations

∇2ϕ = q(p−n+ND −NA)

(Poisson)

∂n ∂t =

1 q∇·

Jn +Gn −Rn

(Electron Continuity)

∂ p ∂t = −1

q∇·

Jp +Gp −Rp

(Hole Continuity)

4

slide-5
SLIDE 5

Example – 1D Diode

5

slide-6
SLIDE 6

Example – 2D MOSFET

6

slide-7
SLIDE 7

Example – 2D MOSFET

7

slide-8
SLIDE 8

Introduction

  • Project started in 2008
  • Open source since 2013 https://devsim.org
  • C++ using STL, C++-11, and templates
  • Platform Agnostic (Linux, OS X, Windows)
  • Uses Python scripting to set up equations

and control simulation

  • Approximately 64,000 lines of code

https://www.openhub.net/p/devsim

8

slide-9
SLIDE 9

Architecture – Analysis

  • Nonlinear simulation

– dc – transient

  • Linear analysis

– small-signal ac – sensitivity (impedance field) – noise

9

slide-10
SLIDE 10

Architecture – Scripting

  • Models implemented using scripting

– Faster development cycle – Design for efficiency

  • Symbolic differentiation

– Faster development time – Add derivatives w.r.t. new variables – Common subexpression elimination

10

slide-11
SLIDE 11

Architecture – Python

  • well defined and consistent
  • avoids domain specific languages with

limited debugging

  • provides users more control
  • has numerous libraries for analysis and

visualization

11

slide-12
SLIDE 12

Architecture – Numerics

  • BLAS and LAPACK

– Used for dense matrix and vector

  • perations, geometric processing

– Optimized for most platforms – Called by sparse matrix factorization

  • SuperLU, MKL Pardiso used for sparse

matrix factorization

  • Iterative Math Library used for GMRES

12

slide-13
SLIDE 13

SYMDIFF

  • Symbolic differentiation library
  • Open source https://symdiff.org
  • String based approach with dynamic

binding of names to referred quantities – Constants – Independent variables – Models

13

slide-14
SLIDE 14

SYMDIFF – Parser

  • Uses rules of precedence and associativity
  • Has simplify algorithm to reduce cost

<<<< diff(a + b + cˆ2, c) (2 * c) <<<< diff(xˆx, x) (((x * (xˆ(-1))) + log(x)) * (xˆx)) <<<< simplify(diff(xˆx,x)) ((1 + log(x)) * (xˆx))

14

slide-15
SLIDE 15

SYMDIFF – User functions

  • Defining functions requires specification of

new function and derivatives w.r.t. each named variable argument > define(sqrt(x),0.5 * xˆ(-0.5)) sqrt(x) > diff(sqrt(x*y),y) ((0.5 * ((x * y)ˆ(-0.5))) * x)

15

slide-16
SLIDE 16

SYMDIFF – Models

  • Models allow

– creation of new PDEs – hierarchy for sub-expression elimination – ability to specify or generate derivatives

  • Models dynamically bound by name

– diff(Model,x) is Model:x

16

slide-17
SLIDE 17

Element Assembly

  • Expressions evaluated at run time
  • Symbolic derivatives of models for Jacobian

assembly

  • Assembles bulk, interface, and contact

equations

  • Circuit boundary conditions

17

slide-18
SLIDE 18

Node Models

NodeVolume EdgeCouple

18

slide-19
SLIDE 19

Node Models – Shockley Read Hall

USRH = np−n2

i

τp(n+n1)+τn(p+ p1)

USRH="(Electrons*Holes - n_iˆ2)/ \ (taup*(Electrons + n1) + taun*(Holes + p1))" Gn = "-ElectronCharge * USRH" Gp = "+ElectronCharge * USRH" NodeModel("USRH", USRH) NodeModel("ElectronGeneration", Gn) NodeModel("HoleGeneration", Gp) for i in ("Electrons", "Holes"): NodeModelDerivative("USRH", USRH, i) NodeModelDerivative("Gn", Gn, i) NodeModelDerivative("Gp", Gp, i)

19

slide-20
SLIDE 20

Node Models – Shockley Read Hall

20

slide-21
SLIDE 21

Edge Models

EdgeLength EdgeCouple n1 n0

21

slide-22
SLIDE 22

Edge Models

  • Electric field (E ) w.r.t potential (ϕ)

edge_model(device=device, region=region, name=’E ’, equation=’(ϕ@n0 - ϕ@n1)*EdgeInverseLength’) edge_model(device=device, region=region, name=’E :ϕ@n0’, equation=’EdgeInverseLength’) edge_model (device=device, region=region, name=’E :ϕ@n1’, equation=’-EdgeInverseLength’)

22

slide-23
SLIDE 23

Element Edge Models

ElementNodeVolume en1 en2 en0 EdgeLength ElementEdgeCouple

23

slide-24
SLIDE 24

2D MOSFET Mobility

  • Element models are used to simulate mobility with respect to

electric field normal and perpendicular to current flow

24

slide-25
SLIDE 25

BJT Example

Available

https://github.com/devsim/devsim_bjt_example

25

slide-26
SLIDE 26

BJT – DC Analysis

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 Vbe (V) 10 10

1

10

2

10

3

10

4

β Ic Ib

10

  • 13

10

  • 12

10

  • 11

10

  • 10

10

  • 9

10

  • 8

10

  • 7

10

  • 6

10

  • 5

10

  • 4

10

  • 3

10

  • 2

10

  • 1

10 10

1

10

2

A/cm 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 Vce (V) 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 Ic (A/cm)

26

slide-27
SLIDE 27

BJT – AC Analysis

10

  • 8

10

  • 7

10

  • 6

10

  • 5

10

  • 4

10

  • 3

10

  • 2

10

  • 1

10 10

1

10

2

Ic (A/cm) 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 fT (Hz) 1e9 10

3

10

4

10

5

10

6

10

7

10

8

10

9

10

10

10

11

f (Hz) 10

  • 1

10 10

1

10

2

10

3

10

4

|β|

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

27

slide-28
SLIDE 28

Density Gradient

  • Quantum correction method for carrier

density near interfaces

  • Carrier quantization effects

Λe = −bn

∇2√n √n

∇2√n √n =

1 2

  • ∇2 logn+ 1

2 (∇logn)2

Using n = exp(u)

  • Λe∂v = −bn

2

  • ∇u·∂s+ 1

2

  • (∇u)2 ∂v
  • + bnox

xn σint

28

slide-29
SLIDE 29

Density Gradient

29

slide-30
SLIDE 30

Density Gradient

1 1 2 3 4 5 Vg (V) 2 4 6 8 10 12 C (fF/ m)

CV Curves tox=3 (nm)

NA=1017 (#/cm3) DG NA=1018 (#/cm3) DG NA=1019 (#/cm3) DG

30