XView

Simulate 3D semiconductor or MEMS process cross sections

64 bit windows only - latest version 3.2.0 (8/3/2024)

What's it all about?

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.

How to run XView?

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.

The GDSII File

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).

The Process File

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.

Process File Example

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


The settings -heights parameter

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:


The coating -dop parameter

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.

The etch -iso parameter

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:

XView Versions

Version 3.0.0

  • Patterning commands are split into a photo, etch and photo resist steps.
  • A warning is issued if GDS files contain path types 1 (round ended edges) or 4 (variable length ends) which currently are not supported (not commonly used). Contact us if path types 1 or 4 are on your wish list.
  • The trial text is now displayed below the cross section to be less interuptive.

Version 3.1.0

  • Major changes to the process simulation engine in particular with improvement in isotropic etch.
  • Some changes in process file parameters described above. Starting with 3.1.0 process file version 4 has to be used.

Version 3.2.0

  • Fixed the bug that in some situations when showing the film thickness map the program could crash.
  • Fixed an issue with the etch algorithm in case a hard mask is present.
  • Revised the -dop (degree of planarization) implementation for coatings (notes to be added later).

Frequently Asked Questions

What is XView used for?

XView is software to simulate and visualize semiconductor cross sections.

Is XView compatible with all operating systems?

No, XView at the moment only runs on 64-bit Windows.

Is XView free?

The trial version is free. It is fully functional but displays a trial text below the cross section. Please contact us for registration information.

Who made XView?

XView is written by Jan Willem Bos a semiconductor / MEMS industry profesional.

Connect with Us Online Today!

Or email me at: janwillembos@yahoo.com