FinFET22nm 例程注释

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 == "TN" } { icwb gds.file= "FinSRAM.gds" cell= "SRAM" scale= 1e-3 \ #文件名 FinSRAM.GDS 单元SRAM 大小1e-3 layer.numbers= {0:0 1:0 2:0 3:0} \ # layer.names= {FIN GATE CONTACT NWELL} \ #FIN层 栅极Gate 接触空 N阱 domain.name=Domain sim3d= "100.50 0.00 125.50 65.00"
} elseif { Domain == "TP" } { icwb gds.file= "FinSRAM.gds" cell= "SRAM" scale= 1e-3 \ layer.numbers= {0:0 1:0 2:0 3:0} \ layer.names= {FIN GATE CONTACT NWELL} \ domain.name=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*PolyReox] line x location= 0.01 line x location=Tsub tag= bottom

line y location= Ymin spa= 0.02 tag= left line y location= [expr (Ymax-Ymin)/2.0] line y location=Ymax spa= 0.02 tag= right

line z location= Zmin tag= back line z location= [exprWfin/5.0]
line z location= [expr Wfin/2.0] line z location=Wfin
line z location= [expr 2*Wfin+0.0033] line z location=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= Tsub \ xrefine= "0.5/fp" yrefine= "Lg/(2.0*fp)" zrefine= "Wfin/(2.0*fp)"

refinebox name= FinIF mask= FinMask
extend= 0.75 extrusion.min= -0.01 extrusion.max= STI_depth \ min.normal.size= 0.001/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= STI_depth time= 1.0 angle= 88.0 刻蚀碳化物 体形 角度88 strip Nitride 去除碳化物 strip Oxide 去除氧化物 if {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 HFin+0.005] anisotropic if {debug } { struct tdr.bnd= n@node@_04 }

Cap oxide and fill 掩蔽氧化层

deposit material= {Oxide} type= isotropic rate= CapOx time= 1.0 淀积氧化物 if {debug } { struct tdr.bnd= n@node@_05 }

refinebox name= Vth mask= FinMask
extend= 0.004 extrusion.min= -0.0 extrusion.max= [expr 2*HFin] \ xrefine= "0.005/fp" yrefine= "PolyPitch/(6.0*fp)" zrefine= "FinPitch/(8.0*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= HFin CMP算刻蚀的一种 if {debug } { struct tdr.bnd= n@node@_08 }

split @Poly@

gate stack栅极堆叠

deposit material= {Oxide} type= isotropic rate= {1.0} time= gox 淀积氧化物 deposit material= {HfO2} type= isotropic rate=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= Tpoly+gox+HFin mask= POLY 淀积多晶硅 etch material= {PolySilicon} type= cmp coord= -Tpoly-$gox 刻蚀

HardMask 硬掩膜

deposit material= {Nitride} type= anisotropic rate= HFin time=1.0 selective.materials= {PolySilicon} if {debug } { struct tdr.bnd= n@node@_10 }

fset Gstack [expr gox+HFin]
etch material= {TiNitride HfO2 Oxide} type= anisotropic rate= {GstackGstack Gstack} time= 2.0 deposit oxide fill coord=HFin
if { $debug } { struct tdr.bnd= n@node@_11 }

Offset spacer侧墙工艺

deposit material= {Oxide} type= isotropic rate= {1.0} time= PolyReox if {debug } { struct tdr.bnd= n@node@_12 }

deposit material= {Nitride} type= isotropic rate= {Lsp} time= 1.0 if {debug } { struct tdr.bnd= n@node@_13 }

etch nitride type= anisotropic rate= [expr PolyReox+HFin] time= 1.1
etch material= {all} type= cmp coord= -Tpoly-gox
if { $debug } { struct tdr.bnd= n@node@_14 }

refinebox name= HaloImp mask= FinMask
extend= 0.005 extrusion.min= -gox-2*THK extrusion.max= 1.5*HFin \ xrefine= "0.003/fp" yrefine= "PolyPitch/(40.0*fp)" zrefine= "FinPitch/(20.0*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= HFin \ xrefine= "0.001/fp" yrefine= "PolyPitch/(40.0*fp)" zrefine= "FinPitch/(20.0*fp)" Silicon

refinebox name= ChannelIF mask= FinMask \ 沟道
extend= 0.001 extrusion.min= -gox extrusion.max=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= {Lspepi} time= 1.0 etch material= {Nitride Oxide} type= anisotropic rate= {HFin HFin} time= 1.4 if {debug } { struct tdr.bnd= n@node@_17 }

deposit material= {Oxide} fill coord= HFin deposit material= {Oxide} type= isotropic thickness=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_init epi.doping.final=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" set EpiDoping_final "Boron= 1.5e20 Germanium=Nge"

temp_ramp name= epi temperature= 450<C> t.final= 740<C> time= 7.0<min> Epi
epi.doping= EpiDoping_init epi.doping.final=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= {HFinHFin} 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*HFin time= 1.0 temperature= 450 selective.materials= {Silicon SiliconGermanium} if {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 Ymax]" puts "DOE: Zmax [format %.3fZmax]"
puts "DOE: HFin [format %.3f $HFin]"
########################################

Polishing

etch material= {Nitride} type= cmp coord= -gox-THK-MetalG etch material= {Oxide} type= cmp coord= -gox-THK-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= -MetalG-THK-gox extrusion.max=HFin+0.01
refine.fields= { NetActive} def.max.asinhdiff= 1.0
refine.max.edge= "0.01/fd 0.01/fd 0.01/fd" refine.min.edge= "0.004/fd 0.004/fd 0.004/fd" adaptive

refinebox name= DG mask= Gate
extend= 0.005 extrusion.min= -gox extrusion.max=HFin+0.01
xrefine= "0.005/fd" yrefine= "PolyPitch/(25.0fd)" zrefine= "FinPitch/(10.0$fd)" materials= {Silicon SiliconGermanium}

refinebox name= DeviceIF mask= Gate
extend= 0.01 extrusion.min= -MetalG-THK-gox extrusion.max=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= -gox-THK-MetalG xhi=HFin+0.001 adjacent.material= Gas
contact name= "source" x= -HFin/4.0 y=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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容