ProgrammingPCell DevelopmentFoundry 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.
Simulation ScriptingDesigners 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 CodingMaking 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.
|