5.1 Overview
5.2 Process-Dependent Settings
5.3 Example: P-Well Implantation
5.4 Example: Implantation With Ge Preamorphization
5.5 Documenting Parameter Changes
The files discussed in this section are part of the Sentaurus Workbench project Custom_calibration. The complete project can be investigated from within Sentaurus Workbench in the directory Applications_Library/GettingStarted/ sprocess/Custom_calibration.
Models can be selected and parameters can be changed at any place in a command file. However, this makes the command file difficult to read and detracts from the process flow itself.
Sentaurus Process offers an elegant way to manage the selection of process step–dependent models and parameters: a calibration file.
A calibration file consolidates all model selections and parameter settings in one location. Using calibration files has several advantages:
To load a calibration file at the beginning of a Sentaurus Process command file, use:
source calibration.fps
The recommended way is first to load Advanced Calibration as a starting point and then to load an additional calibration file (see Section 6. Working With Advanced Calibration).
In the example discussed here, the calibration file calibration.fps contains some model and parameter settings.
Click to view the calibration file calibration.fps.
Often, you need to adjust models and parameters for a specific processing step. This can be accomplished by making the relevant selections immediately before the processing step, for example:
pdbSet Silicon Boron IFactor 2.5 implant Boron dose=1e12<cm-2> energy=20<keV> tilt=0 rotation=0
However, Sentaurus Process supports a more elegant method: callback procedures. For example, Sentaurus Process calls the UserImpPreProcess function before and the UserImpPostProcess function after each implantation step. By redefining these user callback procedures in the calibration file, the Sentaurus Process command file can be restricted to contain only generic process flow definitions, and all parameter and model settings can be placed in the calibration file.
A similar concept is implemented in the Advanced Calibration file (see Section 6. Working With Advanced Calibration), where parameters and models are adjusted depending on the implantation conditions, such as species, implantation energy, and dose. This approach is very effective for a global calibration.
In Advanced Calibration, the Sentaurus Process callback procedures after ion implantation are redefined. The user callback procedures are not modified and can be used for additional calibration.
For the calibration of a single project, it is more convenient to adjust models and parameters for a specified processing step. For example, in the command file of Sentaurus Process, introduce the variable ProcessStepID, which identifies the processing step, with:
source calibration.fps
set ProcessStepID "PWell Implantation"
implant Boron dose= 1e12<cm-2> energy= 20<keV> tilt= 0 rotation= 0 info= 2
In the calibration file calibration.fps, write the following redefinition of the preimplantation callback procedure:
proc UserImpPreProcess { Species Energy Dose Tilt Rotation Slice Mode } { global ProcessStepID if { [ string match $ProcessStepID "PWell Implantation" ] } { ChangeParameter "pdbSet Silicon Boron IFactor 2.5" }
This setup has the same effect as the Sentaurus Process code given at the beginning of this section. The variable IFactor is set to 2.5 for the given implantation step and controls the interstitial concentration after the implantation. The number of interstitials is set to be IFactor multiplied by the number of implanted dopant atoms.
In this setup, modified parameters are not reset automatically to their default values. Therefore, any parameter changes remain active for all subsequent processing steps, unless they are explicitly changed again.
This example illustrates the use of a calibration file for a 1D Sentaurus Process simulation. The example is presented in the form of a Sentaurus Workbench project, which contains two experiments, which are distinguished by the Sentaurus Workbench parameter calibration. In the first experiment, calibration=off. In the second experiment, calibration=on.
The Sentaurus Process command file sprocess_fps.cmd contains the Sentaurus Workbench preprocessor directive:
#if [string compare @calibration@ "on"] == 0 source calibration.fps #endif
Click to view the command file sprocess_fps.cmd.
In the calibration=on experiment, the calibration file calibration.fps is read before the Sentaurus Process command file is executed. In the calibration=off experiment, default values are used.
After setting up the grid and defining the substrate, the p-well implantation step is performed (see the command file sprocess_fps.cmd):
set ProcessStepID "PWell Implantation" #--------------------------------------------------------------------- deposit material= {Oxide} type= isotropic rate= {1.0} time= 0.01 LogFile "Boron IFactor before implant: [pdbGet Silicon Boron IFactor]" LogFile "Boron AcInit before implant: [pdbGetDouble Silicon Boron AcInit]" implant Boron dose= 1e12<cm-2> energy= 20<keV> tilt= 0 rotation= 0 info= 2 LogFile "Boron IFactor after implant: [pdbGet Silicon Boron IFactor]" LogFile "Boron AcInit after implant: [pdbGetDouble Silicon Boron AcInit]" SetPlxList { Boron_Implant Int_Implant } WritePlx n@node@_PWellimpl.plx y=0 #---------------------------------------------------------------------
The AcInit parameter is used to determine the value of the active concentration of dopants in crystalline regions, which is used to initialize an annealing step.
The LogFile commands are included only to illustrate the functionality of the callback procedures and can be removed to simplify the structure of the command file.
The calibration file calibration.fps contains the lines:
proc UserImpPreProcess { Species Energy Dose Tilt Rotation Slice Mode } { global ProcessStepID if { [ string match $ProcessStepID "PWell Implantation" ] } { ChangeParameter "pdbSet Silicon Boron IFactor 2.5" }
proc UserImpPostProcess { Species Name Energy Dose Model IFac VFac CDose } { global ProcessStepID if { [ string match $ProcessStepID "PWell Implantation" ] } { ChangeParameter "pdbSetDouble Silicon Boron AcInit 5e16" }
Open the log file output of Sentaurus Process for the calibration=on experiment to see the callback procedures at work. Look for the lines:
Boron IFactor before implant: 1.0 Boron AcInit before implant: 5e+18 ---------------------------------------------------------------- implant ----- implant info= 2 energy= 20.00<keV> dose= 1.00e+12<cm-2> tilt= 0.00e+00<degree> rotation= 0.00e+00<degree> Boron ------------------------------------------------------------------------------ <more information on implantation settings> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Preprocessing implant data Selecting implant tables for species: Boron ProcessStepID is "PWell Implantation" Redefining: pdbSet Silicon Boron IFactor 2.5 <more information on implantation tables> <...performing the implantation...>Building implantation models Postprocessing implantation data Redefining: pdbSetDouble Silicon Boron AcInit 5e16 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dose in: Silicon_1 Oxide_1 Total Silicon Oxide Boron 1.9909e+12 1.0337e+10 2.0013e+12 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Boron IFactor after implant: 2.5 Boron AcInit after implant: 5e+16 ------------------------------------------------------------- SetPlxList ----- SetPlxList { Boron_Implant Int_Implant } ------------------------------------------------------------------------------ --------------------------------------------------------------- WritePlx ----- WritePlx n3_PWellimpl.plx y=0 ------------------------------------------------------------------------------
The LogFile commands in the calibration file calibration.fps generated the red text. The LogFile commands in the Sentaurus Process command file generated the blue text.
The first set of blue lines shows the Sentaurus Process default values for IFactor and AcInit. Immediately before the implantation is performed, Sentaurus Process calls the UserImpPreProcess callback procedure and changes IFactor according to the requested value for the process step PWell Implantation (see the first and second red lines).
After the implantation is completed, Sentaurus Process calls the UserImpPostProcess callback procedure and changes AcInit according to the requested value for the process step PWell Implantation (see the third red line).
After the implantation step is completed, the changed values for IFactor and AcInit are still active as shown in the last set of blue lines in the log file.
For the default IFactor=1, the interstitial profile is identical to the boron profile itself. With the calibrated value of IFactor=2.5, the interstitial profile is 2.5 times larger.
The AcInit parameter determines the value of the active concentration of dopants in crystalline regions, which is used to initialize an annealing step. To show the influence of this parameter change, a very short (dummy) anneal step is included in the sprocess_fps.cmd command file:
diffuse time= 1.0e-12<min> temp= 600<C> SetPlxList { BTotal BActive ITotal } WritePlx n@node@_PWellrta_init.plx y= 0
The initial activation level is determined as the lower value of the as-implanted doping concentration and the AcInit value. For the default setting of AcInit = 5 x 1018 (blue), all boron is assumed to be active. After changing AcInit to 5 x 1016, most of the boron is assumed to be in clusters (red).
To ensure shallow junctions for the low-doped drain (LDD) implantations, sometimes, an additional implantation step with an electrically inactive dopant (mainly germanium) is performed to amorphize the top silicon layer. This suppresses channeling and avoids deep tails of the as-implanted profiles.
In this example, a high-dose germanium implantation is performed before the boron LDD and the quad arsenic halo implantation, with the following commands (see the sprocess_fps.cmd command file):
set ProcessStepID "PMOS Halo/LDD" #--------------------------------------------------------------------- implant Germanium dose= 2e14<cm-2> energy= 100<keV> tilt= 0 rotation= 0 implant Boron dose= 5e14<cm-2> energy= 2<keV> tilt= 0 rotation= 0 \ info= 2 implant Arsenic dose= 6e13<cm-2> energy= 60<keV> tilt= 15<degree> rotation= 0 \ mult.rot= 4 info= 2 SetPlxList { Boron_Implant Arsenic_Implant Damage Int_Implant} WritePlx n@node@_LDDimpl.plx y= 0
For this process step, the calibration file calibration.fps contains the following redefinitions:
proc UserImpPreProcess { Species Energy Dose Tilt Rotation Slice Mode } { global ProcessStepID if { [ string match $ProcessStepID "PWell Implantation" ] } { ChangeParameter "pdbSet Silicon Boron IFactor 2.5" } if { [ string match $ProcessStepID "PMOS Halo/LDD" ] } { switch $Species { "Germanium" { ChangeParameter "pdbSet Silicon Germanium IFactor 0.2" } "Boron" { ChangeParameter "pdbSet Silicon Boron IFactor 0.1" ChangeParameter "implant spec=Boron Silicon ratio=0.9999" } "Arsenic" { ChangeParameter "pdbSet Silicon Arsenic IFactor 0.2" ChangeParameter "pdbSet Silicon Arsenic VFactor 0.05" ChangeParameter "implant spec=Arsenic Silicon ratio=0.9999" } } } }
Besides the IFactor (and for arsenic, also the VFactor) redefinitions, implantation settings for boron and arsenic are modified. The keyword ratio determines the percentage of the total dose that is assigned to the amorphous profile (the rest is assigned to the channeling profile). The setting of ratio=0.9999 almost fully suppresses channeling.
By default, Sentaurus Process takes into account channeling suppression due to the damage generated by previous implantations, in both analytic and Monte Carlo. In this example, this feature has been switched off to show the calibration methodology.
In this callback procedure, a Tcl switch statement makes a specific parameter redefinition for each implanted species (see the Tool Command Language module).
These modifications are documented in the n3_fps.out log file:
---------------------------------------------------------------- implant ----- implant info= 2 energy= 2.00<keV> dose= 5.00e+14<cm-2> tilt= 0.00e+00<degree> rotation= 0.00e+00<degree> Boron ------------------------------------------------------------------------------ <more information on implantation settings> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Preprocessing implant data Selecting implant tables for species: Boron Redefining: pdbSet Silicon Boron IFactor 0.1 Redefining: implant spec=Boron Silicon ratio=0.9999 Building implant models ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- --- Material: Silicon Region: Silicon_1 Vertical moments Cap Rp Stdev Gamma Beta Ratio PR um um um 0 0.0094467 0.0087927 -0.40433 9.9194 0.9999 P4 0.022467 0.022548 -0.96512 4.9372 1e-04 P4 <more range table entries>
The corresponding lines in the log file for the calibration=off experiment read:
Opening table file: /ImpLib/Default/SiliconB_16e13-8e15.tab Vertical moments Cap Rp Stdev Gamma Beta Ratio PR um um um 0 0.0094467 0.0087927 -0.40433 9.9194 0.4951 P4 0.022467 0.022548 -0.96512 4.9372 0.5049 P4
The modifications due to the calibration are highlighted in red and the default values are blue.
After the various implantation steps, the postprocessing callback procedure UserImpPostProcess is called, which for the "PMOS Halo/LDD" step is redefined in the calibration file calibration.fps as:
# Dechanneling after Ge implantation. # proc UserImpPreProcess { Species Energy Dose Tilt Rotation Slice Mode } { global ProcessStepID
if { [ string match $ProcessStepID "PMOS Halo/LDD" ] } { switch $Species { "Arsenic" { ChangeParameter "pdbSet Silicon Arsenic AcInit 1e17" ChangeParameter "pdbSet Silicon Arsenic AmInit 2e19" } "Boron" { ChangeParameter "pdbSet Silicon Boron AcInit 1e17" ChangeParameter "pdbSet Silicon Boron AmInit 1e19" } } } }
In particular, the parameter AmInit limits the (initial) activation level in recrystallized amorphous regions. Here, for example, the boron activation level is limited to 1019 cm-3.
Using the default parameters results in excessively deep profiles because preamorphization is neglected. The effect of setting AmInit for boron to 1019 cm-3 can be seen in the highly doped regions.
In the calibration file calibration.fps, a special procedure generates entries in the log file, which document all the parameter and model changes:
set LastProcessStepID "none"
proc ChangeParameter { CMD } {
global ProcessStepID
global LastProcessStepID
if { $LastProcessStepID != $ProcessStepID } {
LogFile "ProcessStepID is \"$ProcessStepID\""
}
LogFile "Redefining: $CMD"
eval $CMD
set LastProcessStepID $ProcessStepID
}
The Tcl procedure ChangeParameter writes ProcessStepID for each new process flow step into the log file and writes the parameter and model change commands before executing them.
Copyright © 2017 Synopsys, Inc. All rights reserved.