The place button in the side menu brings up the Cell Placement Control panel which allows instances of cells (subcells) to be added to the current editing cell.
When the Place button in the panel or the place button in the side menu is active (the two buttons show the same status), the current master can be instantiated at locations where the user clicks (``place mode''). The bounding box of the cell is ghost-drawn and attached to the pointer. The orientation and size of the instance are set by the current transform. If the Cell Placement Control panel is dismissed the place mode, if active, is exited. The place mode can be exited with the Esc key, or by pressing the Place button (either one) a second time. The panel is not popped down when place mode is exited.
The substructure of cell instances being placed is highlighted to the depth shown in the main window. This facilitates alignment with other objects. One can change the display depth to reveal more or less of the substructure.
From the Open command in the File Menu, if one holds down Shift while selecting one of cells from the history list, the Cell Placement Control panel will appear with that cell added as the current master. This applies to cell names and not the ``new'' entry. This is a quick backdoor for instantiating cells recently edited.
In electrical mode, when a connection point of a device or subcell is near another connection point, it will snap to that location and a small dotted box will be drawn around the point. This facilitates placement of devices and subcircuits in the schematic. While the Shift or Ctrl keys are held, this feature is disabled.
Cells can be placed individually, or as arrays in physical mode. When the Use Array button is active, cells will be placed as arrays, governed by the currently set array parameters. The array parameters can be entered into the four text fields below, only when the Use Array button is active. Arrays are allowed in physical mode only. If this button is not active, single cells are placed.
The array replication factors Nx and Ny can be set to any value in the range of 1 through 32767. The upper limit is set by the GDSII file format, and is enforced by Xic to avoid portability problems.
The spacing values Dx and Dy are edge to adjacent edge spacing, i.e., when zero the elements will abut. If Dx or Dy is given the negative cell width or height, so that all elements appear at the same location, the corresponding Nx or Ny is taken as 1. Otherwise, there is no restriction on Dx or Dy except that very large (unphysical) values can cause integer overflow internally.
The !array command can be used to convert existing instances into arrays, and to modify the array parameters of existing arrays.
In physical mode, the reference point of the cell, which is the point in the cell located at the pointer, can be set to either the cell's origin, or to one of the cell's corners. A drop-down menu in the Cell Placement Control panel indicates the present selection, and allows the user to make a new choice. The nomenclature ``Upper Left'', etc., refers to the corner of the untransformed cell array bounding box. When place mode is active, pressing the Enter key repeatedly will cycle the reference point around the corners and back to the origin.
In electrical mode, the cell reference point is always set to the location of the reference terminal, which is usually the first terminal defined. If the cell has no terminals, the reference point can be cycled around the corners, as in physical mode, however for corners the reference point is snapped to the nearest grid location. This should prevent device terminals from being located off-grid. An electrical cell should always have terminals (assigned with the subct command in the electrical side menu) if it is to be part of the circuit, and not some kind of decoration or annotation.
When the Smash button is active, is active, instances will be smashed into the parent where the user clicks, meaning that the cell content will be merged into the parent cell, rather than creating a new instance. The flattening is one-level, so that any subcells of the cell being placed become subcells in the parent.
When the Replace button is active, existing cells are replaced with the new master when clicked on. and no cells are placed if the user clicks in the area outside of any subcells. When a cell is replaced, the placement of the new cell is determined in physical mode by the setting of the reference selection drop-down menu. For example, if this setting is ``Upper Right'', the new cell untransformed upper-right corner will be placed at the existing cell untransformed upper right corner.
In electrical mode, the reference terminal (the first connection point) is always placed at the same location as the reference terminal of the replaced cell. In either case, any currently active transformations are performed in addition to the transformations of the replaced cell on the new cell.
Cells can be placed or replaced only when place mode is active, i.e., when the Place button in the Cell Placement Control pop-up or the place button in the side menu is active.
When place mode becomes active, the current transform is cleared. The current transform is saved in Register 0 and cleared when switching between cells to place or upon pressing the Desel button. Pressing the Forward Slash button swaps the current and saved transforms.
If the Use Array button is active when cells are being replaced, the replaced cell will take the array parameters from the Cell Placement Control panel. Otherwise, the array parameters are unchanged during replacement. Note that it is possible to replace an instance with another instance of the same cell, but with different array parameters. This is one way that array parameters can be ``edited''.
The Dismiss button will retire the Cell Placement Control panel, and exit place mode.
The cell currently being placed, the ``master'', can be selected in several ways. A list of masters is kept, and can be viewed with the menu button in the Cell Placement Control panel. Pressing and holding button 1 with the pointer on the menu button issues a drop-down menu, whose entries are highlighted as the pointer passes over them. A selection is made by releasing button 1 over one of the selections. Pressing the New button in this menu brings up a dialog box which allows the user to enter a new master name.
The pop-up list of cells will grow with each addition until a limit is reached, at which point new entries will replace the oldest one. The New item is always at the top of the list. The list consists of the most recent masters specified, either with the New button, or through the Place button in the Cells Listing or Files Listing panels.
The maximum number of masters saved in the menu can be specified with the Maximum menu length entry area just below the menu. The default is 25, which may not be suitable for some screen resolutions or window systems. It is not very useful if the pull-down menu extends off-screen. This entry tracks the value of the MasterMenuLength variable. The variable can be set as an integer or cleared to change the value, which is equivalent to changing the integer entry in this panel.
When a new entry is selected, a dialog pop-up appears for the new cell name. If a selection can be found in the various panels that provide file or cell selection, that selection is pre-loaded into the dialog as a default. Each of these sources is tested in order, and the first one that is visible and has a selection will yield the default cell name.
The first time the Cell Placement Control panel comes up, the user is prompted for the name of a cell, just as if the New menu button was pressed.
The name provided can be a file containing data in one of the supported archive formats, the name of an Xic cell, or a library file. If the name of an archive file is given, the name of the cell to open can follow the file name separated by space. If no cell name is given, the top level cell (the one not used as a subcell by any other cells in the file) is the one opened for placement. If there is more than one top level cell, the user is presented with a pop-up choice menu and asked to make a selection. If the file is a library file, the second argument can be given, and it should be one of the reference names from the library, or the name of a cell defined in the library. If no second name is given, a pop-up listing the library contents will appear, allowing the user to select a reference or cell.
The given given string can also consist of the name of a Cell Hierarchy Digest (CHD) in memory, optionally followed by the name of a cell known within the CHD hierarchy. If no cell name is provided, the cell name configured into the CHD is understood. The string can also contain the name of a saved CHD file, with an optional following cell name.
The Cell Placement Control panel is sensitive as a drop receiver. If a file name is dragged over the panel and the mouse button released, the behavior is as if the New button in the masters menu was pressed, and the file name will be loaded into the dialog window.