Generating A High-k Metal Gate Stack Using the HKMG-Builder

Version: U-2022.12

Introduction

HKMG stacks are complex device building blocks used in transistor gates in modern logic applications. They consist of layers of different materials in different states (e.g. crystalline, poly-crystalline, amorphous). Understanding these stacks at the atomic level will help to tune electronic and structural properties. However, constructing and structurally optimizing such stacks at the DFT level requires considerable computational resources. Instead, we use moment tensor potentials (MTP) which are machine learned force fields (ML-FFs). ML-FFs have become popular in recent years since they can provide ab-initio level of accuracy within a realistic timescale. More information about MTP can be found here.

Workflow

Step 1: Prepare the script using the builder

Open the High-k Metal Gate Stack Builder found in the Supplementary tools section of NanoLab.

../../_images/tools1.png

The builder is pre-populated with a four-layer stack consisting of the semiconductor substrate, an insulating oxide, the high-k material and finally a metallic layer. Different choices of materials are available and all layers can be selected either as crystalline or amorphous. In the case of amorphous layers, the stoichiometry may be specified. For this tutorial, the default settings will not be changed except for the lengths of the outer layers which are considered to be bulk-like. The builder produces a script which will generate the actual HKMG-stack when run. To obtain the script, follow the steps below.

../../_images/update_square_default_stack.png
  1. Change the target length of silicon and titanium nitride to 15 Å.

  2. Click Update to show the stack preview.

  3. Increase the min. surface vector length to 10 Å to filter out small unit cells.

  4. Select the third stack from the bottom of the size-strain plot. This stack has a square base.

  5. Generate the script by clicking on send_to_icon and sending to the Editor or download it here: HKMG_builder_original.py.

Tip

  • The displacement of the layers in the AB plane can be adjusted by clicking into the Displacement vector field and using the mouse wheel or arrow keys. The updated interface will be shown in the preview after pressing enter. This is particularly useful for aligning atoms in crystal-crystal interfaces and reducing defects.

Step 2: Get candidate structures by running the script

The generated script has to be run in order to build the final stack structure. As an alternative, the preview structure can be sent to the Builder to be inspected and manually modified. However, especially for amorphous layers, it is strongly recommended to refine the initial structure using the MultilayerBuilder, which will take care of optimizing interfaces and properly annealing amorphous layers.

Tip

  • To run the MultilayerBuilder efficiently we recommend using OpenMP parallelization.

  • For layers of a certain thickness it might be advisable to change the relaxation_length and interaction_length arguments for better results.

Since generating the amorphous layers is a stochastic procedure, it is not guaranteed that the result of a single script run will yield a stack with satisfactory properties. In the following we will therefore build several candidate stacks by repeating the layer set-up and the MultilayerBuilder run in a loop using different random seeds. Take a look at the modified script (HKMG_builder_loop.py) and optionally change the sample size or the random seed. Then run the script. This step might take several hours on a multi-core workstation.

Note

Validated, ready-to-use MTPs are provided for all material and interface combinations available in the builder. However, user generated potentials can be substituted in the script.

Step 3: Select a high-quality stack from the set of candidates

Now that we have a set of initial candidate structure from step 2, we can proceed to select the best stack configuration. The most important quality criteria to consider are unphysical bonding patterns and various forms of (coordination-) defects formed in particular at the interfaces.

Download the provided script (selectHKMGconfigurations.py) which first checks for too close atoms. Then, it passivates dangling Si-bonds at the Si-SiO2 interface by inserting additional hydrogen and oxygen atoms. Finally it filters out stacks with undesired structural patterns, such as O-O bonds, as well as clearly over- and under-coordinated atoms. Run the script in the same folder containing the builder output to receive a list of low-defect stacks ranked by the number of added saturating hydrogen atoms.