LS-Sb87115
.pdf*Задание координат прямоугольника
(position 0.0 Ymin 0.0) (position Xmax Ymax 0.0))
(sdedr:define-submesh-placement "SubMesh_R" "SubMesh" "Win.RightHalf" "Replace"
"AttachPoint" (position 0 0 0) "ToPoint" (position 0 0 0) )
;--- Poly Doping ------------------------------------------------------
*Задание профайла с параметром концентрация бора
(sdedr:define-constant-profile "Const.Gate" DopPol PolyDop )
(sdedr:define-constant-profile-region "PlaceCD.Gate" "Const.Gate" "R.Polygate" 0 "Replace")
*Const.Gate - содержит информацию о концентрации и типе материала, *R.Polygate - информация об области
; |
--- Meshing ---------------------------------------------------------- |
;-- |
Meshing Strategy: |
;- Silicon
*Задание профайла с необходимыми параметрами
(sdedr:define-refinement-size "RSize.Silicon" (/ Xmax 4.0) (/ Ymax 16.0)
(/ Xmax 8.0) (/ Ymax 18.0) ) (sdedr:define-refinement-material "RPlace.Silicon" "RSize.Silicon" "Silicon" )
;- Source/Drain area
*Задание сетки под контактами
(define YSDref (* 1.5 Xj)) (sdedr:define-refinement-size "RSize.SD" (/ (- Xmax Xg) 6.0) (/ (- YSDref Ygox) 8.0) PNres PNres )
(sdedr:define-refinement-function "RSize.SD" "DopingConcentration" "MaxTransDiff" 1) (sdedr:define-refinement-window "RWin.SD" "Rectangle"
31
(position Xg 0.0 0.0) (position Xmax YSDref 0.0) )
(sdedr:define-refinement-placement "RPlace.SD" "RSize.SD" "RWin.SD" )
; Junctions under the gate (sdedr:define-refinement-size "RSize.GD" (* 1.0 PNres) (* 1.0 PNres) 0.0
(* 0.8 PNres) (* 0.8 PNres) 0.0) ; Gate-Drain Junction
(sdedr:define-refinement-window "RWin.GD" "Rectangle"
(position (- Xgdo dXext) Ygox 0.0)
(position (+ Xgdo dXext) (+ Ygox (* 0.35 (- Xj Ygox))) 0.0) ) (sdedr:define-refinement-placement "RPlace.GD" "RSize.GD" "RWin.GD" )
; Channel Multibox
*Задание внутри сетки ещё одной, более мелкой
(sdedr:define-refinement-window "MBWindow.Channel" "Rectangle"
(position 0.0 Ygox 0.0)
(position (* 1.1 Xgdo) (* 0.5 Xj) 0.0) ) (sdedr:define-multibox-size "MBSize.Channel" (/ Xg 4.0) (/ (- Xj Ygox) 4.0)
(/ Xg 8.0) 2e-4 -1.45 1.45 )
(sdedr:define-multibox-placement "MBPlace.Channel" "MBSize.Channel" "MBWindow.Channel" )
; Gate Multibox
(sdedr:define-refinement-window "MBWindow.Gate" "Rectangle"
(position 0.0 Ymin 0.0)
(position Xg Ypol 0.0) ) (sdedr:define-multibox-size "MBSize.Gate"
32
99 (/ (- Ypol Ymin) 4.0)
66 3e-4
0.0 -1.75 )
(sdedr:define-multibox-placement "MBPlace.Gate" "MBSize.Gate" "MBWindow.Gate" )
*Пересохранение файлов для возможности дальнейшего их использова-
ния
;--- Saving BND file --------------------------------------------------
; Saving BND file
(sdeio:save-dfise-bnd (get-body-list) "n25_half_msh.bnd")
;----------------------------------------------------------------------
; Save CMD file
(sdedr:write-cmd-file "n25_half_msh.cmd")
;----------------------------------------------------------------------
; Build Mesh
(sde:build-mesh "mesh" "-F tdr" "n25_half_msh")
;----------------------------------------------------------------------
; Reflect device
(system:command "tdx -mtt -x -M 0 -S 0 -ren drain=source n25_half_msh n25_msh")
4.Обработка переходного файла. Находясь в своём рабочем каталоге, набираем sde. При этом запускается Sentaurus Structure Editor. Это займёт некоторое время. В появившемся окне нажимаем ОК.
В меню выбираем File -> import -> выбираем файл n25_dvc.cmd. После этого в папке программа создаст 2 файла, необходимые для дальнейшей работы.
5.Расчёт транзистора
Sentaurus Device – всесторонний пакет, способный моделировать электрические, тепловые и оптические характеристики приборов. Программа работает с геометрическими моделями 1D, 2D и 3D в широком диапазоне. Файл входных данных программы Sentaurus Device состоит из нескольких командных
33
секций (или блоков). По умолчанию расширение входного файла _des.cmd,
например, DD_des.cmd.
Примечание. Большинство ключевых слов, используемых в командном файле, могут быть заменены сокращениями. Ссылки на внешние имена, как, например, имена файлов и имена контактов, должны быть заключены в кавычки.
Входной командный файл состоит из следующих секций: File; Electrode; Physics; Plot; Math; Solve.
Секция File. В секции File задаются имена входных и выходных файлов, например:
File {
*Входные файлы
Grid = "nmos_msh.tdr" Parameter = "nmos.par"
*Выходные файлы
Current = "n1_des.plt" Plot = "n1_des.tdr" Output = "n1_des.log"
}
Входной файл (параметр Grid, TDR-формат) содержит два типа информации: 1) геометрия устройства – включает информацию о регионах и материалах, положении контактов и информацию о сетке; 2) такой тип информации, как профили легирования.
Входной файл параметров (параметр Parameter, расширение .par) содержит все используемые для расчётов в той или иной физической модели переменные, которые пользователь может изменить при необходимости.
Выходной файл (параметр Plot в секции File, TDR формат) содержит конечное пространственное решение для всех переменных структуры, например, распределение электронов.
Выходной файл (параметр Current в секции File, расширение .plt.) содержит такие данные, как токи, напряжения и заряды на каждом электроде.
Выходной файл (параметр Output в секции File, с расширением .log) содержит отчёт о работе программы Sentaurus Device во время выполнения вычислений, включая информацию о том, какие физические модели и переменные были использованы. Здесь также содержатся сообщения об ошибках.
34
На рис. 5.6 изображена диаграмма, которая представляет организацию потока входных и выходных файлов в программе Sentaurus.
Рис. 5.6. Поток входных и выходных файлов в Sentaurus Device
Секция Electrode. В этой секции задаются параметры контактов и начальные напряжения на них. Имя каждого определяемого здесь электрода должно совпадать (с учётом регистра) с именем, заданным в Sentaurus Structure Editor. Если контакт не задан в данной секции, то он не участвует при дальнейших вычислениях программы. Далее приведены примеры способов задания контактов:
Electrode {
{Name="source" Voltage=0.0 } *Задаём омический контакт.
{Name="drain" Voltage=0.0 Resistor=100}
*Задаём сопротивление контакта 100 Ом на микрон. { Name="gate" Voltage=0.0 Barrier=-0.55}
*Параметр Barrier в определении затвора задает разницу работ выхода между материалом контакта и полупроводником. В данном случае это 0.55 эВ.
{ Name="HEMTgate" Voltage=0.0 Schottky Barrier=0.78}
*Контакт затвора HEMT транзистора задан как контакт Шоттки с барье-
ром 0.78 V.
}
35
Секция Physics. В секции Physics задаются физические модели, которые будут использованы при моделировании устройства. Приведём пример синтаксиса секции Physics:
Physics {
[list of models]
}
и/или:
Physics (Material="[material name]") { [list of models]
}
и/или:
Physics (RegionInterface="[region name]") { [list of models]
}
Секция Physics без каких-либо дополнительных параметров в скобках означает, что включённые модели применяются ко всем регионам устройства.
Секция Physics с параметром Material=="[material name]" или Region="[region name]" означает, что включённые модели применяются только к определённому материалу или региону соответственно.
Примечание. В секции Physics модели только объявляются или активируются.
Изменить параметры модели можно в файле параметров.
Далее приводится реализация секции Physics на примере простого МОПтранзистора n-типа:
Physics {
Mobility( DopingDep HighFieldSat Enormal ) EffectiveIntrinsicDensity( OldSlotboom )
}
В данном случае используются следующие модели, описывающие подвижность носителей заряда:
36
DopingDep – понижение подвижности носителей заряда из-за высокой концентрации примесей.
HighFieldSat – насыщение скорости при больших полях.
Enormal – понижение подвижности носителей заряда из-за рассеивания на деффектах поверхности.
Секция Plot используется для задания переменных, которые должны быть сохранены в Plot-файл (имя которого задано в секции Plot):
Plot {
[list of variables]
}
Например, это могут быть концентрация носителей заряда, плотность тока, распределение электрического поля. Значения переменных могут быть сохранены в файл после окончания работы программы либо во время её работы с помощью команд в секции Solve. Массив сохранённых значений переменных можно просмотреть с помощью программы Tecplot SV.
Для векторных величин, например электрического поля, может быть сохранен векторный компонент переменной. Для этого необходимо добавить "/Vector" (либо “/v”) после имени переменной. Например:
Plot { eCurrent/v
}
Далее представлена типичная секция Plot:
Plot {
eDensity hDensity eCurrent hCurrent Potential SpaceCharge ElectricField eMobility hMobility eVelocity hVelocity
Doping DonorConcentration AcceptorConcentration
}
Секция Math используется для контроля численных вычислений при моделировании. Далее приведена типичная секция Math:
Math {
Extrapolate *off by default RelErrControl *on by default Iterations=20 *default = 50 Notdamped=100 *default = 1000
}
37
Extrapolate: начальное приближение решения для конкретной точки базируется на решениях для двух предыдущих точек.
RelErrControl: включает усовершенствованную схему контроля ошибок. Данная опция включена по умолчанию.
Iterations=20: используется максимум 20 итераций. Если после 20 итераций решение не найдено, то шаг уменьшается.
Notdamped=100: No damping algorithm используется для первых ста ите-
раций методом Ньютона. Damping не рекомендуется использовать для большинства случаев.
Секция Solve содержит информацию, определяющую передаточные характеристики моделируемого объекта. Далее представлена секция Solve для получения ВАХ транзистора:
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-5 MaxStep=0.2
Goal{ Name="drain" Voltage= 0.05 } ){ Coupled{ Poisson Electron Hole } }
*- Gate voltage sweep Quasistationary( InitialStep=1e-3 Increment=1.35 MinStep=1e-5 MaxStep=0.05
Goal{ Name="gate" Voltage= 1.5 }
){ Coupled{ Poisson Electron Hole } }
}
Уравнение Пуассона первый раз считается для нахождения начальных решений. Начальные значения напряжений на электродах берутся из секции
Electrode.
Дальше уравнение Пуассона и уравнения непрерывности решаются.
38
Первый оператор Quasistationary увеличивает напряжение стока (drain voltage) до 0.05 В. На самом деле оператор Quasistationary увеличивает переменную t от 0 до 1 и рассчитывает напряжение на каждом шаге так:
V(t) = Vinitial + t * (Vgoal – Vinitial)
Все параметры, написанные для оператора Quasistationary, применяются к переменной t. Начальный шаг устанавливается как InitialStep, который равен 0.01 в этом примере. Тогда начальный шаг по напряжению получаем:
Vinitial+InitialStep*(Vgoal – Vinitial) = 0.0005 V, if Vinitial = 0
Величина шага автоматически изменяется с учетом результата предыдущего шага. Если предыдущий шаг был успешно посчитан, то величина шага для следующего расчёта увеличивается на величину Increment, которая равна 2 по умолчанию и 1.35 в примере. Если предыдущий шаг не был успешно посчитан, то величина шага уменьшается на величину Decrement, которая по умолчанию равна 2. Если величина шага оказалась меньше величины MinStep, то расчёт прекрашается неудачей и выводится соответствующее сообщение. Также величина шага не может быть больше чем MaxStep.
Далее приведён необходимый файл для расчёта:
File{
Grid = "n25_msh.tdr" Plot = "n3_des.tdr"
Current = "n3_des.plt" Output = "n3_des.log"
}
Electrode{
{Name="source" Voltage=0.0 }
{Name="drain" Voltage=0.0 }
{Name="gate" Voltage=0.0 }
{Name="substrate" Voltage=0.0 }
}
Physics{
* DriftDiffusion eQCvanDort
39
EffectiveIntrinsicDensity( OldSlotboom ) Mobility(
DopingDep
eHighFieldsaturation( GradQuasiFermi ) hHighFieldsaturation( GradQuasiFermi ) Enormal
)
Recombination( SRH( DopingDep )
)
}
Plot{
*--Density and Currents, etc eDensity hDensity
TotalCurrent/Vector eCurrent/Vector hCurrent/Vector eMobility hMobility
eVelocity hVelocity eQuasiFermi hQuasiFermi
*--Temperature
eTemperature Temperature * hTemperature
*--Fields and charges
ElectricField/Vector Potential SpaceCharge
*--Doping Profiles
Doping DonorConcentration AcceptorConcentration
*--Generation/Recombination SRH Band2Band * Auger
AvalancheGeneration eAvalancheGeneration hAvalancheGeneration
*--Driving forces
eGradQuasiFermi/Vector hGradQuasiFermi/Vector eEparallel hEparallel eENormal hENormal
40