Skip to main content

Simulate electronic circuit using Python and the Ngspice / Xyce simulators

Project description

PySpice license PySpice python version

PySpice last version

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.

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.

Credits

Authors: Fabrice Salvaire

News

V1.4.0 (development release)

V1.3.2 (production release) 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

Project details


Download files

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

Source Distribution

PySpicePro-40.tar.gz (448.5 kB view details)

Uploaded Source

Built Distribution

PySpicePro-40-py2.py3-none-any.whl (125.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file PySpicePro-40.tar.gz.

File metadata

  • Download URL: PySpicePro-40.tar.gz
  • Upload date:
  • Size: 448.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.6.8

File hashes

Hashes for PySpicePro-40.tar.gz
Algorithm Hash digest
SHA256 5c2ec530da27b13f6b4ec8a17ec92574ffb2119885d0adf05a3d853c432386ba
MD5 edad6c8af3678b944e6b228f6c93f46b
BLAKE2b-256 f52e1817326c0dd6425c72d8b25c0e92bc454cc9578fb7693707514708baf30e

See more details on using hashes here.

File details

Details for the file PySpicePro-40-py2.py3-none-any.whl.

File metadata

  • Download URL: PySpicePro-40-py2.py3-none-any.whl
  • Upload date:
  • Size: 125.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.41.0 CPython/3.6.8

File hashes

Hashes for PySpicePro-40-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c0ed46e633acc52c3fc3eac63a7f50bae9a41ca5f1db0f9642d76f99f913154e
MD5 69e7d5c9ed3237f47d9f428aece135da
BLAKE2b-256 4b7d1b05a06b441b336f68096df4b3ced804c56876d990158767732aa5d84d04

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page