Provided below are definitions of some terms used frequently in the discussion that follows.
All pcells ``work'' as follows. The pcell is supplied as a cell file to the design system, which understands the file syntax. Within the design system, an in-memory object called a ``super-master'' is created, which is an in-memory representation of the pcell. This element contains a list of parameter names, and for each parameter a default value and acceptable range. The element also provides, by some means, a program or script that can be executed from the design system.
When a user wishes to place an instance of a pcell, the pcell is selected from a menu, which causes the pcell file to be read from disk and a super-master created in memory. The user will then specify the parameter values to the cell to instantiate. This is usually done with a pop-up form, where the user can enter values for the various parameters, all of which have defaults. When this entry is complete, the design system will execute the pcell script with the entered parameter values. The result will be creation of a cell in memory containing geometry created by the script in accord with the parameters. This cell is called a ``sub-master''. It is a normal cell is every respect, though it has properties that link it to the original pcell super-master. Instances of this sub-master are created where the user specifies. A separate sub-master will be created for every differing parameter set that the user provides. Each instance of a sub-master contains properties that contain the parameter set used for instantiation, and the name of the original pcell.
A design containing pcells can be saved in two ways. For a local save, for use in the same design environment, the super- and sub-masters in memory are discarded (or the sub-masters may be cached). When the design is read in again, the instances provide the location of the pcell and the parameter set, which are used to recreate the sub-masters. If instead the design is being sent to another environment, one which perhaps does not handle the pcells, the sub-masters can be written to disk as ordinary cells. The resulting hierarchy will be normal and portable. In Xic, sub-masters can be included in saved archive files when the PCellKeepSubMasters variable or equivalently the check box in the Export Control panel is set, or when the StripForExport variable or equivalent check box in the same panel is set. If a cell is read from a file and is recognized as a pcell sub-master, the PCKEEP cell flag will be set. This will cause the cell to be written to output, whether or not writing of pcell sub-masters is enabled.