SLiCAP (Symbolic Linear Circuit Analysis Program) is a set of math tools with a focus on structured analog design. It facilitates partial automation of the circuit engineering process. SLiCAP accepts a SPICE-like netlist with symbolic expressions for component values and model parameters as input. It converts this netlist into a symbolic matrix equation and has numerous built-in functions that help to derive budgets for properties of electronic devices from the circuit’s target specification. SLiCAP supports symbolic noise analysis and symbolic analysis of the dynamic behavior of linear(ized) circuits. It also supports accurate numerical pole-zero analysis and can plot root-locus plots with an arbitrary circuit parameter as root-locus variable. The functions provided by SLiCAP support the structured design of negative-feedback amplifiers with the aid of the asymptotic-gain model for negative feedback circuits.
Aside from MATLAB® output, SLiCAP also generates design documents in the form of a collection of web pages with beautifully typeset equations, tables, graphs and schematics.
Partial automation of circuit engineering¶
SLiCAP supports partial automation and speeding up of the circuit engineering process. Circuit engineering is an important phase in the structured design of analog electronic circuits. During circuit engineering a circuit concept will be detailed to such an extend that it that can be manufactured. In this phase, designers need to find or design real world components and determine their operating conditions and fix these conditions by design. To this end they need to formulate and solve so-called design equations for the circuit.
Derivation of design equations¶
Design equations relate the properties and the operating conditions of the electronic devices to the performance requirements and the cost factors of the circuit. For example, in order to determine a budget for the gain-bandwidth product of an operational amplifier, we must find relations between this gain-bandwidth product and the performance requirements of the circuit that comprises this operational amplifier. In other words we need to find which performance aspects and cost factors of the circuit depend on the gain-bandwidth product of the operational amplifier, and to what extent. This also holds for other properties of the operational amplifier, such as its equivalent input noise sources, its input and output impedance, its current and voltage drive capability, its power consumption, etc.
Setting up design equations for analog circuits is a difficult and cumbersome task. It requires knowledge about properties of available components, about modeling techniques and about all kinds of interactions between the behavior of the circuit and the properties of the devices. It goes hand in hand with symbolic analysis. For a simple circuit this can already become a time-consuming activity and it is often tempting just to try a few devices and operating conditions while running numerical simulations. However, such a trial and horror approach may result in an appearently working solution, but it is not a key to robust design and it does not help with understanding. Unfortunately after struggling with numerous hand-calculations that are very sensitive to mistakes, many designers including myself cannot always resist trial and horror. As a matter of fact, there is always a level at which experiments need to be done for building up knowledge about relations and interactions; this is the essence of physics. However, if underlying physical mechanisms are known, proper modeling and symbolic analysis is the preferred way for finding such relations and interactions.
SLiCAP versus hand calculation¶
Peforming symbolic calculations by hand is sensitive to errors and in practice only a limited number of circuit performance aspects can be taken into account. One way to deal with the complexity of symbolic analysis is to introduce specific hand calculation methods that yield so-called low-entropy expressions as described by [Middlebrook] and [Vorpérian]. Although these techniques certainly reduce the complexity of the hand calculations, they do not lend themselves for (partial) automated formulation and solution of design equations.
SLiCAP versus generic symbolic math tools¶
Alternatively, generic symbolic math tools such as Mathematica, MATLAB®, Mathcad® and open-source equivalences like symPy, Sage and Maxima CAS can be used to perform symbolic analysis. However, the application of such general purpose symbolic math tools is not embedded in a structured design approach for analog electronic circuits.
The earliest version (web version, 2009) of SLiCAP converted a SPICE-like netlist into matrices and determined transfer functions symbolically. It also supported accurate pole-zero analysis and could generate root-locus plots with an arbitrary circuit parameter as root-locus variable. It also supported the structured design of negative feedback amplifiers introduced by [Nordholt] and further developed by, amongst others, [Verhoeven] .
The current version of SLiCAP is written in MATLAB® which is considered the de facto standard for math analysis, both in industry and at universities. A low-cost home version of MATLAB has currently become available. However, there is a vivid open source community working on open source alternatives. For the convenience of this community and their users, a version of SLiCAP based upon the python scripting language and the Maxima CAS is under development. This version will have limited capabilities compared with the MATLAB® version.
The MATLAB® version of SLiCAP has extended capabilities such a symbolic noise analysis and symbolic statistical DC analysis. Aside from that a large number of functions that support the engineering of analog electronic circuits have been added, plot capabilities have been extended and SPICE compatibility has been improved.
SLiCAP has been written and will be maintained by Anton Montagne.