PCell

PCell stands for parameterized cell, a concept used widely in the automated design of analog integrated circuits. A PCell represents a part or a component of the circuit whose structure is dependent on one or more parameters. Hence, it is a cell which is automatically generated by electronic design automation (EDA) software based on the values of these parameters. For example, one can create a transistor PCell and then use different instances of the same with different user defined lengths and widths. Vendors of EDA software sometimes use different names for the concept of parameterized cells, e.g. T-Cell and Magic Cell.

Application
In electronic circuit designs, cells are basic units of functionality. A given cell may be placed or instantiated many times. A P-Cell is more flexible than a non-parameterized cell because different instances may have different parameter values and, therefore, different structures. For example, rather than having many different cell definitions to represent the variously sized transistors in a given design, a single PCell may take a transistor's dimensions (width and length) as parameters. Different instances of a single PCell can then represent transistors of different sizes, but otherwise similar characteristics.

The structures within an integrated circuit and the rules (design rules) governing their physical dimensions are often complex, thereby making the structures tedious to draw by hand. By using PCells a circuit designer can easily generate a large number of various structures that only differ in a few parameters, thus increasing design productivity and consistency.

Most often, PCell implies a physical PCell, i.e., a physical representation of an electronic component describing its physical structure inside an integrated circuit (IC). Although most PCells are physical PCells, device symbols in circuit schematics may also be implemented as PCells.

Underlying characteristics of all PCells are a dependence on (input) parameters and the ability to generate design data based on these parameters.

Implementation
A PCell is a piece of programming code. This code is responsible for the process of creating the proper structure of the PCell variants based on its (input) parameters. For the example of a physical PCell, this code generates (draws) the actual shapes of the mask design that comprises the circuit.

Since one piece of PCell code can create many different objects (with different parameter values), it is referred to as a PCell Master. The object/shapes/data that this code creates is called an instance of the PCell. Typically, one Master PCell produces many instances/variants. This is not only helpful during design entry and specification but also in reducing memory resources required to represent the design data.

Generation
Although the programming language in which a PCell is written is not of importance, SKILL or Python are most often used to write PCell's code. Alternatively, PCells can be generated using a graphical user interface (GUI) or specialized PCell design tools based on a library of predefined functions.