资讯动态

TCAD NMOS建模全流程:从结构定义到参数提取

发布时间:2026/9/20 12:06:53 来源:尧图企业网站定制
简介面向半导体器件建模与 TCAD 仿真人群聚焦 NMOS 晶体管从结构创建到网格划分的完整建模流程。主要使用 Sentaurus TCAD 的命令脚本方式适合需要快速上手器件结构搭建、掺杂与网格设置的工程师与学生。资源包共 3 个文件核心为 inscode 脚本配合 HTML 说明文件及辅助配置总大小仅 6KB轻量便于直接阅读与对照执行。目前已有 201 人学习浏览适合希望借助具体代码理解 TCAD 建模步骤的入门与进阶读者。压缩包内提供了可运行的 NMOS 建模代码完整覆盖 sdegeo 结构搭建、sdedr 掺杂与网格优化、源漏栅接触定义及网格文件保存等关键环节读者可基于脚本快速复现并调整 Pwell、SiO2、源漏区、PolySi 栅极等参数降低工具学习成本。同时可帮助设计师在流片前验证器件结构合理性缩短仿真建模时间。 这是我入行后完整跑通的第一个项目Sentaurus TCAD NMOS建模。那会儿目标很朴素用代码把一颗NMOS从几何结构到电学特性完整还原出来再从仿真曲线里把阈值电压、饱和电流这些参数一点一点抠出来。这篇文章把整套流程从头拆到尾写给正在学TCAD仿真或者刚打开Sentaurus Workbench还不知道该点哪里的人。先说一个结论TCAD建模最难的不是学习工具操作而是建立器件物理参数怎么影响最终曲线的直觉。Sentaurus TCAD的价值在于它让你在流片之前就能看到沟道里的电势分布、载流子浓度、电场走向而这些信息在实测里几乎拿不到。这篇文章围绕一个标准NMOS结构从结构定义、掺杂设计、网格划分、物理模型、求解设置一路讲到Id-Vg曲线提取和混合模式仿真尽量把每一步背后的为什么也讲清楚。1. 从能跑通到跑得对NMOS TCAD建模的真实门槛1.1 为什么第一步必须先建NMOS很多初学者打开Sentaurus第一件事是找GUI按钮这其实是走偏了。TCAD工具链的核心是脚本GUI只是辅助。Sentaurus TCAD的大致流程是Sentaurus WorkbenchSWB管工程Structure EditorSDE建结构、掺杂质、画网格然后交给Sentaurus Device做电学仿真最后用Inspect或Sentaurus Visual看曲线和内部场量分布。整个链路里NMOS是最适合练手的对象因为它的物理机制清楚源漏、沟道、栅氧、栅极各区域边界明确不会像功率器件或存储器件那样上来就一大堆工艺细节。而且有一个很实际的原因NMOS和PMOS的建模流程几乎一样但NMOS的载流子是电子迁移率更高、仿真数值更稳定收敛难度比PMOS低不少。对你理解栅压控制沟道电导这件事来说NMOS也是最直观的。跑通NMOS之后改成PMOS基本只是衬底掺杂、源漏掺杂极性和功函数设置的对称翻转。1.2 建模前先列一份器件结构清单动手写代码之前我会先把目标器件参数列成一张表。没有目标参数的仿真很容易变成为了跑通而跑通最后画出来的曲线自己都解释不了。下面是我这次建模用的参数按教学性质做了简化没有刻意追求某个先进节点的量产数值参数数值作用衬底材料p型硅掺杂1e15 cm^-3提供器件基底沟道峰值掺杂p型3e17 cm^-3决定阈值电压和短沟道特性栅氧厚度2.5 nm决定栅控能力和Cox沟道长度130 nm目标工艺节点源漏重掺杂n型1e20 cm^-3形成低阻欧姆接触栅极材料n多晶硅掺杂1e20 cm^-3实际功函数设置工作电压VDD1.2 V电源电压目标阈值电压0.35~0.5 V建模完成后要验证的指标这张表非常关键。Sentaurus里所有掺杂曲线、网格细化窗口、电极位置全都由这张表倒推出来。比如栅氧2.5nm意味着沟道区纵向网格必须有至少2~3个节点落在氧化层内否则栅电容算不准又比如沟道掺杂3e17这个数量级的目标阈值电压大概在0.4~0.6V范围如果最后提取出来只有0.1V那就要回头检查掺杂是不是没写进去。2. 用SDE脚本把晶体管长出来结构、掺杂和网格2.1 区域定义与电极接触SDE支持图形化方式但脚本才是可复现、可版本管理的关键。一个典型的2D NMOS结构脚本逻辑上就是几步画矩形、起名字、赋材料然后定义接触电极。我写了一个简化版结构定义用于教学演示。真实工程里源漏延伸区、侧墙、浅 trench 隔离都会被加进去但核心逻辑不变; 硅衬底坐标单位微米 (sdegeo:create-rectangle (position 0.0 0.0 0.0) (position 1.0 1.0 0.0) Silicon substrate) ; 栅氧区域坐落在硅表面上面 (sdegeo:create-rectangle (position 0.35 1.0 0.0) (position 0.65 1.0025 0.0) SiO2 gateoxide) ; 多晶硅栅 (sdegeo:create-rectangle (position 0.35 1.0025 0.0) (position 0.65 1.1025 0.0) PolySi polygate) ; 定义电极接触 (sdegeo:define-contact-set gate 4 (color:rgb 1 0 0)) (sdegeo:define-contact-set drain 4 (color:rgb 0 1 0)) (sdegeo:define-contact-set source 4 (color:rgb 0 0 1)) (sdegeo:define-contact-set bulk 4 (color:rgb 1 1 0))电极不直接加在region上而是通过sdegeo:set-contact-boundary绑定几何边界。这一步常见的问题是接触区域的边界选择错误导致仿真时电流从栅氧里穿过结果自然不对。我的习惯是把每个接触的边界范围单独打印出来核对一遍确保源漏接触在硅表面两侧栅接触在多晶硅顶部衬底接触在底部。2.2 掺杂分布沟道与源漏的搭配结构画完真正的物理建模从掺杂开始。SDE里最常用的是恒定掺杂和Gaussian分布掺杂。领域内常把沟道掺杂称之为阈值调整注入也就是通过peaking浓度把Vth抬到目标值。而源漏重掺杂则决定了接触电阻和驱动电流能力。沟道掺杂用Gaussian分布从硅表面往下注入峰值放在表面附近。这个3e17的峰值浓度如果写成常数分布贯穿整个衬底会造成高估的体效应和结电容所以要和衬底的低浓度掺杂区分开。源漏区域用重掺杂As固态溶解度附近1e20个别。另外实际的NMOS在栅边缘下方通常还有一层LDD轻掺杂漏浓度大概5e18~1e19用来缓解热载流子效应。初学者很容易跳过LDD导致仿真里栅漏交叠区的电场过于集中提取出的衬底电流和击穿特性明显偏大。; 沟道掺杂峰值位于硅表面峰浓度3e17 (sdedr:define-gaussian-profile ChannelProfile BoronActiveConcentration PeakPos 0.0 PeakVal 3e17 ValueAtDepth 0.1 Depth 0.1 Gauss Factor 0.05) ; 源漏重掺杂n型峰值1e20 (sdedr:define-gaussian-profile SDProfile PhosphorusActiveConcentration PeakPos 0.02 PeakVal 1e20 ValueAtDepth 0.2 Depth 0.2 Gauss Factor 0.05)掺杂设计的原则说到底就是一句分布决定器件而不是只决定某条曲线。沟道掺杂浓度直接改变阈值电压源漏掺杂浓度和结深直接影响导通电阻、寄生电容和漏电LDD浓度则影响热载流子退化。反正我后来做工艺开发时90%的时间都是在调这张掺杂表结构反而不怎么动。2.3 网格策略仿真精度和速度的命门网格划分是TCAD里最影响结果、也最容易被人忽略的环节。网格不是越密越好而是该密的地方密、该疏的地方疏。沟道反型层只有几纳米厚栅氧只有2.5nm如果网格尺度超过这个范围栅电容和阈值电压都会出现明显误差所以沟道区域纵向网格至少要细到0.5nm量级。同时源漏结附近是电场集中区域这里也必须加密否则击穿特性和漏电曲线都不可信。我的习惯是用refinement window把加密范围限制在沟道和结附近而不是全器件均匀加密。否则一个二维结构动辄几十万节点仿真时间非常感人。; 沟道加密窗口 (sdedr:define-refinement-window WinChannel Rectangle (position 0.35 0.85 0.0) (position 0.65 1.0 0.0)) (sdedr:define-refinement-size RefChannel 0.01 0.0005 0.02 0.001) ; 源漏结附近加密 (sdedr:define-refinement-window WinJunction Rectangle (position 0.25 0.7 0.0) (position 0.35 1.0 0.0)) (sdedr:define-refinement-size RefJunction 0.005 0.005 0.01 0.01)上面代码中的0.01和0.0005单位是微米对应横向10nm、纵向0.5nm的最小网格。一个很常见的坑是沟道加密只做了横向没有做纵向结果Id-Vg曲线勉强能看但亚阈值摆幅SS偏大。因为SS对沟道纵向网格特别敏感反型层里的电势和载流子分布没被解析出来曲线自然不对。3. 器件仿真的发动机物理模型与求解配置3.1 File、Electrode、Physics三者的职责SDE输出的tdr网格文件只是一个人的骨骼真正驱动它的是Sentaurus Device命令文件。文件里最核心的三块是Electrode、Physics和Solve。Electrode定义各端口的初始电压Physics选择物理模型集合Solve决定扫描路径和收敛控制。我常用的器件仿真文件骨架长这样File { Grid nmos_msh.tdr Current nmos.plt Plot nmos_des.dat Output nmos_des.log } Electrode { { Namegate Voltage0.0 } { Namedrain Voltage0.05 } { Namesource Voltage0.0 } { Namesubstrate Voltage0.0 } } Physics { Mobility( DopingDep HighFieldSat Enormal ) EffectiveIntrinsicDensity( OldSlotboom ) Recombination( SRH Auger ) } Plot { eDensity hDensity Potential eCurrent hCurrent eMobility hMobility ElectricField } Math { Extrapolate RelErrControl Iterations30 Notdamp20 }Electrode部分要留意一个细节初始给drain一个0.05V的小偏压是为了让仿真从线性区开始起步有利于收敛。如果上来就把drain加到1.2V很多情况下第一轮Newton迭代就会发散。3.2 迁移率和复合模型怎么选Sentaurus里物理模型一旦选错结果不是差一点而是会让曲线变得完全不合理。NMOS仿真最核心的是迁移率模型。默认的常量迁移率能跑通但最多只能用来验证流程不能用来提取参数。我建议基础配置至少包含三个迁移率效应DopingDep高掺杂区域的杂质散射源漏区迁移率会明显低于轻掺杂衬底不开启会导致导通电阻被低估。HighFieldSat沟道横向电场的速度饱和效应。短沟道NMOS的沟道电场轻易就能到1e5 V/cm量级速度饱和会把饱和电流压下来不开启的话Id会虚高得离谱。Enormal栅压引起的垂直电场会增强表面粗糙度散射。它主要影响高栅压段的迁移率退化不开启的话Idsat会偏高。复合模型方面SRH是缺省主力Auger在高注入和小尺寸器件里影响不可忽略。如果要看击穿特性还要加Avalanche碰撞电离模型。常规Id-Vg/Id-Vd仿真开不开Avalanche对结果影响不大但一旦涉及横向NPN寄生效应的题目就必须开。EffectiveIntrinsicDensity和禁带变窄效应也建议开启因为源漏重掺杂1e20时禁带变窄直接决定内建电势和接触特性。3.3 Solve块里的步长与扫描策略求解器配置是新手最容易卡住的地方。一个稳妥的扫描策略是先解Poisson方程建立初始势场再耦合电子和空穴连续性方程然后从低电压开始逐步Ramp到目标电压。这个由易到难的顺序能避免初始猜测太差导致的发散。Solve { Coupled(Iterations100) { Poisson } Coupled { Poisson Electron Hole } # 先把drain推到线性区测量偏置0.05V Quasistationary ( InitialStep0.005 MaxStep0.02 Goal { Namedrain Voltage0.05 } ) { Coupled { Poisson Electron Hole } } # 线性区Id-Vg扫描gate从0到1.8V Quasistationary ( InitialStep0.01 MaxStep0.05 Goal { Namegate Voltage1.8 } Plot { range {0 1.8} intervals 40 } ) { Coupled { Poisson Electron Hole } } # 再推drain到1.2V做饱和区Id-Vg扫描 Quasistationary ( InitialStep0.005 MaxStep0.02 Goal { Namedrain Voltage1.2 } ) { Coupled { Poisson Electron Hole } } Quasistationary ( InitialStep0.01 MaxStep0.05 Goal { Namegate Voltage1.8 } ) { Coupled { Poisson Electron Hole } } }这里有两个经验值供参考初始步长InitialStep不要大于0.01VMaxStep不要大于0.05V。步长太大在亚阈值区很容易跳过某些强非线性区导致不收敛步长太小又白白浪费时间。另外Math块里我习惯开着Extrapolate和RelErrControl这俩能大幅度提高Newton迭代的稳健性。Notdamp20的意思是前20次迭代不做阻尼处理低压阶段能加速但高压阶段如果反复出现不收敛可以把它调小到5~10试试。4. 数据落地从Id-Vg曲线提取Vth、SS和DIBL4.1 用Inspect把仿真数据变成图仿真跑完数据全在plt文件里。Inspect是查看一维曲线的常用工具命令行直接敲inspect -st nmos.plt 就能打开。在界面上横轴选v(gate)纵轴选i(drain)就能看到最经典的Id-Vg转移特性曲线。我建议同时画两条Id-Vg曲线一条是Vd0.05V线性区一条是Vd1.2V饱和区。两条曲线放一起很多器件特性一眼就能看出来。比如线性区的Id-Vg曲线早期上升部分几乎是一条直线说明栅控正常如果曲线在零点附近就有明显拖尾那就说明存在比较大的泄漏电流。4.2 两种常用阈值电压提取方法阈值电压提取方法直接决定你后面写报告时的数值这里必须说清楚。最常用的两种方法第一种是恒定电流法取沟道归一化电流100nA/um对应的Vg作为Vth。这个方法简单稳定工业界大量采用但它和器件尺寸、温度有较强关联比较适用于直接对比不同器件之间的大小关系。第二种是最大跨导线性外推法做法是先对Id-Vg曲线求导得到gm找到gm最大值后过这个点做Id曲线的切线切线与Vg轴的交点就是Vth。这个方法的物理含义是线性区沟道开启的临界栅压比恒定电流法更贴近教科书定义但受接触电阻、迁移率退化影响较大。我自己通常两种都做当作交叉验证。如果两个Vth差别超过40mV那就说明线性区Id-Vg曲线的斜率被某种非理想效应影响了比如源漏电阻偏大或栅氧质量差。4.3 SS、DIBL和饱和电流一起算清楚只报一个Vth是不够的。正常的器件建模还要给出亚阈值摆幅SS、漏致势垒降低效应DIBL和饱和电流。SS的提取方法很简单在亚阈值区Id按10倍变化所需的Vg增量就是对数的斜率倒数单位mV/dec。室温理想值是60mV/dec左右实际130nm节点NMOS能到80~90mV/dec已经算不错如果SS超过100mV/dec要么沟道网格没加密要么漏电机制异常。DIBL的计算方法是分别测低漏压和高漏压下的Vth然后做个减法归一化DIBL [Vth(Vd0.05V) - Vth(Vd1.2V)] / (1.2V - 0.05V) × 1000单位是mV/V。DIBL越大说明栅极对沟道势垒的控制能力越弱短沟道效应越严重。130nm节点DIBL一般要做到60~100mV/V范围才算正常如果超过200mV/V基本可以断定沟道短到栅都快锁不住了。这类参数提取完再回头看结构定义和掺杂设置自己哪里调错了就一目了然。5. 进阶一步混合模式仿真5.1 meshed device和SPICE元件放在同一个网表里单管仿真解决的是这管子本身好不好的问题但电路设计里更关心的是这管子放进电路以后能不能干活。Sentaurus的混合模式MixedMode就是干这个用的它把精细的TCAD器件当作一个特殊元件和理想电压源、电阻、电容等SPICE元件接在同一个网表里跑电路仿真。混合模式的意义在于你不再用查表模型近似管子而是让电路仿真器在每个时间步里直接求解器件内部的泊松方程和电流连续性方程。代价当然是慢但它能真实反映器件内部的非线性效应比如漏电、自热、衬底电流对电路行为的影响。5.2 拿NMOS搭一个电阻负载反相器一个最简单的混合模式例子是用一颗NMOS加一个电阻搭成反相器扫输入电压Vin看输出电压Vout的变化。在网表里需要先声明Device块然后在System块里定义连接关系。下面是一个精简的结构示例Device N1 { File { Grid nmos_msh.tdr } Electrode { { Namegate Voltage0.0 } { Namedrain Voltage0.0 } { Namesource Voltage0.0 } { Namesubstrate Voltage0.0 } } Physics { Mobility(DopingDep HighFieldSat Enormal) Recombination(SRH) } } System { Vdd (vdd 0) { dc 1.2 } Vin (in 0) { dc 0.0 } R1 (out vdd) { resistance 10k } N1 (out in 0 0) { device N1 } } Solve { Quasistationary ( InitialStep0.01 MaxStep0.05 Goal { NameVin Voltage1.2 } ) { Coupled { Poisson Electron Hole } } }这里N1的电极顺序是(drain gate source bulk)对应System里的(out in 0 0)。跑完以后可以看Vout随Vin的变化曲线得到VTC电压传输特性然后从中提取逻辑阈值、噪声容限、输出摆幅等指标。电阻负载反相器本身不是实用电路但它能帮助你验证器件建模是否和电路行为自洽而且脚本结构对后续搭多管电路很有参考价值。5.3 混合模式的收敛心得混合模式仿真比单管更容易发散因为它多了一层网表的反馈输出电压会反过来影响TCAD器件的边界条件边界条件又改变电流形成一个闭环。实际经验是如果混合模式不收敛优先检查System块里每个元件的初始电压给得合不合理。最稳妥的做法是先给Vin一个0V的初始猜测让所有节点从接近0的静态工作点开始再慢慢Ramp到目标电压。另外混合模式里TCAD器件的电极命名必须和Device块里的Electrode名称完全一致。这个看起来很简单但我见过太多人因为Event序列里栅漏电极顺序写反导致得到的曲线和单管仿真对不上。出问题的时候先别忙着改物理模型对照一下Electrode名称和System里的节点映射往往就是这种低级错误。6. 两年跑TCAD攒下的几个坑6.1 不收敛先别急着改物理模型新手看到No convergence第一反应就是去换物理模型加这个加那个结果越调越乱。我的排查顺序永远是先看网格再看步长最后才动物理模型。网格如果出现过大的长宽比或者某个关键区域网格太疏Newton迭代的Jacobian矩阵就是病态的加任何模型都救不回来。先把沟道和结区域的网格加密试一遍把InitialStep降到0.005V再试一遍这两招能解决一半以上的发散问题。6.2 曲线锯齿多半是网格的锅跑出来的Id-Vg曲线如果是锯齿状先别质疑求解器的精度大概率是网格不够密。沟道区横向网格如果大于10nm亚阈值区的曲线会明显出现折线感。另一个可能是扫描步长太大导致输出点太少但这个容易区分步长太大造成的锯齿通常出现在转折点附近网格问题则是全曲线都粗糙。我用过的经验数值是沟道横向最小网格5~10nm纵向0.5~1nm栅氧内部至少2~3层网格。如果仿真时间能接受沟道横向两三纳米效果更好但再往下就是边际收益递减了。6.3 单位换算是最冤的坑Sentaurus很多输入默认单位是厘米坐标才是微米掺杂浓度的单位是cm^-3而不是任何别的。看起来是小问题实际踩进去很浪费时间。以前我调沟道掺杂把3e17写成3e16结果阈值电压直接掉了快100mV可当时第一反应是功函数没设对浪费了一整个下午才回来看写入文件里的掺杂值。教训很简单报什么参数之前先回去检查掺杂文件的单位、数值和profile区域边界。6.4 网格粗细要分阶段用我后来养成一个习惯调试阶段先故意把网格放粗一点让程序能在几分钟内跑完一轮完整流程确认结构、掺杂、物理模型、求解设置都没大问题然后再加密网格做最终提取。粗网格跑出来的Vth可能和最终值差几十毫伏但流程正确性验证足够了。等所有环节都跑通再把网格收紧到正式精度这样每次调试的反馈快不容易在一个错误方向上耗太久。6.5 工程习惯比命令更重要最后分享一个我自己的习惯每个建模项目在SWB里单独建一个工程目录结构定义、掺杂设置、物理模型、求解配置拆成不同文件文件名带上版本号。TCAD项目改来改去太常见了很多时候不是跑不出来而是根本不知道当前这个结果是用哪套参数跑出来的。把文件管理规范这一层做好比学会任何一条命令都管用。本文还有配套的精品资源点击获取

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价