Appearance
Chapter 37: Kinetic Monte Carlo ReRAM
本章介绍如何通过提供与 kinetic Monte Carlo (KMC) 引擎的接口,在微观层面研究 resistive random access memory (ReRAM) 结构。
启动仿真与指定粒子
通过在 Physics 部分的 Traps 语句中指定 KmcReram 来启动 ReRAM 仿真。例如:
javascript
Physics{
Traps(( KmcReram ))
}缺陷通过 Sentaurus Device 命令文件的 KMCDefects 部分中的规格包含在 KMC-ReRAM 仿真中。缺陷可定义为导电粒子(使用关键字 Filament)或非导电粒子(使用关键字 Particle)。Sentaurus Device 支持三种不同类型的粒子和灯丝。
粒子或灯丝可以具有基本属性,例如名称以及与其他粒子或灯丝的关系。粒子之间的关系可以是以下之一:
- 默认的非交互关系表示不同类型的缺陷可以位于同一位置。
- 排他关系(由关键字
Exclude定义)表示不同类型的陷阱不能位于同一位置。 - 共享容量关系(由关键字
ShareCapacity定义)表示不同类型的陷阱可以位于同一位置,但总数不能大于容量。
以下示例定义了氧、带电荷的空位和不带电荷的空位。不带电荷的空位是导电粒子,不能与其他类型的粒子共享同一位置:
javascript
Physics{
KMCDefects(
Particle1(
Name="Oxygen"
Exclude(Filament1)
)
Particle2(
Name="Vacancy2+"
Exclude(Filament1)
)
Filament1(
Name="Vacancy0"
Exclude(Particle1 Particle2)
)
)
}其中:
KMCDefects/Particle{i}或KMCDefects/Filament{i}语句定义粒子类型。由关键字Filament1、Filament2和Filament3定义的粒子是导电粒子,被考虑用于电导方程。- 在
KMCDefects/Particle{i}语句中:Name指定粒子的名称。默认值:空字符串。Exclude指定要排除的粒子列表。ShareCapacity指定具有共享容量关系的粒子列表。
缺陷容量
在三维中,粒子容量由 ParticlesPerVolume{i} 或 FilamentsPerVolume{i} 定义:
其中 ParticlesPerVolume 或 FilamentsPerVolume 是在参数文件中指定的绝缘体属性(默认值:SiO2 为 4.40e22,HfO2 为 5.54e22,ZrO2 为 5.55e22,单位为 cm⁻³)。
读取缺陷
缺陷可以从其他 ReRAM 计算生成的 TDR 文件加载。要从 TDR 文件加载缺陷,可在 File 部分使用 InitialDefects 关键字:
javascript
File { InitialDefects = "defects_readin.tdr" }预存缺陷规格
为了更真实地模拟 forming 过程,Sentaurus Device 可以对 preexisting 缺陷进行建模。可以使用 Conc 随机生成 Particle{i} 和 Filament{i} 缺陷,它设置缺陷密度。
KMC 事件
基于定义的缺陷,您可以定义 ReRAM 操作期间的 KMC 事件(过程)。表 190 列出了支持的物理事件。
表 190:支持的物理事件
| 物理事件 | 描述 | 相关方程 |
|---|---|---|
| Diffusion | 粒子移动到相邻元胞。 | |
| Bulk generation or recombination | 一个或两个粒子类型在某一位置或相邻位置生成。 | |
| Interface generation or recombination | 一个或两个粒子类型在界面生成或复合。 | |
| Filament growth or recession | 粒子和灯丝之间的转换。 |
对于事件速率,使用通用表达式:
其中:
- 是事件的最大速率(关键字
Frequency;默认值为 0.0)。 - 是激活能(关键字
Ea;默认值为 0.0)。 - 是分子偶极子(关键字
Dipole;默认值为 0.0)。 - 是电场。
Location of KMC Events
KMC 事件的位置在创建 Physics 部分时指定。
Particle or Particle Pairs Involved in KMC Events
必须在 Physics 部分中指定参与 KMC 事件的粒子或粒子对。
对于生成或复合事件,必须定义 FrenkelPair 选项。
Parameters of KMC Events
对于每个 KMC 事件,在命令文件中指定关键字 Frequency、Ea 和 Dipole。
Diffusion Events
扩散事件可以为任何粒子定义。以下是 Particle1 扩散事件的规范示例:
javascript
Diffusion(Particle1(Frequency=1e10 Ea=0.4 Dipole=1e-8))Generation and Recombination Events
生成和复合事件可以为粒子对定义。Frenkel 对是一对两个粒子。
javascript
FrenkelPair1(Particle1(Region="Titanium") Particle2(Region="HfO2"))
Generation(FrenkelPair1(Frequency=1e10 Ea=0.7 Dipole=1e-7))
Recombination(FrenkelPair1(Frequency=1e10 Ea=0.3 Dipole=1e-7))Filament Growth and Recession Events
灯丝生长和退火事件可以为任何灯丝定义。
javascript
FilamentGrowth(Filament1(Frequency=1e9 Ea=0.6 Dipole=1e-7 Particle2))
FilamentRecession(Filament1(Frequency=1e9 Ea=0.55 Dipole=1e-7 Particle2))Seeds for Filament Growth
灯丝生长可以从 preexisting 灯丝粒子、电极或界面开始。
javascript
Physics (Electrode = "anode") {
KMCDefects(
FilamentSeeds(Filament1)
)
}KMC 仿真空间与数学设置
典型的 ReRAM 计算需要在 Math 部分中使用 KMC 语句。例如:
javascript
Math {
KMC (
MinLocation = (0.00, 0.00, 0.00)
MaxLocation = (0.02, 0.02, 0.02)
CellLength = 0.0005
[AlignCellsToRefLocation]
[RefLocation = (0.0, 0.0, 0.0)]
RandomSeed = 1
TargetParticle(Filament1)
UseKMCTimeStep
MaxTrapNumberChange = 1
MaxTrapNumber = 100
)
CurrentCompliance(
Contact = "anode"
minval = -1e-7
maxval = 1e-7
)
}KMC 仿真空间
使用 Math 部分中的以下关键字定义 KMC-ReRAM 仿真使用的 Sentaurus Device 结构部分:
MinLocation指定 KMC 计算的最小位置。MaxLocation指定 KMC 计算的最大位置。CellLength设置由MinLocation和MaxLocation定义的 KMC 区域的网格大小。
Random Seed
KMC 仿真是随机的。指定大于零的固定 RandomSeed 可获得与下一次仿真相同的结果。
KMC Time Step Control
KMC 事件速率取决于电场和温度。使用 UseKMCTimeStep 选项可指示 KMC 仿真器使用正确的时间步更新场。
TargetParticle 语句可用于选择 KMC 仿真器监控的粒子。
Current Compliance
ReRAM 通常使用电流 compliance 操作。电流 compliance 限制 forming 和 setup 过程中的最大电流。
javascript
CurrentCompliance(
Contact = "anode"
MinVal = -1e-7
MaxVal = 1e-7
)Specifying the Material
在参数文件中指定 KMC-ReRAM 仿真的绝缘体属性:
javascript
Material = "HfO2" {
FilamentParameter {
SigmaDef1 = 0.001 # [S/cm]
Sigma = 1e-8 # [S/cm]
KappaDef1 = 0.1 # [W/cm/K]
Kappa = 0.1 # [W/cm/K]
ParticlesPerVolume1 = 4e22 # [cm^-3]
FilamentsPerVolume1 = 4e22 # [cm^-3]
}
}Specifying the Field and Temperature
当选择 TDDB 选项时,默认情况下会开启 ConductanceEquation 和 HeatEquation 选项。稳态电导方程为:
带有 Joule 加热的稳态热方程为:
Transient Calculation for ReRAM
要在电极上扫描偏压,在 Transient 语句中使用 Goal 语句中的选项。
Current in ReRAM Operations
Conduction Current
当求解电导方程时计算传导电流。
Trap-Assisted Tunneling Calculation
要激活陷阱辅助隧穿计算,请指定:
javascript
KMCDefects(TrapAssistedTunneling)要与 ReRAM 过程定义的粒子和灯丝链接,请使用 kmcmim1 或 kmcmim2 选项。
Simulation Output
Current and Particles
电流与偏压的关系图,或灯丝数量与偏压的关系图,保存在 .plt 文件中。
图片:/sentaurus-ref/public/images/sdevice/ch37_fig84.png
Event and Particle Statistics
指定 PrintMIMEventStatistics 以在每个 Sentaurus Device 时间步后将 MIM 事件统计打印到标准输出。
Defect and Field Visualization
可在命令文件的 Plot 部分使用 ReRAMParticle 选项设置粒子图的生成。
图片:/sentaurus-ref/public/images/sdevice/ch37_fig85.png
ReRAM Example
对于此示例,ReRAM 的结构如图 85(左)所示。ReRAM 包含四层:顶层是 HfO2,底层是钛,中间两层是 HfOx 和 TiOx。
javascript
# mim_3d.cmd
File {
Grid = "reram_structure_msh.tdr"
Plot = "reram_3d_thin"
Current = "reram_3d_thin"
Output = "reram_3d_thin"
Param = "reram_3d.par"
}
Plot {
VertexIndex
ReRAMParticle
ReRAMPotential
ReRAMTemperature
ReRAMField
ReRAMCurrent
}
Electrode {
{name="cathode" voltage=0.0 Material="TiN"}
{name="anode" voltage=0.0 Material="TiN"}
}
Physics {
Temperature=298
Traps(( KmcReram ))
KMCDefects(
ConductanceEquation
HeatEquation
Particle1(Name="Oxygen")
Particle2(Name="Vacancy")
Filament1(Name="ImmobileVacancy")
)
}
Physics (Material = "HfO2") {
KMCDefects(
Diffusion(Particle2(Frequency=1e10 Ea=0.4 Dipole=2e-7))
FilamentGrowth(Filament1(Frequency=1e9 Ea=0.4 Dipole=2e-7 Particle2))
FilamentRecession(Filament1(Frequency=1e9 Ea=0.5 Dipole=2e-7 Particle2))
)
}
Physics (Material="HfOx") {
KMCDefects(
FrenkelPair1(Particle1(Region="Oxide") Particle2(Region="Oxide") SameSite)
Generation(FrenkelPair1(Frequency=1e8 Ea=0.8 Dipole=2e-7))
Recombination(FrenkelPair1(Frequency=1e9 Ea=0.3 Dipole=0e-7))
Diffusion(Particle1(Frequency=1e10 Ea=0.4 Dipole=-2e-7))
Diffusion(Particle2(Frequency=1e10 Ea=0.4 Dipole=2e-7))
FilamentGrowth(Filament1(Frequency=1e9 Ea=0.4 Dipole=2e-7 Particle2))
FilamentRecession(Filament1(Frequency=1e9 Ea=0.5 Dipole=2e-7 Particle2))
)
}
Math {
KMC (
CurrentCompliance (Contact = "anode" maxval = 1E-8)
MinLocation = (0.00, 0.00, 0.00)
MaxLocation = (0.02, 0.02, 0.02)
CellLength = 0.0005
UseKMCTimeStep
MaxTrapNumberChange = 1
MaxTrapNumber = 1000
TargetParticle(Filament1)
)
}
Solve {
Coupled (iterations=100) {Poisson Contact}
Quasistationary (
InitialStep=0.1 MinStep=1e-3 MaxStep=0.5
Goal {Name="anode" Voltage=0.0}
) { Coupled { Poisson Contact} }
Transient (
InitialTime=0 FinalTime=0.015 Increment=1.2 InitialStep=0.001 MaxStep=1e30
Goal{Name="anode" Voltage=3.0}
) { Coupled { Poisson Contact } }
}Example: TiN/HfO2/Ti/TiN/HfOx/TiOx ReRAM
javascript
Material = "TiN" {
Bandgap {
WorkFunction = 4.4
FermiEnergy = 6.0
}
FilamentParameter {
SigmaDef1 = 1e4
Sigma = 1e4
KappaDef1 = 0.2
Kappa = 0.2
}
}
Material = "Titanium" {
Bandgap {
WorkFunction = 4.4
FermiEnergy = 6.0
}
FilamentParameter {
SigmaDef1 = 1e3
Sigma = 1e3
KappaDef1 = 0.1
Kappa = 0.2
ParticlesPerVolume1 = 5e22
}
}
Material = "HfOx" {
FilamentParameter {
SigmaDef1 = 1
Sigma = 1e-11
KappaDef1 = 0.1
Kappa = 0.1
ParticlesPerVolume1 = 1.5e22
ParticlesPerVolume2 = 1.5e22
FilamentsPerVolume1 = 1.5e22
}
KMC_MIM_Transport {
metun = 0.2
medos = 0.2
mcb = 1.16
mvb = 2.5
HuangRhys = 17.0
PhononEnergy = 0.070
OpticalPermittivity = 5.6
PhononFrequency = 1e13
tau0 = 1e-10
nu_max = 1e14
EA = 3.00
p0 = 5.2
}
Epsilon {
epsilon = 21.0
}
Bandgap {
Chi0 = 2.4
Eg0 = 5.8
}
}
Material = "TiOx" {
FilamentParameter {
SigmaDef1 = 0.01
Sigma = 0.01
KappaDef1 = 0.1
Kappa = 0.1
ParticlesPerVolume1 = 5e22
}
Bandgap {
WorkFunction = 4.7
FermiEnergy = 11.7
}
}
Material = "HfO2" {
FilamentParameter {
SigmaDef1 = 0.01
Sigma = 1e-11
KappaDef1 = 0.1
Kappa = 0.1
ParticlesPerVolume2 = 1.5e22
FilamentsPerVolume1 = 1.5e22
}
KMC_MIM_Transport {
metun = 0.2
medos = 0.2
mcb = 1.16
mvb = 2.5
HuangRhys = 17.0
PhononEnergy = 0.070
OpticalPermittivity = 5.6
PhononFrequency = 1e13
tau0 = 1e-10
nu_max = 1e14
EA = 3.00
p0 = 5.2
}
Epsilon {
epsilon = 21.0
}
Bandgap {
Chi0 = 2.4
Eg0 = 5.8
}
}KMC 仿真空间和数学设置
KMC 仿真空间
使用 Math 部分中的以下关键字定义 KMC-ReRAM 仿真使用的 Sentaurus Device 结构部分:
MinLocation指定 KMC 计算的最小位置。MaxLocation指定 KMC 计算的最大位置。CellLength设置由MinLocation和MaxLocation定义的 KMC 区域的网格大小。
随机种子
KMC 仿真是随机的。指定大于零的固定 RandomSeed 可获得与下一次仿真相同的结果。
KMC 时间步控制
KMC 事件速率取决于电场和温度。使用 UseKMCTimeStep 选项可指示 KMC 仿真器使用正确的时间步更新场。
Current Compliance
ReRAM 通常使用电流 compliance 操作。电流 compliance 限制 forming 和 setup 过程中的最大电流。
字段和温度规格
当选择 TDDB 选项时,默认情况下会开启 ConductanceEquation 和 HeatEquation 选项。
稳态电导方程为:
带有 Joule 加热的稳态热方程为:
ReRAM 瞬态计算
要在电极上扫描偏压,在 Transient 语句中使用 Goal 语句中的选项。
ReRAM 操作中的电流
传导电流
当求解电导方程时计算传导电流。
陷阱辅助隧穿计算
要与 ReRAM 过程定义的粒子和灯丝链接,请使用 kmcmim1 或 kmcmim2 选项。
仿真输出
电流和粒子
电流与偏压的关系图,或灯丝数量与偏压的关系图,保存在 .plt 文件中。
事件和粒子统计
指定 PrintMIMEventStatistics 以在每个 Sentaurus Device 时间步后将 MIM 事件统计打印到标准输出。
缺陷和场可视化
可在命令文件的 Plot 部分使用 ReRAMParticle 选项设置粒子图的生成。