Mask Layout


This document is to assist the CDK user in creating mask layouts with respect to CDK customizations. For general documentation on Virtuoso, see Openbook.

Parameterized Cells

Parameterized cells (pcells) are basically layout macros; when the you instantiate a pcell you fill in various parameters, and the layout of the instance changes to reflect these values. Where you get the pcells from depends on the type of design library you have:

As of now, the following pcells are defined:

When compiling a technology library, all pcells whose required layers exist in that technology are created.

Contacts are parameterized by row and column. Contacts are placed with minimum spacing.

The thin-ox capacitor is parameterized by total capacitance desired, height and width. The user can also specify the number of rows of contacts to the active and poly capacitor plates.

For the transistors, the user specifies both width and length (which are subject to being on a half-lambda grid, and also to minimum values). Additionally, the user can optionally define one of two cases:

  1. multiple devices in parallel (i.e., with a column of contacts between devices) by setting the m (for ``multiplier'') parameter
  2. multiple devices in series by setting the fingers parameter (adjacent devices have minimum spacing)

The two are mutually exclusive.

The pcell SKILL code is in local/skill/pcells.

Path stitching

Path stitching is a quick way to change from one layer to another when running wires. When creating a path (hit p or choose the ``Create->Path...'' menu entry) with any metal or poly layer, the user can automatically change to any other wiring layer physically adjacent to the current layer. For example, when running a metal 2 path in a three-metal process, the user can change to either metal 1 or metal 3, and Virtuoso will automatically place the correct contact type and change the wiring layer. (This is almost identical to Magic's ``path tool.'') The CDK includes the required symbolic contact definitions, which are located in the technology libraries.

Virtuoso-XL

The Virtuoso Layout Accelerator (Virtuoso-XL) takes a schematic and, for each transistor instance, creates a matching instance in the layout. The CDK sets the necessary variables so that Virtuoso-XL uses the CDK pcells, which allows the user to specify length, width, and number of devices in serial or parallel configuration.

(This tool was called the Device-Level Editor (DLE) in prior releases of the IC tools.)