GDSII has no arc entity - for most IC applications this is not a serious limitation but there are applications such as IC packages and RF/microwave circuits where the lack of an arc entity requires a large number of segments to approximate a smooth arc. AutoCAD's DXF file format does support arcs but most translators have no way to "recover" the arc from GDSII.
It would be most useful if when converting from GDSII to DXF the translator could identify an "arc" and write it to DXF as an arc. This results in a very smooth layout in DXF and greatly reduces the file size.
ASM 3500 (as of September 2013) now includes a circularize option when converting from GDSII to DXF. Along with checking the option the user must also enter a non-zero value of chord error which is used to determine which groups of segments accurately approximate an arc and which do not.
When the option is turned on it selects 3 consecutive points on a boundary and finds their center and radius. It then iteratively adds consecutive points to the current list to see if a single center and radius returns the same set of points and edges within the tolerance given by the chord error. It continues to add points to the collection until a point on each side is found that fails to meet the criteria. Those coordinates define the end points on either side of the arc.
This option works seamlessly whether the user has selected to preserve paths with widths (lwidening) or selected to convert paths with width into outlines.
If an arc forms a complete 360° boundary it is converted into a circle automatically instead of a polyline.
A sample GDSII file and two outputs are available for download here.
|Sample GDSII (MMIC) with many approximated arcs
|1012 KB unzipped
|Circularized DXF Output (Chord Error = 0.35 um)
|319 KB unzipped
When running gds2dxf on Windows, you can control the Circularize option in the Setting menu as shown in the image.
The chord error is in the GDSII units.
When running gds2dxf on Linux/Solaris, you can control the Circularize option in the config file GDS.CFG. It is not available in the GUI.
You will need to add the following lines to your config file before running the translator.
CIRCULARIZE YES CHORD_ERROR 0.1
The CHORD_ERROR must be non-zero for circularizing to take effect. The chord error is in the GDSII units.