You are on page 1of 11

Sentaurus Technology Template:

CMOS Characterization

Abstract
This TCAD Sentaurus™ simulation project provides a template setup for 32 nm
CMOS device characterization.

Id–Vgs curves for a low drain bias and high drain bias are simulated for NMOS and
PMOS structures with various gate lengths. In addition, for selected structures, a
family of Id–Vds curves for various gate biases is simulated and small-signal
simulations are performed to obtain the C–V characteristics of the respective
devices. For each of the simulated curves, relevant electrical parameters, such as
threshold voltages and drain current levels, are extracted. Finally, the extracted
parameters are plotted as a function of the gate length.
Synopsys and the Synopsys logo are registered trademarks and Sentaurus is a trademark of Synopsys, Inc.
All other products or service names mentioned herein are trademarks of their respective holders and should be treated as such.

Copyright © 2019 Synopsys, Inc. All rights reserved.


Introduction General Simulation Setup
This project provides standard templates for the device This section describes the tool flow of the Sentaurus
simulator Sentaurus Device that can be used to perform the Workbench project. For each tool, the associated Sentaurus
most common types of simulation used in CMOS device Workbench input parameters and the extracted parameters
characterization and performance assessment. It contains are discussed.
device simulation setups for Id–Vgs simulation at a low
drain bias and a high drain bias, setups for the simulation of
a family of Id–Vds curves, and setups for capacitance
Sentaurus Structure Editor
simulations.
Sentaurus Structure Editor defines the analytic MOS
The setup of the Sentaurus Workbench project supports structures, and it uses two Sentaurus Workbench
NMOS and PMOS devices, and allows for the simulation of parameters:
structures with different gate lengths. Other variations can ■ Type = nMOS|pMOS defines whether an NMOS or a
be included by adjusting the template. PMOS device is created.
■ lgate [ μm ] defines the gate length for the MOS
The project discusses the extraction library of the
devices. Here, it assumes the values 0.022, 0.032
visualization tool Sentaurus Visual to extract the most
0.045, 0.065, 0.090, and 0.13. You can add or
common electrical parameters such as the threshold voltage,
remove values as required.
transconductance, subthreshold voltage swing, drain
saturation current, drain leakage current, on-state resistance,
and gate capacitance. Sentaurus Device: IdVg_lin

Finally, the project discusses an extraction library procedure The name of the first instance of Sentaurus Device is
for plotting extracted electrical parameters as a function of IdVg_lin. It performs a low drain bias Id–Vgs sweep for
Sentaurus Workbench input parameters. A typical example the given devices. The supply voltage Vdd and the drain bias
is a Vt roll-off curve. Vds are defined by the Sentaurus Workbench parameters:
■ Vdd [V] defines the supply voltage. Here, it is set to
The NMOS and PMOS devices are defined by using a fully
1.0. (For the PMOS devices, the sign of the supply
parameterized input file to the Sentaurus Structure Editor.
voltage is changed internally.)
The geometric dimensions, such as gate oxide thickness and
spacer width, as well as doping profiles parameters, such as ■ Vdlin [V] defines the drain bias for the Id–Vgs sweep.
peak concentration and junction depth, can be easily Here, it is set to 0.05. (For the PMOS devices, the sign
adjusted to specific needs or can become Sentaurus of the drain bias is changed internally.)
Workbench parameters to allow for the creation of new ■ IdVg_lin = 0|1 is a logical flag. The Id–Vgs sweep
device families or the plotting of other characteristics, such is performed only if the flag is 1.
as the dependence of the threshold voltage on the halo
implant depth.
Sentaurus Visual: PlotIdVg_lin
The template setup can also be used to investigate the
electrical properties of device structures created by the The name of the subsequent visualization tool Sentaurus
process simulator Sentaurus Process (or others). In this Visual is PlotIdVg_lin. It plots the low drain bias Id–Vgs
case, Sentaurus Structure Editor must be replaced with characteristics and extracts:
Sentaurus Process. An example of such a setup can be found ■ Vtgm [V]: Threshold voltage defined as the intersection
in the Sentaurus Workbench template project Sentaurus of the tangent at the maximum gm with the Vgs axis.
Technology Template: CMOS Processing.
■ VtiLin [V]: Threshold voltage defined as Vgs at which
It is assumed that users are familiar with the Sentaurus tool Id = 100 nA/Lg for Vds = Vdlin.
suite, in particular, Sentaurus Workbench, Sentaurus
Structure Editor, Sentaurus Device, and Sentaurus Visual. ■ IdLin [ A/μm ]: Id at Vds = Vdlin and Vgs = Vdd.
For an introduction and tutorials, refer to the TCAD ■ gmLin [ S/μm ]: Maximum transconductance at Vds =
Sentaurus Tutorial. Vdlin.
The focus of this project is to provide a setup that can be ■ SSlin [mV/decade]: Subthreshold voltage swing at
used as is or adapted to specific needs. The documentation Vds = Vdlin.
focuses on aspects of the setups. For details about tool uses
and specific tool syntax, refer to the respective manuals.

Copyright © 2019 Synopsys, Inc. All rights reserved. 3


Sentaurus Device: IdVg_sat Sentaurus Device: CV

The name of the next instance of Sentaurus Device is The name of the final instance of Sentaurus Device is CV. It
IdVg_sat. It performs a high drain bias Id–Vgs sweep. The performs a small-signal analysis at a fixed frequency during
drain bias Vds for this simulation is set to the supply voltage a gate sweep from Vgs = –1.5*Vdd to Vgs = +1.5*Vdd:
Vdd:
■ CV = 0|1 is a logical flag. The CV simulation is
■ IdVg_sat = 0|1 is a logical flag. The Id–Vgs sweep performed only if the flag is 1.
is performed only if the flag is 1.
Sentaurus Visual: PlotCV
Sentaurus Visual: PlotIdVg_sat
The name of the subsequent Sentaurus Visual instance is
The name of the subsequent Sentaurus Visual instance is PlotCV. It plots the gate capacitance, the gate–source or
PlotIdVg_sat. It plots the high drain bias Id–Vgs gate–drain overlap capacitance, and the gate–body
characteristics and extracts: capacitance as a function of the gate voltage and extracts:
■ VtiSat [V]: Threshold voltage defined as Vg at which ■ CgM [ F/μm ]: Gate capacitance at Vgs = –Vdd.
Id = 100 nA/Lg for Vds = Vdd.
■ Cg0 [ F/μm ]: Gate capacitance at Vgs = 0 V.
■ IdSat [ A/μm ]: Saturation current Id at Vds = Vgs ■ CgP [ F/μm ]: Gate capacitance at Vgs = Vdd.
= Vdd.
■ Ioff [ A/μm ]: Off-state (drain-leakage) current Id at
Vds = Vdd and Vgs = 0 V.
Sentaurus Visual: RollOff
■ gmSat [ S/μm ]: Maximum transconductance at The name of the final Sentaurus Visual instance is
Vds = Vdd. RollOff. It collects the extracted values for each device
■ SSsat [mV/decade]: Subthreshold voltage swing at and plots Vtgm, VtiLin, VtiSat, drain-induced barrier
Vds = Vdd. lowering (DIBL), IdLin, IdSat, Ioff, SSlin, SSsat,
gmLin, and gmSat as a function of the gate length lgate
(roll-off curves). In addition, the Ion–Ioff characteristics are
Sentaurus Device: IdVd shown. The Sentaurus Workbench parameter:
■ RollOff = 0|1 is a logical flag. The roll-off curves
The name of the following instance of Sentaurus Device is
are plotted only if the flag is 1. It is sufficient to set the
IdVd. It simulates a family of Id–Vds curves. The gate
flag to 1 for only a single device in each class. For
biases are defined by the Sentaurus Workbench parameters:
example, for the NMOS and PMOS with lgate = 1.0.
■ Vgmin [V] defines the gate bias for the first drain
voltage sweep. It is set to 0.25. (For the PMOS The project has been structured to allow for flexibility. For
devices, the sign of the gate bias is changed internally.) example, new devices or experiments can be added by
■ Vgmax [V] defines the gate bias for the last drain choosing Experiments > Add New Experiment from the
voltage sweep. It is set to 1.0. (For the PMOS devices, menu bar of the Sentaurus Workbench main window.
the sign of the gate bias is changed internally.)
An experiment can be edited by changing the values of the
■ NVg [1] defines the number of sweeps. It is set to 4. The parameters. Furthermore, different experiments can be
gate biases are linearly distributed between the grouped into scenarios. In this project, the experiment for
minimum and the maximum values. the NMOS and PMOS devices are grouped into scenarios
■ IdVd = 0|1 is a logical flag. The Id–Vds sweep is named nMOS and pMOS to simplify management of the
performed only if the flag is 1. project.

Sentaurus Visual: PlotIdVd Tool-Specific Setups


The name of the subsequent Sentaurus Visual instance is
PlotIdVd. It plots the family of Id–Vds curves and extracts: Device Generation Using Sentaurus
■ Ron [ Ωμm ]: On-state output resistance extracted from Structure Editor and Sentaurus Mesh
the Id–Vds curve with the highest gate bias (Vgs = Vdd).
Sentaurus Structure Editor defines the NMOS and PMOS
devices in a fully parameterized way.

4 Copyright © 2019 Synopsys, Inc. All rights reserved.


Figure 1 shows the NMOS device with a 32-nm gate length. Sentaurus Mesh is called from within Sentaurus Structure
To adjust the details of the devices, you can modify the top Editor with:
section of the input file sde_dvs.cmd of Sentaurus (sde:build-mesh "n@node@_half_msh")
Structure Editor. For example, the substrate background
doping level and the peak concentration of the halo implant It must be noted that only half of the CMOS structure is
are defined by setting the Scheme variables: created by Sentaurus Structure Editor and meshed with
(define SubDop 5e15) ; [1/cm3] Sentaurus Mesh.
(define HaloDop 4.0e18) ; [1/cm3]
It is subsequently reflected about the vertical axis to obtain
The junction depth for the halo, the extension, and the the full device. The reflection is performed in the Sentaurus
source/drain implants are defined by setting the Scheme Structure Editor by a system call to the utility Sentaurus
variables: Data Explorer (tdx):
(define XjHalo 0.05) ; [um] Halo depth (system:command "tdx -mtt -y -ren drain=source
(define XjExt 0.008) ; [um] Extension depth n@node@_half_msh n@node@_msh")
(define XjSD 0.04) ; [um] SD junction depth
The option -y instructs Sentaurus Data Explorer to reflect
The extend of the nitride spacer and the gate oxide thickness the device along an axis defined by y = y min . The given
are defined by setting the Scheme variables: half-structure has three contacts: drain, gate, and
(define Lsp 0.014) ; [um] Spacer length substrate, which are defined in sde_dvs.cmd. Of these,
(define Tox 0.0006) ; [um] Gate oxide thickness the gate and substrate contacts touch the axis of
(define THF 0.0020) ; [um] High-k oxide thickness reflection and, upon reflection, are extended and thereby
preserve their names. However, the drain contact in the
reflected half is named drainmirrored by default. This
contact is explicitly renamed source with the command-
line option -ren of Sentaurus Data Explorer.

Device Simulation Using Sentaurus


Device

Sentaurus Device simulates the drain current as a function


of the gate voltage at a low drain bias and a high drain bias
(Id–Vgs) as well as to simulate a family of drain current
curves as a function of the drain voltage (Id–Vds) for
different values of the gate bias. Furthermore, a small-signal
AC analysis is performed to show the total gate, gate–
contact, and gate–body capacitance as a function of the gate
voltage (C–V).

All I–V simulations are performed using the hydrodynamic


Figure 1 The 32-nm gate length NMOS device generated by Sentaurus
Structure Editor and meshed with Sentaurus Mesh; concentrations transport model, where the carrier temperature equation for
of dopants in various regions are shown either electrons and holes is solved with the electrostatic
Poisson equation and the carrier continuity equations. It is
Several other geometric, doping, and meshing parameters not necessary to solve the carrier temperature equation for
are accessible in a similar way. The meshing strategy is the C–V simulations. For the high drain bias Id–Vgs as well
designed to result in a high quality without excessive node as the Id–Vds simulations, lattice self-heating effects are
counts for a large range of geometric parameters. A constant included by also solving the lattice temperature equation.
stress is implemented using the following commands:
(sdedr:define-constant-profile "Const.Sub" "StressYY" Size quantization effects are included in all simulations by
StressYV) using the density gradient model. For the I–V simulations, it
(sdedr:define-constant-profile-region is sufficient to activate the density gradient model for the
"Place1.Substrate" "Const.Sub" "R.Substrate") dominant carriers only, because it will be effective mainly in
(sdedr:define-constant-profile-region the inversion layer. For the C–V simulations, however, the
"Place2.Substrate" "Const.Sub" "R.SiGe") model must be activated for electrons and holes, because
size quantization occurs in accumulation as well.
Sentaurus Structure Editor calls the meshing engine
Sentaurus Mesh to generate the structure files for Sentaurus The Tcl block preprocessing mode of Sentaurus Workbench
Device. is used to distinguish the Sentaurus Device input files for

Copyright © 2019 Synopsys, Inc. All rights reserved. 5


the NMOS and PMOS devices. In this mode, any text hQuantumPotential(density)
enclosed in: Mobility (
Enormal (
!( <Tcl-block> )! IALmob(AutoOrientation)
Lombardi_highk # Used for remote phonon
is treated as a Tcl script block, which is executed at # scattering (RPS)
preprocessing time. The text itself is removed during NegInterfaceCharge (SurfaceName="S1")
preprocessing, with the exception of the output of the Tcl # Used for remote Coulomb scattering
# (RCS) and remote dipole scattering (RDS)
puts commands. For example, to activate the
PosInterfaceCharge (SurfaceName="S1")
hydrodynamic transport model for the appropriate carriers # Used for RCS and RDS
for the NMOS and PMOS devices, the following Tcl block )
is used: HighFieldSaturation
!( )
if { "@Type@" == "nMOS" } {... EffectiveIntrinsicDensity(OldSlotboom)
set cTemp "eTemperature" eMultivalley(MLDA kpDOS -density)
...} else {... hMultivalley(MLDA kpDOS -density)
set cTemp "hTemperature"
...} Piezo (
)! Model (
Mobility (
!( saturationfactor=0.0
Physics{... eSubband(Doping EffectiveMass
Hydrodynamic( !(puts $cTemp)! ) Scattering(MLDA) -RelChDir110)
...} hSubband(Doping EffectiveMass
)! Scattering(MLDA))
)
DOS(eMass hMass)
DeformationPotential(Minimum ekp hkp)
Sentaurus Device performs the device simulations using the )
Advanced Calibration set of models and parameters for )
32 nm CMOS with high-k metal gate and stress technology. }
To use the Advanced Calibration of Sentaurus Device, you
can look up the parameter files and the command files for The SurfaceName specifies the surface or the interface that
specific device types and technology requirements as causes the mobility degradation. The surface is defined in
described in the Advanced Calibration for Device the Math section of the command file as:
Simulation User Guide [1]. Surface "S1" (
MaterialInterface="HfO2/Oxide"
To start with Advanced Calibration for CMOS, the )
parameter files SiliconGermaniumc100.par and
Siliconc100.par are used in this project from the Figure 2 shows the Id–Vgs curves for the 32 nm PMOS and
following location: NMOS devices at Vds = 50 mV and Vds = 1.0 V.
$STROOT/tcad/$STRELEASE/lib/sdevice/MaterialDB/ 10-03
N Vds=50 mV
N Vds=1.0 V
The Advanced Calibration set of models for the simulation
10-04 P Vds=50 mV
of FinFET device characteristics is defined in the Physics P Vds=1.0 V
section of the command file:
Drain Current [A/µm]

10-05
■ Drift-diffusion transport model
■ Low-field mobility degradation at high-k–oxide 10-06
interfaces
■ Strained band structure and electrostatic-related models 10-07
■ Density-gradient quantum corrections
■ Strained low-field and high-field mobility models 10-08

To facilitate the simulation that accounts for the surface 10-09


-1 -0.5 0 0.5 1
orientation dependency, the inversion and accumulation
Gate Voltage [V]
layer mobility model option is used in the Physics section:
Figure 2 Drain current as a function of gate voltage for the 32 nm gate
Physics (Material="Silicon") { length PMOS (red) and NMOS (blue) devices simulated with
eQuantumPotential(density) Sentaurus Device; lower curves (solid lines) are for a drain bias of
50 mV and upper curves (dashes) are for 1.0 V

6 Copyright © 2019 Synopsys, Inc. All rights reserved.


For the Id–Vds simulation, the input of Sentaurus Device
that defines the family of curves is created with the 1e-15
Cgg
following Tcl blocks.
Ccg
Cbg
The first Tcl block generates the Time string, which 8e-16

Capacitance [F/µm]
determines at which values of the gate voltage a solution is
saved:
6e-16
Quasistationary( ...
Goal { Name="gate" Voltage=@Vgmax@ }
){ Coupled { Poisson ... } 4e-16
Save( FilePrefix="IdVd_n@node@" NoOverWrite
!(
set TIMES "Time=(" 2e-16
for { set i 1 } { $i < @NVg@ } { incr i } {
set dV [expr (@Vgmax@-@Vgmin@)/(@NVg@-1.0)]
set Time [expr (@Vgmin@ + ($i-1)*$dV)/@Vgmax@] 0
append TIMES "[format %.2f ${Time}];" -1.5 -1 -0.5 0 0.5 1 1.5
} Gate Voltage [V]
set Time 1.0
append TIMES "[format %.2f ${Time}]) )" Figure 4 Total gate (Cgg, red), gate-contacts (Ccg, green), and gate-body
(Cbg, blue) capacitance as a function of gate voltage for 32 nm
puts $TIMES gate length NMOS device simulated with Sentaurus Device
)!
}
Extraction and Visualization Using
The Sentaurus Workbench parameters Vgmin and Vgmax Sentaurus Visual
define the first and last gate bias, and NVg defines the
number of curves (gate biases) used in the family of Id–Vds In the Sentaurus Workbench tool flow, each instance of
curves. Sentaurus Device is followed by an instance of the
visualization tool Sentaurus Visual. This tool plots the
Figure 3 shows the Id–Vds curves for the 32 nm PMOS and corresponding I–V or C–V characteristics, and extracts
NMOS devices at Vgs = 0.5, 0.75, and 1.0 V. relevant electrical parameters as discussed in General
Simulation Setup on page 3.

0.0008 Visualizing Simulation Results Using


Sentaurus Visual
Drain Current [A/µm]

0.0006
Sentaurus Visual commands are used to plot the electrical
characteristics of the MOSFET. For details about these
commands, refer to [2]. The Sentaurus Visual commands
0.0004
used for plotting a curve are illustrated using an example
that plots an Id–Vgs curve in the linear region (Sentaurus
Visual command file PlotIdVg_lin_vis.tcl):
0.0002
set N @node@
set Type @Type@
0 set N ${Type}_${N}
-1 -0.5 0 0.5 1 # Load plt file and create dataset PLT_LIN($N).
Drain Voltage [V] load_file IdVg_n@node|IdVg_lin@_des.plt \
-name PLT_Lin($N)
Figure 3 Drain current as a function of drain voltage for the 32 nm gate
length PMOS (left) and NMOS (right) devices simulated with # Create plot named Plot_IdVg if it does not
Sentaurus Device
# already exist.
if {[lsearch [list_plots] Plot_IdVg] == -1} {
The AC analysis is performed at 1 MHz during a gate create_plot -1d -name Plot_IdVg
voltage sweep from – 1.5 ⋅ Vdd to + 1.5 ⋅ Vdd . }
select_plots Plot_IdVg
Figure 4 shows the C–V curves for the 32 nm NMOS # Create lists containing gate voltage values and
device. # drain current values.
set Vgs [get_variable_data "gate OuterVoltage" \
-dataset PLT_Lin($N)]
set Ids [get_variable_data "drain TotalCurrent" \
-dataset PLT_Lin($N)]

Copyright © 2019 Synopsys, Inc. All rights reserved. 7


# Compute absolute value of drain currents using set N ${Type}_${N}
# extraction library procedure ext::AbsList. create_curve -name IdVgLin($N) \
# Store the values in the Tcl list absIds. -dataset PLT_Lin($N) \
ext::AbsList -out absIds -x $Ids -axisX "Vgate" -axisY "absId"
# Create variable absId using the Tcl list absIds. This helps the wrapper script to distinguish the curves
create_variable -name absId -dataset PLT_Lin($N) \ to be visualized. The name of the curve being
-values $absIds visualized automatically contains the corresponding
# Create Id-Vg curve. node identifier.
create_curve -name IdVgLin($N) -dataset PLT_Lin($N) \
-axisX "gate OuterVoltage" -axisY "absId" ■ Ensure that a Sentaurus Visual plot with a particular
plot name is created only if it does not exist. In
A dataset loaded from a .plt file contains variables addition, the plot must be selected before curves are
corresponding to the terminal voltages, currents and so on. plotted using the command select_plots.
Curves can be created either from these variables or by
computing new variables. Figure 5 on page 9 shows the multiple Id–Vgs curves for
four different cases (four Sentaurus Workbench
Here, since the PMOS drain current is negative, its Id–Vgs experiments).
curve is created after computing the absolute value of the
drain current using the procedure ext::AbsList, storing Extraction Using Extraction Library of
these values in the Tcl variable absIds, and creating the Sentaurus Visual
variable absId in the dataset PLT_Lin($N). The variables
"gate OuterVoltage" and "absId" are used to create The extractions are performed using the extraction library of
the Id–Vgs curve: Sentaurus Visual. In addition, the extraction library has
create_curve -name IdVgLin($N) -dataset PLT_Lin($N) \ some utility procedures for operating on lists. For example,
-axisX "gate OuterVoltage" -axisY "absId" the procedure ext::AbsList computes the absolute value
of all elements of a list.
Since the NMOS drain current is positive, its Id–Vgs curve
can be created directly using the variable "drain The extraction library is loaded automatically when
TotalCurrent": Sentaurus Visual starts. However, if you have disabled the
create_curve -name IdVgLin($N) -dataset PLT_Lin($N) \ automatic loading of extension libraries, you can load the
-axisX "gate OuterVoltage" \ extraction library explicitly with the command:
-axisY "drain TotalCurrent" load_library extract

Curves from one or multiple Sentaurus Visual nodes can be Refer to [2] for more information about this library.
visualized in a single Sentaurus Visual tool instance using
the visualization wrapper script integrated in Sentaurus All procedures of the extraction library are called using the
Workbench. To launch the visualization wrapper script: syntax:
1. Select the Sentaurus Visual nodes. ext::<proc_name> -keyword <value>

2. Click the Run Selected Visualizer Nodes Together Here, <proc_name> is the name of a procedure of the
toolbar button, or choose Nodes > Visualize > Run extraction library, and ext:: is a unique namespace
Selected Visualizer Nodes Together. identifier.
For multiple-node curves, the wrapper script merges the Each procedure has several arguments. The procedure
selected Sentaurus Visual inputs into one command file and arguments have the form:
then evaluates the file. Therefore, to avoid any unexpected
behavior while visualizing multiple-node curves using the -keyword <value>
wrapper script, the following requirements must be met:
These arguments can be specified in any order. For some
■ Sentaurus Visual nodes must be either executed or keywords, default values are predefined. Such arguments
preprocessed before the wrapper script is launched can be omitted. The keywords and their default values, if
since Sentaurus Workbench looks for the file any, are documented in [2].
pp@node@_vis.cmd to be available.
■ In the Sentaurus Visual master input file, you must For example, the procedure ext::ExtractVtgm extracts
ensure that the curve name and the dataset name the threshold voltage from an Id–Vgs curve using the
include a unique node identifier, for example, $N: maximum transconductance method as follows:
set N @node@ ext::ExtractVtgm -out Vt -name "Vtgm" \
set Type @Type@ -v $Vgs -i $absIds

8 Copyright © 2019 Synopsys, Inc. All rights reserved.


Figure 5 Id–Vgs (lin) curve from four different experiments (four nodes) plotted in a single Sentaurus Visual tool instance

The Id–Vgs curve is represented by two Tcl lists: Vgs and Here, the following command sets the information level to 1
absIds. The Vgs list contains the gate voltage points, and for all procedures of the extraction library:
the absIds list contains the corresponding absolute value lib::SetInfoDef 1
of the drain current values. The keywords -v and -i of the
procedure ext::ExtractVtgm are set to Vgs and absIds As a result, the following lines are printed in the Sentaurus
(-v $Vgs -i $absIds), respectively. Visual runtime output file:
DOE: Vtgm 0.316
All procedures of the extraction library pass the results back
Vtgm (Max gm method): 0.316
to the calling program by storing the results in a Tcl
variable. The name of this Tcl variable is specified as the
If the extraction library procedure cannot extract the
value of the -out keyword. Here, the extracted threshold
parameter, the parameter is set to the character ‘x’ and a
voltage is stored in the Tcl variable Vt since the keyword
message is printed in the output file. In the case of
-out is set to Vt (-out Vt).
ext::ExtractVtgm, the following message is printed:
All procedures of the extraction library beginning with DOE: Vtgm x
ext::Extract pass the extracted value to the Sentaurus ext::ExtractVtgm: Vtgm not found!
Workbench Family Tree (if the -name keyword differs from
"noprint"). The extracted quantity is displayed as a Extracting CMOS Parameters
Sentaurus Workbench variable. Here, since -name "Vtgm"
is used, the extracted threshold voltage value is displayed as The procedure ext::ExtractVtgm for extracting the
the Sentaurus Workbench variable Vtgm. threshold voltage using maximum transconductance method
is discussed in Extraction Using Extraction Library of
All procedures of extraction library beginning with Sentaurus Visual on page 8.
ext::Extract also print the extracted value in the output
file (with the extension .out). The amount of information to The procedures ext::ExtractVti, ext::ExtractSS,
be printed in the output file depends on the information ext::ExtractGm, and ext::ExtractIoff are used to
level specified using the procedure lib::SetInfoDef. extract the threshold voltage for a given subthreshold

Copyright © 2019 Synopsys, Inc. All rights reserved. 9


current level, subthreshold voltage swing, maximum depending on whether in this experiment an NMOS or a
transconductance, and drain leakage current, respectively. PMOS structure is created.

IdLin and IdSat are extracted using the procedure Similarly, the Tcl list Lgs contains, for all experiments, a
ext::ExtractExtremum, which extracts the maximum of ‘parallel’ list of values of another Sentaurus Workbench
a curve if the keyword type is set to max: input parameter, which for example contains the value of
ext::ExtractExtremum -out Idmax -name "IdLin" \ the gate length of the given MOSFETs. The corresponding
-x $Vgs -y $absIds -type "max" extracted parameter can be accessed in the same way. For
example, the Tcl list Vtgms contains the extracted values
The on-state resistance Ron is extracted from the Id–Vds for the threshold voltage for each respective experiment.
curve with the highest gate bias (Vgs = Vdd) and at the
drain voltage of 80% of Vdd for NMOS using the procedure These lists are used to plot the roll-off curves. However, to
ext::ExtractRdiff: plot the roll-off curves only for NMOS (PMOS) devices, the
values for all the PMOS (NMOS) devices must be filtered
ext::ExtractRdiff -out Ron -name "out" \
-v $Vds -i $Ids -vo [expr 0.80*$Vdd]
out from the above lists, and new lists containing values
only for NMOS (PMOS) devices must be created. This
Here, the Tcl list Vds contains the drain voltage points and filtering is performed by the ext::FilterTable
the Tcl list Ids contains the corresponding drain current procedure. The syntax of this procedure is:
values. ext::FilterTable -out <var_name> -x <list_of_r> \
-y <list_of_r> -conditions <array_name> \
The gate capacitances mentioned in Sentaurus Visual: -ncond <i>
PlotCV on page 4 are extracted using the procedure
ext::ExtractValue. This procedure extracts, for a given The lists of x- and y-values, which are to be processed
target x-value, the (first) corresponding interpolated y- (filtered) for creating the graph, are specified using the
values in a curve. keywords -x and -y. For example, the Vt roll-off curves for
NMOS devices are created using the command:
For example, Cg0 is extracted using: ext::FilterTable -out LgVtgm -x $Lgs -y $Vtgms \
-conditions Conditions -ncond 2
ext::ExtractValue -out Cgg0 -name "Cg0" \
-x $Vgs -y $Cggs -xo 0.0
Here, the lists of gate lengths ($Lgs) and threshold voltage
Refer to [2] for more details about the abovementioned values ($Vtgms) are processed by ext::FilterTable.
procedures of the extraction library.
The keyword -conditions controls the conditions an
experiment must fulfill to be included in the graph. The total
Plotting Roll-off Curves Using Sentaurus
number of conditions is specified by the keyword -ncond.
Visual All conditions are specified in a string-indexed array using
the keyword -conditions. Each condition is defined by
The last instance of Sentaurus Visual in the Sentaurus both a target value and a corresponding list of Sentaurus
Workbench tool flow gathers the extracted values and plots Workbench parameters. The target value is the required
them for each device as a function of the gate length. These value of the parameter to be used as a filter condition.
roll-off curves are generated using the extraction library
procedure ext::FilterTable. Each element of the string-indexed array has two indices.
The first index is either "Target" or "Values". The
The Sentaurus Visual script RollOff_vis.tcl uses the second index is the condition number. For each condition
dynamic preprocessing feature of Sentaurus Workbench number:
@<parameter_name>:all@ to access the list of input
parameters and extracted values. For example, the lists ■ The target value is specified using the "Target"
Types, Lgs, and Vtgms are generated automatically as a element (element with first index named "Target") of
result of the following commands in the Sentaurus Visual the array.
script RollOff_vis.tcl: ■ The corresponding list of Sentaurus Workbench
set Types [list @Type:all@] parameters is specified using the "Values" element
set Lgs [list @lgate:all@] (element with first index named "Values") of the
set Vtgms [list @Vtgm:all@] array.

Here, the Tcl list Types contains, for all experiments, the
values of the Sentaurus Workbench input parameter Type,
which for example takes on the values nMOS or pMOS,

10 Copyright © 2019 Synopsys, Inc. All rights reserved.


For example, to filter out all gate lengths (Lg) and threshold fails, the extraction procedure sets the parameter to the
voltage (Vtgm) values for NMOS devices, this condition is character x.
defined using the array named Conditions:
set Conditions(Target,1) "nMOS" In addition, if an I–V or a C–V simulation is suppressed by
set Conditions(Values,1) $Types setting the corresponding Sentaurus Workbench logical flag
to 0, for example IdVd=0 (see General Simulation Setup on
The keyword -conditions is set to the array named page 3), the values of the corresponding extracted
Conditions (-conditions Conditions). parameters remain at their initialization value x.

Here, only one condition is defined. Therefore, the keyword


-ncond is set to 1 (-ncond 1). The target value is "nMOS" 0.25
and the Sentaurus Workbench list is $Types. This selects
all experiments for the NMOS devices.

Gate Voltage [V]


0 Vtgm (NMOS)
The procedure returns an array (specified by the keyword Vtgm (PMOS)
-out) with a one string-valued index. The index contains
the elements X and Y. The values of the X element are a
subset of a list of values, specified using the keyword -x. -0.25
These values are in ascending order. The values of the Y
element are a subset of a list of values, specified using the
keyword -y. These lists in the array can be used to create a
-0.5
graph.
0.1
Here, the procedure returns the array LgVt (-out LgVt) Gate Length [µm]
consisting of a list of Lg values and a list of Vtgm values for Figure 6 Threshold voltage as function of gate voltage for NMOS (blue) and
NMOS devices. The Lg and Vtgm values for PMOS devices PMOS (red) devices
are not included. These lists can be used directly for
creating the Vt roll-off curve for NMOS devices as follows:
References
create_plot -1d -name Plot_VtRollOff
create_variable -name Lg -dataset VtgmLg($N) \ [1] Advanced Calibration for Device Simulation User
-values $LgVtgm(X) Guide, Version P-2019.03, Mountain View,
create_variable -name Vtgm -dataset VtgmLg($N) \ California: Synopsys, Inc., 2019.
-values $LgVtgm(Y)
create_curve -name Vtgm($N) -dataset VtgmLg($N) \ [2] Sentaurus™ Visual User Guide, Version P-2019.03,
-axisX "Lg" -axisY "Vtgm" Mountain View, California: Synopsys, Inc., 2019.

Refer to [2] for an example of using ext::FilterTable


for multiple conditions.

As an additional feature, the ext::FilterTable


procedure uses the character ‘x’ as a marker, which
identifies that a certain electrical parameter was not
extracted or could not be extracted. The procedure removes
these entries automatically.

In the Sentaurus Visual plotting and extraction input files


(Plot*_vis.tcl), each extracted variable is initialized
with the Sentaurus Workbench preprocessor directive #set
to the ‘remove’ character. For example, at the beginning of
PlotIdVg_lin_vis.tcl are the following lines:
#set Vtgm x
#set VtiLin x
#set IdLin x
#set SSlin x
#set gmLin x

As discussed in Extraction Using Extraction Library of


Sentaurus Visual on page 8, if the extraction of a parameter

Copyright © 2019 Synopsys, Inc. All rights reserved. 11

You might also like