Skip to main content

PySpice license PySpice python version

PySpice last version

Brief Notes

Thanks to Discourse, PySpice now has a Forum hosted at https://pyspice.discourse.group

Disclaimer: PySpice is developed on my free time actually, so I could be busy with other tasks and less reactive.

An issue was found with NgSpice Shared, we must setlocale(LC_NUMERIC, “C”); see https://sourceforge.net/p/ngspice/bugs/490/

Overview

What is PySpice ?

PySpice is a Python module which interface Python to the Ngspice and Xyce circuit simulators.

Where is the Documentation ?

The documentation is available on the PySpice Home Page.

Note: This site is hosted on my own infrastructure, if the site seems done, please create an issue to notify me.

Where to get help or talk about PySpice ?

Thanks to Discourse, PySpice now has a Forum hosted at https://pyspice.discourse.group

What are the main features ?

  • support Ngspice and Xyce circuit simulators

  • support Linux, Windows and Mac OS X platforms

  • licensed under GPLv3 therms

  • implement an Ngspice shared library binding using CFFI which support external sources

  • implement (partial) SPICE netlist parser

  • implement an Oriented Object API to define circuit

  • export simulation output to Numpy arrays

  • plot using Matplotlib

  • handle units

  • work with Kicad schematic editor

  • implement a documentation generator

  • provides many examples

How to install it ?

Look at the installation section in the documentation.

Pull Request Recommendation

To make it easier to merge your pull request, you should divide your PR into smaller and easier-to-verify units.

Please do not make a pull requests with a lot of modifications which are difficult to check. If I merge pull requests blindly then there is a high risk this software will become a mess quickly for everybody.

Credits

Authors: Fabrice Salvaire and contributors

News

V1.5.0 (development release)

V1.4.0 (production release) 2020-05-05

  • fixed nasty issue with NgSpice shared for setlocale(LC_NUMERIC, “C”); cf. #172

  • fixed AC AC_MAG AC_PASAE SIN for new NgSpice syntax

  • fixed initial_state for VoltageControlledSwitch

  • fixed LosslessTransmissionLine #169

  • fixed docstrings for element shortcut methods (thanks to Kyle Dunn) #178

  • fixed parser for leading whitespace (thanks to Matt Huszagh) #182

  • fix for PyYAML newer API

  • support NgSpice 31 API (no change)

  • added check for CoupledInductor #157

  • added check-installation tool to help to fix broken installation

  • added pole-zero, noise, distorsion, transfer-function analyses (thanks to Peter Garrone) #191

  • added .measure support (thanks to ceprio) #160

  • added log_desk parameter to CircuitSimulator

  • added listing command method to NgSpiceShared

  • added Xyce Mosfet nfin #177

V1.3.2 2019-03-11

  • support Ngspice 30 and Xyce 6.10

  • fixed NgSpice and Xyce support on Windows 10

  • bug fixes

V1.2.0 2018-06-07

  • Initial support of the Xyce simulator. Xyce is an open source, SPICE-compatible, high-performance analog circuit simulator, capable of solving extremely large circuit problems developed at Sandia National Laboratories. Xyce will make PySpice suitable for industry and research use.

  • Fixed OSX support

  • Splitted G device

  • Implemented partially A XSPICE device

  • Implemented missing transmission line devices

  • Implemented high level current sources Notice: Some classes were renamed !

  • Implemented node kwarg e.g. circuit.Q(1, base=1, collector=2, emitter=3, model='npn')

  • Implemented raw spice pass through (see User FAQ)

  • Implemented access to internal parameters (cf. save @device[parameter])

  • Implemented check for missing ground node

  • Implemented a way to disable an element and clone netlist

  • Improved SPICE parser

  • Improved unit support:

    • Implemented unit prefix cast U_μV(U_mV(1)) to easily convert values

    • Added U_mV, … shortcuts

    • Added Numpy array support to unit, see UnitValues Notice: this new feature could be buggy !!!

    • Rebased WaveForm to UnitValues

  • Fixed node order so as to not confuse users Now PySpice matches SPICE order for two ports elements !

  • Fixed device shortcuts in Netlist class

  • Fixed model kwarg for BJT Notice: it must be passed exclusively as kwarg !

  • Fixed subcircuit nesting

  • Outsourced documentation generator to Pyterate

  • Updated setup.py for wheel

V1.1.0 2017-09-06

  • Enhanced shared mode

  • Shared mode is now set as default on Linux

V1.0.0 2017-09-06

  • Bump version to v1.0.0 since it just works!

  • Support Windows platform using Ngspice shared mode

  • Fixed shared mode

  • Fixed and completed Spice parser : tested on example’s libraries

V0.4.2

  • Fixed Spice parser for lower case device prefix.

V0.4.0 2017-07-31

  • Git repository cleanup: filtered generated doc and useless files so as to shrink the repository size.

  • Improved documentation generator: Implemented format for RST content and Tikz figure.

  • Improved unit support: It implements now the International System of Units. And we can now use unit helper like u_mV or compute the value of 1.2@u_kΩ / 2@u_mA. The relevant documentation is on this page.

  • Added the Simulation instance to the Analysis class.

  • Refactored simulation parameters as classes.

V0.3.2 2017-02-22

  • fixed CCCS and CCVS

V0.3.1 2017-02-22

  • fixed ngspice shared

V0.3.0 2015-12-08

  • Added an example to show how to use the NgSpice Shared Simulation Mode.

  • Completed the Spice netlist parser and added examples, we could now use a schematic editor to define the circuit. The program cir2py translates a circuit file to Python.

V0 2014-03-21

Started project

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PySpice-1.4.2.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

PySpice-1.4.2-py2.py3-none-any.whl (137.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file PySpice-1.4.2.tar.gz.

File metadata

  • Download URL: PySpice-1.4.2.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.8.0

File hashes

Hashes for PySpice-1.4.2.tar.gz
Algorithm Hash digest
SHA256 18a5711d6b90137cffc3f6798231b5b6df9c42c684b2060e18c1b59c2589fac8
MD5 deca59c4f138dfd95000ff8a7a2b29fc
BLAKE2b-256 c99aa1a0c0692e4ebce2ad93e0d0f90aea5906ca5a7ea25f2a93b43a72fd3d37

See more details on using hashes here.

File details

Details for the file PySpice-1.4.2-py2.py3-none-any.whl.

File metadata

  • Download URL: PySpice-1.4.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 137.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.8.0

File hashes

Hashes for PySpice-1.4.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c2ae9decf49c39a6c41ab12f2e405dfa8129172c2a0a92563d435ce578df0fd2
MD5 066509c069f48fa45b88dd149c613bd0
BLAKE2b-256 c9037d25f1dde106e77d405e47f20114fd27a784c835e958bcbfb146489d9a67

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page