22 NM
22 NM
22 NM
#rem #-------------------------------------------------------------------
--#
#rem # LAYOUT
#rem #-------------------------------------------------------------------
--#
#else
#endif
#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
# Polygons
polygon name= hex1_$name points= " p1_$name p2_$name p3_$name
p4_$name p5_$name p6_$name "
polygon name= hex2_$name points= " p7_$name p8_$name p9_$name
p10_$name p11_$name p12_$name "
polygon name= rec1_$name points= " p1_$name p2_$name p8_$name
p7_$name "
polygon name= rec2_$name points= " p2_$name p8_$name p9_$name
p3_$name "
polygon name= rec3_$name points= " p3_$name p9_$name p10_$name
p4_$name "
polygon name= rec4_$name points= " p4_$name p10_$name p11_$name
p5_$name "
polygon name= rec5_$name points= " p5_$name p11_$name p12_$name
p6_$name "
polygon name= rec6_$name points= " p6_$name p12_$name p7_$name
p1_$name "
return;
}
## Design Rule
fset PolyPitch 0.130
fset GateThick 0.025
fset FinPitch 0.05
fset debug 0
fset fp 1.0 ;# Division factor
# -------------------------------------------------------
# Initial grid and structure
# -------------------------------------------------------
AdvancedCalibration
# -------------------------------------------------------
# pdb settings
# -------------------------------------------------------
pdbSet ImplantData ResistSkip 1
pdbSet ImplantData BackBoundary Reflect
pdbSet ImplantData LeftBoundary Reflect
pdbSet ImplantData FrontBoundary Reflect
pdbSet ImplantData RightBoundary Reflect
pdbSet Mechanics StressHistory 1
pdbSet ImplantData DoseControl WaferDose
# Solver Enhancement
pdbSet Math diffuse 3D ILS.hpc.mode 3
# 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 min.normal.size 0.005/$fp
pdbSet Grid SnMesh normal.growth.ratio.3d 2.0
pdbSet Grid SnMesh max.box.angle.3d 175
#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)" all add
# -------------------------------------------------------
# process flow
# -------------------------------------------------------
# Fin mask
polygon clear
icwb.create.mask layer.name= "FIN" name= FIN polarity= negative
photo mask= FIN thickness= 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
strip Nitride
strip Oxide
if { $debug } { struct tdr.bnd= n@node@_02 }
# --------------------------------------------------------------
# WELL/Vt implant
# --------------------------------------------------------------
strip Photoresist
polygon clear
icwb.create.mask layer.name= "NWELL" name= NWELL polarity= positive
photo mask= NWELL thickness= 1.0
if { $debug } { struct tdr.bnd= n@node@_07 }
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
#split @Poly@
# gate stack
deposit material= {Oxide} type= isotropic rate= {1.0} time= $gox
deposit material= {HfO2} type= isotropic rate= $THK time= 1.0
if { $debug } { struct tdr.bnd= n@node@_09 }
# MetalGate
deposit material= {TiNitride} type= isotropic rate= $MetalG time= 1.0
# Poly etching
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 }
# Offset spacer
deposit material= {Oxide} type= isotropic rate= {1.0} time= $PolyReox
if { $debug } { struct tdr.bnd= n@node@_12 }
polygon clear
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 add
#split @Ext@
strip Photoresist
strip Photoresist
#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 oxide fill coord= $HFin
if { $debug } { struct tdr.bnd= n@node@_18 }
grid remesh
sel z= 1.5e20 name= Arsenic SMTPocket store
sel z= 1.5e21 name= Carbon SMTPocket store
ChangeMaterialMatchRegions SMTPocket Silicon Nozerodata
grid remesh
sel z= 1.5e22 name= Germanium SiGePocket store
sel z= 1.5e20 name= Boron SiGePocket store
ChangeMaterialMatchRegions SiGePocket Silicon Nozerodata
#endif
# -------------------------------------------------------------
# SD Implantation
#--------------------------------------------------------------
photo mask= PWELL thickness= 0.1
#split @DeviceMesh@
#Polishing
etch material= {Nitride} type= cmp coord= -$gox-$THK-$MetalG
etch material= {Oxide} type= cmp coord= -$gox-$THK-$MetalG
if { $debug } { struct tdr.bnd= n@node@_24 }
##---------------Remeshing for device simulation--------##
# clears the process simulation mesh
refinebox clear
refinebox !keep.lines
line clear
# Refinement strategy
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= -0.01 y= 0.002 z= $Zmax-0.002 point
NickelSilicide replace
contact bottom name= substrate Silicon
exit