-
- (int) ModifyTerminal(xe, ye, xp, yp,
name, lname, type, remove)
This is a rather complicated function used to add, modify, or remove
formal terminals of the current cell. The arguments are as follows:
- xe, ye (real)
The coordinates, in microns of the terminal in the electrical schematic.
- xp, yp (real)
The coordinates, in microns, of the terminal in the physical layout.
- name (string)
The terminal's name.
- lname (string)
Physical layer name associated with the terminal.
- type (string)
The terminal type, one of INPUT, OUTPUT, INOUT,
SUPPLY, GROUND.
- remove (integer)
Non-zero will remove terminal.
If a terminal already exists which matches the given name, or either
the physical or electrical coordinates, the existing terminal will be
updated, or removed if remove is nonzero. Otherwise, if remove is zero, a new terminal will be added with the given
characteristics. The name, lname, and type
arguments can be passed 0, in which case a default will be used.
If the electrical coordinates do not match a ``node'' where a
connection can occur, the terminal will be ``virtual''.
The function returns 1 if the operation succeeded, 0 otherwise.
- (string) GetTerminalName(terminal_handle)
This will return a string containing the name of the terminal
referenced by the handle passed as an argument.
- (int) GetTerminalType(terminal_handle)
This will return a type code index for the terminal referenced by the
handle passed as an argument.
This is not expected to be useful at present.
- (int) GetTerminalFlags(terminal_handle)
This will return the flags for the terminal referenced by the handle
passed as an argument.
This is not expected to be useful at present.
- (int) GetTerminalLocation(terminal_handle, array)
This function returns the location for the terminal referenced by the
handle passed as an argument. The second argument is an array of size
two or larger which will receive the x-y coordinate, in microns. The
function returns 1 on success, 0 otherwise.
- (object_handle) GetTerminalInstance(terminal_handle)
This function returns a handle to the electrical subcircuit or device
instance associated with the terminal referenced by the handle passed
as an argument. This will not exist for formal terminals.
The returned object is an electrical object.
- (int) IsTerminalFormal(terminal_handle)
This will return 1 if the terminal is ``formal'', i.e., it is one of
the external connections to the current cell. Otherwise, 0 is
returned if the terminal connects to internal objects only. The
return value is -1 on error.
- (object_handle) GetTerminalObject(terminal_handle)
This function returns a handle to a physical object that is associated
with the terminal referenced by the handle passed as an argument.
Terminals are associated with underlying conducting objects as part of
the connectivity algorithm. Not all terminals have an associated
object, in which case they are ``virtual''.
- (int) GetTerminalVgroup(terminal_handle)
This will return the virtual group number for the terminal referenced
by the handle passed as an argument. Terminals that are not
associated with an object are ``virtual'' and represent pass-through
between other cells or subcells. The returned value is -1 on error or
if the terminal is not virtual.
- (string) GetTerminalLayer(terminal_handle)
This returns a string containing the layer name for the terminal
referenced by the handle passed as an argument. Non-virtual terminals
are associated with a conducting layer.
- (int) ListLabelTerms(file_handle_or_name)
This function will identify labels in the physical view of the current
cell which can be interpreted as terminal markers. If the label
appears on a ROUTING layer, and the anchor point of the label touches
a non-label object in the cell hierarchy on the same layer, it will be
interpreted as a terminal label.
This function works outside of the extraction system. It will list,
in CIF format, the terminal labels, and the object that they touch.
If the object is from a subcell, it will have coordinates transformed
to the system of the current cell.
The argument sets the destination for the list. This can be a handle
opened for writing with Open or similar, or the name of a file
to be opened. It can also be one of the words ``stdout'' or
``stderr'' which will direct the output to the standarad output
or error channels. If the argument is a null or empty string or 0,
output will go to the standard output.
The function returns 1 on success, 0 otherwise. The ListLabelTerms function performs a similar operation.
- (int) ListLabelTerms()
Similar to ListTermLabels, this function generates a list of
terminals from the physical current cell. These are labels found on a
ROUTING layer with an anchor point that falls on an object on the same
layer. This function works with the extraction system. The terminal
object must be found in the current cell, or in a cell which has been
internally flattened into the current cell for extraction purposes.
The return value is a handle to a list of strings. Each string
contains the layer name, x and y coordinates, the group number and the
label text, in that order.