Circle Recognition in GDSII to Gerber

Introduction

The GDSII specification does not contain any circle or arc entity. A round pad in the GDSII world is approximated by using a polygon of anywhere from 8 sides to 40 sides depending on the smoothness that the designer felt was appropriate.

As a consequence, when converting such pads from GDSII to Gerber you cannot get a nice flash for the pad -- instead you are going to get drawn data for each pad. This is undesirable for a couple of reasons:

    Flashes will make the Gerber file size much smaller -- especially if there are hundreds or thousands of pads.

    Flashes make it very easy to generate drill data -- in many cases a via must be drilled through the center of the pad -- creating this drill information is trivial if you have flashes but quite involved if you have drawn pads.

Circle Recognition

To address this problem, Artwork added a circle recognition routine to the GDS2GBR engine. This routine looks for polygons that are essentially circular, finds the center and outputs them to Gerber as round flashes. For a polygon to be "recognized" as a circle it should have 24 or more vertices; the routine checks that the angle and length of the vertices are equal (to a very small tolerance).


Enabling Circle Recognition

In the ASM600 two things needs to be done:

    1. In the ASM600 Configuration menu set the Flash Circle to ON.

    2. In the ASM600 Aperture menu you must define apertures to match the circle diameter


asm600 windows configuration dialog

Note that Flash Circle is checked in the ASM 600 configuration dialog.


asm600 windows aperture dialog

Note that D17 is set to 0.75 round which is the nominal diameter of the polygons. This was obtained using the Flash Circles button which scanned the GDSII file and found this diameter.


Sample Results

A sample drawing with 7 polygons of the same nominal diameter was created in GDSII. The only difference is that the number of sides starts at 8 and goes up to 40. After running it through GDS2GBR with the FLASH Circle option set and a round flash of 0.75 available in the aperture list the output Gerber file is shown. The polygons with 24, 32 and 40 sides were converted to flashes while the polygons with less number of sides were "drawn."



GDSII data: All round pads are polygons with differing number of sides



Gerber Data: the three polygons on the right (24,32,40) were converted to flashes



Config and Apt File for Engines

For UNIX/Linux users who wish to use the engine directly they must be sure to:

Add the directive FLASH on to the .apt file.


APTUNITS MM
FORMAT 3.3
SUPPRESS LEADING
SUPPRESS CR
LINE D10
CIRANG 360
ABSOLUTE on
FLASH on

Add the appropriate diameter flash to the list of apertures as shown below (D17 for a 0.75 mm round flash)

D10 0.0250000 d Round 0.0250000 0.0250000
D11 0.0500000 d Round 0.0500000 0.0500000
D12 0.1000000 d Round 0.1000000 0.1000000
D13 0.2000000 d Round 0.2000000 0.2000000
D14 0.4000000 d Round 0.4000000 0.4000000
D15 0.8000000 d Round 0.8000000 0.8000000
D16 1.0000000 d Round 1.0000000 1.0000000
D17 C_7500 f Round 0.7500000 0.7500000