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 )
}
В данном случае используются следующие модели, описывающие подвижность носителей заряда:
DopingDep – понижение подвижности носителей заряда из-за высокой концентрации примесей.
HighFieldSat – насыщение скорости при больших полях.
36
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
}
Extrapolate: начальное приближение решения для конкретной точки базируется на решениях для двух предыдущих точек.
37
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