Creating High-k Metal Gate Stack: Si/SiO2/HfO2/TiN.¶
Introduction.¶
This tutorial demonstrates how to create a high-k metal gate stack heterostructure consisting of four materials: Si (substrate), SiO2 (gate oxide), HfO2 (high-k dielectric), and TiN (metal gate). The process involves:
- Creating individual slabs for HfO2 and TiN
- Building the Si/SiO2 interface using strain matching
- Adding the pre-created slabs sequentially using simple interface builder
Reference
QuantumATK tutorial: High-k Metal Gate Stack Builder 12
We use the Materials Designer to create the high-k metal gate stack as shown in the figure below.
1. Set Up Materials.¶
First, navigate to Materials Designer and import from Standata the following materials:
- Silicon (Si)
- Silicon dioxide (SiO2)
- Hafnium dioxide (HfO2)
- Titanium nitride (TiN)
2. Create HfO2 and TiN Slabs.¶
Before building the stack, we need to create properly terminated slabs for HfO2 and TiN.
2.1. Create HfO2 Slab.¶
More detailed instructions on slab creation can be found in the SrTiO3 Slab tutorial.
Open create_slab_with_termination.ipynb
and set parameters:
# HfO2 slab parameters
MILLER_INDICES = (0, 0, 1)
THICKNESS = 4 # atomic layers
VACUUM = 0.5 # Angstroms
XY_SUPERCELL_MATRIX = [[1, 0], [0, 2]]
USE_ORTHOGONAL_Z = True
USE_CONVENTIONAL_CELL = True
# Select termination (usually first one is fine)
TERMINATION_INDEX = 0
Run the notebook to create the HfO2 slab and pass it to Materials Designer.
2.2. Create TiN Slab.¶
Open another instance of create_slab_with_termination.ipynb
for TiN:
# TiN slab parameters
MILLER_INDICES = (0, 0, 1)
THICKNESS = 3 # atomic layers
VACUUM = 10.0 # Angstroms - more vacuum for final layer
XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]]
USE_ORTHOGONAL_Z = True
USE_CONVENTIONAL_CELL = True
TERMINATION_INDEX = 0
Run the notebook to create and pass the TiN slab to Materials Designer.
3. Create Si/SiO2 Interface.¶
3.1. Launch ZSL Interface Builder.¶
Open create_interface_with_min_strain_zsl.ipynb
and configure:
MAX_AREA = 200 # Maximum area for strain matching
MAX_AREA_RATIO_TOLERANCE = 0.25 # Maximum area ratio tolerance
MAX_ANGLE_TOLERANCE = 0.15 # Maximum angle tolerance
MAX_LENGTH_TOLERANCE = 0.15 # Maximum length tolerance
FILM_INDEX = 1 # SiO2
FILM_MILLER_INDICES = (1, 0, 0)
FILM_THICKNESS = 3
FILM_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]]
FILM_VACUUM = 0.0
FILM_USE_ORTHOGONAL_Z = True
SUBSTRATE_INDEX = 0 # Si
SUBSTRATE_MILLER_INDICES = (1, 0, 0)
SUBSTRATE_THICKNESS = 4
SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]]
SUBSTRATE_VACUUM = 5.0
SUBSTRATE_USE_ORTHOGONAL_Z = True
INTERFACE_DISTANCE = 2.5 # Angstroms
INTERFACE_VACUUM = 5.0 # Angstroms
TERMINATION_PAIR_INDEX = 0
We set a higher tolerances to achieve smaller cell with higher strain of the film (SiO2).
3.2. Create Initial Interface.¶
Run the notebook to create the Si/SiO2 interface. This is the most critical interface, so we use strain matching to optimize it.
4. Add HfO2 Layer.¶
4.1. Configure Simple Interface Builder.¶
Open JupyterLite Session again and select the Si/SiO2 interface and HfO2 slab as input materials.
Open create_interface_with_no_strain.ipynb
and set:
# Important: Disable slab creation since we're using pre-created slab
ENABLE_FILM_SCALING = True
CREATE_SLABS = False # We already have our HfO2 slab
FILM_INDEX = 1 # Pre-created HfO2 slab
SUBSTRATE_INDEX = 0 # Si/SiO2 structure
# Interface parameters
INTERFACE_DISTANCE = 2.5 # Angstroms
INTERFACE_VACUUM = 0.5 # Angstroms
Film is the material that will be strained (scaled) to match the substrate.
4.2. Add HfO2.¶
Run the notebook to add the pre-created HfO2 slab to the Si/SiO2 structure.
5. Add TiN Layer.¶
5.1. Configure Final Layer Addition.¶
Similar to steps in Section 4, we add the TiN layer to the Si/SiO2/HfO2 stack.
Use create_interface_with_no_strain.ipynb
again:
# Keep slabs disabled
ENABLE_FILM_SCALING = True
CREATE_SLABS = False # Using pre-created TiN slab
FILM_INDEX = 1 # Pre-created TiN slab
SUBSTRATE_INDEX = 0 # Si/SiO2/HfO2 structure
# Final interface parameters
INTERFACE_DISTANCE = 2.5 # Angstroms
INTERFACE_VACUUM = 10.0 # Final vacuum spacing
5.2. Complete the Stack.¶
Run the notebook to add the TiN layer and complete the stack.
The user then can save or download the material in Material JSON format or POSCAR format.
Interactive JupyterLite Notebook.¶
The following JupyterLite notebook demonstrates the process of creating target material. Select "Run" > "Run All Cells".
References.¶
-
D A Muller, N Nakagawa, A Ohtomo, J L Grazul, and H Y Hwang. The electronic structure at the atomic scale of ultrathin gate oxides. Nature, 399:758–761, 1999. URL: https://doi.org/10.1038/21667. ↩
-
J Robertson. High dielectric constant gate oxides for metal oxide si transistors. Reports on Progress in Physics, 69:327, 2006. URL: https://doi.org/10.1088/0034-4885/69/2/R02. ↩