Tips & Tricks
1. Three-Dimensional Simulations With Sentaurus Process

1.1 Do I need special settings for 3D process simulation mode?
1.2 What can I do if my 3D process simulation fails?
1.3 What can I do with 3D MGOALS?
1.4 Which resolution should I use with 3D MGOALS?
1.5 When should I switch off the repair function (!repair) in 3D MGOALS?
1.6 Can user-defined geometry be combined with 3D MGOALS geometry?
1.7 How do I prepare process results for device simulation?
1.8 I have a layout in a specific format. Can it be used in Sentaurus Process?
1.9 Which type of mesh is needed for 3D diffusion simulations?
1.10 Which type of mesh is needed for 3D mechanics simulations?
1.11 Which solver settings should I use for 3D simulations?
1.12 How many particles should I use for 3D Monte Carlo implantation simulations?
1.13 What sort of speedup can I expect when using multithreading in 3D simulations?
1.14 Can moving boundaries be simulated in three dimensions?

Objectives

1.1 Do I need special settings for 3D process simulation mode?

No special settings are needed to switch to 3D process simulation mode in Sentaurus Process.

Sentaurus Process uses MGOALS to simulate geometry changes during process simulation. MGOALS is an internally developed library targeting simulation of process-oriented steps such as etching and deposition.

1.2 What can I do if my 3D process simulation fails?

In most cases, nontrivial failures of 3D process simulations occur during meshing. The primary reason for these failures is the poor quality of the input geometry or the geometry boundary for meshing.

For the purpose of studying and correcting such failures, the following steps are recommended:

  1. Simulate all geometries by commenting out all steps that require meshing (such as diffusion, implantation, stress, saving, and splits). To obtain additional information about the geometry, specify info level 1: pdbSet InfoDefault 1
  2. Save snapshots of the geometry in TDR boundary format: struct tdr.bnd=<c>
  3. Examine the log file. Pay attention to the value of minDihedralAngle. If its value is less than 1, you can expect potential problems with the subsequent meshing steps.
  4. For problematic steps, examine the saved snapshots and consider making small changes to the operation. For example, adding a small isotropic component to anisotropic operations can often result in significantly improved geometry quality. In many cases, anisotropic operations can be combined into simple multimaterial etching with the same rate for all materials (a prime example of this is spacer etching).
  5. When you are satisfied with the geometry metrics, activate all steps and rerun the entire simulation.
  6. For very complicated long-running flows, you also can consider checking the robustness of the meshing by replacing a step that requires a mesh with grid remesh.

For more details about the MGOALS module, refer to the Sentaurus™ Process User Guide.

1.3 What can I do with 3D MGOALS?

The 3D MGOALS module supports practically all geometric operations used in TCAD. For the simulation of these operations, the main algorithms used are fast level set, full level set, and MGOALS (proprietary) geometric.

Table 1. Main geometric operations and algorithms used by default.
3D MGOALS operation Default algorithm
Isotropic etching and deposition Fast level set
Anisotropic (vertical) etching and deposition MGOALS geometric
Trapezoidal, directional etching and deposition MGOALS geometric
Chemical-mechanical polishing, strip, and fill MGOALS geometric
Selective deposition Fast level set, or geometric based on the type
Crystallographic etching and deposition Full level set
Polyhedron insertion MGOALS geometric
Fourier etching and deposition Full level set

Anisotropic, isotropic, and directional operations can be forced to use the full level-set algorithm by adding the force.full.levelset option. In general, this should be used only in special cases such as multimaterial etching with different rates for the different materials, or material exposure detection.

1.4 Which resolution should I use with 3D MGOALS?

In general, the default setting is recommended for most geometry simulations with MGOALS.

In some cases though, it might be beneficial to adjust the default resolution. One example is when working with a large structure. To reduce CPU time and memory usage and, at the same time, to decrease the complexity of the structure (and thereby the load on Sentaurus Mesh), you might want to increase the default resolution. But by how much?

It is recommended to have at least three resolution layers in the geometry feature when operations are performed. For fast level set, this can be set by the corresponding mgoals setting:

mgoals resolution=1.0/3.0

A different argument is used to control the full level-set resolution:

mgoals full.resolution=0.1

1.5 When should I switch off the repair function (!repair) in 3D MGOALS?

The repair function in the MGOALS module eliminates very small features in the geometry (slivers). Such small features can be the result of many simulation steps with numeric and round-off errors. By eliminating these small features, the load on Sentaurus Mesh is reduced and, therefore, the simulation success rate is increased. That is why this option is switched on by default.

The repair function works by encapsulating small features with the host material. Upon close examination of the resulting structures, you might notice some uneven patches, or scars, on the surfaces. In many cases, these should not have any detrimental effect on the simulation. However, in rare cases, these patches can result in complications in some operations, following the one when the repair was performed. In such cases, it can be beneficial to switch off the repair function by adding the flag !repair in that etch or deposit command.

An example is a sequence of an anisotropic operation, followed by an isotropic operation of the same material. The anisotropic operation might force geometry repair and create a patch on the material surface, and then as a result of the isotropic operation, this patch will grow. By switching off the repair function for the anisotropic operation, however, you can avoid this surface artifact.

1.6 Can user-defined geometry be combined with 3D MGOALS geometry?

Yes, it can. There are two ways to do that. The external geometry can be either created outside of Sentaurus Process using Sentaurus Structure Editor and then loaded, or created on the fly and then incorporated into the structure.

You can create a structure in a stand-alone Sentaurus Structure Editor run and save the geometry as a TDR boundary file. Then, the geometry can be inserted by the following commands:

polyhedron name= <MyPolyhedron> tdr= <name>
insert polyhedron= <MyPolyhedron>

The first command imports the external geometry, and the second command incorporates it into the current structure.

The inserted external object must be properly aligned with the Sentaurus Process structure. Users are responsible for placing the external geometry at the proper location with respect to the simulation structure when creating it.

In addition, polyhedra can be created internally in Sentaurus Process by using bricks or by specifying them point by point using the polyhedron command. For more details, refer to the Sentaurus™ Process User Guide.

1.7 How do I prepare process results for device simulation?

Often, the mesh requirements for device simulation differ from those for process simulation since the equations solved are different. That is why it is advisable to create a new mesh starting from scratch as the final step in the process simulation. This usually involves the following steps:

  1. Clear the process simulation mesh:
    refinebox clear
    refinebox !keep.lines
    line clear
    
  2. Reset the default settings for adaptive meshing in Sentaurus Process:
    pdbSet Grid AdaptiveField Refine.Abs.Error 1e37 
    pdbSet Grid AdaptiveField Refine.Rel.Error 1e10 
    pdbSet Grid AdaptiveField Refine.Target.Length 100.0
    
  3. Set high-quality Delaunay meshes:
    pdbSet Grid SnMesh DelaunayType boxmethod
    
  4. Set the interface spacing for the device mesh:
    pdbSet Grid SnMesh min.normal.size <n>
    pdbSet Grid SnMesh normal.growth.ratio.3d <n>
    pdbSet Grid SnMesh max.box.angle.3d <n>
    
  5. Set which interfaces will have interface meshes, for example, silicon:
    refinebox interface.materials= {Silicon}
    
  6. Switch on field adaptive refinement:
    pdbSet Grid Adaptive 1
    
  7. Specify lines if necessary:
    line y location= $Ymin+0.001
    line z location= $Zmin+0.001
    
  8. Specify the refinement strategy, for example:
    refinebox mask=Device_Active xtop=-0.05 xbot=0.2 \
      refine.fields= {NetActive} def.max.asinhdiff= 1.0 \
      refine.max.edge= "0.02/$fd $PolyPitch/(8*$fd) $IsoPitch/(8.0*$fd)" \
      refine.min.edge= "0.005/$fd $PolyPitch/(16*$fd) $IsoPitch/(16.0*$fd)" \
      adaptive Silicon add
      ...
    

1.8 I have a layout in a specific format. Can it be used in Sentaurus Process?

TCAD Sentaurus features an interface to the Synopsys layout editor IC WorkBench Edit/View Plus (ICWBEV Plus). It allows you to view and edit layouts in most of the industry-standard formats including GDSII and OASIS. One advantage of ICWBEV Plus over existing TCAD layout editors is its support of very large layout files through efficient memory management.

The files typically associated with the ICWB layout interface in Sentaurus Process are the original layout file, the Sentaurus markup file, and the TCAD layout file. ICWBEV Plus stores TCAD-specific information in the markup file such as the simulation domain, stretch lines, and auxiliary layers, for the purpose of editing the markup information at a later time when needed. The layout information relevant to the TCAD Sentaurus tools is stored in the TCAD layout file.

1.9 Which type of mesh is needed for 3D diffusion simulations?

Optimizing the number of grid points for a diffusion simulation is a very important task. On the one hand, you must ensure that you have an adequate mesh where it is needed. On the other hand, an excessive mesh can reduce the speed performance of the simulation. The optimum spacing is determined usually by how well you can capture segregation effects.

Based on previous experience, a 2–5 nm interface spacing in the channel for CMOS technology simulations is a good starting point. One-dimensional simulations of the profiles in the important areas are very helpful to determine the adequate interface spacing.

The maximum number of points produced by Sentaurus Mesh is set to 500 000 by default. In some cases, especially for large structures and complicated geometries, this might be insufficient and it is recommended that you increase this number, for example:

pdbSet Grid SnMesh MaxPoints 800000

1.10 Which type of mesh is needed for 3D mechanics simulations?

The requirements for meshes to simulate mechanics effects are less stringent than those for diffusion simulation. For high-accuracy stress simulations, Delaunay-type meshes are not required. That is why constrained or conformal (default) delaunization with Sentaurus Mesh would be sufficient. It is also necessary to refine only the material interfaces for accurate mechanics simulations. A mesh spacing of 5 nm is usually sufficient to accurately capture these effects. In rare cases, with structures having many details, you might need to use a smaller interface refinement but not below 1 nm.

1.11 Which solver settings should I use for 3D simulations?

The default settings are appropriate for most 3D simulations.

The solvers available in Sentaurus Process are:

The direct solver PARDISO is used by default in 1D and 2D mechanics simulations because of its robustness. However, direct solvers are usually memory intensive and slower than iterative ones, which is why the iterative solver ILS is used by default for all diffusion and 3D mechanics simulations.

The SetPerformanceMode command in Sentaurus Process helps to accelerate diffusion steps in a simulation.

For more information about solver settings, see Section 6.4 Linear Solvers.

1.12 How many particles should I use for 3D Monte Carlo implantation simulations?

It is very important in Monte Carlo implantation to choose the optimal number of pseudoparticles for the simulation. In 3D simulations, by default, this number is specified per 2500 nm2 surface area. This number usually varies between tens of thousands to hundreds of thousands.

The speed of the simulation depends on the implantation conditions and the number of particles. In general, tilted implantations of light elements can take a significant amount of time to perform, since there are many statistical events (for example, scattering and channeling) that must be taken into account.

The number of pseudoparticles in a simulation is not the same as the real number of ions implanted in the structure. In practice, it is recommended to simulate pseudoparticles 1000 times the real number of implanted ions.

1.13 What sort of speedup can I expect when using multithreading in 3D simulations?

The main modules of Sentaurus Process have been written and optimized to run in parallel.

Table 2. Summary of parallel performance for different operations.
Operation 1 thread 2 threads 4 threads 8 threads 16 threads
Assembly 1.0 1.2 1.7 2.1 2.3
Diffusion 1.0 1.6 2.6 3.6 4.0
Implantation 1.0 2 3.6 7.5 15
Mechanics 1.0 1.7 2.2 3.8 4.1

These numbers are provided as a guide only. Parallel performance of different parts of Sentaurus Process is improving continually, and the actual numbers that you observe might be different.

1.14 Can moving boundaries be simulated in three dimensions?

Moving boundaries and the geometry modifications associated with them are among the most challenging tasks in three dimensions. Even though Sentaurus Process can simulate process steps such as oxidation and silicidation in three dimensions, it is not recommended for everyday simulations because simulation times can be long. Instead, such steps can be considered on a case-by-case basis.

If there is concern about some specific effects such as oxidation-enhanced diffusion, during diffusion, you can simulate 3D oxidation without moving boundaries by specifying:

pdbSetBoolean Grid DoNotMove.Reaction 1

When it is necessary to include the simulation of moving boundaries, you can use the experimental MovingMesh algorithm. MovingMesh performs local mesh transformation during moving-boundary operations in three dimensions (oxidation or silicidation):

pdbSet Grid Use.MovingMesh 1

MovingMesh relies on two internal algorithms DelPSC and MLS. DelPSC performs the actual mesh transformation, cleanup, and quality improvements. Several parameters control DelPSC operations, with the main ones being:

pdbSet Grid MovingMesh Apply.Brep.DelPSC 1
pdbSet Grid MovingMesh Apply.Brep.DelPSC.Resolution <n>   ;# um
pdbSet Grid MovingMesh Apply.Brep.DelPSC.Accuracy   <n>   ;# um

In rare cases, the moving-boundary geometry can develop some small features that will limit the robustness and the maximum-possible time step during the simulation. To avoid such situations, MLS is used to "repair" the geometry. The main criteria when to call MLS are:

pdbSet Grid MovingMesh Repair.Geometry.Min.Dihedral.Angle <n>
                                               ;# deg (typically 0.1)
pdbSet Grid MovingMesh Repair.Geometry.Max.Face.Angle <n>
                                               ;# deg (typically 179.5)

Parameters that are used to control MLS typically include its resolution:

pdbSet Grid MovingMesh Repair.Geometry 1
pdbSet Grid MovingMesh Repair.Geometry.Resolution <n>   ;# um

To simplify the setting of all parameters related to MovingMesh, Sentaurus Process provides the command:

Set3DMovingMeshMode <n>

where <n> is usually the smallest layer thickness (in μm) in the structure.

main menu    |   module menu    |   << previous section    |   next section >>