Drawing Design Rules for DXF to GDSII

ASM 3500 converts AutoCAD DXF files into GDSII so that AutoCAD users can send their drawing files to IC design software or to mask making machines. The two databases are not organized alike. Therefore, not every entity in AutoCAD has a corresponding element in GDSII.

Since the GDSII file is usually processed one more time to create mask data, there may be additional limitations imposed on what you may draw by the mask making machine. This document summarizes good drawing practices.

Topics

Setting up the AutoCAD Drawing Environment

Since your intention is to transfer information accurately to GDSII you should set up your AutoCAD drawing environment as closely as possible to the equivalent drawing environment for GDSII systems. The following parameters should be set.

Grid
GDSII is an integer database; AutoCAD uses a double precision database that is not really grid based. To get a GDSII database that exactly corresponds to the AutoCAD drawing, you should set a grid in AutoCAD and then use that grid for snap purposes. A typical grid value if you were drawing a semiconductor would be 0.1 or 0.01 or even 0.001 for units of microns.

Most GDSII databases are in units of microns. Other units are perfectly acceptable but we recommend that you try to use the same units in AutoCAD drawings as your target CAD system uses.

Snap
Turn grid snap ON if at all possible. This will insure that each point entered in AutoCAD can be exactly mapped to GDSII.

Units
AutoCAD is dimensionless. AutoCAD's UNITS command affects only the display and does not set drawing units. You should work in the units that the final GDSII system will use if possible. Common GDSII units are in microns for most semiconductor applications. For example, if you are designing a mask for a microsensor you should draw in units of microns - i.e., a line of width 5 represents 5 um wide.

UCS and VPOINT
Make sure that you set UCS (user coordinate system) to WORLD and that you do not modify the vpoint. AutoCAD modifies the coordinates of entities entered while a different UCS is in effect. The translator may not map these to GDSII database correctly.

Layer Names
GDSII uses layer numbers from 0-63. We suggest that you do the same with your AutoCAD layer naming scheme so that there is less chance for confusion. dxf2gds and gds2dxf translators do include a method of controlling AutoCAD name to GDSII layer number mapping if needed.

No Hatching
Some designers think that they should use AutoCAD's hatching command to indicate filled areas on the mask. No! Erase all hatching blocks wherever possible. Hatching is stored in the DXF file as lines contained in unnamed blocks. These lines will end up on GDSII layer 0 and are of no value in the GDSII stream file. GDSII has no hatch entity. GDSII boundaries are always considered filled so adding hatching to simulate a filled boundary is unnecessary and redundant.



Data Origin

    You should select one of two locations for your mask origin:

    [a] locate 0,0 at the lower left extents of your data

    [b] locate 0,0 at the center of your data.

Avoid drawing your mask so that it is far away from the origin [c] - this could cause problems later on for the person using your design. Also do not put any data at all outside of the normal extents of your mask. If you must have data outside of the mask area, such as a title border, make sure it is on a separate layer and purge that layer prior to running a translation to DXF.




Drawing Boundaries

One of the two basic entities in GDSII is the boundary.

Closed
A boundary consists of a series of straight segments forming a closed area. The first and last vertex must be the same. The inside of the boundary is solid.

Number of Vertices
A boundary may have no less than 3 vertices and no more than 200 vertices.

No Self Intersection
A boundary may not overlap on itself nor self-intersect. However it may touch itself. A boundary that touches itself is called a re-entrant boundary.

Drawing Boundaries in AutoCAD

There are several different ways to draw a closed boundary in AutoCAD.

Zero Width Closed Polyline (zwcp)
The best way to draw boundaries is to use AutoCAD's zero width polyline and to use the close command to close the polyline.

Polylines with Width
You can also use an AutoCAD polyline with width. The width may vary from vertex to vertex with the following exceptions:

[a] do not start or end with a zero width vertex
[b] do not use an arc section that changes width
[c] do not close a polyline with width

A closed polyline with width will result in either a self intersecting boundary or path [a]. Many times a user will want to draw a frame around an area using a wide polyline. Do this with two separate polylines.

Solids
The AutoCAD solid entity may be used as long as you do not accidentally draw a bow-tie solid.

Lines and Arcs
Lines and arcs may be used to form closed boundaries, but the designer must take great care to make sure that the endpoints snap together and that there are no hidden lines under lines. An Autolisp program called BBPRO is available from Artwork that will interactively convert lines and arcs into zero width closed polylines.

It is also possible to accidentally draw self-intersecting boundaries when using lines and arcs since the linking routine may come to a point where the correct path to follow is ambiguous.


Re-entrant Boundary

While a GDSII boundary may not self intersect, it may touch itself. This is called a re-entrant polygon.


Re-entrant polygons should only be used if one is sure the subsequent GDSII reader can support them. Re-entrant boundaries should only be drawn using zero width closed polylines.

200 vertex limit

The 200 vertex limit is an artificial one imposed by the GDSII definitions. Many software developers have found this limitation too restrictive and have developed programs that support more than 200 vertices.

For example, if you are generating GDSII data to be sent to a MEBEs fracturing software, such as CATS by Transcription Enterprises, you may find that this fracturing software supports boundaries with vertices up to 2048 sides.

If you verify that the end user can accept more than 200 vertices, then you can go ahead and

    1] draw more complicated boundaries and
    2] configure Artwork's translators to support more than 200 vertices.



Drawing Paths using Polylines

In addition to the boundary, GDSII also has a PATH entity. (Some CAD systems call a path a WIRE). These are often used in IC's to interconnect boundaries representing metal pads. There are three types of PATHS.

ASM 3500 always generates PATHS of type 0.

Characteristics of PATHS

  • The GSDII path has constant width.
  • It must have at least two vertices and no more than 200 vertices
  • If a path bends through more than 90 degrees the corners may be mitered - however there is no GDSII specification on the mitering rules.

Drawing PATHS in AutoCAD
Always use the AutoCAD polyline with width. Width should be constant. You can force a polyline to have a constant width by using the PEDIT command and setting the width.

Path Mitering
AutoCAD does not miter polylines that bend through more than 90 degrees but many CAD systems that import GDSII data automatically apply some type of mitering. This is not under control of the translation software.




Drawing Islands and Isolated Areas

Islands are clear field areas surrounded by a dark field on the mask. They cannot be drawn in the same manner as you would for controlling a plotter or cutting machine. AutoCAD and GDSII have no way to determine that a particular polygon interior should be clear.

In the drawing to the right, the designer drew one boundary inside of another [a].
Instead of getting the mask he desired [b], he got the black mask shown in [c].

This is because GDSII fills each boundary solid independent of its relationship to other boundaries. There is no such thing as an empty boundary in GDSII.

There are a couple of ways to work around this:

Two mating boundaries

You can use two separate boundaries that butt up against each other to form the frame. Only use a closed polyline - if you use lines, most likely they will be linked incorrectly to form a self intersecting boundary.

These actually touch but are shown separated for clarity.

Re-entrant Boundary

Another method to realize an island is to go into the interior of your polygon and out again via the same path. This is called a re-entrant boundary. This is best done using a closed zero width polyline.

Text

ASM 3500 supports text but cannot pass the actual font information. Therefore, you should not rely on fancy or special text fonts.

Supported Text Functions:

  • Rotation
  • Mirroring
  • Height
  • Upper Case Numbers and Characters and period, comma, dash, space and slash 1234567890 ABCDEFGHIJKLMNOPQRSTUVWXYZ .,- _ /

Unsupported Text Functions

  • Obliquing
  • Vertical
  • Dynamic (i.e. fitted or where width factor not equal to 1)
  • Special Characters
  • Special Fonts

Notes

Just because ASM 3500 supports text and text is a valid entity in GDSII, it does not mean that all target systems will correctly read text. Some GDSII postprocessors do not support text. Check with the mask vendor.

If you know that your target does not support text, the dxf2gds translator offers a special option called PG Text. This option converts your strings of text into GDSII boundaries automatically so you don't have to do it.

AutoCAD txt.shx

PG font generated by ASM 3500




Using Blocks and Inserts

Blocks are very useful for repetitive data - you can nest blocks inside of blocks to minimize your drawings size.

Rules

Scale
Insert blocks at scale=1 if possible. Although GDSII and dxf2gds support blocks inserted with scale, many GDSII postprocessors such as those used to create MEBEs files do not support structures inserted at other than scale 1. Never insert a block with x scale different from y scale. GDSII does not support this.

Insertion Layer
Insert all blocks on layer 0. While this is not mandatory you should note that unlike DXF, GDSII does not mark on which layer structures are inserted.

Rotation
Do not insert blocks with rotation unless absolutely necessary. Many CAD systems that import GDSII only support rotations of 90, 180 and 270 degrees - some don't support rotation at all.

Block Names
It is good practice to use only upper case characters and numerals for block names. Many CAD systems that import GDSII have difficulty with lower case block names - some reset the names to upper case and some fail on importation. GDSII allows up to 32 characters maximum per name.

Block Attributes
Block attributes are not passed to GDSII.

MINSERT

AutoCAD's MINSERT command (multiple insertion of blocks) is translated to a GDSII AREF (array reference). This is a very useful command for inserting large arrays of cells and it keeps both the DXF and GDSII database small. We suggest that if you use this command that you:

  1. Never rotate the MINSERT
  2. Always make the row and column distance positive values

Reason
Although the translator and GDSII database support both rotation and negative step sizes we have found that many other GDSII based programs do not implement these transformations consistently. You may spend many hours chasing down weird effects at the other end.



Circles/Arcs

Avoid using circles and arcs if possible. Although the dxf2gds translator can convert circles and arcs into GSDII data, it is not a perfect translation because GDSII does not include an arc or circle entity. The translator will approximate your arc or circle with a series of short segments. You have some control over this approximation. If you have many circles of the same diameter you may want to convert your circle(s) into a block. This will reduce the size of the GDSII file.

The GDS.CFG keywords arcres and arcsag control how arcs and circles are fractured.

ARCRES (Arc Resolution)
Arcres is a value in degrees that determines how many segments are generated per curve. Typical values range from 2 degrees up to 15 degrees.

ARCSAG
Arcsag is the maximum error between the ideal arc and the segmented arc. This value always occurs at the center of each chord as shown in the illustration. dxf2gds will then calculate the number of segments required to produce the desired maximum error. A zero value of arcsag causes the translator to ignore the setting.

Combining Arcsag and Arc Res
The two parameters can be used together - the one that results in the more precision will take effect.




Creating the DXF File

This step may seem simple but we often see many customer errors in simply creating the DXF file from AutoCAD.

Purge the Database

ASM 3500 translates all entities and blocks in your DXF file whether or not the layer is on, off or frozen. To minimize translation time, and to reduce the ultimate GDSII file size you should clean and purge your drawing prior to running the DXFOUT command.

  1. Erase all data on layers you do not wish to translate to GDSII.

  2. Save your drawing. Open the drawing and use the Purge All command to eliminate unused layers, blocks and fonts.
  3. Repeat the preceding step over and over until no more items can be purged.

An alternative approach to purging is to use AutoCAD's WBLOCK command to create a new file containing only the entities you wish to translate to GDSII.

DXFOUT Command

  • Always DXFOUT the entire file. Never select DXFOUT "entities" as the header is not included. Without the header dxf2gds will not run correctly.
  • Do not DXFOUT binary data (DXB) - the translator cannot read this format.
  • Make sure the number of significant places is enough. The default of 6 places is normally fine. However there are exceptions where 6 places may not be enough.

Example
A typical error is creating an AutoCAD drawing in units of inches with very small dimensions - say on the order of 0.000001 inch. If you accept the standard 6 places accuracy when creating the DXF file you may have errors in your GDSII data - due to the fact that AutoCAD stores the data internally to about 14 places but is only writing out 6 places to the DXF file.



ARTWORK CONVERSION SOFTWARE, INC.       Company Profile
417 Ingalls St., Santa Cruz, CA 95060    Tel (831) 426-6163     Fax 426-2824    email: info@artwork.com

Top of this document

ASM 3500 Index

AutoCAD Related Translators Page

Artwork Home