next up previous contents index
Next: Physical Conductor Groups Up: Extraction Functions Previous: Menu Commands   Contents   Index

Terminals

(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.


next up previous contents index
Next: Physical Conductor Groups Up: Extraction Functions Previous: Menu Commands   Contents   Index
Stephen R. Whiteley 2012-04-01