# SLiCAP Introduction¶

## What it is and why you should use it¶

- SLiCAP is an acronym for: Symbolic Linear Circuit Analysis Program.
- SLiCAP is a more than a symbolic network simulation tool: ‘Symbolic SPICE’.
- SLiCAP helps you setting up and solving
**design equations**of electronic circuits. - SLiCAP is a MATLAB® application.
- SLiCAP has been written by: Anton Montagne (Msc EE, Delft University of Technology).

### Benefits¶

- Speeds up the circuit engineering process
- Makes complex symbolic analysis doable
- MATLAB® based: allows integration in professional design environment
- Integrates documentation and design
- Supports design education and knowledge building

### Features¶

- Accepts SPICE netlists as input
- Concurrent design and documentation
- Supports and facilitates structured analog design

### Capabilities¶

- Conversion of hierarchical SPICE netlist into symbolic or numeric matrix
- Symbolic and numeric noise analysis
- Symbolic and numeric noise integration over frequency
- Symbolic and numeric determination of transfer functions and polynomial coefficients
- Symbolic and numeric determination of network solutions
- Symbolic Routh array of Laplace polynomials
- Accuate numeric pole-zero analysis
- Root-locus analysis with an arbitrary circuit parameter as root locus variable
- Symbolic and numeric DC and DC variance analysis for determination of budgets for resistor tolerances and offset and bias quantities

### Technology¶

- MATLAB® R2017b … R2018b including the symbolic math toolbox MuPAD®
- HTML, CSS, LaTeX, MathJax, Python, Sphinx

MATLAB® is a registered trademark of the Mathworks Inc.

MuPAD® is a registered trademark of SciFace Software GmbH & Co.

## Way of working¶

Working with SLiCAP usually requires the following steps:

Initialize a SLiCAP project; this will

- Create the directory structure for your project
- Create a slicap.m file in this directory. Running this file loads all the SLiCAP scripts and enables working with SLiCAP from the project directory.
- Create the main html index page for this project.

Create a circuit netlist, check the circuit and build the matrices

SLiCAP supports netlist generation from within MATLAB for gSchem and for LTspice.

Modify, add or delete circuit parameter definitions from within the MATLAB® environment.

Define an instruction.

You can change all the aspects of the instruction at any time from within the MATLAB environment. If the instruction data is complete and consistent (this will be checked by SLiCAP), it can be executed. Definition of an instruction usually involves the following steps:

Define the symbolic or numerical calculation mode: SLiCAP uses symbolic calculation methods, even if the data is numeric. If the simulation type is set to NUMERIC, parameter values will recursively be substituted into the expressions for the circuit element values.

Define the gain type: SLiCAP can provide expression for:

- Nodal voltages or currents through voltage sources (or other elements that have been defined in current-controlled notation)
- Transfer functions of the asymptotic-gain model:
- the gain
- the asymptotic-gain
- the loop gain
- the direct transfer
- the servo function

Define the signal source, the detector and the loop gain reference variable according to the asymptotic-gain feedback model.

Define the data type:

SLiCAP can provide many types of data:

- Matrix equations for the circuit, with the matrices adapted to the gaintype
- Laplace transform of voltages, currents or transfer functions
- Numerator or denominator of the above Laplace transform
- Time functions, unit impulse and unit step functions; calculated from the inverse Laplace transform
- Spectral densities of source-referred or detector-referred noise or integrated noise
- Poles, zeros and DC gain of a transfer function, with and without cancellation of coinciding poles and zeros
- DC voltage and current and their variance due to offset and bias currents and resistor tolerances

Enable or disable parameter stepping for the instruction and define the step parameters.

Execute the instruction

SLiCAP executes the defined instruction with the execute() command, which returns a MATLAB® structured array. This array contains all the data required for post processing of the results.

Work with the results

SLiCAP has predefined functions for plotting, displaying tables and generation of web pages with beautifully typeset expressions, tables, figures and files. SLiCAP also has a lot of postprocessing functions available for finding budgets for all kinds of performance parameters of electronic devices. There are many examples available for the design of the dynamic behavior and the noise behavior of amplifiers. It will be clear that once you have the (symbolic) matrix equation of a circuit, you have sufficient knowledge of Structured Analog Design, and you are an experienced MATLAB® user, SLiCAP can help you with setting up and solving design equations for almost any design problem and, ultimately, with the automation of design engineering. But there is more: while doing your design work with SLiCAP, you concurrently generate a collection of linked html pages that document your work and help you to discuss your work with colleagues and present it to others on any platform that has a web browser.