Sentaurus TCAD 仿真教程(十三)

📅 发布时间:2026/7/17 18:37:22 👁️ 浏览次数:
Sentaurus TCAD 仿真教程(十三)
Sentaurus Process2.一维工艺模拟2.12.2 定义初始一维网格2.3 定义初始模拟域2.4 初始化模拟2.5 设置重划分策略2.6 生长掩蔽氧化层2.7 测量氧化层厚度2.8 沉积掩蔽氧化层2.9 使用 Tcl 控制语句2.10 砷离子注入2.11 保存注入后剖面2.12 热退火、推进、激活与掩蔽氧化层剥离2.13 作业目标使用 Sentaurus Process 执行一维工艺模拟。2.1 概述本节将执行一个简单的一维工艺模拟。注意大多数 Sentaurus Process 的参数可以缩写。然而为了清晰起见本模块中的参数不进行缩写。您不需要显式指定单位。Sentaurus Process 将使用默认单位。但在给出的示例中单位总是显式给出。命令文件可在 Sentaurus Workbench 项目中获得该项目包含两个 Sentaurus Process 实例第一个实例用于下面描述的示例第二个实例用于 2.13 节的作业。完整的项目可以在 Sentaurus Workbench 中的目录Applications_Library/GettingStarted/sprocess/1DGS下查看。2.2 定义初始一维网格初始一维网格使用line命令定义line x location 0.0 spacing 1nm tag SiTop line x location 10nm spacing 2nm line x location 50nm spacing 10nm line x location 300nm spacing 20nm line x location 0.5um spacing 50nm line x location 2.0um spacing 0.2um tag SiBottomline命令的第一个参数指定网格的方向。对于一维模拟该方向始终是x。网格间距由location和spacing参数对定义其中spacing定义了在指定location处两条网格线之间的间距。在line命令中定义的两个location之间Sentaurus Process 会线性地扩展或压缩网格间距。网格间距图 1. 网格间距随 x 位置的变化函数。在图 1 中绘制了前 50 nm 范围内网格间距随 x 位置的变化函数。网格密度从 X0 处的 1 nm 线性下降到 X10 nm 处的 2 nm然后下降到 50 nm 处的 10 nm。每个区间内的最后一个网格间距通常会偏离线性扩展以使网格点精确地位于line命令中指定的位置。Sentaurus Process 中的单位可以在尖括号 中显式指定。除非另有说明长度的默认单位是微米micrometer。因此语句location2.0um和location2.0是等效的。在本模块中单位总是显式指定。可以使用tag参数为网格线添加标签以便后续在region命令中使用。2.3 定义初始模拟域初始模拟域使用region命令定义region Silicon xlo SiTop xhi SiBottom这里Silicon指定了区域的材料。参数xlo和xhi的取值是标签tags这些标签在line命令中定义。对于二维和三维模拟额外的参数ylo,yhi,zlo, 和zhi定义了矩形或长方体区域。通常初始模拟域可以由多个区域组成。2.4 初始化模拟模拟使用init命令初始化init concentration 1.0e15cm-3 field Boron这里将硅片在之前的region命令中定义中的初始硼浓度设置为 $10^{15}$ cm⁻³。init命令可以加载之前的模拟结果或 TDR 边界文件用于二维和三维模拟。2.5 设置重划分策略初始网格在第一个改变几何结构的命令如氧化、沉积和刻蚀之前是有效的。对于这些步骤必须定义一个重划分策略。网格重划分由 Sentaurus Mesh 执行。要定义重划分策略请使用grid set.min.normal.size 3nm set.normal.growth.ratio.2d 1.4其中set.min.normal.size决定了从界面开始的第一层的网格间距。更准确地说第一层的尺寸不能大于 $0.5 \times \text{set.min.normal.size}$。set.normal.growth.ratio.2d决定了在二维网格中网格间距从一层到另一层可以增加的速率。2.6 生长筛选氧化物一维工艺模拟从热生长一层薄的牺牲性筛选氧化物开始gas_flow nameO2_1_N2_1 pressure1atm flowO21.2l/min flowN21.0l/min diffuse temperature900C time40min gas_flowO2_1_N2_1gas_flow命令指定了气体混合物其中name定义了一个气体流动记录供后续diffuse命令使用。环境气体的压力设置为 1 atm氧气和氮气的流量分别设置为 1.2 l/分钟 和 1.0 l/分钟。其他气体流动参数如环境气体和分压也可以定义详见 Sentaurus™ Process 用户指南。热氧化步骤通过diffuse命令启动。这里晶圆在 900°C 的环境温度下暴露于氧化气体由gas_flow命令定义40 分钟。更多选项如温度斜坡和数值参数可用详见 Sentaurus™ Process 用户指南。Sentaurus Process 输出氧化步骤的进度信息Anneal step: Time 40min Temperature 900.0C Ramp rate 0C/s Reaction : 0s to 0.0001s step : 0.0001s temp: 900.0C sprocess Pardiso thread count 1 Mechanics: 0s to 0.0001s step : 0.0001s temp: 900.0C --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- -- Initializing: --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- -- Initialization is done. --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- -- Diffusion: 0s to 0.0001s step (s): 0.0001s temp: 900.0C Interpolating...elapsed time: 0.0000e00 Reaction : 0.0001s to 0.0001727s step : 7.268e-05s temp: 900.0C Mechanics: 0.0001s to 0.0001727s step : 7.268e-05s temp: 900.0C Diffusion: 0.0001s to 0.0001727s step (s): 7.268e-05s temp: 900.0C Interpolating...elapsed time: 0.0000e00 ... Reaction : 38.29min to 40min step : 1.708min temp: 900.0C Mechanics: 38.29min to 40min step : 1.708min temp: 900.0C Diffusion: 38.29min to 40min step (s): 1.708min temp: 900.0C Interpolating...elapsed time: 0.01 Elapsed time for diffuse 23.56s2.7 测量氧化物厚度为测量热生长氧化物的厚度使用select z1 layersselect命令选择用于后处理的量。选择 1 是获取材料厚度的一种方式。layers命令打印区域列表及其各自的顶部和底部坐标同时打印每个区域所选量的积分值。选择 1 时积分等于厚度{ Top Bottom Integral Material } { -6.178796082035e-03 3.676329713272e-03 9.855125795306e-07 Oxide } { 3.676329713272e-03 2.000000000000e00 1.996323670287e-04 Silicon }这里热氧化过程中消耗了 3.68 nm 的硅最终氧化物厚度为 9.86 nm。Sentaurus Process 内部使用厘米作为长度单位。选择硼时layers命令的输出如下{ Top Bottom Integral Material } { -6.178796082035e-03 3.676329713272e-03 3.012697967871e09 Oxide } { 3.676329713272e-03 2.000000000000e00 1.969873116640e11 Silicon }硅层中的积分硼浓度为1.97 x 10¹¹ cm⁻² 10¹⁵ cm⁻³ x (2 x 10⁻⁴ cm - 3.67 x 10⁻⁷ cm)这与指定的晶圆掺杂一致。2.8 沉积屏蔽氧化层相比于模拟氧化层生长一种更快速的替代方法是沉积一层氧化层然后模拟一个热循环过程以计入氧化过程中的热预算。如果氧化增强扩散OED和氧化过程中的硅消耗不重要这是一种模拟形成屏蔽氧化层的有效方法。要沉积一层 10 nm 的屏蔽氧化层并在惰性环境中执行热循环请使用deposit material {Oxide} typeisotropic time1.0 rate {0.01}diffuse temperature900C time40min如果未指定气体流量diffuse命令默认使用惰性环境。当您希望省略氧化生长过程但 OED 不可忽略时可以指定反应性环境并配合使用以下标志pdbSetBoolean Grid DoNotMove.Reaction 1这将开启 OED 但不会对网格点施加速度。这在 3D 仿真中常用。关于pdbSetBoolean命令的详细信息请参见第 4.2 节“更改命令文件中的参数”。此处的deposit命令使用的是长格式语法。对于简单的刻蚀和沉积类型也可使用短格式语法。使用短格式语法的deposit命令如下deposit Oxide typeisotropic thickness10.0nm推荐使用长格式语法因为它与更高级的刻蚀类型如多材料 (multimaterial) 和傅里叶 (Fourier)保持一致而这些类型仅支持长格式语法。2.9 使用 Tcl 控制语句在 Sentaurus Process 的命令文件中可以自由使用 Tcl 结构介绍请参见 Tcl (Tool Command Language) 模块。以下代码段根据 Tcl 变量SCREEN的值来模拟氧化或执行沉积set SCREEN Grow if { $SCREEN Grow } { # 生长屏蔽氧化层 # ----------------------- gas_flow name O2_1_N2_1 pressure 1atm flowO2 1.2l/min flowN2 1.0l/min diffuse temperature 900C time 40min gas.flow O2_1_N2_1 # 测量氧化层厚度 # ----------------------------- select z1 layers } else { # 沉积屏蔽氧化层 # -------------------------- deposit material {Oxide} type isotropic time 1.0 rate {0.01} diffuse temperature 900C time 40min }2.10 注入砷要以 30 keV 能量、1e14 cm-2 剂量、7° 注入倾角和 0° 晶圆旋转角度注入砷请使用implant Arsenic energy 30keV dose 1e14cm-2 tilt 7degree rotation \ 0degreeSentaurus Process 报告如下信息Species Arsenic Dataset Arsenic Energy 30keV Dose (WaferDose) 1e14/cm2 BeamDivergence 0.5deg BeamDose 1.0075e14/cm2 Tilt 7deg Rotation 0deg Temperature 300.00K Total implant time: 0.23sec - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dose in: Silicon_1 Oxide_1 Oxide_1Sil Total Silicon Oxide Oxide_Silic Boron 1.9685e11 2.7384e09 4.0938e08 2.0000e11 Arsenic 9.9635e13 2.7549e12 0.0000e00 1.0239e14 Int 1.9736e08 7.7921e04 1.0000e05 1.9764e08 Vac 2.6782e09 1.3372e08 1.0000e05 2.8121e09 ICluster 9.6849e07 0.0000e00 1.0000e05 9.7049e07 O2 1.9968e-04 2.6168e10 1.0000e00 2.6168e10该报告显示由于倾角非零Sentaurus Process 调整了束流剂量以确保沉积在晶圆上的总剂量符合指定值。切片角度表示模拟平面与晶圆平边法线之间的夹角。默认情况下模拟域平行于晶圆平边。该报告显示了每个区域Region和物质Species的积分掺杂浓度。2.11 保存注入后分布 (Saving the As-Implanted Profile)要保存注入后分布请使用SetPlxList { BTotal Arsenic_Implant } WritePlx nnode_1DasImpl.plxSetPlxList命令定义了哪些求解变量将被保存到.plx文件中。此处仅保存了总化学硼浓度和注入后的砷浓度。如果省略SetPlxList命令默认情况下所有可用的求解结果都会被保存到.plx文件中。除了文件名nnode_1DasImpl.plx之外WritePlx命令还可以接受一个材料限定符material specifier用于将绘图限制在给定的材料上。对于 2D 和 3D 结构必须给出 1D 切线的 x-、y- 或 z-坐标。图 2 显示了注入后的砷分布和背景硼浓度。请注意界面处的硼耗尽现象这是由氧化物生长过程中的硼分凝boron segregation引起的。注入后砷分布图 2. 注入后砷分布和背景硼浓度。图 2 是通过将.plx文件加载到 Sentaurus Visual 中生成的命令如下 svisual n1_1DasImpl.plx2.12 热退火、推进、激活及去除阻挡氧化层 (Thermal Annealing, Drive-in, Activation, and Screening Oxide Strip)为了退火注入过程中造成的损伤或者将掺杂剂推进到更深的衬底区域或者在惰性环境中激活注入的掺杂剂请使用diffuse temperature 1000C time 30min strip Oxide SetPlxList { BTotal BActive AsTotal AsActive } WritePlx nnode_1Danneal.plx此处结构在恒定的 1000°C 温度下退火 30 分钟。退火在惰性气体中进行因为没有指定特定的反应气氛。退火后的分布被写入文件nnode_1Danneal.plx。保存了硼和砷的总化学浓度以及各自电学激活替位的浓度。注入后与退火后砷分布对比图 3. 注入后与退火后砷分布对比。图 3 对比了注入后和退火后的砷分布。它是通过将两个.plx文件加载到 Sentaurus Visual 中生成的命令如下 svisual n1_1DasImpl.plx n1_1Danneal.plx点击查看命令文件sprocess_fps.cmd。2.13 作业创建一个 Sentaurus Process 命令文件用于模拟此处概述的工艺流中垂直 npn 双极晶体管的 1D 掺杂剖面。步骤 1. 衬底定义声明一个 2 μm 深、硼浓度为 1.0 × 10¹⁵ cm⁻³ 的 (100) p 型硅衬底。步骤 2. 埋层与部分推进沉积 25 nm 的阻挡氧化层 (screening oxide)。以 1.5 × 10¹⁵ cm⁻² 的剂量和 100 keV 的能量注入锑 (antimony)。在 1100°C 下退火 (anneal) 60 分钟。去除 (strip) 阻挡氧化层。图 4. 步骤 2 中注入和部分推进后的锑 (antimony) 剖面。步骤 3. 外延层 (Epi Layer)沉积 4 μm 的轻掺杂硅。通过另一个在 1100°C 下进行 60 分钟的退火步骤来模拟外延生长过程中的热预算 (thermal budget)。步骤 4. 基区注入与推进沉积 25 nm 的阻挡氧化层。以 1.0 × 10¹⁴ cm⁻² 的剂量、50 keV 的能量和 7° 的倾斜角 (tilt angle) 注入硼 (boron)。在 1000°C 下退火 50 分钟。步骤 5. 发射区注入与激活以 2.0 × 10¹⁵ cm⁻² 的剂量、55 keV 的能量和 7° 的倾斜角注入砷 (arsenic)。在 1000°C 下退火 35 分钟。图 5. 最终剖面。对于作业要求在定义衬底之前定义初始网格 (initial mesh) 和初始仿真域 (initial simulation domain)。在第一个沉积命令 (deposit) 之前定义重网格策略 (remeshing strategy)。在每个主要的注入 (implantation) 和退火 (annealing) 步骤之后保存 1D 剖面。点击查看命令文件sprocess1_fps.cmd的示例解答。