Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Converging Problems with Schottky Barrier Lowering Model in Synopsys TCAD Sentaurus

Status
Not open for further replies.

dunestar

Newbie level 3
Newbie level 3
Joined
Jul 5, 2011
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,377
Hi Folks,

I am trying to simulate a Schottky barrier device in Synopsys TCAD Sentaurus. Everything works fine, if I am neglecting the Schottky Barrier Lowering model. When I turn the model on, I got convergence problems. What should I do to correct this problem? Here is the source code of the device in TCAD.


STRUCTURE SOURCE CODE

;; geometry (in um)
;; -----------------------------------------------------------------------------
;; create body
(sdegeo:create-rectangle (position 0 (- 0(/ @tch@ 2)) 0) (position @lgate@ (/ @tch@ 2) 0) "Silicon" "body")

;; create oxide thickness top
(sdegeo:create-rectangle (position 0 (- 0(/ @tch@ 2)) 0) (position @lgate@ (+ (- 0(/ @tch@ 2)) -@tox@) 0) "SiO2" "t_oxide_top")

;; create oxide thickness bottom
(sdegeo:create-rectangle (position 0 (/ @tch@ 2) 0) (position @lgate@ (+ (/ @tch@ 2) @tox@) 0) "SiO2" "t_oxide_bottom")

;; ref/eval windows for doping
;; -----------------------------------------------------------------------------
;; window define body_p
(sdedr:define-refeval-window "RefEvalWin_body_p" "Rectangle" (position 0 (/ @tch@ 2) 0) (position @lgate@ (- 0(/ @tch@ 2)) 0))
;; window define source
(sdedr:define-refeval-window "RefEvalWin_s" "Rectangle" (position 0 (/ @tch@ 2) 0) (position 0.01 (- 0(/ @tch@ 2)) 0))
;; window define drain
(sdedr:define-refeval-window "RefEvalWin_d" "Rectangle" (position (- @lgate@ 0.01) (/ @tch@ 2) 0) (position @lgate@ (- 0(/ @tch@ 2)) 0))
;; type of the doping
(sdedr:define-constant-profile "body_p" "BoronActiveConcentration" 1e15)
;; placement of the doping
(sdedr:define-constant-profile-placement "RefEval_constant_body_p" "body_p" "RefEvalWin_body_p")

;; window define oxide thickness top
(sdedr:define-refeval-window "RefEvalWin_oxide_thickness_top" "Rectangle" (position 0 (- 0(/ @tch@ 2)) 0) (position @lgate@ (+ (- 0(/ @tch@ 2)) -@tox@) 0))

;; window define oxide thickness bottom
(sdedr:define-refeval-window "RefEvalWin_oxide_thickness_bottom" "Rectangle" (position 0 (/ @tch@ 2) 0) (position @lgate@ (+ (/ @tch@ 2) @tox@) 0))

;; ref/eval windows for mesh
;; -----------------------------------------------------------------------------
;; mesh define body_p
(sdedr:define-refinement-size "mesh_body_p" (/ (+ 0 @lgate@) @mesh_body_div_x@) (/ (+ 0 @tch@) @mesh_body_div_y@) 0 (/ (+ 0 @lgate@) (/ @mesh_body_div_x@ 2)) (/ (+ 0 @tch@) (/ @mesh_body_div_y@ 2)) 0)
;; mesh placement body_p
(sdedr:define-refinement-placement "RefEval_body_p" "mesh_body_p" "RefEvalWin_body_p" )

;; ref/eval windows for mesh at source junction
;; mesh define source/drain fine
(sdedr:define-refinement-size "mesh_sd" (/ (+ 0 @lgate@) (* @mesh_body_div_x@ 4)) (/ (+ 0 @tch@) (* @mesh_body_div_y@ 4)) 0 (/ (+ 0 @lgate@) (/ (* @mesh_body_div_x@ 4) 2)) (/ (+ 0 @tch@) (/ (* @mesh_body_div_y@ 4) 2)) 0)
;; mesh placement body_p
(sdedr:define-refinement-placement "RefEval_s" "mesh_sd" "RefEvalWin_s" )
(sdedr:define-refinement-placement "RefEval_d" "mesh_sd" "RefEvalWin_d" )

;; mesh define oxide_top_bottom
(sdedr:define-refinement-size "mesh_oxide_top_bottom" (/ (+ 0 @lgate@) @mesh_ox_div_x@) (/ (+ 0 @tox@) @mesh_ox_div_y@) 0 (/ (+ 0 @lgate@) (/ @mesh_ox_div_x@ 2)) (/ (+ 0 @tox@) (/ @mesh_ox_div_y@ 2)) 0)
;; mesh placement oxide_top
(sdedr:define-refinement-placement "RefEval_oxide_top" "mesh_oxide_top_bottom" "RefEvalWin_oxide_thickness_top")
;; mesh placement oxide_bottom
(sdedr:define-refinement-placement "RefEval_oxide_bottom" "mesh_oxide_top_bottom" "RefEvalWin_oxide_thickness_bottom")

;; contacts
;; -----------------------------------------------------------------------------
;; define contacts source_drain_gate
(sdegeo:define-contact-set "source_n" 4 (color:rgb 1 0 0 ) "##")
(sdegeo:define-contact-set "drain_n" 4 (color:rgb 1 0 0 ) "##")
(sdegeo:define-contact-set "gate_top_bottom" 4 (color:rgb 1 0 0 ) "##")
;; placement contacts source
(sdegeo:define-2d-contact (list (car (find-edge-id (position 0 0 0)))) "source_n")
;; placement contacts drain
(sdegeo:define-2d-contact (list (car (find-edge-id (position @lgate@ 0 0)))) "drain_n")
;; placement contacts gate_top
(sdegeo:define-2d-contact (list (car (find-edge-id (position 0.008 (+ (/ @tch@ 2) @tox@) 0)))) "gate_top_bottom")
;; placement contacts gate_bottom
(sdegeo:define-2d-contact (list (car (find-edge-id (position 0.008 (+ (- 0(/ @tch@ 2)) -@tox@) 0)))) "gate_top_bottom")

;; mesh
;; ------------------------------------------------------------------------------
;; mesh built
(sde:build-mesh "snmesh" "-a tdr -c boxmethod " "n@node@")


DEVICE MODEL SOURCE CODE

File {
*- Input Files
Grid = "@tdr@"

*- Output Files
Current = "@plot@"
Plot = "@tdrdat@"
Output = "@log@"
}

Electrode {
{ Name="source_n" Voltage = 0.0 Schottky Barrier = @phi_Bn@ }
{ Name="drain_n" Voltage = 0.0 Schottky Barrier = @phi_Bn@ }
{ Name="gate_top_bottom" Voltage = 0.0 }
}

Physics {
Fermi
EffectiveIntrinsicDensity( BandGapNarrowing ( OldSlotboom ))
}

Physics( Electrode="source_n" ){ Recombination (BarrierTunneling) BarrierLowering}
Physics( Electrode="drain_n" ){ Recombination (BarrierTunneling) BarrierLowering}

Plot {
eDensity hDensity eCurrent hCurrent
Potential SpaceCharge ElectricField
eMobility hMobility eVelocity hVelocity
Doping DonorConcentration AcceptorConcentration
eQuasiFermi hQuasiFermi ConductionBand ValenceBand
eBarrierTunneling hBarrierTunneling
}

Math {
Extrapolate * off by default
RelErrControl * on by default
Derivatives
Iterations = 100
}

Math( Electrode = "source_n" ) {
Nonlocal( Length = 1e-5 )
Digits( NonLocal ) = 5
EnergyResolution( NonLocal ) = 0.0001
}

Math( Electrode = "drain_n" ) {
NonLocal( Length = 1e-5 )
Digits( NonLocal ) = 5
EnergyResolution( NonLocal ) = 0.0001
}

Solve {
*- Build-up of initial solution:
Coupled( Iterations = 100 ){ Poisson }
Coupled{ Poisson Electron Hole }

*- Bias drain to target bias:
Quasistationary(
InitialStep = 0.01 Increment = 1.35
MinStep = 1e-9 MaxStep = 0.02
Goal{ Name = "drain_n" Voltage = @Vds@ }
){ Coupled{ Poisson Electron Hole } }

*- Bias gate to target bias
Quasistationary(
InitialStep = 0.01 Increment = 1.35
MinStep = 1e-9 MaxStep = 0.02
Goal{ Name = "gate_oben_unten" Voltage = @Vgs_min@ }
){ Coupled{ Poisson Electron Hole } }

*- Bias gate to target bias
NewCurrent = "DC_TransferChar_"

*- Bias gate to target bias:
Quasistationary(
InitialStep = 0.01 Increment = 1.35
MinStep = 1e-9 MaxStep = 0.02
Goal{ Name = "gate_oben_unten" Voltage = @Vgs_max@ }
){ Coupled{ Poisson Electron Hole }}
}


THX dunestar
 

Hey, I'm having same problems. Did you figure out a solution for your code?
Thanks
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top