SLiCAP release notes

../_images/colorCode.svg

SLiCAP Version 6.0 release notes

  1. Schematic capture GUI. SLiCAP now includes its own schematic editor; KiCad, LTspice, gSchem, or Lepton-EDA are no longer required for drawing circuits (they remain supported). The GUI is started from the command line with slicap (full environment with instruction editing and simulation) or slicap-schematics (schematic editing only), or from Python with sl.startSchematic(). It supports two schematic types:

    • SLiCAP schematics (.slicap_sch): symbolic analysis netlists

    • NGspice schematics (.spice_sch): numeric simulation netlists

    Features include netlist generation, drawing-size SVG/PDF export with LaTeX-rendered labels, hierarchical subcircuits, an instruction editor with analysis dialogs, and a log panel. See Schematic capture.

  2. NGspice simulations from the GUI. Instruction dialogs generate and run OP, DC, AC, TRAN, and NOISE analyses, including parameter stepping and per-instruction parameter overrides (params=). All values use SLiCAP notation (case-sensitive scale factors: m = milli, M = mega); SLiCAP translates automatically wherever values are written into NGspice input (1M1Meg — NGspice reads suffixes case-insensitively). See Value notation.

  3. Plot dialog and instruction editing. Instruction ‣ Create / edit plot… (main window) composes a plot from the named analysis results in the instruction file — NGspice results via trace conversion, SLiCAP results via plotSweep / plotPZ — with smart defaults per analysis type. Both the plot dialog and the analysis dialogs can edit existing definitions: pick a name, the fields prefill from the instruction file, and the regenerated call is appended — the later definition wins when the file runs; removing the superseded line is up to you.

  4. Project management in the GUI. The main window’s File menu creates, opens, saves, and closes SLiCAP projects:

    • File ‣ New project… asks for a project name, directory, and author, generates the project main.py, and runs it once to create the project structure and its SLiCAP.ini.

    • File ‣ Select project folder… shows the project’s files in a Project panel on the left; double-clicking a schematic opens it in the editor, any other file opens with its default application. A directory without a SLiCAP.ini offers to create a project there.

    • File ‣ Save project saves every open panel with unsaved content; File ‣ Close project returns to the welcome screen. One project is open at a time; switching projects prompts for unsaved work first.

  5. Explicit configuration of external programs. SLiCAP no longer searches the disk for installed programs (KiCad, LTspice, gEDA/Lepton-EDA, NGspice); on MS-Windows this search could take up to two minutes and broke whenever a program changed its installation layout. Instead:

    • The GUI menu File ‣ Configure SLiCAP… lets you enter, auto-detect, and test the program paths; they are stored in the [commands] section of ~/SLiCAP.ini.

    • The same section can be edited manually (script-only use); see Installation.

    • Automatic detection still covers programs on the search PATH and the default MS-Windows install locations (e.g. C:\Spice64\bin for NGspice) — it just no longer walks the disk.

    • An unconfigured program now produces a clear message pointing to the configuration dialog instead of a failed netlist run.

    • The pywin32 and windows_tools dependencies have been dropped.

  6. Faster startup.

    • import SLiCAP no longer contacts the internet. The check for new releases moved to the GUI menu Help ‣ Check for updates… (also available as sl.ini.check_for_updates()).

    • The built-in libraries are compiled once and cached (~/SLiCAP_libcache.pkl); repeated initProject() calls are nearly instant. The cache refreshes automatically when SLiCAP, sympy, or a library file changes.

  7. initProject() accepts an optional author argument that is stored in the project configuration file, e.g. sl.initProject("My project", author="Me").

  8. GUI refinements.

    • Schematics open as tabs; each keeps the full canvas width.

    • Closing the last schematic returns to the welcome screen; File ‣ Exit (Ctrl+Q) quits the application.

    • The main window and the schematic panel now have separate File menus: the main window creates/opens schematics, the schematic panel acts on its own schematic only (Save schematic, Schematic properties…, Export netlist…, Print schematic…, Schematic drawing preferences…).

  9. Packaging. Dependencies are declared in pyproject.toml only; requirements.txt has been removed. Install from source with python -m pip install ..

SLiCAP Version 4.0 release notes

  1. RMS noise calculations have been improved:

    • Integration methods can be selected

    • Noise weighting (filter) functions can be added

  2. The netlist syntax and the matrix stamps of F, H, and HZ element models has been made SPICE-compatible. All SLiCAP symbol libraries, model libraries, and the netlist parser have been updated accordingly and are NO LONGER compatible with earlier versions.

  3. Element branch current names have all been set to I_<refdes>, where refdes is the reference designator of the element. This is NOT compatible with previous versions.

  4. Improved output of noise and dcvar analysis for balanced circuits with convtype='dd' or convtype='cc'. By default, paired noise or dcvar sources are renamed to common-mode or differential-mode sources.

  5. Added checyshev1Poly() returns a normalized Chebyshev type 1 polynomial.

  6. Added filterFunc() for creating unity-gain low-pass, high-pass, band-pass, band-reject, and all-pass transfer functions, based on normalized Butterworth, Bessel, and Chebyshev type-1 (pass-band ripple) polynomials.

  7. Added DIN_A(), which returns a DIN_A weighting funcion.

  8. The code has strongly been simplified: the allResults object is replaced with a modified instruction object.

  9. The function ini.dump() has been modified. It displays settings per section. Settings for a specific section are displayed after giving the section name as argument.

    >>> import SLiCAP as sl
    >>> sl.ini.dump("version")
    
    VERSION
    -------
    ini.install_version        = 4.0.11
    ini.latest_version         = 4.0.11
    
  10. The execution of the reduce_circuit and the reduce_matrix options have been improved. reduce_matrix now also works for matrices that do not include Laplace expressions and it only performs multiplication and addition on symbolic expressions.

  11. listPZ displays frequencies in rad/s if ini.hz=False

  12. Canceling of poles and zeros in doPZ() also works for symbolic pole-zero analysis

  13. RST and LaTeX snippets for tables are improved

  14. RST snippet for equations now supports multiline expressions

  15. The documentation has been updated. It automatically generates rst and LaTeX snippets by executing manual.py when running make html.

  16. Examples (Python scripts and Jupyter Notebooks) have been added to the SLiCAP Examples reporitory

  17. SLiCAP 4.0 has an improved interface with NGspice:

    1. Added a KiCAD SPICE symbol library with NGspice symbols for all standard NGspice devices (no Xspice devices yet)

    2. A simple python instruction for the following analysis types including (non-nested) parameter stepping:

      1. .OP

      2. .DC

      3. .AC

      4. .NOISE

      5. .TRAN

      These NGspice analyses return a dictionary with traces that can be plotted with the SLiCAP plot() function, or added to an existing plot using addTraces().

      The results of an operating point information (without parameter stepping) can be displayed on the KiCAD schematic and its svg and pdf image files.

  18. Library files have been updated; some names of subcircuits modeling the noise behavior of CMOS devices have been modified. See Subcircuits with noise.

  19. The function _reduce_circuit and its associated ini setting ini.reduce_circuit have been removed. The improved matrix reduction algorithm made it obsolete.

  20. Clean-up code and minor bug fixes.

SLiCAP Version 3.5 release notes

  1. SLiCAP version 3.5 has an improved interface to LaTeX and Sphinx:

SLiCAP Version 3.4 release notes

  1. SLiCAP 3.4 is compatible with KiCad 9

SLiCAP Version 3.3 release notes

  1. SLiCAP Version 3.3 is prepared for PyPi pip install:

    • Examples are no longer part of the package, they can be pulled of downloaded from github.

    • Libraries are no longer placed in the ~/SLiCAP/ folder. Library locations are found in ~/SLiCAP.ini under the section [installpaths]. Settings for symbol library locations in schematic editors (KiCAD, LTspice, etc.) need to be adjusted accordingly.

SLiCAP Version 3.2 release notes

  1. SLiCAP Version 3.2 is compatible with previous versions. The use of the instruction object for creating instructions, however, is deprecated and no longer described in this documentation.

  2. Version 3.2.4 has a KiCAD library symbol, SLiCAP CMOS18 sub circuits, and extra math functions for the design of a feedback amplifiers’ MOS input stage based on its noise performance.

  3. From version 3.2.3 the analysis time for large circuits has been considerably reduced. By default, two methods will be applied:

    1. Reduction of the circuit through elimination of all independent voltage sources that are not used as signal source or current detector.

      This circuit reduction can be switched off by setting

      reduce_circuit = False
      

      in the [math] section of the SLiCAP.ini file in the project directory

    2. Reduction of the size of the MNA matrix before calculation of the determinant, for matrices with Laplace expressions.

      This matrix reduction can be switched off by setting

      reduce_matrix = False
      

      in the [math] section of the SLiCAP.ini file in the project directory

  4. KiCAD is the preferred schematic capture program for SLiCAP version 3.2. From version 3.2.3 Inkscape is no longer needed for creating image-size svg and pdf files of KiCAD schematics. SLiCAP uses dedicated Python scrips for this purpose.

  5. The function ENG(<number>, scaleFactors=False) has been added to write numbers in enginering notation. It is used in the following functions:

    • elementData2html

    • params2html

    • expr2html

    • eqn2html

    • pz2html

    • specs2html

    If ini.scalefactors=True, scale factors from \(y=10^{-24}\cdots P=10^{15}\) are used. If ini.scalefactors=False and ini.eng_notation=True, engineering notation will be used (powers of 10 are an integer multiple of 3).

    Application of this function is defined in the [display] section of the SLiCAP.ini file in the project folder. Default setting are:

    scalefactors = False
    eng_notation = True
    
  6. The SLiCAP.ini files in the ~/SliCAP/ folder and in the project folder are automatically updated in case in which they are corrupted or incomplete.

../_images/colorCode.svg