semiconductor device simulation using devsim
play

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


  1. Semiconductor Device Simulation Using DEVSIM Juan Sanchez July 2, 2018

  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

  3. Examples Magnetic Potential Capacitance 3

  4. Device Equations • Drift-diffusion equations ∇ 2 ϕ = q ( p − n + N D − N A ) (Poisson) ∂ n q ∇ · � 1 ∂ t = J n + G n − R n (Electron Continuity) ∂ p q ∇ · � ∂ t = − 1 J p + G p − R p (Hole Continuity) 4

  5. Example – 1D Diode 5

  6. Example – 2D MOSFET 6

  7. Example – 2D MOSFET 7

  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

  9. Architecture – Analysis • Nonlinear simulation – dc – transient • Linear analysis – small-signal ac – sensitivity (impedance field) – noise 9

  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

  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

  12. Architecture – Numerics • BLAS and LAPACK – Used for dense matrix and vector operations, 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

  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

  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

  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

  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

  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

  18. Node Models NodeVolume EdgeCouple 18

  19. Node Models – Shockley Read Hall np − n 2 i U SRH = τ p ( n + n 1 )+ τ n ( p + p 1 ) 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

  20. Node Models – Shockley Read Hall 20

  21. Edge Models EdgeCouple EdgeLength n0 n1 21

  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

  23. Element Edge Models en2 ElementEdgeCouple en0 en1 ElementNodeVolume EdgeLength 23

  24. 2D MOSFET Mobility • Element models are used to simulate mobility with respect to electric field normal and perpendicular to current flow 24

  25. BJT Example Available https://github.com/devsim/devsim_bjt_example 25

  26. BJT – DC Analysis 4 2 0.009 10 10 β 1 10 I c 0 10 0.008 I b -1 10 3 10 -2 10 0.007 -3 10 -4 10 0.006 I c (A/cm) -5 10 A/cm 2 10 -6 10 0.005 -7 10 -8 10 0.004 -9 10 1 10 -10 10 0.003 -11 10 -12 10 0 -13 0.002 10 10 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 V be (V) V ce (V) 26

  27. BJT – AC Analysis 1e9 4 1.8 10 0.1 0.2 1.6 0.3 3 10 1.4 0.4 0.5 1.2 0.6 2 10 0.7 1.0 f T (Hz) 0.8 | β | 0.9 0.8 1.0 1 10 0.6 0.4 0 10 0.2 -1 0.0 10 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 I c (A/cm) f (Hz) 27

  28. Density Gradient • Quantum correction method for carrier density near interfaces • Carrier quantization effects ∇ 2 √ n Λ e = − b n √ n ∇ 2 √ n � 2 ( ∇ log n ) 2 � ∇ 2 log n + 1 1 = √ n 2 Using n = exp ( u ) � � � Λ e ∂ v = − b n ∇ u · ∂ s + 1 + b n ox � � ( ∇ u ) 2 ∂ v σ int 2 2 x n 28

  29. Density Gradient 29

  30. Density Gradient CV Curves t ox =3 (nm) 12 10 8 C (fF/ m) 6 N A =10 17 (#/cm 3 ) 4 DG N A =10 18 (#/cm 3 ) DG 2 N A =10 19 (#/cm 3 ) DG 0 1 0 1 2 3 4 5 V g (V) 30

Recommend


More recommend