Silvaco TCAD仿真基础2

学习目标

  • DeckBuild 的命令 “extract”、“go”、“set”和“Tonyplot”
  •  Silvaco 文档的分布和学习方法。

Silvaco语法格式

Silvaco 的语法结构组成:(一个语句只有一个命令, 而参数可以有多个)

  • command (器件仿真时的“statement”作用同此“command”)
  • parameter

通用格式:

COMMAND PARAMETER1=<n> PARAMETER2=<c> [PARAMETER3 | PARAMETER4

/*
其中“n”代表数值,如“30”;
“c”代表字符串,如“silicon”。
"<>"内的参数为可选参数,
“|”号表示两边的参数选其一。
*/

Command 一般为单个单词。

Silvaco 中字符串参数的命名规则:

  • 如果参数只有一个属性,则用一个单词就可以表示。【如“硅”用 单词 silicon,“材料”用单词 material 表示。】
  • 如果参数具有两个或多个属性,则参数的名称将由两个或多个单词的缩写拼接而成,单词之间由点连接,一般是左边的参数限定或说明 边的参数。【例如“温度的值”(temp.val),“偏置的步长”(bias.step),“材料的序号”(mat.occno, “occno”是 number of occurrence 的意思),“某二维区域内的最大浓度”(2d.max.conc)等。】
  • 对于特定的命令如果仿真语句中没有给出参数值则会采用默认值。用户可以查询手册来了解 默认值极其默认单位。】

语法规则

  • 命令可以简写,以不与其他简写相冲突为原则,如“deposit”可以用“depo”取代;
  • 不区分大小写;
  • 命令和参数之间、参数和参数之间以空格分开;
  • 一行写不完的在该行的末尾加反斜杠“\”(注意“\”前需留有空格),则下一行和 该行将被视为同一个命令;
  • “#”号后面是注释,仿真时不运行注释后面的内容;
  • 空行不运行。

DeckBuild 命令:

  • “go”
  • “set”
  • “Tonyplot”
  • “extract”

go命令

“go”的作用:启用或切换仿真器。

仿真器:

  • ATHENA
  • ATLAS
  • Ssuprem3
  • 等等

Go 语法:

GO <SIMULATOR> | SIMFLAGS=<SIMULATOR>
/*
其中 simulator 为仿真器名称,simflags 指出仿真参数和程序版本。
*/

例子:

启动器件仿真器 ATLAS。 

go atlas 

启动器件仿真器 ATLAS,版本 5.0.8。

go atlas simflags="-V 5.0.8.R"

启动三维器件编辑器。

go devedit "-3d" 

set命令

set 命令 作用:

  • 对 DeckBuild 的全局变量进行设置
  • 设置 Tonyplot 的显示方式。(显示方式 可以保存在*.set 文件中,这样在显示时可直接调用。)

  set语法:

SET <VARIABLE> = [ <VALUE> | <EXPR>] [NOMINAL]
/*
“variable”为任意变量,
在后续语句中使用该变量则需写为“$<variable>”。
*/

 例子

用全局变量来设置工艺参数

set temp=1000 
set gaspress=1 
diffuse time=30 temp=$temp press=$gaspress

#变量为“temp”和“gaspress”,值分别为“1000”和“1”。
#这样在后续仿真语句中声明“$temp”和“$gaspress”时,设置的值将自动赋予这些变量。

变量为经某种运算后的结果。

extract name="oxide thickness" thickness oxide  
//先提取氧化层厚度,将其名称设为“oxide thickness”。

set etch_thickness=($"oxide thickness"*10000) + 0.05 
/*设置变量“etch_thickness”值为之前提取得到的氧化层厚度经一个运算(乘以 10000 再加上 0.05)
得到的结果*/

etch oxide dry thickness=$etch_thickness 
//干法刻蚀二氧化硅,刻蚀的厚度就是之前运算的值,即“etch_thickness”。

        经常在淀积工艺中定义网格密度的时候采用这种方式,如将纵向网格数(division)设
置成厚度除以网格间距的商。

按照设置文件“show.set”来进行显示。

tonyplot structure.str -set show.set 

        在 Tonyplot界面的 File 下拉菜单中点击 Save Set Files…则可以将当前的显示方式保存在 相应的 set 文件中。

        Set 文件需要存放在工作路径下,这样程序才能查找到。

Tonyplot

Tonyplot :

  • 可视化工具,可将仿真时生成的临时文件(结构)、工艺仿真中保存的结构文件、器件编辑器生成的结构文件、器件仿真保存的 log 文件和提取得到的 dat 文件显示出来。
  • 也是交互式工具,其内建的计算器可以对数据进行计算。

对于三维结构的显示需要 Tonyplot3D。

打开 Tonyplot:

 Tonyplot 界面: 

         没有打开数据文件的时候将显示 Tonyplot 的版本信息。 顶部主要有 File、Edit、Plot 和 Tools 等菜单。

Tonyplot 显示的一个 MOS 结构:

        显示的信息有浓度分布、结的边界、区域边 界、电极的名称、各区域的材料和横向、纵向的尺寸等。由于用颜色来表示物理量“Net Doping”,所以由颜色来区分材料不可用 。

Tonyplot 显示的由器件仿真得到的 MOS 输出特性曲线:

(栅电压为 1.1V、2.2V 和 3.3V 时漏电流随漏源电压的变化。)

Extract 

        Extract 可以用于提取仿真结果,如工艺仿真得到的结果,如材料厚度、结深、方块电阻等,或提取器件仿真的阈值电压,电流放大倍数等 。

 简单语法:

EXTRACT EXTRACT – PARAMETERS

例子 

提取栅氧化层厚度。

extract name="gateox" thickness oxide mat.occno=1 x.val=0.49

提取结深。

extract name="nxj" xj silicon mat.occno =1 x.val=0.1 junc.occno=1

提取结深的另一种办法。

extract name="Junction Depth" x.val from curve(depth, \

    (impurity="Gallium" material="Silicon" mat.occno=1) \

    - (impurity="Phosphorus"material="Silicon" mat.occno=1)) where y.val=0.0

提取表面浓度。
 

extract name="chan surf conc" surf.conc impurity="Net Doping" \

material="silicon" mat.occno=1 x.val=0.45

提取 x=0.1μm 处的硼浓度分布。
 

extract name="bcurve" curve(depth, boron silicon mat.occno=1 x.val=0.1) \

outfile="extract.dat"

提取激活了的砷的总浓度。
 

extract name="Active_Arsenic" 1.0e-04 * (area from curve (depth, \

impurity= "Active Arsenic" material="Silicon" mat.occno=1))

提取方块电阻。
 

extract name="n++ sheet rho" sheet.res material="Silicon" \

mat.occno=1 x.val=0.05 region.occno=1

学习方法

学习资料:

程序自带的 EXAMPLE:

EXAMPLE 路径,X:\ sedatools\ examples\...

用户手册:

如 ATHENA 手册,位置: X:\sedatools\lib\Athena\.R\docs\athena_users1.pdf.;

SILVACO 官方网站 http://www.silvaco.com;

SILVACO 中国 http://www.silvaco.com.cn;

有关 EDA 的专题网站:

  • EDA 中心 http://www.eda.ac.cn;
  • EDA 中国门户网站 http://www.edacn.net;
  • 中国 EDA 技术网 http://www.51eda.com;

学习建议:

仿真≠真,尽信软件不如没有软件;



参考:《半导体工艺和器件仿真工具 Silvaco TCAD 实用教程》唐龙谷

### 关于 Silvaco TCAD仿真教程与使用指南 Silvaco TCAD 软件作为半导体设计和仿真的重要工具,在学习过程中需要一份详尽的指南来帮助用户快速上手。以下是关于 Silvaco TCAD 的一些核心资源及其特点: #### 1. **新手入门:Silvaco TCAD 速成手册** 针对初学者,“Silvaco TCAD仿真速成手册”提供了一套完整的入门级教学内容,专注于基础操作和基本仿真流程的学习[^1]。这份手册适合那些刚刚接触 Silvaco TCAD 并希望迅速熟悉其界面和功能的新手。 #### 2. **代码详解与实例演练** 为了进一步深化对 Silvaco TCAD 的理解,可以通过学习资料中的代码讲解部分深入了解软件的关键命令和脚本逻辑。这部分内容不仅解析了每一步的操作原理,还通过多个实际案例展示如何在不同的场景下完成复杂的仿真任务[^2]。这种理论结合实践的方式有助于提高用户的动手能力。 #### 3. **系统化学习路径** 除了具体的代码和技术细节外,官方或社区提供的学习指南也非常重要。这类文档通常会按照由浅入深的原则安排课程结构,从最基础的概念讲起,逐渐过渡到高级主题,比如器件建模、物理参数调整以及多场耦合分析等。这样的学习路线能够有效引导用户逐步掌握 Silvaco TCAD 的全部潜力。 #### 4. **中文版用户手册** 对于母语为汉语的使用者而言,《Silvaco TCAD 中文手册》无疑是一个非常有价值的参考资料。它详细描述了各个模块的功能及具体用法,并配有大量插图说明,极大地方便了读者的理解过程[^4]。可以从指定链接下载此 PDF 文件以便随时查阅相关内容。 #### 5. **跨平台支持——Linux 安装向导** 如果计划在一个基于 Linux 的操作系统(例如 CentOS 或 RedHat)之上运行 Silvaco TCAD,则应参考专门编写的安装指南。该文档列出了所有必要的前期准备工作清单以及详细的配置步骤,确保整个设置过程尽可能顺畅无误[^5]。 --- ### 示例代码片段 下面给出一段简单的 Python 脚本来调用 Silvaco TCAD API 创建一个 MOSFET 结构模型: ```python import silvaco_api as sa def create_mosfet(): device = sa.Device() # Define material properties silicon_layer = sa.Layer(material="Si", thickness=0.5e-6) oxide_layer = sa.Layer(material="SiO2", thickness=1e-7) # Stack layers together structure = sa.Structure(layers=[silicon_layer, oxide_layer]) # Add electrodes and mesh grid structure.add_electrode(name="gate", position=(0, 1)) structure.mesh(x_points=100, y_points=50) return structure if __name__ == "__main__": mos_structure = create_mosfet() mos_structure.simulate() ``` 以上程序定义了一个具有两层材料(硅基底加氧化物绝缘层)的基础金属氧化物半导体场效应晶体管 (MOSFET),并通过添加电极位置完成了初步网格划分设定。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值