SFGEN Manual

Copyright 2013-2017 , Artwork Conversion Software, Inc.

updated: August 17, 2017 for v2.42

updated: March 17, 2020

Table of Contents


Graphical User Interface

  Main Dialog

  Advanced Settings

    Panel Flow

    LCD Flow

      Span Length Details

Command Line Syntax




    Panel Flow

    LCD Flow

  Distortion Correction




Linux Notes


SFGEN is a preprocessor which reads either GDSII stream files or ODB++ printed circuit board manufacturing data files. It is designed to be used to produce an optimized GDSII file for Artwork's Real Time Correction RIP (RTCR). In order to get maximum throughput out of the RIP we rely on the fact that large panels or LCDs contain repetitive data.

The SFGEN program identifies such repetitive data and separates it from the background (or frame) data that is not repetitive. This enables the RIP to effectively place a large number of pixels using bitmap copy as opposed to rasterizing the entire panel by brute force. As the bitmap copy is much faster than re-rasterizing the same input data over and over again, the net result is faster rasterization.

The output of the SFGEN program is a GDSII stream file (no matter whether the input is GDSII or ODB++) and it has a limited hierarchy optimized so that the RIP need do as little rasterization as needed.

Graphical User Interface

Start up SFGEN

The main dialog will appear:

SFGEN main dialog

Input File/Directory

Use the Open button to select (open) either:

Once you have selected the file, SFGEN will scan it, verify it is OK and will provide a list of Steps/Layers (for ODB++) or Cells/Layers (for GDSII) for you to select when running the conversion.

Output File/Base Name

Output Layer

Output Cell

View Output





Example 1 (ODB++)

In the example below the user opened the ODB++ file called: 226.tgz and selected the step called "array" and selected the layer named "top".

SFGEN main dialog with ODB++ loaded and step/layer selected

Example 2 (GDSII)

open dialog for a GDSII file

Advanced Configuration

The advanced configuration is a tabbed dialog that enables the user to control the conversion settings, to define transformation, to define text annotations that will be dropped into the raster output and to load a distortion data file that can be used to compensate for distortion in the substrate.

Processing Flows

There are three data flows supported by SFGEN:

So if you open an ODB++ file, you are, by default, in Panel mode.

three operating flows


Settings Tab (Panel Flow)

If you have loaded an ODB++ file the only available flow is PANEL. The check box to select LCD or GDSCompact is grayed out.

Advanced Settings Dialog (ODB panelized input)

Working Dir

Thread Num

Optimize SR

Append Log File

Show Progress

Keep Temp

Open Args

Arc Resolution and Chord Error

Arc Resolution

illustration of arc resolution

When converting from ODB++ to GDSII this controls how arcs and circles are broken into segments.

Chord Error

illustration of arc chord error

When converting from ODB++ to GDSII this controls how arcs and circles are broken into segments. [This parameter was once called arcsag.]

User Grid


Max Points


polygon output options

LCD Flow and Parameters

GDSCompact Flow and Parameters

Convert Args


Transformation Tab

Advanced Settings Dialog


    Enter the DPI that the RIP will use. This value (in conjunction with the buffer size) is used to determine the size of the repetitive geometries so that the RIP will have an optimum input.

Buffer Size

    Enter the buffer size (this value is used in conjunction with the DPI) that the RIP will use to hold the repetitive data. This is not the raster buffer size but a separate buffer dedicated to holding the bitmap masters.

Scale X

    Enter the scale X factor and the anchor coordinate. See Reference

Scale Y

    Enter the scale Y factor and the anchor coordinate. See Reference

Mirror X

    Check to enable mirror X (i.e. X -> -X) also enter the anchor coordinate. See Reference

Mirror Y

    Check to enable mirror Y (i.e. Y -> -Y) also enter the anchor coordinate. See Reference


    Enter a Rotation value in degrees (increasing angle is CCW) and an anchor point about which the input data is rotated. See Reference

Shift (X,Y)

    Enter the shift along X and Y.

Offset (Edge Bias)

    Select the offset mode: NONE, INNER, OUTER, BOTH. See the reference section for details as to how INNER, OUTER and BOTH are implemented. Reference.

Order of Transformation

The transformations are performed in the following order:
  1. Scaling
  2. Mirror X
  3. Mirror Y
  4. Rotation
  5. Translation (Shift)

all units are in microns except rotation which is in degrees

Annotation Tab

This tab enables the user to load an annotation file. The annotation file contains one or more annotation entries that instruct SFGEN to generate text (or to "annotate" the mask.) This text is usually some sort of an identification, lot stamp or date stamp associated with the actual writing of the mask.

advanced settings: annotation tab

If the Add Text check box is selected, the user should also select an annotation file by using the Browse button. (Checking the box and failing to select a legal annotation file will cause a conversion failure ...)

The annotation file can be created by hand, by an application or by a Qckvu3 plug-in.

The syntax and details of the annotation file are here.

Distortion Tab

Advanced Distortion Dialog

Distortion refers to a correction applied to the CAD data in order to warp the CAD data so that it "fits" on a substrate that may have been subject to some physical distortion due to either temperature or possibly processing (such as etching one side). Distortion can be corrected either in the SFGEN program or it can be corrected in the RTCR.

The correction works by reading the coordinates in a table of common points from both the CAD data and the measured on the substrate. These points drive a correction engine that attempts to match the distortion found on the substrate. Of course, there is no guarantee that the distortion can be exactly matched from only a relatively small number of data points.

See the reference section for details and examples.

Use Correction File

If checked, SFGEN will read the user specified correction file and apply corrections to the output file. Use the browse button to select the appropriate text file containing the coordinates.


A value (in microns) used to determine whether an instance of a cell is equivalent to other instances. If this value is set too small, each bitmap placement will require its own definition and the RIP will not run very quickly. See the reference section on distortion to understand how the tolerance affects repetition and RIP throughput.

Optional Arguments

Reserved for use by the developers during debugging.