PCell Development

Foundry supplied design kits seldom have the required PCells to effectively do large layouts.  A little investment of time up front is worthwhile to develop some useful PCells for all designers to use.  A carefully crafted PCell library allows a hierarchical top level in which many errors in frequently used cells can be corrected once at the source, thus avoiding lengthy repetitive fixes across many cells.
At the outset of any new design or foundry PDK we develop PCells such as:

  • Stacked vias to connect between any conductive layers with staggered via arrays
  • Custom inductor cells for differential coils with ground cages and common ground plane choices
  • Bondpads, ESD and commonly used top level cells
  • Custom transformers
  • Isolation and ground ring cells
  • Decoupling capacitor arrays to fill specified areas

Simulation Scripting

Designers always seem to be in a time crunch until the final hour of tapeout.  Simulation coverage is seldom exhaustive; often because of time constraints or convergence issues with the tools as the design size grows.  We have adopted a simulation methodology that makes the most efficient use of compute resources resulting in maximum simulation coverage and increased confidence in the silicon taped out. 

By setting up an Ocean script framework and planning the simulations in the early stages of design, we develop detailed scripts that run under the DFII or Ocean environments to exercise a design over all corners of interest across many machines.  If the license count is sufficient, simulations that can take weeks to complete (and hence are often deemed too long to do) can be done as background jobs spread out over multiple machines.

This also has the added advantage of ensuring the simulations are done in the same way every time the script is run after a design change and results can be better organized to give maximum insight into expected performance.

Skill Coding

Making best use of the DFII environment requires some Skill coding.  Even if one is not adding new functionality via Skill, it is still essential to correct many problems with cells with a few lines of Skill code.  We commonly add useful features and frequently done tasks to the Cadence GUI via Skill and it is essential for simulation scripting and version control.