Using ASM2600 to create TAP and TIX format

TAP and TIX files are the PG files that are in use at UC Berkeley. The TAP file is the actual PG file (David Mann 3600) in EBCDIC format, and the TIX file is the Tape Index file.
The gds2pg creates standard David Mann files but not TAP/TIX files. Due to clients' requests, we have asked and received the source code for a tool that converts our standard PG output to TAP/TIX.
m36gen is a program that creates TAP/TIX files. We received its source code from UC Berkeley and ported it to Windows, Linux and Solaris. Clients can get this utility free of charge.
In this web page, we will show you how to convert GDSII data all the way to TAP/TIX files.

Running gds2pg along with m36gen

Let's use the GDSII file called rf1.gds - it is located in our examples directory.
We already discussed in a separate web page all the command line options of gds2pg so in this page we will assume you know how to run gds2pg.
The script we can use to convert rf1.gds to TAP/TIX is shown below..
/home/cad/asm2600/bin/gds2pg rf1.gds  0.2  5  = -m1 -s1 -v2 -o5 -p
/home/cad/asm2600/bin/mmask -u:mils -s:1 -3600 -p RF105.INT 
/home/cad/asm2600/bin/mm2gds RF105.DWM -o:RF105.GDS -u:E -3600 -p
/home/cad/gds2cif/gds2cif RF105.GDS RF105.cif -ucb
/home/cad/asm2600/bin/m36gen -T top61 RF105.cif 
The first line of the script converts the GDSII file rf1.gds to intermediate format. We are converting layer 5 with a minimum feature of 0.2 mils.
The second line of the script launches mmask and converts the intermediate file to DavidMann 3600.
The third line converts the MANN file to GDSII. The -p option is used to create path data for each flash. It is necessary to do so in order to get good TAP/TIX files.
The forth line converts the GDSII file to CIF data since m36gen can only convert CIF data to TAP/TIX. Make sure to use the -ucb option which will create CIF file compatible with UC Berkeley's m36gen tool.
The last line converts the CIF file to TAP/TIX files. The output files in this case will be top61.tix (tape index file) and top61.tap (actual PG file which can be viewed with our PGCAM).

m36gen specification

In case you are interested in more detailed information about the m36gen utility, please read below..

SYNOPSIS
       m36gen [ -s ] [ -n name ] [ -c x_center y_center ] [ -t x_trans y_trans
       ] pattern_file

DESCRIPTION
       m36gen takes pattern_file, the output file from ciftomann(1), and  pro-
       duces  a Mann-3600 format pattern generator tape consisting of a direc-
       tory file and then a separate file/mask for each layer.  When the  com-
       mand  is  executed, m36gen makes one pass over the output to build up a
       directory and compute the bounding box for the chip. At this  point  it
       prints ât return when the tape is ready : â Someone must now physi-
       cally mount a tape on the tape drive.  After  verifing  that  the  tape
       drive is ready, hit return and the program will then create the pattern
       generator tape.

       m36gen takes the following options :

       -s     m36gen(1) normally produces various short messages as each stage
              is started. The -s option suppresses them.

        -n name
              The  name  for  each  mask in the directory is of the form âme
              layer_nameâIf not specified, name defaults to your login  name
              (in capital letters).

        -c x_center y_center
              The  masks  are  centered  about the point (x_center, y_center),
              where x_center and y_center are integers  and  their  units  are
              those  of  the  pattern  generator  (for  the  GCA Mann3600 : .1
              microns).

        -t x_trans y_trans
              The masks are translated by  x_trans  in  the  x  direction  and
              y_trans  in the y direction, where x_trans and y_trans are inte-
              gers and their units are those of the pattern generator (for the
              GCA Mann3600 : .1 microns).

EXAMPLE
       Assuming  that  infile  was  produced by ciftomann for the GCA Mann3600
       pattern generator (using the -p PG3600 flag), the command :
                         m36gen -c 100000 100000  input_file

       produces a set of masks from input_file, centering each mask at x  =  1
       centimeter, y = 1 centimeter.

FILES
       /dev/rmt4
              The 800 bpi, no rewind after closing, tape drive.

       pg_write
              The  utility used to block, convert to EBCDIC, and do the actual
              tape write.

NOTES
      * For correct conversion to CIF format and operation of m36gen, use the -p
        option with mm2gds
      ** For correct conversion to cif and operation of m36gen, use the -ucb 
        option with gds2cif