第二章:仿真流程搭建——从工艺步骤到仿真脚本

说实话,很多工程师拿到TCAD仿真工具,第一反应就是直接跑。我当年也这样,结果跑出来的数据根本没法看。后来才明白,仿真流程的搭建,就像盖房子打地基——地基歪了,后面全白搭。

这一章,咱们就聊聊怎么把真实的工艺步骤,变成能跑的仿真脚本。重点讲四个核心模块:网格定义、材料参数、掺杂分布、热预算设置。每个模块我都会结合自己踩过的坑来讲。

2.1 网格定义:别让网格毁了你的仿真

网格是什么?说白了,就是把器件切分成无数个小方块,每个方块里算物理方程。网格太粗,精度不够;网格太细,算到天荒地老。

我个人习惯,在沟道区和结区附近加密网格。为什么?因为这些地方电场变化剧烈,载流子浓度梯度大。你想想看,如果网格太粗,一个网格里包含了从高浓度到低浓度的区域,那算出来的电流能准吗?

核心原则:

  • 沟道区:网格间距 1-2 nm
  • 源漏结区:网格间距 2-5 nm
  • 衬底深处:网格间距 10-20 nm
  • 过渡区域:渐变网格,比例因子 1.2-1.5

我在项目中遇到过一件事。有个28nm的器件,仿真出来的漏电流总是偏大。我查了三天,最后发现是网格定义太粗糙——源漏结区的网格间距设成了10nm。改到3nm后,结果立马对上了实测数据。嗯,这个教训挺深刻的。

下面是一个典型的网格定义脚本片段:

# 网格定义示例(Sentaurus格式)
Mesh {
  # 定义x方向网格
  xMesh {
    x.min = 0.0
    x.max = 0.5
    x.spacing = 0.002  # 沟道区加密
  }
  xMesh {
    x.min = 0.5
    x.max = 1.0
    x.spacing = 0.005  # 源漏区
  }
  
  # 定义y方向网格
  yMesh {
    y.min = -0.1
    y.max = 0.1
    y.spacing = 0.001  # 界面附近加密
  }
  yMesh {
    y.min = 0.1
    y.max = 1.0
    y.spacing = 0.01   # 衬底
  }
}

小技巧:先跑一个粗网格的快速仿真,看看哪些区域物理量变化剧烈。然后再在这些区域加密网格。这样既省时间,又保证精度。

2.2 材料参数:别用默认值,那是给新手准备的

材料参数这块,我见过太多人直接用工具自带的默认值。说实话,默认值只能保证程序不报错,但结果准不准,那就另说了。

关键材料参数包括:

参数 默认值 实际工艺值 影响
电子迁移率 1417 cm²/Vs 300-500 cm²/Vs 直接影响Idsat
禁带宽度 1.12 eV 1.08-1.12 eV 影响漏电流
SRH寿命 1e-6 s 1e-8 - 1e-7 s 影响GIDL
界面态密度 0 1e10 - 1e12 cm⁻² 影响亚阈值斜率

我曾经犯过一个低级错误。做SiGe源漏的PMOS仿真,忘了改SiGe的禁带宽度。结果算出来的阈值电压比实测低了0.15V。后来一查,默认的Si参数和SiGe参数差了0.1eV。你说这能准吗?

我的建议:每个材料参数都要和工艺部门确认。特别是迁移率模型,一定要用校准过的参数。别偷懒,否则后面良率分析全白做。

2.3 掺杂分布:仿真的灵魂

掺杂分布,说白了就是器件里哪些地方掺了什么杂质、掺了多少。这是仿真的灵魂,也是最容易出问题的地方。

常见的掺杂分布设置:

  1. 沟道掺杂:通常用高斯分布或误差函数分布。峰值浓度和结深是关键参数。
  2. 源漏掺杂:高浓度、陡峭的分布。注意横向扩散效应。
  3. 晕环掺杂:沟道和源漏之间的过渡区。这个区域最容易漏电。
  4. 阱掺杂:衬底的基础掺杂,影响阈值电压和闩锁效应。

注意:掺杂分布不是随便填几个数字就完事了。一定要和实际工艺的注入条件、退火条件对应起来。我曾经见过有人把沟道掺杂浓度设成1e18 cm⁻³,结果阈值电压算出来是负的——这明显是搞错了。

下面是一个掺杂分布的脚本示例:

# 掺杂定义示例
Implant {
  name = "channel_implant"
  impurity = Boron
  dose = 5e12
  energy = 15  # keV
  tilt = 7
  rotation = 0
  
  # 退火条件
  Anneal {
    temperature = 1050  # °C
    time = 5            # 秒
    rampRate = 50       # °C/s
  }
}

我个人习惯,每次跑完掺杂仿真后,先看一眼掺杂分布图。如果分布曲线不光滑,或者峰值位置不对,那肯定是参数设错了。别急着往下跑,先把这个改对再说。

2.4 热预算设置:温度和时间是双刃剑

热预算,就是温度乘以时间。你想想看,工艺过程中要经历多次退火、氧化、沉积,每次都会改变掺杂分布。热预算设大了,结深太深,短沟道效应严重;设小了,杂质激活不够,电阻太大。

热预算的关键参数:

  • 峰值温度:决定杂质扩散系数
  • 保温时间:决定扩散长度
  • 升温速率:影响缺陷退火效果
  • 降温速率:影响热应力

我记得有一次做22nm FD-SOI的仿真,热预算设成了1050°C、30秒。结果算出来的结深比目标值深了20nm。后来和工艺工程师一聊,才知道实际工艺用的是快速热退火(RTP),实际有效时间只有5秒。你看,这就是没沟通好的后果。

热预算设置原则:

  • 先确认工艺设备类型(炉管、RTP、激光退火)
  • 再确认实际工艺条件(温度、时间、升温速率)
  • 最后用校准过的扩散模型跑一遍,和实测数据对比

2.5 完整仿真流程框架

说了这么多,咱们用一张图把整个流程串起来。这是我做仿真时脑子里一直有的框架图:

仿真流程搭建框架 工艺步骤输入 注入/退火/氧化/沉积 网格定义 沟道/结区加密 材料参数 迁移率/禁带/寿命 掺杂分布 沟道/源漏/晕环 热预算设置 温度/时间/升温速率 仿真运行 求解/收敛/输出 结果验证 与实测数据对比 不匹配时返回调整参数

这张图我每次做仿真都会看一遍。从工艺步骤输入开始,到网格定义、材料参数、掺杂分布、热预算,最后跑仿真、验证结果。如果结果不对,就沿着反馈箭头回去调整参数。说白了,这就是一个迭代优化的过程。

我的经验:第一次跑仿真,别追求一次就准。先跑一个快速版本,看看整体趋势对不对。趋势对了,再慢慢调参数。这样效率最高。

好了,这一章的内容就到这里。仿真流程搭建,说白了就是把工艺步骤翻译成计算机能理解的语言。网格、材料、掺杂、热预算,这四个模块缺一不可。下一章咱们聊聊怎么解读仿真结果,以及如何根据结果调整工艺参数。


公众号:蓝海资料掘金营,微信deep3321