next up previous contents index
Next: The Place Button: Cell Up: The Side Menu: Geometry Previous: The Logo Font Setup   Contents   Index

The nodmp Button: Node (Net) Name Assignments


The nodmp button, which is available in the electrical mode side menu, will bring up the Node (Net) Name Mapping panel which is used to display and alter the names used for ``nodes'' (single-conductor wire nets) in the schematic, and in SPICE and other output. This name may be internally generated, or may be derived from a terminal name, or may be assigned by the user. This panel is also brought up by the Find Terminal button in the Setup page of the Extraction Setup panel, which is obtained from the Setup button in the Extract Menu.

First, to facilitate the discussion that follows, some terminology will be introduced. See also the section on wire net naming in 4.2.8.

Single-conductor wire nets, or ``nodes'' (from SPICE terminology) are referred to as ``scalar'' nets. These are the actual circuit connections, which are compared in layout vs. schematic (LVS) testing. Xic also allows multi-conductor (including single-conductor) ``vector'' and ``bundle'' nets. These actually reference and organize the nodes, but do not provide actually connectivity, except through name matching. The present Node (Net) Name Mapping panel applies only to the scalar nets.

associated name
A scalar wire net, or ``node'' may have ``associated names''. These names derive from named terminal devices which may be connected to the net, or from labeled wires which are connected to the net. Both the terminal device and the labeled wire derive the net name from the text of an associated label. The labels can be edited, which will change the text of the associated name. A net may have any number of associated names.

cell terminal name
Every electrical contact point of a cell has a name. This name was assigned when the cell terminal was created with the subct command button in the side menu, or if no name was given a default name is used.

It is also possible to name cell contact terminals from the Edit Terminals command button in the Setup page of the Extraction Setup panel. This panel is brought up with the Setup button in the Extract Menu.

global names
Certain names are registered within Xic as ``global names'', and are kept in an internal string table. These names are known at every level of the cell hierarchy. There is always at least one global name defined, the ground node with name ``0''.

Global names are easily created by the user, as any node name ending with an exclamation point (`!') is taken as a global name. For example, ``vdd!'' would be taken as a global name.

Global node names are also set with the DefaultNode global properties, in the device library file. They may be used as default nodes in some devices. In particular, the ``three terminal'' nmos and pmos devices included in the default library make use of this feature, defining global node names ``NSUB'' and ``PSUB'' that connect to the device substrate.

assigned name
Names that are specified from the Node (Net) Name Mapping panel using the Map Name button will be referred to as ``assigned names''.

A wire net can clearly have a number of names associated with it. The actual name for the node will be chosen according to the priorities listed below.

  1. If a net has an associated name that matches a global name, that global name is used, and this can not be overridden by the user.

    If two or more global names match associated names in the net, the name chosen will be the one earliest in ASCII lexicographic order. This situation is unlikely and probably represents a topology error.

  2. If a net is given an assigned name, that name will be used.

  3. If a net contains a cell terminal, the cell terminal name will be used. It is possible that more than one cell terminal is connected to the node, in which case the name chosen will be the one earliest in ASCII lexicographic order.

  4. If the net has an associated name, that name will be used. It is possible that more than one associated name will be found, in which case the name chosen will be the one earliest in ASCII lexicographic order.

  5. The net will be given a name based on the internally-generated node number.

For names other than the internally generated node numbers, the name is predictable. The internally generated numbers will change if the circuit is modified, or possibly for other reasons. Thus, if netlist or SPICE output is to be used in another application, it may be important to assign names to nodes to be referenced by name.

The Node (Net) Name Mapping panel contains two text listing windows. The left (node listing) window lists all of the nets in the current cell schematic. An entry in the list can be selected by clicking on the text with the mouse. When a net is selected in this list, the terminals to which the net connects are listed by name in the right (terminal listing) window. Entries in the terminal listing can be selected as well by clicking on the text with the mouse. In either window, the selected entry, if any, is highlighted.

There is a ``grip'' in the region separating the two text listings, which can be dragged horizontally to change the relative widths of the windows.

The left column in the node listing contains the internal node numbers, which can change arbitrarily if the circuit is modified. Entries in the second column are the mapped names, i.e., the names used in SPICE and netlist files. If the second column entry is blank, no name could be found for the net, and Xic will create a name from the node number for use in output. The third column will contain the letter ``Y'' if the node has a name assigned by the user, and/or a ``G'' if the node name is that of a global node (including ground). Both letters will appear if the user assigns a name that matches a global name, which includes any name that ends with an exclamation point. The ``G'' nodes without Y can not be renamed by the user.

When a node is selected in the left text window, the right text window lists terminals and other features that are found in the selected net. This includes

The names used for device terminals are a concatenation of the device name and the terminal names as supplied in the node properties in the device library file, if a name was given. If no name was given, a default name is constructed as devicename_contactnum. That is, the device name, followed by an underscore, followed by an internal index number for contacts of that device. The device name starts with a letter which is the SPICE key for that device type. Subcircuits are similar, and the terminal names begin with `X'.

In the electrical schematic drawing, when a net is selected in the node listing window, wire objects that are included in the selected net are highlighted. Each of the device and subcircuit instance terminals listed in the terminal listing area will have a small highlighting box drawn around its location. If one of the terminals in the terminal listing is selected, that terminal will be displayed using highlighting.

The panel will cooperate closely with the physical extraction system when the Use Extract check box is checked. This means that extraction/association will be performed as needed so that terminal locations are correctly defined in the physical layout as well. In this case, a terminal selected in the terminal list will be shown in physical layout windows, as well as the schematic. If the check box is not checked, extraction data will be used if present when showing the terminal in layouts, but there is no attempt to maintain currency. The Node (Net) Name Mapping panel is also available from the Find Terminal button in the Extraction Setup panel in both physical and electrical modes, in addition to the side-menu button in electrical mode.

When an entry in the terminal listing window is selected, the Find button, below the listing, is un-grayed. Pressing the Find button will bring up a sub-window displaying the current cell, with the selected terminal at the exact center of the display. One can press the numeric keypad + key repeatedly to zoom in to the terminal location, and the terminal will remain centered. Further, if Use Extract is set or the extraction state is current, the terminal will also be displayed and centered if the sub-window is changed to physical mode.

When the Click-Select Mode button is pressed, a command state is entered whereby clicking on a wire or contact point in a drawing window will select that net. This works a bit differently depending on the state of the Use Extract check box. If the box is checked, the button will bring up the Path Selection Control panel from the extraction system. This allows selection of conducting paths in the layout windows by clicking on objects. The corresponding net will be selected in the node listing window, with corresponding highlighting shown in schematic windows. One can also click on wires and terminal locations in the schematic, and the clicked-on net will become selected. The corresponding conductor group will be displayed highlighted in layout windows.

With Use Extract not checked, the Path Selection Control panel will not appear, but clicking in schematic windows will have similar effect. The system will once again use extraction data if available to map button presses in layout windows to a conductor group and back to the coresponding electrical net to be highlighted. However, there is no highlighting of the physical conductor group.

In either case, the clicked-on node will be shown selected in the node listing window, and scrolled into view if necessary. The terminal listing window will show the selected net details as usual. Click-Select Mode is exited if another command is started, or Esc is pressed, or the Click-Select Mode button is pressed again, or, with Use Extract checked, the Path Selection Control panel is retired by any means.

The Deselect button will deselect selections in the node listing window, and the corresponding highlighting in the drawing windows. The terminal listing window becomes empty.

It is also possible to search for nets and terminals by name using the controls just above the two listing windows. The two ``radio'' buttons select whether to search for node or terminal names. One enters a ``regular expression'' into the text area. The button to the left of the text entry initiates the search. A matching net is selected as is the matching terminal if searching for terminals. One can press the button again to move to the next and subsequent matches. If there is no initial selection, perhaps because Deselect was pressed, the search area starts at the top and extends toward the end of the listing. If a net is selected, the search starts with the next item (terminal or net) after the selection end extends toward the end.

The regular expression conforms to POSIX.1-2001 as an extended, case-ignored regular expression. On a Linux system, ``man grep'' provides a good overview of regular expression syntax and capability. However, one probably doesn't need to know much more than

  1. A given string will match any name containing the string, case insensitive.
  2. The carat (`^') character matches the beginning of a name.
  3. The dollar sign (`$') character matches the end of a name.

If the third column in the node listing window is not `G', then an overriding name for the selected node can be assigned with the Map Name button, but only while in electrical mode. To apply a name, select a node in the node listing area, then press the Map Name button. A new name will be prompted for in a pop-up window. The name can be any text token (white space is not allowed), however it is up to the user to ensure that the name makes sense in the context of the output. For example, for SPICE output, the node names must adhere to the rules for valid node names in SPICE. After pressing Apply, the second column in the listing will be updated to show the new name, and the third column will show ``Y''. Again, this can only be done while in electrical mode, in physical mode the button remains grayed.

The node naming can actually modify circuit topology, which can be a powerful feature or a curse. If two nets share a name, they will be merged, and the left window will reflect this. Thus, it is easy to make connections using node name mapping that are not obvious when looking at the schematic. For this reason, if the user is about to apply a duplicate name, a confirmation pop-up will appear. The user is given the choice to back out of the operation, or continue.

The node name assignment works by association with a connection point in the net, equivalent to a hypertext reference. This association persists if the object is moved, and is transferred to another device or wire if the object is deleted, if possible. In some cases it may get lost, however, so an assigned name may have to be reentered after the circuit is edited.

In electrical mode, an assigned name can be deleted by first selecting the node in the node listing area, then pressing the Unmap button. The Unmap button is un-grayed only if the third column of the selected node shows ``Y'' indicating that it has an assigned name. On pressing the button, the name will revert to the default name. This may effectively change circuit topology by undoing the net merging brought about through net name assignments. Again, this operation is available only in electrical mode.

The internal data structure representing node name mapping, and the listings, will be in one of two states. Either devices and subcircuits with the nophys property will be included as normal devices and subcircuits, or these will be ignored. In the latter case, if the nophys property has the ``shorted'' option, the terminals will be effectively shorted together, which will obviously change the node numbering.

The current state is as set by the last function to generate the connectivity map. Functions in the extraction system will always recognize the nophys properties, and build the map excluding these devices but taking the ``shorted'' nophys devices as shorted. Then, the schematic will correspond to the actual physical layout. Functions in the side menu which generate a SPICE listing will ignore nophys properties and include all such devices in the net list. This produces a schematic appropriate for SPICE simulation.

The Use nophys button is used to switch between these two representations, and the state of the button will be reset if another function changes the state.

When the Use nophys button is pressed, devices and subcircuits with the nophys property set will be included in the listings, just as ``normal'' devices. Their terminals will be listed in the terminals listing window. The nophys property is ignored in this case, as will be true when a listing is being prepared for SPICE output from functions in the side menu.

When the Use nophys button is not pressed, devices and subcircuits with the nophys property will be ignored in the listings, and the node numbering will respect the ``shorted'' nophys properties. Terminals from these devices and subcircuits will not be listed in the terminal listing window. This mode is consistent with the usage by the extraction system.

next up previous contents index
Next: The Place Button: Cell Up: The Side Menu: Geometry Previous: The Logo Font Setup   Contents   Index
Stephen R. Whiteley 2022-05-28