SmartLib: Product-independent SPICE Model Library

Introduction

Commercial SPICE vendors have traditionally supplied their SPICE simulators by combining the separate functional elements of the simulation process (the parser, the solver and the SPICE models themselves) into a monolithic executable program. This has presented a serious support problem, as most reported bugs are model-related. The typical support cycle takes months from the initial reporting of a bug to the final delivery of the solution: the bug must first be fixed, then that fix must be integrated into the simulator itself, where the fix is tested, along with any other fixes which may happen to have been incorporated at the time, before being re-released in its entirety and shipped to the affected customers; on the customer side, this new executable will now typically be tested again, before it is ultimately installed as a replacement for the previous release.

The evaluation of device-specific SPICE models is a fundamental part of several Silvaco products. It occurs most notably, of course, in SmartSpice, but it is also a crucial component of UTMOST (in both simulation and interactive "rubberbanding" modes), of the forthcoming model validation product Validate, and also of SPAYN and ATLAS (in mixed device/circuit mode). SmartSpice currently provides more than twenty different nonlinear device models, covering MOSFET, bipolar, diode, MESFET, SOI, TFT and HBT technologies.

Silvaco's SPICE models have historically been an integral part of the SmartSpice source code, and all model development has therefore occurred primarily within SmartSpice. UTMOST, SPAYN and ATLAS provide their own implementations of some ­ but not al ­ of these models, using equations originally copied from their SmartSpice sources, then maintained separately from those contained within SmartSpice itself. Unfortunately, as a result of this procedure, the development of these models has, from time to time, lagged behind that of the "reference" models implemented directly in SmartSpice.

This article will describe work, currently nearing completion at Silvaco, which is aimed at eliminating this source of incompatibility, and the associated developmental overheads, through the creation of an independent library of SPICE models, to be known as "SmartLib", which will be shared by all Silvaco products. The models which comprise this library will be individually maintained online, through the World Wide Web.

 

Model Evaluation

A SPICE model consists of a set of parameterized, nonlinear equations which allow the calculation of current (and conductance), as a function of voltage, for each node in a particular semiconductor device. SmartSpice models provide two fundamental subroutines: the first (the "temperature" function) is responsible for the initialization of the appropriate device parameters, and for the calculation of intermediate temperature- and geometry-dependent variables; the second (the "load" function) evaluates the model equations for the particular device, returning the resulting currents and conductances.

However, this is not the end of the story: while the SPICE model returns currents as a function of voltages, what is invariably required in circuit simulation is actually a set of node voltages which satisfy the particular model equations for a fixed set of currents. To obtain such a solution, all Silvaco products use a variation of the Newton-Raphson root-finding algorithm, which uses the conductances returned by each iteration of the model's load function to converge on a satisfactory set of voltages.

 

Architecture

As already discussed, with the SPICE models built into SmartSpice, model development and support is necessarily a time-consuming process, and can only be achieved by the release of a succession of new SmartSpice executables. Furthermore, with the model equations in products such as UTMOST and SPAYN maintained separately from each other and, most critically, from those built into to SmartSpice itself, occasional disparities can occur between the solutions obtained from those models. In order to eliminate this source of potential incompatibility, along with the developmental overhead, the SmartSpice model equations have recently been extracted from SmartSpice and grouped into an independent collection of shared object libraries; this collection of libraries has been given the name "SmartLib". (Under the Solaris operating system­for example­the components of SmartLib have names such as "libbsim3.so", libvbic.so" and "libtft.so".) These libraries can now be dynamically linked with SmartSpice (and also with UTMOST, SPAYN and ATLAS­as will be discussed below); this applies not only to the UNIX platforms currently supported by Silvaco, but also to the PC platform, under both Windows NT and Linux.

 

Product Independence

Of course, the whole point of creating a standalone library of model equations is so that they can be used directly by all other Silvaco products in which they are needed; to this end, we have also created a functional interface to SmartLib, called the "SmartLib Interface" (SLI). This interface provides the ability to create, manipulate and destroy the SmartLib device and model structures required for model evaluation. By removing all SPICE model code from products such as UTMOST, SPAYN, Validate and ATLAS, we are now able to link these products directly with both SmartLib and SLI, thereby eliminating all former sources of incompatibility and ensuring that the a single set of model equations will now be evaluated by all Silvaco products. (Each product will, however, retain its own specialized solver, primarily for performance considerations, as these solvers are generally optimized to the needs of the particular product in which they are implemented.) A functional illustration of the SmartLib framework is shown in Figure 1.

Figure 1. SmartLib architecture.

 

 

World Wide Web Support

Functionally speaking, the decomposition of SmartSpice into separate model libraries will have no effect on the run-time SmartSpice executable: the SmartLib libraries are statically linked with the remaining SmartSpice object code to produce a finished product indistinguishable from that obtained when the models were built directly into SmartSpice. However, with the advent of SmartLib, the SmartSpice executable itself will be substantially smaller (the model equations typically occupy some 70% of a SPICE simulator), and need only be updated in order to take advantage of improvements in the functionality of the parser, solver or the graphical interface.

Most importantly, however, with SmartSpice, UTMOST and related products now dynamically linked with SmartLib, it will be possible to update individual model libraries independently of the products with which they are linked. This updating process will be greatly facilitated by use of the World Wide Web, where the SmartLib libraries corresponding to the latest versions of all Silvaco SPICE models will be available for immediate download and use in all SmartLib-compatible Silvaco products.

 

Proprietary Model Development

The above scenario is missing only one feature: by the nature of the dynamic linking process, the addition of new, previously unsupported SPICE models will necessarily entail the distribution of new versions of SmartSpice, UTMOST and other affected products with hooks for those new models built in. There is, however, a somewhat more sophisticated method of dynamic linking available to these products, which will enable arbitrary shared object libraries to be opened and closed at will. This implementation will enable the run-time linking of SmartSpice, UTMOST and all other affect products with arbitrary model libraries; this will allow the development of proprietary user models which, on compilation with Silvaco-supplied header files, will be functionally indistinguishable from the SmartLib components supplied by Silvaco. Customers will thus be free to develop, and use their own models on an equal footing with those already implemented inside SmartLib.

 

Summary

To summarize, the advantages of SmartLib over the former, monolithic architecture are:

  • Efficiency: all SPICE models are maintained within a single repository (SmartLib), eliminating the need for separate development of models in different products.
  • Compatibility: since the same SPICE models will now be linked with all affected products, there will be no possibility of incompatibility between different products.
  • Maintainability: new SPICE models, and updates to existing models, can be downloaded from Silvaco's Web site as soon as they are released.
  • Flexibility: user-developed proprietary models can be easily implemented alongside Silvaco-supplied SmartLib models, and dynamically linked with SmartSpice through the same mechanism.
  • Speed: there is some preliminary evidence that SPICE models evaluated from Utmost through SmartLib are slightly faster than those previously implemented directly in UTMOST, and it is likely that this improvement will extend to similarly affected products.

The next release of both SmartSpice and UTMOST will be a SmartLib implementation. Other Silvaco products will follow.