To select a terminal for editing, the user clicks on or drags over the terminal to be edited. The selected terminal will blink, and a pop-up will appear. The pop-up allows the terminal name to be changed, and the layer binding to be set. If not explicitly named, the names default to ``_N'', N being an integer. The terminal (node) names are stored in the node property strings. These names can also be set when the terminal is created, while in electrical mode, with the subct command. In instances of the cell, the terminal name becomes a concatenation of the instance name and the parent cell terminal name, such as X0_1 (defaults) or Xbuffer_output (applied values). The layer binding is a hint to the association function as to which layer the terminal should be associated with. This is important if the terminal is placed over objects on several different layers. In some cases, the association function will override the hint and assign the terminal to an object on another layer, if the association is ``sure'' that this is correct.
It is usually not necessary to place terminals manually. Exceptions are cells with ambiguous connection points. For example, suppose a cell contains a single resistor, with cell contacts ``C1'' and ``C2'' to the resistor. Xic will assign the physical locations of the terminals arbitrarily, which may not be the locations expected in a parent cell. For example, if the physical resistor is a vertical strip, a parent cell may expect C1 above C2, whereas Xic might have assigned the reverse. The user can move the terminals to the proper locations, bypassing the assignment in Xic, and the locations are made permanent when the cell is saved.
If association fails to place a terminal, or it is placed in the wrong location, then manual placement should be used. Clicking on a terminal with the Shift key held will attach it to the pointer, and clicking a second time will place the terminal at the new location. The terminal can also be moved by dragging. If the new location is over a conductor, that node/group association is assumed before the association operation (so it had better be correct, or association will not be correct).
The cell formal terminals have a flag which will be saved in cell files if set, the purpose of which is to prevent Xic from reassigning the physical location of the terminal. This flag will be set whenever the terminal is moved by the user. Once moved, the terminal should always remain in that location (which had better be correct for extraction/LVS to succeed).
The state of the flag is indicated by the check box in the pop-up with label ``Location locked by user placement''. This flag can be set or unset with the check box.
When a terminal is placed, Xic searches through the conductor groups that touch the terminal for a suitable object to associate with the terminal. The object must touch the terminal, be on a Routing layer, and match the layer hint given to the terminal, if any. The hint layer can be supplied with the terminal properties editor, and is otherwise the last layer that the terminal was associated with (if any). If no object can be found that matches the hint, the hint is ignored and any Routing layer will be used. If an association is made, the layer name is printed near the terminal marker. If not, no layer name will be printed, and the terminal no longer has a hint. If the cell has not yet been associated, the layer name label may not appear. The actual association will be made the next time the cell is processed, which occurs when entering most of the extraction commands. In particular, activating the Show Terminals command is a benign way to force a recalculation of all associations.