Automated Design for Micromachining

Parameterized Cells


A parameterized cell, or pcell, is a graphic, programmable cell that lets you create a customized instance each time you place it.[1]

There are several advantages to using parameterized cells (pcells). First, they speed up layout by eliminating the need to create duplicate versions of the same part. Second, they save disk space by using a single layout to represent an entire family of parts. Third, they eliminate errors that may occur because multiple version of the same part are being used.

The most powerful way to create pcells is to write SKILL language files that describe how the part is to be drawn. Cadence then keeps that programme in the design library and uses it to create the customized parts on demand. The cells are distributed as a number of files with the extension ".il", which indicates a SKILL language file.

These cells are freely available for academic use. If you find that these cells help you in any work that you publish, we would appreciate an acknowledgment. For non-academic use, please contact me.

Cronos also has a publicly available library of MUMPS cells. Their library is called CaMEL. The library contains some parameterized cells not available here, plus a library of non-parameterized cells.


Step 1: Physical Rules

Pcells need access to the design rules. This access allows the pcells to ensure that the design will pass DRC and is manufacturable. For example, pcells may constrain certain parameters to valid values. Additionally, some device dimensions may not have corresponding parameters.

Fortunately, as part of the technology file associated with every design library, Cadence maintains a database of design rules. These rules can be edited by accessing the Technology File menu in the CIW (also known as the ICFB). While these rules can be entered manually, it is much easier to import an ascii technology file that contains the definitions. An ascii technology file containing all of the physical rules used by the pcells available at this site can be downloaded here.

Table 1: Sub-steps for installing physical rules.
Step Description
Step 1: Download the file
Step 2: From the ICFB, open the Technology File menu and select Load.
Step 3: Type in the filename to the saved technology file for the first field, "ASCII Technology File".
Step 4: Although the file contains only physicalRules, to be safe make sure that the only box checked is the one for physicalRules.
Step 5: Select the library into which you want the physical rules to be saved
Step 6: If you wish to replace any existing physical rules, select Replace, otherwise select Merge.
Step 7: Hit OK
Step 8: When exiting Cadence, you may be prompted to save changes to the binary technology file associated with the library. The changes must be saved to have the physical rules present the next time you run Cadence.

Step 2: Support Routines

It is likely that any of the cells you install will make use of some support routines. These source files containing these routines are listed below. Unlike the code for the pcells, Cadence does not keep a copy of these routines in the design library and so these source files need to be loaded every time Cadence is run. Fortunately, there is an easy method to ensure this happens automatically.

Table 2: Sub-steps for installing physical rules.
Step Description
Step 1: Download the following files into the directory of your design library. The complete path to any design library can be found by selecting the Tools->Library Path Editor from the CIW window.
Step 2:

The following lines need to be added to the file The file should also be in the library directory. If the file is not present, please create it.

load( strcat( ddGetObjReadPath( ddGetObj("ADM ) ) "/" ) )
load( strcat( ddGetObjReadPath( ddGetObj("ADM" ) ) "/" ) )
load( strcat( ddGetObjReadPath( ddGetObj("ADM" ) ) "/" ) )*
load( strcat( ddGetObjReadPath( ddGetObj("ADM" ) ) "/" ) )

Step 3: If you plan to install or use any pcell without restarting Cadence, you should also enter all of the command listed in in the command line of the ICFB

* This routine needs to be copied only if you are planning to install the lever cell.

Step 3: Install Cells

Unless otherwise specified, all of the pcells will try to install themselves into the library named ADM. To override this, please enter the following line into the CIW:

admLibraryName = "your libraray name"

Before loading the file, as described above, you may also want to change name of the cell. This is trickier, and must be done by editing the skill file.

To install any pcell into your Cadence library, download the SKILL file for the pcell. All of the SKILL files should have an extension of ".il". Once the file has finished downloading, type the following command in the CIW window:


Once the file has been loaded, the pcell should be available every time you run Cadence as the code is saved as part of the design library.

If you have a large number of pcells to install, the file may be useful. It will load all of the pcells in a given directory. To use it, first override the library name, as described above. Additionally, you can override the skill file path. The skill file path defaults to ./ADM/. However, if you have saved the skill files in another location, use the following line to set the skill file path:

admLibraryPath = "skill path"

Please note that the skill path must contain the trailing slash.

To install of the pcells in the specified path, load the skill file. It will go through the contents of the directory and install all of the pcells found there.


[1] Virtuoso Parameterized Cell Reference. pp. 1-5.