Converging Problems with Schottky Barrier Lowering Model in Synopsys TCAD Sentaurus

Status
Not open for further replies.

dunestar

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.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…