next up previous contents index
Next: The !sced2xic Command: Convert Up: Conversions Previous: Conversions   Contents   Index


The !assemble Command: Merge Archives

Syntax: !assemble specfile
This command implements a feature whereby several archives can be merged into a larger archive, on-the-fly so as to avoid memory limitations. The output consists of a definition of a top-level cell, containing instances of cells found in the archives, plus the translated records from the archive files. The input and output can be any of the supported archive formats, in any combination. The operation is controlled by a specification file which supplies the file names and the description of the top-level cell. It is a simple text file, prepared by the user, containing a number of keywords with values. The format is illustrated below.

Only physical data are translated, electrical data will be stripped. A log file s produced when the !assemble command is run. This is named ``assemble.log'' and is written in the current directory.

The file used for output must have a recognized extension that corresponds to the file type. These are:

CGX .cgx
CIF .cif
GDSII .gds, .str, .strm, .stream
OASIS .oas

Only these extensions are recognized, however CGX and GDSII allow an additional .gz which will imply compression. Input file types are recognized by content, so there is no name requirement.

Below is a description of a specification file. Blank lines are ignored, comment lines begin with the `#' character. Each active line begins with a keyword, from the list below. Keywords are case-insensitive.

OutFile out_file_name
This is mandatory, and provides the name of the output file.

TopCell cellname
Optional top-level cell added for placing subcells found in archives.

Source filename
Name of a source file, of which there must be one or more. This starts a block of lines that apply to that source. For best (or sometimes even acceptable) performance, the input file should not be compressed if any Place lines (see below) are associated.

The following are the ``source options''. If these appear ahead of the first Source line, then they set defaults that apply to all source blocks. If they appear following a Source line, they apply to that source only and override any defaults.

OnlyLayers [list_of_layer_names]
Use only the layers listed. If no list_of_layer_names is found, the list that applies is taken from the list provided by any of OnlyLayers, SkipLayers, or LayerList currently in scope.

SkipLayers [list_of_layer_names]
Skip the layers in the list. If no list_of_layer_names is found, the list that applies is taken from the list provided by any of OnlyLayers, SkipLayers, or LayerList currently in scope.

LayerList list_of_layer_names
Set the list of layers to be used with OnlyLayers or SkipLayers. This is implied when a list_of_layer_names is provided with these keywords.

LayerAliases name1=alias1 name2=alias2 ...
List of layer aliases to apply.

ConvertScale scale_factor
Scaling to apply, 0.001 through 1000.0.

ToLower
Flag to indicate conversion of upper case cell names to lower case.

ToUpper
Flag to indicate conversion of lower case cell names to upper case.

CellNamePrefix prefix_string
Cell name change prefix. This operation occurs after case conversion. The prefix_string is interpreted in the manner of the InCellNamePrefix variable.

CellNameSuffix suffix_string
Cell name change suffix. This operation occurs after case conversion. The suffix_string is interpreted in the manner of the InCellNameSuffix variable.

This concludes the source options.

Place cellname [placement_name]
Each source block can have zero or more instance blocks. An instance block starts with a Place line as shown. The hierarchy under cellname, which must name a cell in the source file, will be extracted and added to the TopCell, if given, or streamed if not. The placement_name, if given, will replace cellname in output. In either case, any cell name alteration will be applied. The actual names used in output will be internally altered if necessary so that each output cell name is unique, by adding ``$N'', where N is an integer. If a block matches a previous block except for the transformation parameters (Translate, Rotate, Magnify, Reflect), then if a TopCell was given, an instance will be added with the new transform. If no TopCell, there would be no addition to output.

PlaceTop [placement_name]
The PlaceTop line is equivalent to a Place line, except that it will automatically select the first top-level cell found in the source. It is equivalent to the Place line with the name of this cell as the first argument. This is convenient when the cell name is unknown.

The following are the ``instance options''. If these appear ahead of the first Source line, the option sets a default which is applied to all instances in all source blocks. If these appear after a Source line but ahead of the first Place line in the block, the option sets a default which applies to all instances in the source block, overriding any defaults. If these appear following a Place line, the option applies to that instance only and overrides all defaults. These will be ignored in source blocks that contain no instances.

Translate x y
Specify the translation coordinates. If not given, default is 0,0.

Rotate angle
Specify a rotation angle, must be a multiple of 45 degrees. If not given, default is no rotation.

Magnify magn
Specify a magnification. If not given, default is 1.0.

Reflect
Apply mirror-Y transformation (before rotation, if any).

NoEmpties
If given, empty subcells under cellname will not be written to output. Layer filtering will often produce empty cells.

Flatten
If given, all geometry under the cell being placed will be written as part of the cell being placed, i.e., the cell hierarchy will be flattened.

Window left bottom right top
If given, only the subcells and objects needed to describe the given area in the cell being placed will be written. The coordinates apply to cellname before any scaling is applied, and are given in microns.

Clip
If Window was given, this will cause geometry to be clipped to the window.


next up previous contents index
Next: The !sced2xic Command: Convert Up: Conversions Previous: Conversions   Contents   Index
Stephen R. Whiteley 2006-10-23