[toc]
基于 GaAs–AlGaAs–InGaAs–InP 材料体系的拟势垒 HEMT 的直流特性分析,主要包括:
- 在 DEVEDIT 中构建设备
- 模拟一组 Id–Vds 曲线
- 模拟 Id–Vgs 特性
- 基本器件参数提取
输入文件内容
1 | # (c) Silvaco Inc., 2019 |
输入文件的第一部分在 DEVEDIT 中构建 HEMT 的几何结构、材料区域、掺杂分布和电极。所考虑的结构是 非平面、带有非矩形凹槽栅的结构,展示了 DEVEDIT 生成任意形状几何结构的重要能力。
器件基于 GaAs 衬底,采用 双通道 HEMT 概念:InGaAs 通道夹在两个 AlGaAs 区域之间。结构中还在通道上下的 AlGaAs 层中引入了 两层 δ 掺杂(脉冲掺杂),建模时采用厚度约 10 Å 的窄层。δ 掺杂通常用面密度 (cm⁻²) 表示,需要根据层厚换算为体掺杂浓度 (cm⁻³)
δ 掺杂在现代 HEMT 技术中非常关键,用于向通道提供额外载流子,并改善阈值电压及其他器件参数的控制。源极和漏极帽区采用 GaAs。在实际器件中,源/漏电极合金通常会深入到通道以下。建模时在源/漏下方区域引入重掺杂,垂直方向掺杂分布设为高斯型,水平方向近似为互补误差函数。DEVEDIT 提供了指定任意二维掺杂分布的函数手段。AlGaAs (Al 含量 0.22) 和 InGaAs (Ga 含量 0.78) 的组分比例在 DEVEDIT 中通过区域属性定义。网格则通过设定基本约束并在关键区域沿 x/y 方向细化自动生成。
DEVEDIT 会生成两类文件:输入文件和结构文件。前者可在 DeckBuild 中运行以生成结构文件(并作为输入文件的第一部分附带)。后者则可直接由 Atlas 在
MESH
语句中调用。需要注意的是,DEVEDIT 输入文件可像普通输入文件一样编辑,可以修改掺杂类型与数值、调整区域尺寸,更重要的是,DEVEDIT 输入文件也能直接在 DEVEDIT 图形界面中加载,以便使用菜单选项修改结构。在 Atlas 中的仿真从读取 DEVEDIT 生成的结构开始。DeckBuild 提供了 DEVEDIT 与 Atlas 的自动接口,因此结构可以直接传递,无需在输入文件中显式写
MESH
语句(示例中该语句被注释掉)。若没有该接口,则必须用MESH
语句手动加载结构和网格
理解输入代码
bound.cond !apply max.slope=28 max.ratio=300 rnd.unit=5e-05 line.straightening=1 align.points when=automatic
- **`imp.refine`** 表示针对 **掺杂分布 (impurity regions)** 进行网格加密。 由于掺杂浓度可能变化很剧烈(尤其是 delta 掺杂、结区过渡区),需要更密集的网格来捕捉电势和载流子分布。 - **`min.spacing=0.02`** 定义在加密区域内,网格点之间的最小间距为 **0.02 μm**。 即使其他地方的网格较稀疏,在掺杂梯度显著的区域,DEVEDIT 也会强制插入足够的网格点,使网格细化到 0.02 μm。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
- 控制 **边界条件和网格生成规则** 的一条设置语句
- **`bound.cond`**
指定网格边界条件 (boundary conditions) 与控制参数。主要用于保证网格质量、避免过度倾斜或尺寸突变
- **`!apply`**
表示该条件**尚未应用**(这是 DEVEDIT 语法的一种标记,带 `!` 的参数通常是一个逻辑开关,用户可修改后启用)
- **`max.slope=28`**
限制网格边界的 **最大斜率变化**(即相邻网格线的角度差不超过 28°)。
目的:避免生成过于尖锐或扭曲的单元。
- **`max.ratio=300`**
限制相邻网格单元的 **尺寸比**,即长宽比或相邻单元大小的比例不超过 300。
目的:防止出现极度细长的网格单元。
- **`rnd.unit=5e-05`**
定义 **网格坐标的最小舍入单位**(这里是 5×10⁻⁵ μm)。
作用:保证数值精度,避免浮点误差导致的非对齐。
- **`line.straightening=1`**
启用 **网格线拉直功能**,让网格边界尽量光滑,减少锯齿状。
- **`align.points`**
表示在生成网格时尝试 **对齐关键点**(如区域交界、掺杂边界、电极边界)。
- **`when=automatic`**
设置触发条件为 **自动**,即由 DEVEDIT 在网格生成过程中自动判断是否应用上述约束。
- ```
imp.refine min.spacing=0.02extract init inf="hemtex05_4.log"
- **`extract name="Vt"`** 定义提取的参数名为 **Vt**(阈值电压)。 - **`curve(v."gate", i."drain")`** 指定曲线:横坐标是 **栅压 (v."gate")**,纵坐标是 **漏电流 (i."drain")**。 → 也就是从仿真结果(log 文件或 runset 中的 IV 数据)里取出 **Id–Vg 曲线**。 - **`maxslope(...)`** 在这条曲线上寻找 **斜率最大的点**,即曲线最陡的地方。 → 对应 **最大跨导 gm**。 - **`xintercept(...)`** 通过该点的切线外推,求其与 **横轴 (Vg 轴)** 的交点。 → 这个交点的 Vg 值就定义为 **阈值电压 Vt**。1
2
3
4
5
6
- `extract init`:初始化提取过程(告诉提取工具从哪里开始读取数据)。
- `inf="hemtex05_4.log"`:指定输入文件,也就是 `.log` 文件,通常是由 `solve` 计算生成的运行日志文件,里面包含了电压、电流、能带、电荷分布等数值结果。
- ```
extract name="Vt" (xintercept(maxslope(curve(v."gate",i."drain"))))
模拟结果Id-Vds 和 Id-Vgs
净掺杂浓度 | 漏极电压/电流 | 对比 |
---|---|---|
![]() |
![]() |
![]() |