< web page header

Code Flow for Converting ODB to GDSII

The ODB2GDS library has a lot of function calls and many arguments. This page should help the programmer understand which functions and arguments are most useful for converting ODB++ to GDSII.

Collecting Information

Data The Calling Program needs to Know

    Directory where the odb2gds library is located

Data The Calling Program needs to Collect from the User

    input ODB file?

    where is it located?

    is it a .tgz/tar file or a directory structure

    where to store temporary data?

    what step and what layer(s) to convert

    name and location of the output GDSII file?

    structure name of the GDSII file

    output data on which GDSII layer?

    Units and Grid (resolution) of the output GDSII file

    polygon output format (cut lines or butting)

    max number of vertices in the output GDSII

    arc control settings

    should the output data be scaled?

    should output use Step/Repeat?

Getting the Input File and Location

This does not need the library. A simple browse dialog along with a radio button asking whether the input is a file or directory should be sufficient. (If the user selects directory, you may wish to check for the presence of a subdirectories named "steps" and "matrix" These must be present; if not, inform the user that he has not selcted a valid directory.

You could also ask the user where to store "temporary" data that ODB2GDS will produce. This location will be needed when calling the function that opens the ODB++ data.

Getting the STEP/LAYER to Convert

ODB is organized by Steps and Layers similar to GDSII structures and layers. It is unlikely that the user knows the step name and layer name.

So you need to present the user the available steps/layers and let him choose a combination.

To do this you need to use the library function, openODB. This will open and scan the ODB++ file.

You can then use one of the information functions such as getODBStepInfoList and getODBLayerInfoList to generate a list of steps/layers.

There are quite a few convenience functions for getting STEP/LAYER information. The highest level call, getODBStepInfoList, returns a structure with all the information you will need.

Configuring the Conversion

The calling application should now collect user input that controls the conversion. This information will be used to build an argument list for the function, convertODBInput.

A dialog is normally created that enables the user to select the options which are passed as arguments.


Function Argument

name and location of the output GDSII file?

-gds[:<gds filename>]

GDSII File Name Top Structure




Units of the output GDSII


Resolution of the output GDSII


Polygon Format

-butting (default=cutline)

Max Number of Vertices per Boundary


Arc Control (Chord Error/Arc Res)




Step and Repeat?


Calling the Conversion function

Now that all the information you need to call convertODBInput has been collected, you can build your argument list and call the function.

Note that this library produces one layer per output file only. If you need to convert 10 ODB layers into GDSII you will need to repeat this function 10 times; each time changing the ODB layer.

If you want the user to see progress as the conversion proceeds then add -show_progress to the argument list.

Closing the Library

When done, close the library with closeODB .

Download Revision History Program Usage Library Price