GBRFRAC WEB Logo

Introduction

gbr2oasfrac is a library that reads a Gerber RS274X file, fractures it into trapezoids and creates output in the OASIS format. It is intended to be incorporated into an application used for preparing Gerber layout data for a mask writer. Currently it is available for Windows (32 bit) but can be easily made available on 64 bit Linux and Solaris as needed.

GBR2OASFRAC Flow - CALLLING APPLICATION USES THE LIBRARY TO OPEN AND FRACTURE THE Gerber INPUT AND CREATE AN OASIS OUTPUT

Background

For mask writers developed for the integrated circuit industry, Gerber cannot be read directly. Instead we offer a product that converts the Gerber into OASIS while simultaneously fracturing the OASIS data into trapezoids.

When the OASIS specification was developed as a replacement for GDSII, a portion of the specification was also created optimized for use by mask writers. Until recently, no mask company directly read the OASIS format due to legacy reasons. However a new machine, recently developed, uses the OASIS format for its input and Artwork has developed an efficient yet low cost fracturing engine for it.


Why Fracture to Trapezoids?

Vector data input to a mask writer must be optimized for very fast rasterization.

raster scan line for convex polygons

Figures that are convex in one direction (we call this convex in X) can be very efficiently rasterized with minimum computation. For Manhattan data (90° edges) the trapezoid reduces to a rectangle.


Functionality

Input file

The user can specify the Gerber file to fracture. Gerber files with internal layers (for polarity reversal or step and repeat) are converted to a single OASIS file.


Output Grid Snap

The user can specify an output grid and fractured data will be snapped to the specified grid. OASIS native grid is 0.001 um (1 nm) but the user can specify a coarser grid such as 0.01 um if needed.


Overlap Removal

Input data is unionized so that the output fractured data has no overlap.

input data is unionized and output has no overlapping figures

Polygon Sorting

Polygon data within a tile can be sorted by X and Y. The min X and min Y coordinate of the polygon are used for the sort.


Tiling

The user can specify a square or rectangular tile size or alternately, the number of tiles desired and the program will then computed the required tile size. The contents of each "tile" are saved in a cell or structure which is labeled by its position in the array.

striping and tiling of the input layout

Tile Order Sorting

An option can be turned on to sort the tiles within the OASIS file from top to bottom. The illustration below shows how the tiles are labeled and how the OASIS file is organized.

tile sorting top to bottom option
HEADER
BGNLIB
DEFNSTR TILE1_1 <-- Tile Cells sorted
DEFNSTR TILE1_2        
DEFNSTR TILE1_3
DEFNSTR TILE1_4
DEFNSTR TILE1_5
DEFNSTR TILE1_6
DEFNSTR TILE1_7
DEFNSTR TILE2_1
DEFNSTR TILE2_2
DEFNSTR TILE2_3
DEFNSTR TILE2_4
DEFNSTR TILE2_5
DEFNSTR TILE2_6
DEFNSTR TILE2_7
.
.
.
DEFNSTR TILE5_1
DEFNSTR TILE5_2
DEFNSTR TILE5_3
DEFNSTR TILE5_4
DEFNSTR TILE5_5
DEFNSTR TILE5_6
DEFNSTR TILE5_7

DEFNSTR TOP
SREF TILE1_1  <-- SREF's not sorted
SREF TILE1_2

Transformations

The following transformations can be applied to tiled output data.



OASIS.VSB Compliant

The resulting OASIS file is OASIS.VSB compliant. This means that it includes the required records and follows restrictions required for input to electron beam conversion tools as defined in 2005 by Selete. For example, all output figures are written as either rectangles, trapezoids or ctrapezoids. All cell placements have insertion scale=1,rotation=0 and mirror=0.

OASIS.VSB has restrictions on hierarchy


Multi-threaded

The program is multi-threaded and can make use of multiple CPU cores.

Documentation

A programmer's API manual can be downloaded here:gbr2oasfrac_manual.pdf

Command Line

An executable using the library is included and you can see the command line here.