
Software for mask designThe basic CAD software required is a "layout editor". This enables you to place different polygons onto different layers - each layer being a mask design for a particular step in the fabrication process -, assemble these into "structures" (or "cells") which can be placed adjacent to one another on the final design, and export the design file in a suitable format. Many software packages will provide additional features. It is also possible to use some drawing packages, provided one can translate the files into a suitable format for mask fabrication. If you are familiar with ordinary CAD or drawing packages, then you will have few problems switching to a layout editor.File formats. There are two file formats that are commonly accepted by most mask makers: CIF and Calma GDSII. Any layout editor worth its salt should be able to import and export designs in both these formats (editors usually use their own format for storing designs that are being worked on). There are relatively few differences between the the two formats that are apparent to the user. Check your software documentation to see how it handles conversion between them to see if there are any nasty surprises. One thing to note is that GDSII does not draw true circles; it uses multi-sided polygons. The number of sides used is normally set by default in the software, but this setting should be accessible for the user to change. Technology files. These essentially store the "preferences" for the design. That is: the layer names, layer numbers, GDSII stream numbers (to which layer names / numbers are translated when writing a GDSII file), what layers to make available for drawing with, how to colour them on the screen, what units to use, how to draw "wires" (essentially long rectangular polygons, but made easy to draw to wire things up), and so on. Note that when importing a GDSII or CIF file, you will need to tell your software which technology file to use, so that it knows how to display the design. You may need to create a technology file if one does not already exist. The only real surprise you will run into is the concept of user units and internal units (or design units). The user units of interest for micromachining are micrometers (microns). Other options may be mils (one thousandth of an inch, or 25.4 microns) and lambda, the Greek letter, which is used for scalable IC designs. The user units are the units that you want to work in, i.e. you want to type in 25 and have a 25 micron wide line appear. The internal units are the units used by the software to do its calculations. It is normal to set 1000 internal units to every user unit. Internal units are generally invisible to the user; but because the software normally has a fixed memory (i.e. internal unit allocation), the overall size of your design will be affected by the number of internal units / user unit that you specify. In other words, if you set 2000 internal units / user unit, the total area over which you can draw will be halved (c.f. using 1000 internal units / user unit). One other thing to watch out for is hidden or reserved layer names, which the software may use for its own purposes; this will be software dependent. For instance, "background" may be a reserved name allowing you to vary the background of your drawing area. Graphics. One difference between a layout editor and normal drawing software is the scale over which the design is drawn. A layout will range from features as small as 1 micron, up to a design that covers an entire wafer (100mm); a difference of 100000 times. There should be an option in your software that prevents it trying to draw incredibly small features when you are looking at the design on a large scale. This will essentially tell the software not to try and draw anything that will take up less than a fixed number of pixels on the screen. If the computer takes a long time to draw your design on the screen, try changing this option. Your software will do its best to make everything visible on the screen. This can lead to problems when trying to determine the size or distance between two items, since one pixel may be much larger than one user unit, depending on how far you have zoomed in / out. There will normally be some sort of ruler or cursor system on the software package to allow you to measure distances, but remember that in order to get an accurate measurement you have to be zoomed in to an appropriate scale; normally as close in as possible. Grid. This is a tip for all drawing packages. There should be a grid that you can set and use for guidance. The basic mesh dimension of the grid should be variable, and I would suggest setting it to your minimum feature size (see below). You should be able to display the grid in the background to your design, and this need not always be set to your minimum grid dimension. There will be a "snap to grid" option in your software. This will force anything you draw to start and end at the nearest grid points to the cursor. It is very useful! You will also be able to draw or edit polygons by entering coordinates for the vertices (corners) into the software. This is also very useful for making complex shapes exactly the correct dimensions, but does require some preplanning. Text. You can usually type text onto a layer of your design. This will not normally appear on the mask itself when fabricated. If you want text to appear on your device, such as what it is, version number, your name, etc., then you will almost certainly have to draw it on as a polygon. Most layout editors do not allow you to type in text in such a manner that it will appear on the mask. This is really annoying and I hope it changes soon.
Other things that you may like to try out to help with creating the design include: turning different layers on and off to make them accessible / inaccessible for modification, and options for selecting an item to be modified. |