KLayout Design Tips: Difference between revisions

From UCSB Nanofab Wiki
Jump to navigation Jump to search
(copied from parent page, and added non-orthogonal arrays issue)
 
(pasted more tips from Calc+Utilities page)
Line 1: Line 1:
* ‘Before’ starting your design, set the '''''Layout Properties > Database Unit''''' to something small eg. the default of 0.001 µm (1nm) is usually fine.
*The default minimum unit of 0.001 µm (1nm) is usually fine. Don't change this after drawing - everything will be scaled accordingly. If you need finer resolution, ''Before'' starting your design, set the '''''Layout Properties > Database Unit''''' to something smaller, eg. 0.0001 µm.


=== Turn on the display of the Origin (0,0) ===
===Turn on the display of the Origin (0,0)===
* '''''Preferences > Display > Background > Axis''''' = change from the default "invisible", eg. "'''''Lines with Ticks'''''".


*'''''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. 32. See the forum help pages on this for more info.


===How to draw circles===
=== Non-Orthogonal Arrays (Important) ===

*You have to draw a square, and then apply the function '''''Edit > Selection > Convert to PCell'' > Basic.CIRCLE'''. Sometimes these P-Cells don't convert properly at the photomask vendor, so make sure to run '''''Edit > Selection > Convert to Static Cell''''' (which converts to a polygon) before taping out to the vendor.
**Another way is to convert a square to a polygon directly with '''''Edit>Selection>Round Corners''''' function with '''''Outer Corner Radius''''' = the desired circle radius (radius is not changeable afterards in this method, but computation may be faster for a large number of objects).
**Klayout doesn't natively support circles because the GDS file format does not have a "circle" primitive built-in, so instead it creates a polygon. Make sure you include enough polygon points, eg. 32. See the [https://www.klayout.de/forum/discussion/142/making-circles forum help pages] on this for more info.

=== Cells & Instances of Cells ===
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]
*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]

=== File Types ===
OASIS files tend to be much smaller than GDS files, and they also save the Layer Names (not just Layer Number). Most Photomask manufacturers accept this file type.

GDS files are considered "standard", but are somewhat antiquated.

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.

DXF files coming from AutoCAD often are missing the "units", and may erroneously map millimeters to meters, causing your design to be 1000x too large. You can fix this in '''''File > Reader Options > DXF''''', or simply instance the entire design into a new Cell with Magnification set to correct the scaling error.
===Non-Orthogonal Arrays (Important)===
Arrays created with diagonal instancing (non-orthogonal arrays) can be incompatible with photomask vendor's mask writing software.
Arrays created with diagonal instancing (non-orthogonal arrays) can be incompatible with photomask vendor's mask writing software.



Revision as of 00:20, 22 September 2021

  • The default minimum unit of 0.001 µm (1nm) is usually fine. Don't change this after drawing - everything will be scaled accordingly. If you need finer resolution, Before starting your design, set the Layout Properties > Database Unit to something smaller, eg. 0.0001 µm.

Turn on the display of the Origin (0,0)

  • 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. Sometimes these P-Cells don't convert properly at the photomask vendor, so make sure to run Edit > Selection > Convert to Static Cell (which converts to a polygon) before taping out to the vendor.
    • Another way is to convert a square to a polygon directly with Edit>Selection>Round Corners function with Outer Corner Radius = the desired circle radius (radius is not changeable afterards in this method, but computation may be faster for a large number of objects).
    • Klayout doesn't natively support circles because the GDS file format does not have a "circle" primitive built-in, so instead it creates a polygon. Make sure you include enough polygon points, eg. 32. See the forum help pages on this for more info.

Cells & Instances of Cells

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:

File Types

OASIS files tend to be much smaller than GDS files, and they also save the Layer Names (not just Layer Number). Most Photomask manufacturers accept this file type.

GDS files are considered "standard", but are somewhat antiquated.

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.

DXF files coming from AutoCAD often are missing the "units", and may erroneously map millimeters to meters, causing your design to be 1000x too large. You can fix this in File > Reader Options > DXF, or simply instance the entire design into a new Cell with Magnification set to correct the scaling error.

Non-Orthogonal Arrays (Important)

Arrays created with diagonal instancing (non-orthogonal arrays) can be incompatible with photomask vendor's mask writing software.

We recommend you avoid the grey X and Y fields shown below when creating arrays, as shown here:

Klayou screenshot showing non-orthogonal array definition

If you do need to use a non-orthogonal array, make sure to use Selection > Resolve Arrays before submitting your design to the manufacturer.