Skip to main content

PySpice : Simulate Electronic Circuit using Python and the Ngspice / Xyce Simulators

PySpice license PySpicePro python version

PySpicePro last version

Overview

What is PySpicePro ?

PySpicePro is a Python module based on the PySpice module created by Fabrice Salvaire with additions that are not yet integrated into PySpice.

PySpicePro only works with ngspice version 30 (install from ngspice-30_dll_64.zip).

Additions:

  • The .meas(ure) keyword has been added through the simulator.measure(..) member function. This allows the use of simulator.options(‘AUTOSTOP’).

  • Parallelisation is now more convenient with the use of NgSpiceShared.new_instance() where the management of new instances is now completely automated (temporary dll, instances deletions).

Installation:

pip install PySpicePro

PySpicePro needs to work with a specific version of ngspice. Currently only supporting v30.

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

Credits

Author of the original PySpice: Fabrice Salvaire

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 </faq.html>’_)

  • 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

Metadata

Release files for PySpicePro 40.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PySpicePro 40.3
File Size Uploaded
pyspicepro-40.3.tar.gz 452.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PySpicePro 40.3
File Interpreter ABI Platform
pyspicepro-40.3-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 578.0 kB

Release files / pyspicepro-40.3.tar.gz

Download URL pyspicepro-40.3.tar.gz
Size 452.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b7a28d5a5e8ebad7d512e41e461fc056afcc8f9002fa0d530f8882055d724c01
BLAKE2b-256 checksum
How to use checksums
aa2b823eec067dd37c5278088d069581599d718d70c30ca745b615ed8d9d3d0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.5

Release files / pyspicepro-40.3-py2.py3-none-any.whl

Download URL pyspicepro-40.3-py2.py3-none-any.whl
Size 125.8 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
edfeea051b6aa5f2cb8ccd941524a1572758955d4b14278600c7d81236d560f0
BLAKE2b-256 checksum
How to use checksums
1770991b7a34d7fb8a28863b8e72f2db230e4396b2c6cc1714670929e0266db3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.5

Release history Release notifications | RSS feed

This release

40.3 This release

2 release files

40.2

2 release files

40.1

2 release files

40

2 release files

31

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page