ABUT(5ICD)

NAME
abut, vabut - abut a cell to an instance

SYNOPSIS

INST *abut (key, instance, cell, inst_name, opt_args)
char *key, *instance, *cell, *inst_name;

INST *vabut (key, itv, mtv, cell, inst_name, opt_args)
char *key;
TERMVEC *itv, *mtv;
char *cell, *inst_name;

PARAMETERS
is a character string controling the behaviour of abut. It must contain at least one character to specify the side of instance to which cell must be abutted. The value of the side specifier can be:
    place cell to the left of instance. place cell to the right of instance. place cell below instance. place cell above instance.
Optionally, key can contain other characters. Some of these need one or more option value argument(s). They must be specified on the place of opt_args, and their type, number and sequence must be the same as indicated below. Also, if more than one option key letter is specified that need option value(s), the respective values must be given in the same sequence as the key letters. The option characters can be:
    Overlap terminals as far as possible. int mir, rot;
    specify orientation of the cell that is to be abutted. Currently, this option can not be used with the vabut() function. int dx, nx, dy, ny;
    specify a repetition of the cell. int nx, ny;
    specify repetition number, pitch is called to obtain the repetition distance. Use river routing to connect the terminals of both cells. The position of the new cell is calculated to obtain the smallest river-routing area. For a description of river routing facilities in ldmc, see ll_river (5ICD).
is a character string specifying an instantiated cell (sub cell) in the current cell. This name is the instance name of the corresponding mc-statement, or in case no instance name was used, just the cell name in which case the latest call for the cell is used. is a character string specifying the name of the cell which is to be instantiated. is the instance name used in the mc-statement which is generated. This argument may also be the empty string or the NULL pointer, indicating that no instance name is desired. are the optional argument values as specified with the key parameter. Specifies some terminals on a specific side of an instantiated cell in the current cell. Only the terminals found in this vector are taken into account with the abutment. Specifies some terminals on a specific side of a cell to be abutted against the instance whose terminals are specified by itv. Only the terminals of cell found in this vector are taken into account with the abutment.

DESCRIPTION
Abut will abut cell to instance. More specifically, a mc statement is generated in the the output file, with the appropriate translation parameters and an instance name as specified by inst_name. The abutment is controlled by key. Cell is then abutted to the left, right, bottom or top of instance by letting pitch-matching terminals of instance and cell touch each other. Vabut will generate a mc-statement for cell so that the terminals specified in itv and mtv touch each other. Also, connections eventually generated by vabut connect only terminals in itv and mtv.

EXAMPLES
The following will abut cell2 to the right of cell1, without an instance name:

    abut ("r", "cell1", "cell2", "");

Mirror cell2 in the x-axis and rotate about 90 degrees, then abut cell2 to the right of cell1:

    abut ("rO", "cell1", "cell2", "", 'x', 90);

SEE ALSO
ldmcintro(5ICD), ll_abut(5ICD) ll_river(5ICD)