ASM 3500's Polygon De-Embedding Function

Polygon De-Embedding is the ability to take a layer of polygons "embedded" within other polygons, figure out which surrounds which, and produce a GDSII output that sorts out the changes in polarity due to each boundary. You can think of this as follows: If a polygon is not surrounded by any other it is set to the 0 level. If a polygon is fully surrounded by only one other polygon (its parent) it is assigned a level of 1. If its parent is surrounded then it is assigned a level of 2 and so on.

polygons can be assigned a level based on how many 'parents' they have.
      Figure 1: polygons inside of polygons can be given a level indicating how deeply embedded they are.

All polygons with even levels: 0, 2, 4, 6, 8 ... are "dark" or "filled" and all polygons with odd levels of 1, 3, 5, 7 ... are "clear" or "empty."

We are also going to require than no polygon may cross itself or even touch another polygon -- they have to be fully enclosed by the parent. Here is what the above data would look like.

polygons can be assigned a level based on how many 'parents' they have.
      Figure 2: This is the mask we get if we assign polarity based on embedding level.

Those who work in the mask business often receive drawings similar to Figure 1. These drawings tend to come from mechanical drawing software such as AutoCAD, SolidWorks or ProEngineer. Very often, they are very complex IC package layouts, MEMs, RF or microwave circuits or optical devices.

We also know that converting a drawing like this one directly to GDSII produces a solid black rectangle because GDSII does not take into account any change in polarity due to a polygon's relationship with other polygons.


      Figure 3: Converting the Figure 1 drawing into GDSII results in a solid block.

To properly convert such a drawing requires editing -- sometimes hours and hours. The mask shop CAD operator has to redraw the data so that re-entrant polygons are created with voids or has to break up the polygons into slices. In any event, the production of the mask is delayed and it is possible to introduce errors while doing the editing.

Wouldn't it be nice to have a computer program do this work for us?

De-Embedding Function

ASM 3500's de-embedding function can automatically sort out this type of drawing. There are actually three distinct processing steps.

Step 1 - Union

Prior to doing any sorting, the program first does a union on any touching or overlapping polygons. This is required so that the sorting routine doesn't encounter ambiguous situations produced by overlapping polygons.

prior to sorting, any overlapping or touching polygons are unionized.
      Figure 4: Prior to sorting, any overlapping or touching polygons are unionized.

Step 2 - Sorting

The de-embeddding routine then sorts the polygons assigning each a level - 0 for polygons not surrounded by any parent, 1 for those surrounded by one parent, 2 for those 2 levels deep and so on. This can be a very complex process when the polygons are large.


      Figure 5: Polygons are sorted by their embedding level.

Step 3 - Boolean

Since GDSII has only "dark" polygons we have to do a boolean operation. All polygons in level 1 are subtracted from those in level 0. All polygons in level 3 are subtracted from those in level 2 and so on. The output of the boolean can produce either re-entrant polygons (those with a cut line) or slices (the slice option is available for some CAD systems that have problems processing re-entrant polygons.)


      Figure 6: After boolean, the resulting mask consists of only dark polygons. Two options are possible: cut-lines or sliced.


ASM 3500 Home Page Download Revision History Price


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