Giter Site home page Giter Site logo

minhhaiphys / pyspice Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pyspice-org/pyspice

0.0 1.0 0.0 2.33 MB

Simulate electronic circuit using Python and the Ngspice / Xyce simulators

Home Page: https://pyspice.fabrice-salvaire.fr

License: GNU General Public License v3.0

Python 95.62% C 3.60% Shell 0.73% Makefile 0.05%

pyspice's Introduction

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

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

pyspice's People

Contributors

amuramatsu avatar cypheon avatar endolith avatar fabricesalvaire avatar joh avatar minhhaiphys avatar rob-smallshire avatar thomaslima avatar xesscorp avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.