Simulate electronic circuit using Python and the Ngspice / Xyce simulators
Project description
Quick Link to Production Branch
Quick Link to Devel Branch
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 of1.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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c2ec530da27b13f6b4ec8a17ec92574ffb2119885d0adf05a3d853c432386ba |
|
MD5 | edad6c8af3678b944e6b228f6c93f46b |
|
BLAKE2b-256 | f52e1817326c0dd6425c72d8b25c0e92bc454cc9578fb7693707514708baf30e |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0ed46e633acc52c3fc3eac63a7f50bae9a41ca5f1db0f9642d76f99f913154e |
|
MD5 | 69e7d5c9ed3237f47d9f428aece135da |
|
BLAKE2b-256 | 4b7d1b05a06b441b336f68096df4b3ced804c56876d990158767732aa5d84d04 |