header
rem #---------------------------------------------------------------------#
rem # LAYOUT
rem #---------------------------------------------------------------------#
set Domain @Domain@ #Domain 分为TN(TypeNFinFet) TP(TypePNFinFet)
if "@Layout@" == "gds" #如果Layout参数为gds
rem # Loading of the "GDSII Layout" file. #加载GDS文件
if { Domain sim3d= "100.50 0.00 125.50 65.00"
} elseif { Domain sim3d= "151.00 0.00 197.50 65.00"
}
else
rem # Loading of the "TCAD Layout" file. #架再TCAD版图文件 lyt.mac
icwb filename= "FinSRAM_lyt.mac" scale= 1e-3
rem # Selecting the simulation domain. 选择仿真型态
icwb domain= $Domain
endif
set DIM [icwb dimension] 设置维度 3
rem # Query utility: Returns the dimension of the selected simulation domain.
LogFile "icwb: dimension -> $DIM"
rem # Query utility: Returns the bounding box of the simulation domain. 查询窗口坐标
set Ymin [icwb bbox left ]
set Ymax [icwb bbox right]
set Zmin [icwb bbox back ]
set Zmax [icwb bbox front]
endheader
rem # PARALLEL EXECUTION - uncomment if you have 8 CPUs or more 如果有8个或者跟过
math numThreads= 8 #8线程
rem # Unified Coordinate System 定义坐标系
math coord.ucs
Design Rule 设计规则
fset PolyPitch 0.130 #Poly间距
fset GateThick 0.025 #栅极厚度
fset FinPitch 0.05 #Fin间距
fset debug 1
fset fp 1.0 ;# Division factor
fset HFin 0.04 Fin高
fset STI_depth 0.15 STI深度
fset Tsub 1.0 衬底厚度
fset Wfin 0.017 ;# Z-axis on Layout Fin宽
fset Tpoly 0.08
fset Lg 0.025 ;# Y-axis on Layout 栅长
fset gox 0.001 氧化层
fset THK 0.002 HK厚度
fset MetalG 0.004 京蜀栅厚度
fset CapOx 0.005
fset PolyReox 0.002 多晶硅再氧化
fset Lsp 0.002
fset Lspepi 0.0125
-------------------------------------------------------
Initial grid and structure 初始化网格
-------------------------------------------------------
line x location= 0.0 tag= top
line x location= [expr 2*Tsub tag= bottom
line y location= Ymax-Ymax spa= 0.02 tag= right
line z location= Wfin/5.0]
line z location= [expr Wfin
line z location= [expr 2*Zmax tag= front
region Silicon substrate xlo= top xhi= bottom ylo= left yhi= right zlo= back zhi= front
init field= Boron concentration= 1.0e15 wafer.orient = { 0 0 1 } flat.orient = { 1 1 0 }
AdvancedCalibration
SiGe_and_Stress_Effect 1 1 1 0
-------------------------------------------------------
pdb settings
-------------------------------------------------------
pdbSet Grid SnMesh UseLines 1
pdbSet ImplantData ResistSkip 1
pdbSet ImplantData BackBoundary Reflect
pdbSet ImplantData LeftBoundary Reflect
pdbSet ImplantData FrontBoundary Reflect
pdbSet ImplantData RightBoundary Reflect
pdbSet ImplantData DoseControl WaferDose
pdbSet Mechanics StressHistory 1
Solver Enhancement 求解器增强
pdbSet Math diffuse 3D ILS.hpc.mode 4
turn off stress relaxation after depo/etch
pdbSet Mechanics EtchDepoRelax 0
meshing parameters 网格参数
mgoals resolution= 1.0/3.0 accuracy= 1e-6
pdbSet Grid SnMesh max.box.angle.3d 175
grid set.min.normal.size= 0.005/$fp
set.normal.growth.ratio.3d= 2.0
set.min.edge= 1e-7 set.max.points= 1000000
set.max.neighbor.ratio= 1e6
Refinement
icwb.create.mask layer.name= "FIN" name= FinMask polarity= positive
refinebox name= fin mask= FinMask
extend= 0.75 extrusion.min= -0.0 extrusion.max= fp" yrefine= "fp)" zrefine= "fp)"
refinebox name= FinIF mask= FinMask
extend= 0.75 extrusion.min= -0.01 extrusion.max= fp normal.growth.ratio= 2.0 interface.materials= {Silicon Oxide Nitride}
-------------------------------------------------------
process flow 工艺流程
-------------------------------------------------------
Hard mask nitride氮化物掩膜
deposit material= {Oxide} type= anisotropic rate= {0.01} time= 1.0 淀积氧化物 各向异性 速率0.01 时间1
deposit material= {Nitride} type= anisotropic rate= {0.10} time= 1.0 淀积氮化物 各向异性 速率0.1 时间1
Fin mask
icwb.create.mask layer.name= "FIN" name= FIN polarity= negative 创建FIN 负极
photo mask= FIN thickness= 0.02 光刻 厚度0.02
etch material= {Nitride} type= anisotropic rate= {0.1} time= 1.1 刻蚀氮化物
if { $debug } { struct tdr.bnd= n@node@_01 }
strip Photoresist 去除光刻胶
etch material= {Oxide} type= anisotropic rate= {0.01} time= 1.1 刻蚀氧化物
etch material= {Silicon} type= trapezoidal rate= debug } { struct tdr.bnd= n@node@_02 }
etch material= {Silicon} type= isotropic rate= {0.002} time= 1.0 刻蚀Si
deposit material= {Silicon} type= isotropic rate= {0.002} time= 1.0 selective.materials= {Silicon} 淀积SI 各向同性
if { $debug } { struct tdr.bnd= n@node@_03 }
deposit oxide fill coord= -0.005 填充/填充坐标
etch oxide thickness= [expr debug } { struct tdr.bnd= n@node@_04 }
Cap oxide and fill 掩蔽氧化层
deposit material= {Oxide} type= isotropic rate= debug } { struct tdr.bnd= n@node@_05 }
refinebox name= Vth mask= FinMask
extend= 0.004 extrusion.min= -0.0 extrusion.max= [expr 2*fp" yrefine= "fp)" zrefine= "fp)"
stressdata Oxide sxxi= -5e8<Pa> syyi= -5e8<Pa> szzi= -5e8<Pa>
diffuse stress.relax time= 1e-10 temp= 600
--------------------------------------------------------------
WELL/Vt implant阱
--------------------------------------------------------------
icwb.create.mask layer.name= "NWELL" name= PWELL polarity= negative P阱
photo mask= PWELL thickness= 1.0 #在掩膜外生成制定的光刻胶
if { $debug } { struct tdr.bnd= n@node@_06 }
implant Boron dose= 1e13 energy= 180 tilt= 0.0 离子注入硼
implant Boron dose= 1e13 energy= 60 tilt= 0.0
implant Boron dose= 1e13 energy= 15 tilt= 0.0
strip Photoresist 去除光刻胶
icwb.create.mask layer.name= "NWELL" name= NWELL polarity= positive 创建N阱
photo mask= NWELL thickness= 1.0
if { $debug } { struct tdr.bnd= n@node@_07 }
implant Phosphorus dose= 1.0e13 energy= 120 tilt= 0.0 离子注入P
implant Phosphorus dose= 5.0e12 energy= 70 tilt= 0.0
implant Arsenic dose= 1.5e12 energy= 30 tilt= 0.0
strip Photoresist 去除光刻胶
Well RTA 快速热退火
temp_ramp name= well temperature= 600<C> time= 0.067 t.final= 900
temp_ramp name= well temperature= 900<C> time= 0.033<min> t.final= 1050
temp_ramp name= well temperature= 1050<C> time= 0.2<min> t.final= 750
temp_ramp name= well temperature= 750<C> time= 0.1<min> t.final= 600
diffuse stress.relax temp.ramp= well
etch material= {Oxide} type= cmp coord= debug } { struct tdr.bnd= n@node@_08 }
split @Poly@
gate stack栅极堆叠
deposit material= {Oxide} type= isotropic rate= {1.0} time= THK time= 1.0 淀积Hfo2 高K介质
if { $debug } { struct tdr.bnd= n@node@_09 }
MetalGate 金属栅极
deposit material= {TiNitride} type= isotropic rate= $MetalG time= 1.0 淀积TiN
Poly etching多晶硅刻蚀 Gate
icwb.create.mask layer.name= "GATE" name= POLY polarity= negative 负掩膜
deposit material= {PolySilicon} type= anisotropic thickness= gox+Tpoly-$gox 刻蚀
HardMask 硬掩膜
deposit material= {Nitride} type= anisotropic rate= debug } { struct tdr.bnd= n@node@_10 }
fset Gstack [expr HFin]
etch material= {TiNitride HfO2 Oxide} type= anisotropic rate= {Gstack HFin
if { $debug } { struct tdr.bnd= n@node@_11 }
Offset spacer侧墙工艺
deposit material= {Oxide} type= isotropic rate= {1.0} time= debug } { struct tdr.bnd= n@node@_12 }
deposit material= {Nitride} type= isotropic rate= {debug } { struct tdr.bnd= n@node@_13 }
etch nitride type= anisotropic rate= [expr HFin] time= 1.1
etch material= {all} type= cmp coord= -gox
if { $debug } { struct tdr.bnd= n@node@_14 }
refinebox name= HaloImp mask= FinMask
extend= 0.005 extrusion.min= -THK extrusion.max= 1.5*fp" yrefine= "fp)" zrefine= "fp)"
icwb.create.mask layer.name= "GATE" name= Gate polarity= positive 正极
refinebox name= ExtImp mask= Gate
extend= 0.005 extrusion.min= 0.0 extrusion.max= fp" yrefine= "fp)" zrefine= "fp)" Silicon
refinebox name= ChannelIF mask= FinMask \ 沟道
extend= 0.001 extrusion.min= -HFin
min.normal.size= 0.0005/$fp normal.growth.ratio= 2.0 interface.materials= {Silicon Oxide}
split @Ext@
-- To activate stress in Si:C pocket for nFinFET---#
pdbSetDoubleArray Silicon Carbon Conc.Strain {0 0 1 -0.432}
pdbSetDouble Silicon Mechanics TopRelaxedNodeCoord 0.05e-4
------------ Halo Implantation --------------------------------------- 环型布值
photo mask= PWELL thickness= 0.1
if { $debug } { struct tdr.bnd= n@node@_15 }
implant Boron dose= 3.0e+13 energy= 5 tilt= 30 rotation= 30
implant Boron dose= 3.0e+13 energy= 5 tilt= 30 rotation= 150
implant Boron dose= 3.0e+13 energy= 5 tilt= 30 rotation= 210
implant Boron dose= 3.0e+13 energy= 5 tilt= 30 rotation= 330
---------- S/D Extension implantation nFinFET -----------------------SD扩展
implant Carbon dose= 2.0e15 energy= 2.5 tilt= 45 rotation= 0.0 !pai Carbon C碳
implant Carbon dose= 2.0e15 energy= 2.5 tilt= 45 rotation= 180.0 !pai
implant Arsenic dose= 1.0e15 energy= 4.0 tilt= 45 rotation= 0.0 砷
implant Arsenic dose= 1.0e15 energy= 4.0 tilt= 45 rotation= 180.0
strip Photoresist
photo mask= NWELL thickness= 0.1
if { $debug } { struct tdr.bnd= n@node@_16 }
implant Arsenic dose= 2.0e13 energy= 25 tilt= 30 rotation= 30
implant Arsenic dose= 2.0e13 energy= 25 tilt= 30 rotation= 150
implant Arsenic dose= 2.0e13 energy= 25 tilt= 30 rotation= 210
implant Arsenic dose= 2.0e13 energy= 25 tilt= 30 rotation= 330
implant Phosphorus dose= 5.0e12 energy= 40 tilt= 20 rotation= 30
implant Phosphorus dose= 5.0e12 energy= 40 tilt= 20 rotation= 150
implant Phosphorus dose= 5.0e12 energy= 40 tilt= 20 rotation= 210
implant Phosphorus dose= 5.0e12 energy= 40 tilt= 20 rotation= 330
---------- S/D Extension implantation pFinFET -----------------------
implant BF2 dose= 1.5e15 energy= 2.5 tilt= 45 rotation= 0.0
implant BF2 dose= 1.5e15 energy= 2.5 tilt= 45 rotation= 180.0
strip Photoresist
struct tdr= n@node@_ext_impl 写入包含该结构或网格和解决方案的文件。
diffuse temperature= 750<C> time= 1.0<min> 扩散温度
split @SD@
Spacer 侧墙
deposit material= {Nitride} type= isotropic rate= {HFin debug } { struct tdr.bnd= n@node@_17 }
deposit material= {Oxide} fill coord= PolyReox selective.materials= {PolySilicon}
if { $debug } { struct tdr.bnd= n@node@_18 }
Diamond shaped Si/SiGe Pocket using Lattice KMC 使用晶格KMC的菱形Si/SiGe
mater add name= TiNitride new.like= Nitride 返回当前结构中的所有材质的列表,并将新材质添加到全局列表中。
pdbSet Grid KMC UseLines 1 KMC配置
pdbSet KMC Epitaxy 1
pdbSetBoolean LKMC PeriodicBC false
pdbSet LKMC Epitaxy.Model Coordinations.Planes
struct tdr= n@node@_BeforePocket
if @[ string match @Domain@ "TN" ]@
set EpiDoping_init "Arsenic= 1.5e20 Carbon= 1.5e21"
set EpiDoping_final "Arsenic= 1.5e20 Carbon= 1.5e21"
temp_ramp name= epi temperature= 450<C> t.final= 740<C> time= 4.5<min> Epi
epi.doping= EpiDoping_final epi.model= 1 epi.layers= 4 epi.thickness= 0.018
diffuse temp_ramp= epi lkmc
if { $debug } { struct tdr.bnd= n@node@_19 }
elif @[ string match @Domain@ "TP" ]@
etch material= {Silicon} type= anisotropic rate= {0.002} time= 1.0
etch material= {Silicon} type= isotropic rate= {0.001} time= 1.0
deposit material= {Oxide} type= fill coord= $HFin
---------- in-situ B Doped SiGe Epi-Pocket ----------------------------------- 原位掺硼SiGe外延袋
set Nge [lindex [GetMoleFractionFields Si SiGe 0.3] 2]
set EpiDoping_init "Boron= 1.5e20 Germanium= Nge"
temp_ramp name= epi temperature= 450<C> t.final= 740<C> time= 7.0<min> Epi
epi.doping= EpiDoping_final epi.model= 1 epi.layers= 4 epi.thickness= 0.02
diffuse temp_ramp= epi lkmc
if { $debug } { struct tdr.bnd= n@node@_19 }
endif
struct tdr= n@node@_Pocket
-------------------------------------------------------------
SD Implantation Source/Drain注入
--------------------------------------------------------------
photo mask= PWELL thickness= 0.1
implant Arsenic dose= 5.0e+15 energy= 15.0 tilt= 0 rotation= 0
if { $debug } { struct tdr.bnd= n@node@_20 }
strip Photoresist
photo mask= NWELL thickness= 0.1
implant BF2 dose= 5.0e15 energy= 10.0 tilt= 0 rotation= 0
if { $debug } { struct tdr.bnd= n@node@_21 }
strip Photoresist
---- spike RTA ----
temp_ramp name= spike1000 time= 2<s> ramprate= 200<C/s> temperature= 600.0
temp_ramp name= spike1000 time= 0.1<s> ramprate= 0<C/s> temperature= 1000.0
temp_ramp name= spike1000 time= 4<s> ramprate= -75<C/s> temperature= 1000.0
diffuse temp.ramp= spike1000 stress.relax
---- laser annealing ----激光退火
temp_ramp name= laser time= 1e-03<s> ramprate= 6e+05<C/s> temperature= 600.0
temp_ramp name= laser time= 1e-06<s> ramprate= 0<C/s> temperature= 1200.0
temp_ramp name= laser time= 1e-03<s> ramprate= -5e+04<C/s> temperature= 1200.0
diffuse temp.ramp= laser stress.relax
struct tdr= n@node@_sd
---------- Contact silicidation -----------------------硅化工艺
etch material= {Silicon SiliconGermanium} type= isotropic rate= {HFin} time= 0.03
if { $debug } { struct tdr.bnd= n@node@_22 }
pdbSet Diffuse minT 450.0
diffuse stress.relax time= 1<min> temperature= 25 ramprate= [ expr (450.0 - 25.0)]<C/min>
deposit material= {NickelSilicide} type= isotropic rate= 0.12*debug } { struct tdr.bnd= n@node@_23 }
diffuse stress.relax time= 1<min> temperature= 450 ramprate= [ expr (25.0 - 450.0)]<C/min>
split @DeviceMesh@
fset fd 1.0 ;# Division factor
########################################
set Ymax 0
set Zmax 0
set HFin 0
puts "DOE: Ymax [format %.3f Zmax]"
puts "DOE: HFin [format %.3f $HFin]"
########################################
Polishing
etch material= {Nitride} type= cmp coord= -THK-gox-MetalG
Remove Poly and metal gate
strip PolySilicon
strip TiNitride
if { $debug } { struct tdr.bnd= n@node@_24 }
---------------Remeshing for device simulation--------##
clears the process simulation mesh
refinebox clear
refinebox !keep.lines
line clear
Set very high values for adaptive meshing parameters
pdbSet Grid AdaptiveField Refine.Abs.Error 1e37
pdbSet Grid AdaptiveField Refine.Rel.Error 1e10
pdbSet Grid AdaptiveField Refine.Target.Length 100.0
Set high quality Delaunay meshes
pdbSet Grid sMesh 1
pdbSet Grid Adaptive 1
pdbSet Grid SnMesh DelaunayType boxmethod
pdbSet Grid SnMesh CoplanarityAngle 179
pdbSet Grid SnMesh MaxPoints 2000000
pdbSet Grid SnMesh max.box.angle.3d 179
grid set.min.normal.size= 1.0/$fd
set.normal.growth.ratio.3d= 1.0
set.max.points= 2000000
set.max.neighbor.ratio= 1e6
Refinement strategy 细化策略
refinebox name= DF mask= FinMask
extend= 0.02 extrusion.min= -THK-HFin+0.01
refine.fields= { NetActive} def.max.asinhdiff= 1.0
refine.max.edge= "0.01/fd 0.01/fd 0.004/fd" adaptive
refinebox name= DG mask= Gate
extend= 0.005 extrusion.min= -HFin+0.01
xrefine= "0.005/PolyPitch/(25.0FinPitch/(10.0$fd)" materials= {Silicon SiliconGermanium}
refinebox name= DeviceIF mask= Gate
extend= 0.01 extrusion.min= -THK-HFin+0.01
min.normal.size= 0.0004/$fd normal.growth.ratio= 1.5 interface.materials= {Silicon Oxide SiliconGermanium Oxide }
grid remesh
-Contacts
icwb.contact.mask layer.name= "GATE" name= "gate" box HfO2 xlo= -THK-HFin+0.001 adjacent.material= Gas
contact name= "source" x= -Ymin+0.001 z= $Zmax-0.001 point NickelSilicide replace
contact bottom name= substrate Silicon
struct tdr= n@node@_half !gas
if { [catch { exec tdx -mtt -Y -ren source=drain n@node@_half_fps.tdr n@node@_full_fps.tdr} Err] !=0 } {
LogFile $Err
}
exit