CMOS_180nm 解析
#header
fset Type @Domain@
icwb filename= "CMOSInv180_lyt.mac" scale= 1e-3
fset Domains [icwb list domains]
icwb domain= "@Domain@"
#rem # Query utility: Returns the dimension of the selected simulation domain.
fset DIM [icwb dimension]
#rem # Define stretch marks
icwb stretch name= "Lg_${Type}" value= @<(Lgate-0.180)>@
#rem # Query utility: Returns the bounding box of the simulation
fset Ymin [icwb bbox left]
fset Ymax [icwb bbox right]
LogFile "icwb: Centered Bounding Box: Ymin ->$Ymin ; Ymax -> $Ymax"
fset LYmin [icwb bbox left ]
fset LYmax [icwb bbox ymax]
LogFile "icwb: Layout Bounding Box -> Lymin -> $LYmin ; Lymax -> $LYmax"
set Ymic [expr ($Ymax-$Ymin)/2.0]
set CNode @node@
#endheader
#rem #---------------------------------------------------------------------------#
#rem # DESIGN RULES
#rem #---------------------------------------------------------------------------#
fset PolyPitch 0.6
fset IsoPitch 0.6
#rem #-------------------------------------------------------------------------#
#rem # PARAMETERS
#rem #-------------------------------------------------------------------------#
fset Lg @Lgate@
fset Lg2 @<Lgate/2.0>@
fset dL @<(Lgate-0.18)>@
fset PolyReox 0.0075
fset Tpoly 0.3
fset gox 0.0043
fet Tsub 10.0
fset PadOxT 0.015
fset PadNT 0.2
fset ThermOx 0.02
fset Divot 0.06
fset LOCOS_T 0.05
fset STI_width 0.09
fset STI_depth 0.50
fset STI_tilt 80.0
fset Recess_Iso 0.001
fset Lsp 0.12
fset Nat_oxide 0.006
fset TiSi_thick 0.035
#rem #------------------------------------------------------------------------------#
#rem # SIMULATION CONTROLL
#rem #------------------------------------------------------------------------------#
fset fp 1.0
fset FastMode 0
fset debug 0
fset count 1
fset MinNormalSize 0.005
fset NormalGrowthRatio 2.0
fproc WriteBND {} {
global count
global CNode
if { $count <10} {
struct tdr.bnd=n${CNode}_0${count}
} else {
struct tdr.bnd=n${CNode}_${count}
}
incr count
}
#rem # Parallel simulation strategy and unified coordinate system
math numThreads= 4
math coord.ucs
#rem #-------------------------------------------------#
#rem # START SIMULATION
#rem #-------------------------------------------------#
line x location= -0.1
line x location= 0.0 tag= top
line x location =0.1
line x location= $Tsub tag= bottom
line y location= $Ymin spacing= 100.0 tag= left
line y location= $Ymax spacing= 100.0 tag= right
region Silicon substrate xlo= top xhi= bottom ylo= left yhi= right
init Silicon field= Boron concentartion= 1.0e15 wafer.orient= {0 0 1} flat.orient= {1 1 0} slice.angle=45 !DelayFullD
AdvanceCalibration
2DOxidationSetup
#pdb settings -------------------------------------------------------------
pdbSet InfoDefault 1
pdbSet Diffuse minT 500.0
pdbSet Mechanics StressHistory 1
pdbSet Mechanics EtchDepoRelax 0
pdbSet ImplantData ResistSkip 1
pdbSet ImplantData LeftBoundary Reflect
pdbSet ImplantData RightBoundary Reflect
pdbSet ImplantData BackBoundary Reflect
pdbSet ImplantData FrontBoundary Reflect
# meshing strategy
grid set.min.normal.size= $MinNormalSize/$fp set.normal.growth.ratio.2d= $NormalGrowthRatio set.max.points= 10000000 set.max.neighbor.ratio= 1e6
icwb.create.mask layer.name= "NWELL PWELL" polarity= positive name= Sub
refinebox name= BG mask= Sub extend= 0.2 extrusion.min= -0.5 extrusion.max=10.0 xrefine= "0.1/$fp" yrefine= "0.1/$fp"
#rem # Well Implants
deposit oxide thickness= 0.05 anisotropic
icwb.create.mask layer.name= PWELL name= pwell polarity= positive info= 1
photo mask= pwell thickness =5.0
implant Boron dose= 1.0e12<cm-2> energy= 200<kev> tilt= 0 rotation= 0
implant Boron dose= 1.0e12<cm-2> energy= 120<kev> tilt= 0 rotation= 0
implant Boron dose= 1.0e12<cm-2> energy= 80<kev> tilt= 0 rotation= 0
implant Boron dose= 5.0e12<cm-2> energy= 40<kev> tilt= 0 rotation= 0
implant Boron dose= 5.0e12<cm-2> energy= 20<kev> tilt= 0 rotation= 0
implant Boron dose= 5.5e12<cm-2> energy= 10<kev> tilt= 0 rotation= 0
if { $debug } { WriteBND }
strip Photoresist
#rem # Drive-in
diffuse time= 1<min> temp= 1000
# ---------------------------------------- #
SetPlxList {BTotal AsTotal PTotal }
WritePlx n@node_well.plx y= $Ymid
# ---------------------------------------- #
strip oxide
#split @LOCOS@
## -------------Pad-Oxide and Nitride -------------------------
deposit material= {Oxide} type= anisotropic rate= {$PadOxT} time= 1.0
deposit material= {Nitride} type= anisotropic rate= {$PadNT} time= 1.0
if { $debug } { WriteBND }
icwb.create.mask layer.name= "NACTIVE PACTIVE" name= STI polarity= negative info= 1
photo mask= STI thickness =0.5
if { $debug } { WriteBND }
etch material= {Nitride Oxide} type= anisotropic rate= {$PadNT $PadOxT} time= 2.0
strip Photoresist
if { $debug } { WriteBND }
refinebox name= LOCOS1 min= "-0.2 0.2" max= "0.1 0.5" extend= 0.25 extrusion.min= -0.1 extrusion.max= 0.1 xrefine= " 0.01" yrefine= " 0.02"
refinebox name= LOCOS2 min= "-0.2 1.5+$dL" max= "0.1 1.8+$dL" extend= 0.25 extrusion.min= -0.1 extrusion.max= 0.1 xrefine= " 0.01" yrefine= " 0.02"
grid remesh
diffuse temperature= 900<C> time= 20<min> H2O
#split @STI@
## ----------------LOCOS-deglaze-------------------------------
etch material= {Oxide} type= anisotropic rate= {0.05} time= 1.5