When the Place button in the panel or in the Edit 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.
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 can be set to any value in the range of 1 through 32767. The upper limit is defined by the GDSII file format, internally Xic can handle larger values. The spacing can take any value, but of course 0 makes no sense, nor do spacings that would make the array extraordinarily huge to the point of integer overflow. Negative values are acceptable.
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 untransfromed 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 Edit Menu is active.
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 menu for selecting masters works a little differently in the Unix/Linux and Windows versions. Under Unix/Linux, 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 MasterMenuLength variable (see below) can be set to customize the length of the list before replacement occurs.
Under Windows, the pop-up menu is fixed height. With more than about ten entries, some entries will not be visible, but can be scrolled into view (though this is not obvious). There are three ways (at least) to accomplish this.
In particular, using one of these methods, it should always be possible to cause the New entry item to become visible.
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.
The number of masters saved in the pull-down menu can be specified with the variable MasterMenuLength, which defaults to 25. This may not be optimum for some screen resolutions, and it does no good if the menu extends off-screen. To set the length to 15, for example, one would type (outside of any command)
!set MasterMenuLength 15This must be entered before the Cell Placement Control panel is popped up for the first time. This command would logically be included in a startup script. The list used in the drop-down menu 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.