Simulate 3D semiconductor or MEMS process cross sections
64 bit windows only - latest version 3.2.1 (11/16/2024)
Process cross sections for semiconductor or MEMS fabrication, like the simple one on the right, are difficult to draw by hand.
This software is to help their visualization.
All you need is a GDS file for the mask layout and a process file to specify the process steps.
Edit your process file and place it in a working folder on your PC. How to make the process file is described below.
Run XView and load the GDS file through menu "Load GDS". The GDS file can be located anywhere on your PC.
Open the process file through menu "Run Process". This will start the process simulation.
The render window will render the process cross sections after each process step.
The console window will display relevant information including possible errors found in the process file.
When the process simulation is done you can navigate with the arrow keys through the cross sections after each process step.
You can save the renderings to high resolution images inside your working folder by selecting the "Save images" menu. The images have a better resolution than the preview images in the render window.
A GDSII file, also called GDSII (or simply GDS) database, determines the mask layout. It consists of cells each with one or more mask layers that in turn each consist of polygons that determine where the mask is dark or clear.
With layout software like KLayout a you can create a GDS file with a mask layout yourself.
The picture on the right is an example of a simple layout with two mask layers for a toy FINFET. The gate mask is in blue (only 1 polygon) and the red layer the source drain (only 7 polygons).
A process file is a simple text file you can easily create with most editors or IDEs. It's a text (*.txt) file consisting of a list of commands that give some general settings, the location of the cross section in the GDS file, and the processing steps you want to simulate.
Lines in the process file consist of a command followed by a list of arguments with values. All arguments start with a dash, for example -thickness. There is no specific order in which the arguments need to be given. The commands with their arguments are listed in the table below. Arguments between square brackets [...] are optional. Empty lines and lines starting with a # are ignored and can be used for comments or commenting out lines.
The following are all the commands in XView process file specifications version 4 which is introduced with XView 3.1.0.
Process file specification version 4
Command | Argument | |
settings | -version | Followed by an integer specifying the process file specifications version. Needs to be 4 for XView version 3.1.0 and later. |
[-N] | Followed by an integer specifying the number columns used for the process simulation. The default is 1000 columns. It is followed by a whole number from 200 (fast execution but low resolution) to 2000 (slow execution, high resolution, and high memory use). | |
[-angle] | Followed by and integer 0 to 90 (changed from 89 in spec 3) specifying the camera angle with respect to the horizontal in degrees. 90 degrees gives a vertical top view of the cross section. The default is 30. | |
[-use_nm] | If present, specifies that nm units are used for horizontal location (location command) and resolution dimensions (photo command). If not present, these dimensions are in micron units. Vertical dimensions are always in nm so having this parameter or not has no effect. | |
[-heights] | If present, a height map is shown. The heights are with respect to the substrate surface in angstrom. | |
[-legend] | If present, a layer legend with material names is included to the left of the cross section. | |
gds | -cell | Followed by a string without spaces specifying the GDS cell name the cross section is taken from. |
location | -x | Followed by a decimal number specifying the x coordinate of the cross section in the cell specified by the gds command. Either in um or nm (see the -use_nm argument of setting). |
-y | Followed by a decimal number specifying the y coordinate of the cross section. | |
-dx | Followed by decimal number specifying the width of the cross section. | |
-dy | Followed by decimal number specifying the horizonal height of the cross section. | |
deposition | -name | Followed by a string without spaces specifying the name of the material deposited. The name can not be used in previous deposition or coating steps: each material deposited or coated needs to have a unique name. |
-type | Followed by a string specifying the type of material being deposited in this layer. It can be same type name as of a material deposited or coated earlier. | |
-thickness | Followed by a positive decimal number with the thickness of the material to be deposited in nm. | |
[-sc] | Followed by a decimal number from 0.0 (default) to 1.0 specifying the step coverage of the deposition as fraction of the film thickness. | |
[-color] | Followed by 4 integers specifies the layer color in the RGBL format. The first three specify the R, G, and B values from 0 to 255. The fourth integer specifies a luminance percentage from 0 to 100. If this argument is not given the -scolor argument (below) is mandatory. | |
[-scolor] | Followed by a string without spaces specifying the layer color following the X11 color standard. It is followed by a string (no spaces allowed) specifying a X11 standard color. If this argument is not given, the -color argument (above) is mandatory. | |
[-alpha] | Followed by a decimal number from 0.0 to 1.0 specifying the transparency of the layer color. Here 0.0 is completely transparent and 1.0 is completely opaque. | |
coating | -name | See the -name argument of the deposition command. |
-type | See the -type argument of the deposition command. | |
-thickness | See the -thickness argument of the deposition command. | |
[-dop] | Followed by a decimal number from 0.0 to 1.0 (default) specifying the degree of planarization of the coating step. A degree of planarization of 1.0 will result in a flat film regardless of the underlying topography while 0.0 will result in a conformal film. | |
[-color] | As the -scolor argument of the deposition command. | |
[-scolor] | As the -scolor argument of the deposition command. | |
[-alpha] | As the -alpha argument of the deposition command. | |
photo | -name | Followed by a string without spaces specifying the name of this photo step. The name is used in the description of the photo step and in the file name when saving the images. The name cannot have been used by a previous photo step. |
-mask_id | Followed by an integer 0 to 65535 that specifies the GDS mask layer number for the mask in this photo step. | |
-type | Followed by an integer 0 (clear type) to 1 (dark type) specifying the mask type to be used. | |
-res | Followed by a decimal number larger or equal to 0.0 specifying the resolution of the photo tool for this mask step in um or nm (see the -use_nm argument in the settings command above). For example, for an I line stepper used to make TFTs in the display industry or old semiconductor processes this could be 1.5 um. For a modern EUV process this could be down to around 14 nm. A value of 0.0 means that the photo patterning follows exactly the mask. This is not realistic, but still can be used for illustration purposes. | |
[-taper] | Followed by an integer 0 to 90 (default) specifying the taper angle of the photo resist generated by the photo step. A shallow taper angle on a high aspect ratio photo resist pattern can give undesired results so use with care. The taper angle of the resist will transfer into the taper angle of the underlying material(s) in subsequent etch steps. | |
-thickness | Followed by a positive decimal number that specifies the photo resist thickness in nm. | |
etch | -name | Followed by a string without spaces specifying the name of this etch step. The name is used in the description of the etch step and in the file name when saving the images. The name cannot have been used by a previous etch step. |
-depth | A decimal number that specifies the etch depth in nm. Needs to be positive. Note that, as a simplification of reality, the etch rates of all etch target materials including photo resist are equal. | |
-targets | Followed by a one or more strings without spaces that specify the material types to be etched. The material types need to have been defined as the -type argument of deposition or coating in previous process steps. | |
-iso | [Updated 10/19/2024] Followed by a number from 0.0 to 5.0 that specifies the horizontal extend of the etch as ratio of the etch depth given by the -depth argument. This can be used to control the etch bias. For example, if the etch depth is specified as 200 nm an isotropy of 2.2 (-iso 2.2) leads to a horizontal etch of about 440 nm. Note that a zero isotropy (-iso 0.0) can prevent materials on sidewalls to be etched. Below an example is shown. | |
strip | -name | Followed by a string without spaces specifying the name of this photo resist strip step. The name is used in the description of the strip step and in the file name when saving the images. The name cannot have been used by a previous strip steps. |
release | -name | Followed by a string without spaces specifying the name of this release step. The name is used in the description of the release step and in the file name when saving the images. The name cannot have been used by a previous release steps. |
-targets | Followed by a one or more strings without spaces that specify the material types to be released. The material types need to have been defined as the -type argument of deposition of coating in previous process steps. |
Here an example process file. In combination with this GDS file, it will render the FINFET process cross section example above. Try this first!
### XVIEW PROCESS FILE EXAMPLE VERSION 4 ###
# SPECIFY GENERAL SETTINGS
# Process file version: 4
# Camera angle: 40 degrees
# Show the layer legend
# Use nm units
# 1000 columns
settings -version 4 -angle 40 -legend -use_nm -N 1000
# GDS CELL NAME IS "TOP"
gds -cell TOP
# CROSS SECTION LOCATION
# In nm units since "-use_nm" was specified above
location -x -7.0 -y -15.0 -dx 115.0 -dy 80.0
#
# PROCESS STEPS
#
# INSULATOR DEPOSITION
# Thickness is 1.1 nm and a step coverage of 50%
# The X11 color is yellow
# The material name is OX and type SIO2
deposition -name OX -type SIO2 -thickness 1.1 -sc 0.5 -scolor yellow
# SOURCE/DRAIN DEPOSITION
deposition -name SD -type MO -thickness 5.5 -sc 1.0 -scolor lightskyblue
# SOURCE/DRAIN PHOTO
# The name of the photo step is SD
# The mask is layer 0 in the GDS file and is of type 1 (dark type)
# The photo resist tapes is 90 degrees
# The photo resolution is 2.0 nm
# The photoresist thickness is 20 nm
photo -name SD -mask_id 0 -type 1 -taper 90 -res 2.0 -thickness 20
# SOURCE/DRAIN ETCHING
# The name of etch step is SD
# The etch targets are materials of type MO (more material types can be added)
# The etch depth is 6.0 nm
# The etch isotropy is 0.0 which means purely vertical
etch -name SD -targets MO -depth 6.0 -iso 0.0
strip -name SD
# GATE INSULATOR DEPOSITION
# Here the -color argument is used to specify the color
deposition -name GI -type SIO2 -thickness 1.1 -sc 1.0 -color 255 255 0 50
# GATE METAL DEPOSITION AND PATTERNING
# The etch steps needs to be partially isotropic (-iso 0.5) in order to remove the GM sidewalls
deposition -name GM -type MO -thickness 1.1 -sc 0.6 -scolor darkgreen
photo -name GM -mask_id 3 -type 1 -taper 90 -res 2.0 -thickness 20
etch -name GM -targets MO -iso 0.5 -depth 2.0
strip -name GM
Having -heights as parameter in the settings commands will result in the images showing the heights of the top layer in the film stack in Angstrom as shown in this example here:
If you setup the process file for a front view using -angle 0 in the settings command, only the heights will only be shown for a single front row like shown here:
This parameter determines how well the coating step covers the underlying topography. The image below is a coating with -dop 1.0 resulting is a close to flat surface.
This parameter determines the directionality of the etch as ratio of the etch depth given by the -depth parameter. A value of 0.0 indicates a purely vertical etch. A value of 1.0 indicates the etch rate is the same in the horizontal and vertical dimension. The effect on CD bias is shown by this example of a etch step with -iso 0.0 and -iso 1.0:
The etch bias in the -iso 1.0 case is roughly the film thickness time 1.0. Note that a fully anisotropic etch with -iso 0.0, just as in reality, can lead to unwanted sidewall spacers like illustrated below:
Version 3.0.0
Version 3.1.0
Version 3.2.0
Version 3.2.1
XView is software to simulate and visualize semiconductor cross sections.
No, XView at the moment only runs on 64-bit Windows.
The trial version is free. It is fully functional but displays a trial text below the cross section. Please contact us for registration information.
XView is written by Jan Willem Bos a semiconductor / MEMS industry profesional.
Or email me at: janwillembos@yahoo.com