When associating, Xic will in most cases correctly account for differences in the cell hierarchy in electrical and physical modes. This is most often automatic, though it is possible for the user to intervene if necessary. The following examples illustrate hierarchy differences.
Physical cells that are wire-only, i.e., contain no devices or non-wire-only subcircuits, are always flattened into their container. Physical cells that are pcell instances will always be flattened. Physical and electrical cell instances will be flattened as needed during extraction. Thus, there is typically little need for the user to set up explicit cell flattening, much less so than in earlier Xic releases. However, the methods for explicit flattening are still available and can be used if Xic finds a flattening situation that isn't handled properly automatically.
When a physical subcell instance is ``flattened'', all conducting groups, devices and sub-subcells in the subcell master are transformed and linked into the containing cell for extraction and LVS purposes. References to these cells will disappear from the Dump Phys Netlist listing, unless the boolean variable PnetListAll is set, in which case they are listed. Flattening of electrical cells is similar. The nets, devices, and subcircuits of the flattened instance master are linked into the containing schematic. The containing schematic does not display this visually, this affects only the internal data structures.
Logical flattening can be controlled by the user in two ways: with the flatten property, and with the FlattenPrefix variable. The variable can be set from the Cell flattening name keys group in the Net and Cell Config page of the Extraction Setup panel, from the Setup button in the Extract Menu.
Of these two methods, use of the property is most efficient and flexible, and the setting is inherently persistent as the property value is saved in the layout file. It is the only means by which the flattening of individual instances can be controlled.
The flatten property can be applied to electrical and physical cells and cell instances. It can be applied to the current cell with the Cell Property Editor available in the Edit Menu. The Add menu in this panel provides a flatten choice in both electrical and physical modes. When the flatten property is applied to a master cell, instances of the cell will by default always be flattened in the extraction system. However, flatten properties can be applied to cell instances as well, using the Property Editor from the Edit Menu. Again, this is true in both electrical and physical modes. If an instance is given a flatten property, and its master also has a flatten property, the instance will not be flattened. If an instance has the property and the master does not, then that instance, only, will be flattened. Thus, when applied to a cell instance, the flatten property inverts the flattening status implied by the master, for that instance.
In earlier Xic releases, logical flattening was controlled with the FlattenPrefix variable. The variable can be set to a list of pattern-matching tokens which match the names of cells to be flattened. Cell names can be matched by prefix, suffix, or verbatim. The user is required to set this variable before extraction, a step that can be avoided by use of the flatten property instead. Unlike the flatten property, the FlattenPrefix variable applies to physical (layout) cells only. The Cell flattening name keys text entry area in the Net and Cell Config page of the Extracting Setup panel from the Extract Menu can be used to set the FlattenPrefix variable. The variable can also be set from a startup file or the technology file. See the description of the variable for the property string syntax.