SFGEN Command Line Syntax

The SFGEN program can be run from the command line. This enables a user to create scripts to run multiple layers or to have custom settings for different layers.

Displaying the Syntax

To see the syntax and options type at a command prompt:

sfgen64.exe -h

Syntax Details

sfgen64.exe -job:<input_path> [OPT_ARGUMENTS]

where

sfgen64.exe                   name and path to the executable

input_path                    for GDSII input
                              a path/name of a GDSII file
						  
                              for ODB++ input either
                              a path to the top level of the ODB file hierarchy
                              or
                              a path/filename to a .tgz file

[OPT ARGUMENTS]

-outdir:<out_dir>             for ODB++ input
                              an output directory
                              for GDSII input
                              an output directory/file
						  

-workdir:<working_dir>        where temp files will be stored during conversion

-thrnum:<num_threads>         max number of concurrent threads

-arcres:<res_dbl_value>       arc resolution in degrees

-arcsag:<sag_dbl_value>       arc sag (in um)

-cutline                      if specified gdsii islands are formed as cut lines
                              if omitted, butting polygons are used

-gds_layer:<layer_int_value> output GDSII file layer

-gds_struct:<struct_name>    output GDSII top structure name


For GDSII Input Only
====================
-struct:<cellname>           input file structure to process
-layers:<+0+1+2>             list of layers to convert (datatype selection yes)
-lcd                         if present turns on LCD algorithms
-spanlength:<span length>    size of aggregation cell in um(see reference)
_structvertcnt:<max count>   max number of vertices in aggregated cell (see reference)
-lcdarg:<polyhier arguments> special arguments for LCD mode

For ODB++ Input Only
====================
-dbg[:<log_fname>]           enable debugging and set log file name
-step:<step[,l1,l2,...]>     specify the step and layer(s) to convert
-keep_tmpfiles               if selected temp files are not erased upon completion
-exclude:<stepnames>         set steps to be excluded  (?????????)
-excludel:<layernames>       set layers to be excluded (??????????)
-show_progress               enables the progress dialog (may slow program down)
-engargs:<args>              special arguments for odb2gdx (rarely used)

Transformation Arguments
=========================

-dpi:<dpi_value>                      DPI setting used for subdividing data
-buffer:<buffer_value>                raster buffer (again used for subdividing data
-rotate:<rot_val[,xanchor,yanchor]>   rotation with anchor point (um)
-mirror:x[,xanchor,yanchor]           x mirror with anchor point (um)
-mirror:y[.xanchor,yanchor]           y mirror with anchor point (um)
-scale:<x_val,yval[xanchor,yanchor]>  scale factor (x,y independent)
-shift:<x_val,y_val>                  move command (um)
-offset:<type,x_val,y_val>            edge bias (see reference) (um)

Annotation Options
====================
-annotate:<annotation_file>       turns on annotation and defines file to read
-annoarg:<annotation arguments>   special arguments for annotation engine



Correction Options
===================
-correction:<correction_file>     turns on correction and defines file to read
-corrarg:<corection_arguments>    special arguments for correction engine
-tolerance:<correction_tolerance> tolerance for correction (in um)

Example 1

Assume we have an ODB++ file called input.tgz and we want to create 4 GDSII files using the ODB++ layers: l1, l2p, l3p and l4. The ODB++ step to process is called panel. Our DPI is 5080. No correction or annotation. The command line could look like this: (I've put in returns to make it fit on the page ...)

c:\wcad\sfgen64\sfgen64.exe -job:"E:\cad_files\input.tgz"
   -step:panel,l1 -outdir:"E:\cad_files\l1"
     -gds_layer:1 -gds_struct:TOP
       -workdir:"E:\cad_files\temp" 
        -thrnum:4 -arcres:45 -arcscag:2 -dpi:5080 -buffer:2048
		  
c:\wcad\sfgen64\sfgen64.exe -job:"E:\cad_files\input.tgz"
   -step:panel,l2p -outdir:"E:\cad_files\l2p"
     -gds_layer:1 -gds_struct:TOP
       -workdir:"E:\cad_files\temp" 
        -thrnum:4 -arcres:45 -arcscag:2 -dpi:5080 -buffer:2048 

c:\wcad\sfgen64\sfgen64.exe -job:"E:\cad_files\input.tgz"
    -step:panel,l3p -outdir:"E:\cad_files\l3p"
      -gds_layer:1 -gds_struct:TOP
        -workdir:"E:\cad_files\temp" 
         -thrnum:4 -arcres:45 -arcscag:2 -dpi:5080 -buffer:2048 	

c:\wcad\sfgen64\sfgen64.exe -job:"E:\cad_files\input.tgz"
   -step:panel,l4 -outdir:"E:\cad_files\l4"
    -gds_layer:1 -gds_struct:TOP
      -workdir:"E:\cad_files\temp" 
        -thrnum:4 -arcres:45 -arcscag:2 -dpi:5080 -buffer:2048  
		  

Each GDSII file would be in its own directory with data on GDSII layer 1 and a top structure named TOP.



Example 2 - Running SFGEN command line with Transformation

Assume we have a GDSII file called D001406_B_PRDL1_29_MP1433.003.gds and we want to run it from the command line with some transformation but no corrections on layer 29:20.
In this example, we are converting the input file with transformation - Mirror along X. No correction is used with this example. We use the -keep option to keep the log file and some other work related files. What we just did is creating a master GDSII file with the transformation you are interested in. You can next run all your corrections on this file with out wasting time running sfgen64.exe again.

C:\wcad\SFGEN64\sfgen64.exe -job:%CD%\D001406_B_PRDL1_29_MP1433.003.gds -outdir:%CD%\out\first.GDS -workdir:%CD%\work -struct:TOP -layers:+29:20 -log:%CD%\out\first.LOG -thrnum:4 -arcres:3.000000 -arcsag:0.200000 -jitter:1.000000 -dpi:25400.000000 -buffer:1024.000000 -rotate:0.000000,0.000000,0.000000 -mirror:x,0.000000,0.000000 -scale:1.000000,1.000000,0.000000,0.000000 -shift:0.000000,0.000000 -keep
	  


Example 3 - Running the Correction Engine by itself

After running the input file through the transformation process using sfgen64.exe, we can now perform corrections on the file we mirrored in the previous step. The correction process is much faster than the first step. You should use this approach if you need to perform multiple corrections on the transformed file.

C:\wcad\SFGEN64\sffcorrection64.exe %CD%\OUT\first.gds  %CD%\cor.txt %CD%\out\corrected.GDS -tolerance:2.000000 -log:%CD%\work\corrected.LOG -silent
	  


Example 4 - Running SFGEN64.exe with Transformation and Correction in one command

You can also run the sfgen64.exe with both transformation and correction in one command. Use this approach if you only need to do one type of correction.

C:\wcad\SFGEN64\sfgen64.exe -job:%CD%\D001406_B_PRDL1_29_MP1433.003.gds -outdir:%CD%\out\correction.GDS -workdir:%CD%\work -struct:TOP -layers:+29:20 -log:%CD%\out\correction.LOG -thrnum:4 -arcres:3.000000 -arcsag:0.200000 -jitter:1.000000 -dpi:25400.000000 -buffer:1024.000000 -rotate:0.000000,0.000000,0.000000 -mirror:x,0.000000,0.000000 -scale:1.000000,1.000000,0.000000,0.000000 -shift:0.000000,0.000000 -correction:%CD%\cor.txt -tolerance:2.000000 


Back to Manual