PCell stands for parameterized cell, a concept used widely in the automated design of analog (or custom digital) electronic circuits. A PCell is a cell which is automatically generated by electronic design automation (EDA) software based on the value of its governing parameters. Hence, a PCell represents a part or a component of the circuit that is dependent on one or more parameters and is not a fixed element. For example, one can create a transistor cell and then use different instances of the same with different user defined lengths and widths.
In electronic circuit designs, cells are basic units of functionality. A given cell may be "placed," or "instantiated," many times. A PCell is more flexible than a non-parameterized cell because different instances may have different parameter values; for example, rather than have 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 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 - a physical representation of an electronic component, showing the physical structure of the latter inside an integrated circuit (IC). Although most PCells are physical PCells, a PCell is not limited in functionality or scope to only represent physical structures inside the IC. 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 the latter parameters.
Hence, a PCell is a piece of programming code. This code is responsible of 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 data) that comprise 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.