Difference between revisions of "Calculators + Utilities"

From UCSB Nanofab Wiki
Jump to navigation Jump to search
(→‎KLayout: handling large files)
m (→‎CAD Design Tips: minor updates)
(12 intermediate revisions by 2 users not shown)
Line 15: Line 15:
 
**''Boiling points of various compounds can tell you how volatile an etch product may be in a reactive ion etch, or whether they need to be wet-etched instead.''
 
**''Boiling points of various compounds can tell you how volatile an etch product may be in a reactive ion etch, or whether they need to be wet-etched instead.''
 
*[http://www.ioffe.ru/SVA/NSM/Semicond/index.html Physical Properties of Semiconductors (Ioffe Institute)]
 
*[http://www.ioffe.ru/SVA/NSM/Semicond/index.html Physical Properties of Semiconductors (Ioffe Institute)]
  +
*[https://www.lesker.com/newweb/deposition_materials/materialdepositionchart.cfm?pgid=0 Kurt J Lesker: Material Deposition Chart]
  +
**''Useful info about evaporating and sputtering many materials''
  +
*[https://www.lesker.com/newweb/ped/rateuniformity.cfm Kurt J. Lesker: Sputter Rates]
  +
**''Sputter rates of various materials, indicative or hardness and dry etching properties.''
   
 
==Wet Etching==
 
==Wet Etching==
Line 55: Line 59:
 
Powerful multi-layer layout program. Sophisticated object instantiation and array layout, to reduce files sizes and easily push changes to multiple cells.
 
Powerful multi-layer layout program. Sophisticated object instantiation and array layout, to reduce files sizes and easily push changes to multiple cells.
   
  +
*UCSB's ECE dept. provides an '''academic''' license for this software (no industrial users!), email [mailto:help@ece.ucsb.edu help@ece.ucsb.edu] to obtain the software.
*The NanoFab will provide a network license for academic users.
 
 
*Windows only.
 
*Windows only.
 
*See [https://wiki.nanotech.ucsb.edu/wiki/Images/uploads/2018/LEdit_GettingStarted_CherryGupta.pdf this '''L-Edit Tutorial'''] for a good starter guide. Written by [https://scholar.google.com/citations?user=qKzZc7AAAAAJ&hl=en Cherry Gupta], courtesy of [https://me.ucsb.edu/people/sumita-pennathur Prof. Sumita Pennathur].
*[https://wiki.nanotech.ucsb.edu/wiki/index.php/Frequently_Asked_Questions#How_do_I_get_my_files_from_the_NanoFab_computers.3F Log into the NanoFiles SFTP server,] and download L-Edit & Install instructions from the <code>Manuals/Software</code> folder.
 
*See [https://wiki.nanotech.ucsb.edu/wiki/Images/uploads/2018/LEdit_GettingStarted_CherryGupta.pdf this L-Edit Tutorial] for a good starter guide. Written by [https://scholar.google.com/citations?user=qKzZc7AAAAAJ&hl=en Cherry Gupta], courtesy of [https://me.ucsb.edu/people/sumita-pennathur Prof. Sumita Pennathur].
 
   
 
====[https://www.klayout.de KLayout]====
 
====[https://www.klayout.de KLayout]====
A free, open-source, and fast/simple CAD tool for mask/reticle layout. Download at [https://www.klayout.de/ klayout.de].
+
A free, open-source, and fast/simple CAD tool for mask/reticle layout. Also has powerful functions, DRC, scriptiable and can handle very large files (GB's) efficiently. Download at [https://www.klayout.de/ klayout.de].
   
 
*Available on Windows, Mac or *Nix.
 
*Available on Windows, Mac or *Nix.
 
*Fast viewing of layer overlay, overlay multiple files, cell hierarchy, large (>1GB) files etc.
*Easily scriptable with Python or Ruby, with decent tutorials.
 
*Fast and very effective viewing of layer overlay, overlay multiple files, cell hierarchy etc.
 
 
*Supports the same core functionality as L-Edit - hierarchical Cell Instances, arrays, programmable Cells (PCells) etc.
 
*Supports the same core functionality as L-Edit - hierarchical Cell Instances, arrays, programmable Cells (PCells) etc.
 
*Easily scriptable with Python or Ruby, with decent tutorials.
*‘Before’ starting your design, set the '''''Layout Properties > Database Unit''''' to something small eg. the default of 0.001 µm (1nm) is usually fine.
 
  +
*Please visit the [[KLayout Design Tips|'''KLayout Design Tips''']] page for important info on making "valid" CAD files, and setting up the program for efficient use.
*Turn on the display of the Origin (0,0) in '''''Preferences > Display > Background > Axis''''' = change from the default "invisible", eg. "'''''Lines with Ticks'''''".
 
*How to draw circles: You have to draw a square, and then apply the function '''''Edit>Selection>Convert to PCell''>Basic.CIRCLE'''. Another way is to permanently convert to a polygon with '''''Edit>Selection>Round Corners''''' function with '''''Outer Corner Radius''''' = the desired circle radius (radius is not changeable in this method, but computation may be faster for a large number of objects). This is for compatibility, because GDS files do not have a "circle" primitive built-in, so instead it creates a polygon. Make sure you include enough polygon points, eg. 100. See the [https://www.klayout.de/forum/discussion/142/making-circles forum help pages] on this for more info.
 
   
 
====CAD Design Tips====
 
====CAD Design Tips====
It is highly recommended that you understand and use the concept of "Cells" in your design. This circumvents many problems with enormous file sizes (due to huge numbers of identical polygons), and if used properly, helps tremendously with programming the Stepper lithography machines. Links to documentation below:
+
All major chip layout programs support "Cells" and similar structures for hierarchical layout. It is highly recommended that you understand and use the concept of "Cells" in your design. This circumvents many problems with enormous file sizes (due to huge numbers of identical polygons), and if used properly, helps tremendously with programming the Stepper lithography machines. Links to documentation below:
   
 
*Create a new cell, and instancing that cell: [https://www.klayout.de/doc-qt4/manual/create_instance.html KLayout Docs : Creating a Cell instance]
 
*Create a new cell, and instancing that cell: [https://www.klayout.de/doc-qt4/manual/create_instance.html KLayout Docs : Creating a Cell instance]
 
*Viewing only some levels of the heirachy, to prevent drawing all objects: [https://www.klayout.de/doc/manual/hier.html KLayout Docs: Viewing Cell Heirarchy]
 
*Viewing only some levels of the heirachy, to prevent drawing all objects: [https://www.klayout.de/doc/manual/hier.html KLayout Docs: Viewing Cell Heirarchy]
  +
 
OASIS files tend to be much smaller than GDS files, and they also save the Layer Names (not just number). Alternatively, in KLayout the function '''File > Save Session''' will save the entire view including layer styles and window/zoom locations will be saved. You can share this file, as the entire design file is embedded within it, but it may not be as robust between KLayout versions.
 
OASIS files tend to be much smaller than GDS files, and they also save the Layer Names (not just number). Alternatively, in KLayout the function '''File > Save Session''' will save the entire view including layer styles and window/zoom locations will be saved. You can share this file, as the entire design file is embedded within it, but it may not be as robust between KLayout versions.
   
  +
=====''Handling very large files''=====
<u>Handling very large files</u>: If you will be generating millions of identical shapes (eg. repeating array of circles), the file size can quickly become enormous due to all the stored polygon points. You can reduce the number of polygon points stored by:
+
If you will be generating millions of identical shapes (eg. repeating array of circles), the file size can quickly become enormous due to all the stored polygon points. You can reduce the number of polygon points stored by:
# Reduce the number of points in each shape/circle if possible.
 
# Use Cell instancing so that only one, or a few, polygons are defined, and that same polygon is then only referenced as a repeating Cell instance. (See above for tutorials).
 
# The OAS file type generates much smaller files, and most photomask vendors can accept this. Photomask vendors are used to handling large files.
 
# Photomask vendors are able to take multiple files and insert them into the final reticle – you just need to provide a clear schematic (eg. slides) showing the exact insertion coordinates for each file (with respect to the origin of each file). They can also do some boolean operations (for a fee).
 
   
 
#Reduce the number of points in each shape/circle if possible.
==== Example CAD File ====
 
 
#Use Cell instancing so that only one, or a few, polygons are defined, and that same polygon is then only referenced as a repeating Cell instance. (See above for tutorials).
 
#The OAS file type generates much smaller files, and most photomask vendors can accept this. Photomask vendors are used to handling large files.
 
#Photomask vendors are able to take multiple files and insert them into the final reticle – you just need to provide a clear schematic showing the exact insertion coordinates for each file (with respect to the origin of each file). They can also do some boolean operations (for a fee).
  +
 
====Example CAD File====
 
Here is an example CAD file, showing the use of Layers and Cells, designed in KLayout. The device is fictional, for illustrative purposes only.
 
Here is an example CAD file, showing the use of Layers and Cells, designed in KLayout. The device is fictional, for illustrative purposes only.
  +
* [//wiki.nanotech.ucsb.edu/w/images/a/ae/CAD_Tutorial_for_ASML_Reticle_v1.OAS CAD_Tutorial_for_ASML_Reticle_v1.OAS] (Demis D. John)
+
*[//wiki.nanotech.ucsb.edu/w/images/a/ae/CAD_Tutorial_for_ASML_Reticle_v1.OAS CAD_Tutorial_for_ASML_Reticle_v1.OAS] , or [[Media:CAD Tutorial for ASML Reticle v1 GDS.gds|GDS version]] (''Demis D. John'')
* Cell "'''Device_Layout'''" shows a single device, with each ''Layer'' overlaid as it would be in a fabricated device. Each Layer (eg. a "process step" such as Mesa etch, Pad Metal etc.) is placed into it's own Cell.
+
*Cell "'''Device_Layout'''" shows a single device, with each ''Layer'' overlaid as it would be in a fabricated device. Each Layer (eg. a "process step" such as Mesa etch, Pad Metal etc.) is placed into it's own Cell.
  +
 
:[[File:CAD Tutorial for ASML Reticle v1 - screenshot Device Layout cell.png|alt=screenshot of KLayout view of Device_Layout|none|thumb|530px|"Device_Layout" Cell showing as the "top cell"]]
 
:[[File:CAD Tutorial for ASML Reticle v1 - screenshot Device Layout cell.png|alt=screenshot of KLayout view of Device_Layout|none|thumb|530px|"Device_Layout" Cell showing as the "top cell"]]
  +
* Every Cell's ''Origin'' (0,0) lies on top of one another in the final ''Device_Layout''.
+
*Every Cell's ''Origin'' (0,0) lies on top of one another in the final ''Device_Layout''.
** One way this can be accomplished is by selecting the objects/polygons you want to make into a new Cell, then use the function '''Edit >''' '''Selection > Make Cell''', and ''uncheck'' the "''Put Origin at...''" checkbox, so the new Cell maintains the same origin as the original view.
+
**One way this can be accomplished is by selecting the objects/polygons you want to make into a new Cell, then use the function '''Edit >''' '''Selection > Make Cell''', and ''uncheck'' the "''Put Origin at...''" checkbox, so the new Cell maintains the same origin as the original view.
* The Cell "'''Reticle_Layout'''" can be exported by itself (right-click the Cell name), for sending to the photomask manufacturer.
+
*The Cell "'''Reticle_Layout'''" can be exported by itself (right-click the Cell name), for sending to the photomask manufacturer.
** [//wiki.nanotech.ucsb.edu/w/images/3/34/DEMISJAN2020_-_Reticle_Layout_v1.GDS Here is and example GDS file (download)] for submission to the photomask manufacturer, with all objects moved to a single Layer.
+
**[//wiki.nanotech.ucsb.edu/w/images/3/34/DEMISJAN2020_-_Reticle_Layout_v1.GDS Here is an example GDS file (download)] for submission to the photomask manufacturer, with all objects moved to a single Layer.
* See the [[ASML 5500 Mask Making Guidelines#Example CAD File and Programming|ASML Mask Making Guidelines page]] for an example of how to program this Reticle into an ASML Stepper job.
+
*See the [[ASML 5500 Mask Making Guidelines#Example CAD File and Programming|ASML Mask Making Guidelines page]] for an example of how to program this Reticle into an ASML Stepper job.
   
 
===General Calculators===
 
===General Calculators===
Line 108: Line 115:
   
 
===Python Scripts===
 
===Python Scripts===
''These scripts are best run in the [https://pythonhosted.org/spyder/installation.html Spyder IDE], which is easily installed via [https://www.anaconda.com/download/ Anaconda], [http://python-xy.github.io Python(X,Y)], or by directly compiling Spyder using a command-line package manager.''
+
''These scripts are best run in the [https://pythonhosted.org/spyder/installation.html Spyder IDE], which is easily installed via [https://www.anaconda.com/download/ Anaconda], [http://python-xy.github.io Python(X,Y)].''
  +
  +
'''If you use/modify these scripts in a publication, <u>please consider citing the author(s)</u>.''' See our [[Frequently Asked Questions#Authorship on Publications|publication policy]] for more info.
   
 
*[https://github.com/demisjohn/Keithley-I-V-Sweep Keithley I-V Sweep]
 
*[https://github.com/demisjohn/Keithley-I-V-Sweep Keithley I-V Sweep]
 
**Sweep voltage and plot current vs. voltage using a Keithley SMU.
 
**Sweep voltage and plot current vs. voltage using a Keithley SMU.
**Already installed at the Probe Station in Bay 4, and on the QFI Thermal Microscope (Use '''''Python(X,Y)''''' to run).
+
**Already installed at the Probe Station in Bay 4, and on the QFI Thermal Microscope (Use '''''Spyder (Anaconda Python)''''' to run).
 
**Requires the [https://pyvisa.readthedocs.io/en/stable/ pyvisa] python module.
 
**Requires the [https://pyvisa.readthedocs.io/en/stable/ pyvisa] python module.
*[https://github.com/demisjohn/QFI-Scope-Thermal-Analysis QFIScope Thermal Analysis]
+
*[https://github.com/demisjohn/QFI-Scope-Thermal-Analysis QFIScope Thermal Analysis (Demis D. John)]
 
**Import 2D temperature data from the [[IR Thermal Microscope (QFI)]] and plot temperature profiles at user-specified locations.
 
**Import 2D temperature data from the [[IR Thermal Microscope (QFI)]] and plot temperature profiles at user-specified locations.
 
**Already installed on the QFI Infrared Microscope.
 
**Already installed on the QFI Infrared Microscope.
*[[Laser Etch Monitor Simulation in Python|Laser Etch Monitor Simulation in Python]]
+
*[[Laser Etch Monitor Simulation in Python|Laser Etch Monitor Simulation in Python (Demis D. John)]]
 
**Simulate your laser endpoint signal as you dry-etch through a stack of thin-film layers, using an open-source electromagnetics module.
 
**Simulate your laser endpoint signal as you dry-etch through a stack of thin-film layers, using an open-source electromagnetics module.
 
*[https://github.com/lbolla/EMpy/blob/master/examples/nk.py nk.py (Demis D. John)]
 
*[https://github.com/lbolla/EMpy/blob/master/examples/nk.py nk.py (Demis D. John)]
**''Python functions for returning'' '''n''' ''(ref. idx.) &'' '''k''' ''(ext. coeff.) of various NanoFab thin-films at a specified wavelength (aka. dispersion models).''
+
**''Python functions for returning'' '''n''' ''(refractive index) &'' '''k''' ''(extinction coefficient) of various NanoFab thin-films at a specified wavelength (aka. optical dispersion models)''

Revision as of 11:47, 3 October 2022

This page lists a few online calculators and utilities that are useful to lab users.

Fabrication Processes & Converters

Material Parameters

Wet Etching

Refractive Indices

Optical constants of many common materials. Useful for Optical thin-film analysis (ellipsometry/spectroscopic fitting), laser etch monitoring, optical filter/mirror/anti-reflection coating design, photonic devices etc.

Scripts + Programs

Analysis Programs

  • AmScope Software - microscope image analysis software
    • AmScope Calibration File containing calibrations for all NanoFab microscopes: Download Here
    • Also available on Nanofiles-SFTP / Manuals / Amscope
  • FIJI - scientific image anaylsis software
  • Gwyddion - free analysis software for Atomic Force Microscopes (AFMs) and other 3D data.
    • Sophisticated leveling, slicing, roughness/particulate analysis functions etc.
    • Can open Bruker NanoScope files, from the AFM
  • ProfilmOnline.com (Filmetrics) - online analysis/storage/sharing of 3D topographical data and images.
    • You can share an interactive 3D render of your AFM or Profilm3D scans with this tool.
    • Example AFM Scan, taken with NanoFab equipment, shared online for interactive analysis (slice, flatten etc.).

CAD Layout Programs

Use these for designing your lithography mask plates.

L-Edit

Powerful multi-layer layout program. Sophisticated object instantiation and array layout, to reduce files sizes and easily push changes to multiple cells.

KLayout

A free, open-source, and fast/simple CAD tool for mask/reticle layout. Also has powerful functions, DRC, scriptiable and can handle very large files (GB's) efficiently. Download at klayout.de.

  • Available on Windows, Mac or *Nix.
  • Fast viewing of layer overlay, overlay multiple files, cell hierarchy, large (>1GB) files etc.
  • Supports the same core functionality as L-Edit - hierarchical Cell Instances, arrays, programmable Cells (PCells) etc.
  • Easily scriptable with Python or Ruby, with decent tutorials.
  • Please visit the KLayout Design Tips page for important info on making "valid" CAD files, and setting up the program for efficient use.

CAD Design Tips

All major chip layout programs support "Cells" and similar structures for hierarchical layout. It is highly recommended that you understand and use the concept of "Cells" in your design. This circumvents many problems with enormous file sizes (due to huge numbers of identical polygons), and if used properly, helps tremendously with programming the Stepper lithography machines. Links to documentation below:

OASIS files tend to be much smaller than GDS files, and they also save the Layer Names (not just number). Alternatively, in KLayout the function File > Save Session will save the entire view including layer styles and window/zoom locations will be saved. You can share this file, as the entire design file is embedded within it, but it may not be as robust between KLayout versions.

Handling very large files

If you will be generating millions of identical shapes (eg. repeating array of circles), the file size can quickly become enormous due to all the stored polygon points. You can reduce the number of polygon points stored by:

  1. Reduce the number of points in each shape/circle if possible.
  2. Use Cell instancing so that only one, or a few, polygons are defined, and that same polygon is then only referenced as a repeating Cell instance. (See above for tutorials).
  3. The OAS file type generates much smaller files, and most photomask vendors can accept this. Photomask vendors are used to handling large files.
  4. Photomask vendors are able to take multiple files and insert them into the final reticle – you just need to provide a clear schematic showing the exact insertion coordinates for each file (with respect to the origin of each file). They can also do some boolean operations (for a fee).

Example CAD File

Here is an example CAD file, showing the use of Layers and Cells, designed in KLayout. The device is fictional, for illustrative purposes only.

  • CAD_Tutorial_for_ASML_Reticle_v1.OAS , or GDS version (Demis D. John)
  • Cell "Device_Layout" shows a single device, with each Layer overlaid as it would be in a fabricated device. Each Layer (eg. a "process step" such as Mesa etch, Pad Metal etc.) is placed into it's own Cell.
screenshot of KLayout view of Device_Layout
"Device_Layout" Cell showing as the "top cell"
  • Every Cell's Origin (0,0) lies on top of one another in the final Device_Layout.
    • One way this can be accomplished is by selecting the objects/polygons you want to make into a new Cell, then use the function Edit > Selection > Make Cell, and uncheck the "Put Origin at..." checkbox, so the new Cell maintains the same origin as the original view.
  • The Cell "Reticle_Layout" can be exported by itself (right-click the Cell name), for sending to the photomask manufacturer.
  • See the ASML Mask Making Guidelines page for an example of how to program this Reticle into an ASML Stepper job.

General Calculators

  • Anaconda Python
    • A free Matlab-like IDE and GUI, using the Python language. The Spyder interface is modeled after Matlab.
    • Includes the scientific Python libraries needed for array math (numpy), plotting (matplotlib), data science (pandas) and many others. Many open-source packages are available to extend capabilities. The PyVisa module adds equipment control capabilities for automated measurements.
  • Wolfram Alpha
    • A versatile online interpreter/calculator, allowing calculations such as "Volume of 1.5g of Silicon", "melting point of SiO2" or "520°C in Fahrenheit".

Python Scripts

These scripts are best run in the Spyder IDE, which is easily installed via Anaconda, Python(X,Y).

If you use/modify these scripts in a publication, please consider citing the author(s). See our publication policy for more info.