Rendition

The geometry so far has been schematic. The tiles describe the arrangement of traces and their approximate size and appearance. They determine the model for loads and drives. This description can be scaled for a particular process by choosing the tile size and trace widths:

       fab  process  tile  poly
     Orbit      1.2   4.0   1.2 um
        HP       .8   4.0   1.0
        HP       .8   2.6   1.0
The trace widths for each layer are spacified by the design rules. Tile size must be chosen so that separations are adequate. This is inevitably the separation between trace and adjacent contact. With 4um tiles, this is met except for metal-2, where traces may not be adjacent to vias.

Rectangles

The simplest GDSII (or CIF) file is composed of rectangles. Each layer is scanned and traces decomposed into the largest possible rectangles. A separate scan extracts contacts/vias. In the case of vertical traces, it's necessary to mark visited tiles to avoid revisiting them. (Brightening bits are used.)

The MuP21 layout requires 65,000 rectangles. The internal format records 2 bytes for each of 4 coordinates - x and y for lower-left and upper-right corners - or 8 bytes/rectangle.

To view this actual geometry, as well as verify the rectangle decomposition, keys are defined to:


     Display rectangles
     Superimpose various layers
     Zoom from full chip to tile scale
     Pan about chip
The 5 design layers are expanded to 9 output layers:

     n-well
     n+ active
     p+ active
     Poly
     Metal
     Contact
     Metal-2
     Via
     Passivation

GDSII

The industry standard layout format required by fabricators. It is generated by re-formatting the rectangle table. Incidently, in doing so the 8 bytes that describe a rectangle must be expanded to 48. Coordinates are expected in units of .2 um and must be less than 32768. They are converted to units of .1 um and will be less than 6.5536 mm.

The file is binary: a library, CC, containing a single struction, UP. Considerable memory is required to read this structure. Rectangles are represented by 1-segment paths. These paths require the default path-type of 0 (butt end-style, no extension!). The format for a rectangle is:


     0  4  9  0
     0  6  D  2  0  layer
     0  6  E  2  0  0
     0  8  F  3
          width (32 bits)
     0 14 10  3
              x (center of one end)
              y
              x (other end)
              y
     0  4 11  0
To generate this output, construct the rectangle table and type DOS. Create a file to hold the output, say i21.gds. Execute gds.com

     gds i21.gds
10 seconds are required to generate some 4 Mbytes. This can be compressed by a factor of 6:

     pkzip i21 i21.gds
consistent with the low information density of the GDS format.

gds.com will not create its output file, nor shorten it. To create:


     copy gds.com i21.gds
The file grows in 4096-byte chunks. If you suspect the existing file is too long, erase and re-create it.

CIF

This is an ASCII (rather than binary) format, less popular than it used to be. It is generated by re-formatting the rectangle table. Incidently, in doing so the 8 bytes theat describe a rectangle must be expanded to 25. Coordinates are expected in units of .2 um and must be less than 32768. They are converted to units of .01 um and will be less than 6.5536 mm. CIF format is documented in[Mead].

The file is ASCII, organized by Layers. CR+LF is inserted at ; to limit lines to 80 bytes. Rectangles are represented by Boxes. The format is:


     Blength width x y;
where x,y are the coordinates of the center.

To generate this output, construct the rectangle table and type DOS. Create a file to hold the output, say i21.cif, and execute cif.com


     cif i21.cif
10 seconds are required to generate some 2 Mbytes. This can be compressed by a factor of 6:

     pkzip i21 i21.cif
consistent with the low information density of the CIF format.

cif.com will not create its output file, nor shorten it. To create:


     copy cif.com i21.cif
The file grows in 4096-byte chunks. If you suspect the existing file is too long, erase and re-create it.