Академический Документы
Профессиональный Документы
Культура Документы
AdvancedCalibration
#-----------------------------------------------------
# Derived dimensions
set AX1 [expr ($Ppitch/2.0)]
set AX0 [expr (-1.0*$AX1)]
set AY1 [expr ($W/2.0)]
set AY0 [expr (-1.0*$AY1)]
#-----------------------------------------------------
#-----------------------------------------------------
#---------------------------------------------------------------------#
# SIMULATION CONTROLL
set debug 1
set DoStrain 1
set DoDiff 1
set Type @Type@
#---------------------------------------------------------------------#
# USER-DEFINED PROCEDURES
source user_proc.fps
proc WriteBND {} {
global count
#
#---------------------------------------------------------------------#
line x loc=-0.15
line x loc=0 tag=top
line x loc=$H
line x loc=$Tsub tag=bottom
# refinement at interfaces
mgoals min.normal.size=0.005 max.box.angle=165 normal.growth.ratio=2
accuracy=1e-6
refinebox interface.materials= {Silicon Polysilicon Oxide Nitride
Oxynitride}
##DFISE -Z Y X
refinebox name=All \
min= "-2.0 $Ymin $Xmin" \
max= " 1.0 $Ymax $Xmax" \
xrefine= 0.5 yrefine= $W/2.0 zrefine= $L/2.0
##DFISE -Z Y X
refinebox name=STI \
min= "-0.05 $Ymin $Xmin" \
max= " 0.10 $Ymax $Xmax" \
xrefine= 0.01 yrefine= $W/5.0 zrefine= $L/4.0
pdbSet InfoDefault 1
#------------------------------------------------------------------------
--------------
#----- Derived variables from LER Fin ----------------
--------------
#----- for the mesh optimization and the post-processing ----------------
--------------
set POINTS [GetPoints $L $A0 $A1 $P0 $P1 $pi0 $pi1 $Y0 $Y1 $Ppitch $dL]
eval polygon name=LERfin points= \{$POINTS\}
polygon list
point clear
polygon clear
polyhedron clear
if { $debug } { WriteBND }
strip Oxynitride
if { $debug } { WriteBND }
##DFISE -Z Y X
refinebox name=WellIIP \
min= " $H-0.005 $Ymin $Xmin" \
max= " $H+0.005 $Ymax $Xmax" \
xrefine= 0.005 yrefine= $W/5.0 zrefine= $L/5.0
##DFISE -Z Y X
refinebox name=WellIIP0 \
min= " $H-0.001 $Ymin $Xmin" \
max= " $H+0.001 $Ymax $Xmax" \
xrefine= 0.0005 yrefine= $W/5.0 zrefine= $L/5.0
pdbSet InfoDefault 1
strip Oxynitride
if { $debug } { WriteBND }
##DFISE -Z Y X
refinebox name=Active \
min= "-0.012 $AY0-0.010 $AX0" \
max= " $H+0.010 $AY1+0.010 $AX1" \
xrefine= 0.002 yrefine= 0.002 zrefine= 0.002
##DFISE -Z Y X
refinebox name=Channel \
min= "-0.004 $Y0Wmax-0.002 $SPX0-0.005" \
max= " $H+0.005 $Y1Wmax+0.002 $SPX1+0.005" \
xrefine= 0.001 yrefine= 0.001 zrefine= 0.001
##DFISE -Z Y X
refinebox name=cChannelL \
min= "-0.002 $Y00finL-0.002 $PX0-0.004" \
max= " $H $Y01finL+0.002 $PX0-0.000" \
xrefine= 0.001 yrefine= 0.001 zrefine= 0.0005
refinebox name=cChannelR \
min= "-0.002 $Y10finL-0.002 $PX1+0.000" \
max= " $H $Y11finL+0.002 $PX1+0.004" \
xrefine= 0.001 yrefine= 0.001 zrefine= 0.0005
#----- Generate S/D SiGe epi shape using polyhedron command -----
mater add name=SiSD new.like=Silicon alt.matername=Silicon
###----------------------------------------------------------------------
--------------
#----- S/D stressor -----
#if "@Type@" == "nMOS"
#--- Calculate intrinsic stress from C Mole fraction --------------------
-------------
set iS0 [expr (10.0 * 1.65e11 * 0.449 * $CMoleFraction / ( 1.0 - 0.28
))]
set iS [expr ($iS0 * ( 1.0 - 0.28 ) / ( 1.0 - 2.0 * 0.28 ))]
#else
#--- Calculate intrinsic stress from Ge Mole fraction -------------------
--------------
set iS0 [expr (-10.0 * 1.65e11 * 0.042 * $GeMoleFraction / ( 1.0 - 0.28
))]
set iS [expr ($iS0 * ( 1.0 - 0.28 ) / ( 1.0 - 2.0 * 0.28 ))]
#endif
if { $DoStrain } {
#--- Assign intrinsic stress to S/D SiGe epi ----------------------------
-----
mechdata SiSD sxxi=$iS syyi=$iS szzi=$iS
}
###----------------------------------------------------------------------
--------------
#----- Assign doping profile -----
if { $DoDiff } {
sel SiFin z=$Nch name=$Dch store
sel SiStop z=$Nch name=$Dch store
sel SiSD z=$Nch name=$Dch store
##DFISE -Z Y X
refinebox name=All \
min= "-2.0 $Ymin $Xmin" \
max= " 1.0 $Ymax $Xmax" \
xrefine= 0.5 yrefine= $W/2.0 zrefine= $L/2.0
##DFISE -Z Y X
refinebox name=STI \
min= "-0.05 $Ymin $Xmin" \
max= " 0.10 $Ymax $Xmax" \
xrefine= 0.01 yrefine= $W/5.0 zrefine= $L/4.0
##DFISE -Z Y X
refinebox name=Active \
min= "-0.012 $AY0-0.010 $AX0" \
max= " $H+0.010 $AY1+0.010 $AX1" \
xrefine= 0.005 yrefine= 0.005 zrefine= 0.005
##DFISE -Z Y X
refinebox name=Active0 \
min= "-0.004 $Y0Wmax-0.004 $SPX0-0.005" \
max= " $H+0.004 $Y1Wmax+0.004 $SPX1+0.005" \
xrefine= 0.002 yrefine= 0.002 zrefine= 0.002
##DFISE -Z Y X
refinebox name=Channel \
min= "-0.002 $Y0Wmax-0.002 $SPX0-0.002" \
max= " $H+0.002 $Y1Wmax+0.002 $SPX1+0.002" \
xrefine= 0.001 yrefine= 0.001 zrefine= 0.001
##DFISE -Z Y X
refinebox name=cChannel \
min= "-0.001 $Y0Wmax-0.001 $PX0-0.004" \
max= " $H $Y1Wmax+0.001 $PX1+0.004" \
xrefine= 0.001 yrefine= 0.0005 zrefine= 0.001
pdbSet InfoDefault 1
exit