Note: This website might be reported as unsafe by some browsers. This site is plain HTML without scripts. No personal data or cookies are collected and no ads.
Process cross sections for semiconductor or MEMS fabrication can be difficult to draw by hand in 2D and even more so in 3D. The layout can have many overlapping mask layers that can stack up in a complicated way. There can be different film thicknesses, taper angles, and etch biases. Photo lithography generally introduces corning rounding which again is hard to visualize. XView can considerable shorten the time to draw such cross sections. The images it produces can be used for finding issues with the process or for training, process transfer, or other purposes.
Download the latest version (windows x64 only) dated 1/28/2024: download XView 1.4.0.
Note on security warnings: since it contains a windows installer .msi file which can be directly executed to install XView, browsers might give a security warning. To allow the download, for example in Edge click the 3 dots to the right of the warning and some more instructions to trust the download. Also after executing the .msi file another security warning is given and possibly after first time execution as well. The main new features are:
Note: As mentioned above, browsers can give security warnings when downloading the above. You need to give some additional permissions to download it (for example in Edge tell it do keep the download by pressing the 3 dots next to the download) This software or website does not collect personal information of any kind and just does what it says. Only, might you register the software, your email address has to be entered in the program which is tied to a registration code.
For questions or registration of this software please contact email@example.com.
This program is for semiconductor or related engineers that do not want to spend a lot of time drawing process cross sections by hand. The 3D layers are built with process steps given in a custom process file with process commands introduced below. The mask layout for patterning steps is loaded from a standard GDS layout file.
Besides for use for semiconductor and MEMS design and fabrication, this software can be relevant for all manufacturing technologies that use thin film coating/deposition followed by photo lithography and etch to build nano- or micro devices.
The process file specifies the process steps and mask layers used in building the thin film stack. Layers can be deposited, coated, and patterned with a photo mask from a GDS layout. For deposition, step coverage can be specified. For example, the step coverage for CVD or evaporation process is larger than for PVD processes. For coating steps, a degree of planarization can be specified. For patterning steps, photo and etch bias, taper angle, and effects due to photo lithography resolutions can be specified. Also multiple etch target material types can be given. A release process step, commonly used in MEMS, removes a target layer even if fully covered by another layer.
The process file needs to specify the cell name and the location (coordinates) of the target cross section rectangle inside a GDS layout. The GDS layout has to be loaded first. The size of the cross section rectangle needs to be reasonable chosen. If much larger than the device sizes (an extreme zoomed out view) features that are too small can not be visualized. If the cross section rectangle is much smaller than the device sizes and process biases and resolutions (an extreme zoomed in view). For example, if a patterning step has a CD bias of 5 um but the cross section width is 2 um, nothing meaningful can be seen.
An example GDS layout for a very small and simple hypothetical FinFET transistor (created KLayout) could look as follows:
The source GDS file of this example can be downloaded here: Layout Example. Even for such a very simple layout with only a few mask layers the resulting layer stack after fabrication still difficult to visualize. Generally, many more mask steps are involved. After running this through XView with this mask layout and with the example process file in the below, the cross section comes out as follows:
The process file is a text (*.txt) file with processing commands that specify the process step. It also gives some relevant settings like the GDS cell name from which the cross section is to be taken.
This section describes the syntax and use of commands in the process file version 2 (updated 1/25/2024).
Empty lines and lines starting with a # are ignored and can be used for comments or commenting out lines. Otherwise a line in the process file should start with a command identifier followed by arguments that start with a '-'. Some argument are mandatory and some are optional only. Below are all the command identifiers that can be used with their arguments. Arguments can follow the command identifier in arbitrary order. Arguments listed between square brackets [...] are optional.
Specifies general settings. For example
settings -version 2 -N 800 -cam 25
specifies that version 2 of the command spec of this section are followed, 800 columns in the grid, and a camera angle of 25 degrees. The settings command has to be the first command in the process file. All arguments are listed here:
|Specifies the version of the process file. It is followed by a positive integer > 0 indicating the version of the process command specification used.
|Specifies the number of columns used for the process simulation. It is followed by a whole number from 100 to 2000. The number of columns can be up to 2000 but the simulation can take long and requires increasingly more memory. Around 1000 to 1200 columns already gives reasonable quality at faster simulation times and less memory use. For faster test execution runs, for example 400 columns can be used.
|Specifies the camera angle with respect to the horizontal in degrees. It is followed by a whole number from 0 to 40. Zero degrees is equivalent to a front view.
|If present, specifies that nm units are used for all dimensions in the process file. These include the cross section rectangle dimensions, the patterning bias, and photo resolution. If not present, these dimensions are given in micron units. Units for film thicknesses for deposition, coating, and etch depth are always nm.
|If present, specifies that a height map is shown. The height map gives the heights of the cross section in locations across the top layer of the stack, relative to the top of the substrate. Note: that showing the height map when the photo mask feature sizes are much smaller than the cross section rectangle width is not meaningful.
|If present, specifies that a layer legend with the material names is included to the left of the cross section..
Specifies the GDS cell name the cross section is taken from. The GDS file has to be preloaded first as described in the section above. For example
gds -cell TOP
specifies TOP as the cell name to use. It has one argument:
|Specifies the cell name in the GDS database loaded. It is followed by a string without spaces. The cut command introduced below will further specify the target rectangle inside this cell.
Specifies the target rectangle of the cross section. This is the cut command in older version which is still allowed. It has the following arguments:
|Specifies the bottom left x coordinate in um or nm (see the -use_nm argument in the settings command above). It is followed by an integer or decimal number.
|Specifies the bottom left y coordinate in um or nm (see the -use_nm argument in the settings command above). It is followed by a integer or decimal number.
|Specifies the width in um or nm (see the -use_nm argument in the settings command above). It is followed by an integer or decimal number. Note that both a width much smaller (extreme zoom-out) or much larger (extreme zoom-in) than the typical mask feature size and lead to poor visualization. This is discussed in the notes section below.
|Specifies the height in um or nm (see the -use_nm argument in the settings command above). It is followed by an integer or decimal number. The height has to be between 25% and 100% of the cross section width. Starting with version 2, dy is automatically adjusted if outside this range.
Specifies a deposition step. Just dep instead of deposition is also allowed. For example
deposition -name ILD -type SIO2 -sc 0.5 -scolor blue
deposits a dielectric layer with name ILD. The thickness is 500 nm with step coverage 50% of the film thickness, so about 250 nm. The material type is SIO2. The material color is the X11 color blue. Later during patterning, SIO2 can be given as a etch target. Its arguments are:
|Specifies the name of the material deposited. It is followed by a string without spaces. It needs to be a unique name not used before by another layer in the process file.
|Specifies the type of material being deposited in this layer. In generally will refer to the chemical composition like SIN or PI but it's up to the user. It is followed by a string without spaces. The type name can be the same as a material name of this layer or another layer (different name space). It can be same type name as a material deposited earlier. For example, if the layer stack has two metal layers of the same atomic species.
|Specifies the thickness of the material deposited in nm. It is followed by a single whole or decimal number.
|Specifies the step coverage of the deposition as fraction of the film thickness. It is followed by a decimal number from 0.0 (default) to 1.0.
|Specifies the layer color in the RGBL format. It must be followed by 4 integers. The first three specify the R, G, and B values from 0 to 255. The fourth from 0 to 100 specifies a brightness percentage from 0 to 100. Note that if this argument is not given the -scolor argument (below) is mandatory.
|Specifies the layer color. It is followed by a string (no spaces allowed) specifying a X11 standard color (see X11 color). Note that if this argument is not given, the -color argument (above) is mandatory.
|Specifies the transparency of the layer color. It is followed by a decimal number from 0.0 (completely transparent) to 1.0 (completely opaque which is also the default).
Specifies a coating step for example spin coating or slit coating. Also just coa is allowed instead of coating. For example
coating -name SAC -type PI -dop 0.5 -scolor cyan
is a coating step with thickness 1000 nm and a degree of planarization of 50%. A dop of 100% would result in a perfectly flat surface (but be careful the film thickness is sufficient to cover the layer topography if desired). The material type here is called PI indicating a polyimide. The layer color in the rendering is the X11 color cyan. As for deposition, later during patterning, PI can be given as one of the etch targets. Its arguments are
|As the -name argument of the deposition command.
|As the -type argument of the deposition command.
|As the -thickness argument of the deposition command.
|Specifies the degree of planarization of the coating step. It is followed by a decimal number from 0.0 (no planarization) to 1.0 (100% planarization which is also the default). 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.
|As the -scolor argument of the deposition command.
|As the -color argument of the deposition command.
|As the -alpha argument of the deposition command.
Specifies a patterning step consisting of photo lithography and etch. For example
pattern -mask_name M1 -type 1 -id 3 -res 1.5 -bias 0.5 -taper 45 -targets MO1 MO2
specifies the mask name as M1 with a dark type photo mask. The GDS layer is number 3. The photo resolution is 3 um and patterning bias is 0.5 um (or both nm in nm units are specified in the settings command). The taper angle is 45 degrees and layers with material types MO1 and MO2 are etch target. The material types MO1 and MO2 need to be defined earlier in the process file as a material type of a layer or layers. Its arguments are
|Specifies the name of the mask used. It is followed by a string without spaces. Mask names are in a different name space from material names and material types.
|Specifies the mask layer number from the GDS file. It is followed by an positive integer generally from 0 to 255.
|Specifies if the mask type is clear or dark. It is followed by an integer number 0 (clear) or 1 (dark). This argument is mandatory if the -mask_name argument is used.
|Specifies the resolution of the photo tool for this mask step in um or nm (see the -use_nm argument in the settings command above). It is followed by a decimal number. For example for an I line stepper used to make TFTs in the display industry this could be 1.5 um. A value of 0.0 um means that the photo patterning follows exactly the mask.
|Specifies the combined photo and etch bias of this mask step in um or nm (see the -use_nm argument in the settings command above). It is followed by a decimal number. The default value is 0.0 um.
|Specifies the taper angle in of the mask step in degrees. It is followed by an integer. The angle must be greater than 0 and less or equal to 90. The default value is 45 degrees.
|Specifies the maximum etch depth in nm. It is followed by a whole number or a decimal number. The default is no maximum etch depth.
|Specifies the etch targets. It is followed by a list of strings (each without space) separated by a space. The strings need to be material types defined above as the -type argument of deposition or coating.
Specifies a release etch process step. For example
release -target SAC
removes the layer with material name SAC entirely, even if completely covered by another layer. It is assumed there is a release pathway through which this isotropic etch can reach the target material. Note that the release command needs a material name as target rather than a material type.
|Specifies the release etch target material. It is followed by a string without a space. It needs to be a layer material name defined earlier by deposition or coating steps.
Specifies the process execution to stop at that point. All following commands in the process file are skipped. This is useful if you want to stop execution somewhere halfway in the process.
An improper width of the cross section, specified by the -dx argument of the cut command, relative to the mask feature sizes, can lead to unexpected results. This can happen when the width is too small or too large. The first is analogous too watching a bitmap image zoomed into the size of a few pixels only. If, for example, the patterning bias of a step is 2 um but the cross section width is 1 um only, meaningless results will follow.
A cross section width becomes too large when the width divided by the number of columns N is larger than the size of the smallest mask features. If this happens, polygons that represent small mask feature could be dropped during extraction, for which a warning is given in the console output window. This can be mitigated by decreasing the width or increasing N (if possible).
A cross section width becomes too small if it is smaller than the mask feature sizes, etch biases and photo resolutions. To prevent that situation, a error will result if the largest patterning bias or photo resolution is larger than 25% of the cross section width. This can be fixed by increasing the cross section width. Or in cases it could be a typo in the bias or resolution of a patterning step.
A common problem is that the cross section location is entered incorrectly, and unintentionally an area outside a GDS cell is selected. No error will be given, but the result is just a featureless stack of blanket layers.
The geometry of the -bias and -taper arguments in the pattern command is as follows:
The below is an example XView process file with most of commands introduced in the previous section. Together with the layout example it should produce the cross section example above..
# SPECIFY THE GENERAL SETTINGS # This process file is according to the version 2 process file command spec # Camera angle is at 40 degrees # Show the layer legend # Units are in nm # 800 columns settings -version 2 -cam 40 -legend -use_nm -N 800 # GDS CELL NAME IS "TOP" # The GDS file with this cell name needs to be pre loaded by XView gds -cell TOP # CUT LOCATION (Note: nm units in this case "-use_nm 1" was specified above) location -x -7.0 -y -15.0 -dx 115.0 -dy 80.0 # # PROCESS STEPS # # INSULATOR # Thickness is 1.1 nm # Step coverage of 50% # The X11 color is yellow) deposition -name OX -type SIO2 -thickness 1.1 -sc 0.5 -scolor yellow # SOURCE/DRAIN deposition # The material type is MO which is used as the pattern target below deposition -name SD -type MO -thickness 5.5 -sc 1.0 -scolor lightskyblue # SOURCE/DRAIN patterning # Photo resolution is 2.0 nm and the total patterning bias is 0.25 nm # The only etch target is the MO material type deposited above pattern -mask_name SD -id 0 -type 1 -res 2.0 -bias 0.25 -taper 90 -targets MO # 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 deposition -name GM -type MO -thickness 1.1 -sc 1.0 -scolor darkgreen pattern -mask_name GM -id 3 -type 1 -res 2.0 -bias 0.25 -taper 90 -targets MO