Product Documentation
Virtuoso Parameterized Cell Reference
Product Version IC23.1, September 2023

3


How to Package a Pcell

Pcell Library is a cellview library that contains Pcell supermaster cellviews and their Pcell Support Files. It is recommended to deliver Pcell Support File as context or encrypted files to protect the Pcell IP. For instance, Pcell as in supermaster cellviews and their Pcell Support Files are one components of a PDK.

When developing a Pcell, the developers need to provide the Pcell Definition File and Pcell Support Files. The Pcell Definition File contains the Pcell creation code that calls the function pcDefinePCell to create the on-disk Pcell (supermaster) cellview in the database. Pcell Support Files are the user-defined SKILL functions mentioned below:

These functions are usually put in separate files.

Load all Pcell Support Files prior to referencing the Pcell in a design to avoid evaluation failure of Pcell, CDF callback, or Pcell abutment callback.

Loading of Pcell Support Files

DFII supports a mechanism to automatically load a SKILL file libInit.il, when a library is first accessed. The libInit.il file is written by Pcell developers to load the Pcell Support Files. If the Pcell Definition File is written in the top-level form, it should not be part of libInit.il. Each Pcell library should have one libInit.il file in the library directory. Pcell developers can organize the support files as required. One common example is to put all of the user SKILL functions in one SKILL directory. Then in each libInit.il, it loads the desired files from the SKILL location. Once each of the design libraries is opened, their libInit.il file and all the needed user SKILL functions will be loaded. The same approach can be applied to the ITDB libraries hierarchy. In each library level, it will only load its own support files in its libInit.il. By opening the top-level library, all the referenced libraries will also be loaded automatically.

During development, Pcell developers can choose to load the Pcell Support Files as individual files or as SKILL context files consisting of these files. Loading as individual files allow the functions defined in them to be debugged with SKILL IDE or Pcell IDE.

For example:

if(  status(debugMode) then
 load( file )
else
 loadContext( context )
)

Prior to the release of Pcell library, such a switch should be removed because only the protected files (context or encrypted) will be included in the release.

Do not use the .cdsinit file to initialize Pcell code.

The .cdsinit is the initialization file used for interactive DFII workbenches. It is an environmental initialization or setup file, not a general data initialization file. The libInit.il file is supported at the database level and should be used for all data initialization purposes, such as Pcells and CDF called functions.

Delivery of a Pcell Library

If you create complex multiple Pcells, you can write your own utility SKILL procedures to call from the Pcells. Calling your own procedures from within a Pcell makes debugging the Pcell code easier. It can also provide better protection of your intellectual property when these procedures are placed in separate files from the file containing the call to pcDefinePCell.

What to Avoid in the libInit.il File

Do not load SKILL code that is dependent on graphical SKILL functions, such as hiSetBindKey, from your libInit.il. Assume that only low-level SKILL functions are available, such as those permitted in parameterized cells. When you use SKILL routines within libInit.il, use only the following functions:

Specifying Source Code for Stream In

When libInit.il is not provided in the data library, you must specify the source code files in the User-Defined Skill File field of the Stream In User-Defined Data form. For more information about this form and about the Design Data Translators, if you are using the OpenAccess database, refer to Design Data Translators Reference.


Return to top
 ⠀
X