PySpice Logo PySpice 1.5
  • 1. Overview
    • 1.1. What is PySpice ?
    • 1.2. How is PySpice licensed ?
    • 1.3. Are there some papers or talks about PySpice ?
    • 1.4. Going further with PySpice
    • 1.5. How can PySpice be used for learning ?
    • 1.6. Which platforms are supported by PySpice ?
    • 1.7. How to install PySpice ?
    • 1.8. How does PySpice differ from simulator like LTspice ?
    • 1.9. How can a non-GUI simulator be helpful ?
    • 1.10. What are the benefits of PySpice over Ngspice / Xyce ?
    • 1.11. How is PySpice interfaced with Ngspice ?
    • 1.12. How is PySpice interfaced with Xyce ?
    • 1.13. How is the netlist defined ?
    • 1.14. Can I run Ngspice using interpreter commands ?
    • 1.15. How are Spice libraries handled ?
    • 1.16. How are units handled ?
    • 1.17. Which version of Python is required ?
    • 1.18. Which version of Ngspice is required ?
    • 1.19. Which version of Xyce is required ?
    • 1.20. Which flavours of SPICE are supported ?
    • 1.21. What else should you be aware of ?
  • 2. News
    • 2.1. V1.6.0 (development release)
    • 2.2. V1.5.0 (production release) 2021-05-xx
    • 2.3. V1.4.3 2020-07-04
    • 2.4. V1.4.0 2020-05-05
    • 2.5. V1.3.2 2019-03-11
    • 2.6. V1.2.0 2018-06-07
    • 2.7. V1.1.0 2017-09-06
    • 2.8. V1.0.0 2017-09-06
    • 2.9. V0.4.2
    • 2.10. V0.4.0 2017-07-31
    • 2.11. V0.3.2 2017-02-22
    • 2.12. V0.3.1 2017-02-22
    • 2.13. V0.3.0 2015-12-08
    • 2.14. V0 2014-03-21
  • 3. Roadmap
    • 3.1. V1.3
    • 3.2. V2
    • 3.3. Some ideas for the future
  • 4. Installation
    • 4.1. PySpice Packages
    • 4.2. Ngspice on conda-forge
    • 4.3. PySpice Continuous Integration
    • 4.4. On Windows
    • 4.5. On Linux
      • 4.5.1. Ngspice Installation
      • 4.5.2. Install the Python Environment
    • 4.6. On OSX
    • 4.7. How to get the Examples
    • 4.8. Install a more Recent Version from GitHub using pip
    • 4.9. Installation from Source
    • 4.10. Tips to Set the Development Environment
    • 4.11. Dependencies
    • 4.12. How to Generate the Documentation
    • 4.13. Ngspice Compilation
    • 4.14. How to get Xyce ?
  • 5. Simulators
    • 5.1. Ngspice
    • 5.2. Xyce
    • 5.3. Gnucap
    • 5.4. Qucs
  • 6. User FAQ
    • 6.1. PySpice FAQ
      • 6.1.1. How to get help or report an issue ?
      • 6.1.2. How to typeset u_kΩ or u_μV in Python code ?
      • 6.1.3. How to perform division with units ?
      • 6.1.4. Is unit API well tested ?
      • 6.1.5. Is ground node required ?
      • 6.1.6. How to deal with SPICE parameters that clash with Python keywords ?
      • 6.1.7. How to pass raw SPICE command ?
      • 6.1.8. How to set the simulator ?
    • 6.2. Ngspice FAQ
      • 6.2.1. How to get the Ngspice manual ?
      • 6.2.2. How to set the Ngspice library path ?
      • 6.2.3. How to set the Ngspice executable path ?
    • 6.3. Xyce FAQ
      • 6.3.1. How to set the Xyce path ?
      • 6.3.2. Is Xyce 100% compatible with SPICE ?
  • 7. Introduction to the Examples
    • 7.1. How to Learn Python
    • 7.2. How to Run these Examples
    • 7.3. How to Write a Netlist
    • 7.4. How to Draw a Circuit
    • 7.5. Should I Use a Python File or a Jupyter Notebook ?
  • 8. Examples
    • 8.1. Advanced Usages
      • 8.1.1. Internal Device Parameters
    • 8.2. Basic Usages
      • 8.2.1. Netlist Manipulations
      • 8.2.2. Pass Raw Spice Definitions to a Netlist
      • 8.2.3. How to Use SubCircuit
      • 8.2.4. Unit
    • 8.3. Data Analysis
      • 8.3.1. Fast Fourier Transform
    • 8.4. Diode
      • 8.4.1. Ringmodulator
      • 8.4.2. Diode Characteristic Curve
        • 8.4.2.1. Theory
        • 8.4.2.2. Simulation
      • 8.4.3. Diode Recovery Time
      • 8.4.4. Rectification
      • 8.4.5. Ring Modulator
      • 8.4.6. Voltage Multiplier
      • 8.4.7. Zener Characteristic Curve
    • 8.5. Electricity
      • 8.5.1. Three-phased Current: Y and Delta configurations
    • 8.6. Filter
      • 8.6.1. Low Pass Rc Filter
      • 8.6.2. RLC Filter
    • 8.7. Kirchhoff’s circuit laws
    • 8.8. Ohm’s Law
      • 8.8.1. Millman’s theorem
      • 8.8.2. Thévenin and Norton Theorem
      • 8.8.3. Voltage and Current Divider
    • 8.9. Simulation using External Sources
    • 8.10. NgSpice Interpreter
    • 8.11. Operational Amplifier
      • 8.11.1. Operationalamplifier
      • 8.11.2. Operational Amplifier
    • 8.12. Passive
      • 8.12.1. Capacitor Inductor
    • 8.13. Power Supplies
      • 8.13.1. Hp54501A
      • 8.13.2. Capacitive Half Wave Rectification Post Zener
      • 8.13.3. Capacitive Half Wave Rectification Pre Zener
      • 8.13.4. CEM Simulation
      • 8.4.4. Rectification
    • 8.14. Relay
      • 8.14.1. Relay drived by a bipolar transistor
    • 8.15. Resistor
      • 8.15.1. Resistor Bridge
      • 8.15.2. Voltage Divider
    • 8.16. Spice Netlist Parser Bootstrap Example
    • 8.17. Kicad Netlist Parser Example
    • 8.18. Switched Power Supplies
      • 8.18.1. Buck Converter
    • 8.19. Transformer
      • 8.19.1. Transformer
      • 8.19.2. Transformer
    • 8.20. Transistor
      • 8.20.1. AC Coupled Amplifier
      • 8.20.2. n-MOSFET Transistor
      • 8.20.3. Bipolar Transistor
    • 8.21. Transmission Lines
      • 8.21.1. Time Delay
  • 9. Example Wish List
    • 9.1. Operational Points
    • 9.2. Amplifier
    • 9.3. Diode
    • 9.4. Filters
    • 9.5. Inductors
    • 9.6. Operational Amplifier
    • 9.7. Oscillators
    • 9.8. Power Supplies
    • 9.9. Switching Power Supplies
    • 9.10. Telecommunication
    • 9.11. Transistor
    • 9.12. MOSFET
    • 9.13. SCR
  • 10. Design Notes
  • 11. API Documentation
    • 11.1. PySpice
      • 11.1.1. Config
        • 11.1.1.1. ConfigInstall
      • 11.1.2. DeviceLibrary
      • 11.1.3. Doc
        • 11.1.3.1. ExampleTools
      • 11.1.4. Logging
        • 11.1.4.1. Logging
      • 11.1.5. Math
        • 11.1.5.1. Calculus
      • 11.1.6. Physics
        • 11.1.6.1. MaterialProperties
        • 11.1.6.2. PhysicalConstants
        • 11.1.6.3. Resistor
        • 11.1.6.4. SemiConductor
      • 11.1.7. Plot
        • 11.1.7.1. BodeDiagram
      • 11.1.8. Probe
        • 11.1.8.1. Plot
        • 11.1.8.2. WaveForm
      • 11.1.9. Scripts
        • 11.1.9.1. cir2py
        • 11.1.9.2. pyspice_post_installation
      • 11.1.10. Spice
        • 11.1.10.1. BasicElement
        • 11.1.10.2. ElementParameter
        • 11.1.10.3. Expression
        • 11.1.10.4. HighLevelElement
        • 11.1.10.5. Library
        • 11.1.10.6. Netlist
        • 11.1.10.7. NgSpice
        • 11.1.10.8. Parser
        • 11.1.10.9. Parser_jmgc
        • 11.1.10.10. RawFile
        • 11.1.10.11. Simulation
        • 11.1.10.12. Xyce
      • 11.1.11. Tools
        • 11.1.11.1. EnumFactory
        • 11.1.11.2. File
        • 11.1.11.3. Path
        • 11.1.11.4. StringTools
      • 11.1.12. Unit
        • 11.1.12.1. SiUnits
        • 11.1.12.2. Unit
    • 11.2. Indexes
  • 12. Development & Community
    • 12.1. How you can help ?
    • 12.2. Contributors
  • 13. How to Refer to PySpice ?
  • 14. How to Help Further ?
    • 14.1. Professional Support
  • 15. PySpice on the Web
    • 15.1. Articles
    • 15.2. On Github
  • 16. Related Projects
    • 16.1. Schematic Editor
    • 16.2. Netlist Tools
      • 16.2.1. SKIDL
    • 16.3. Circuit Simulator
      • 16.3.1. Ahkab
      • 16.3.2. Lcapy
      • 16.3.3. Other Projects
    • 16.4. CPU Simulator
      • 16.4.1. PyCpuSimulator
  • 17. Bibliography
    • 17.1. SPICE References
PySpice
  • »
  • 16. Related Projects
  • View page source

16. Related Projects¶

16.1. Schematic Editor¶

KiCad is an open source software suite for Electronic Design Automation (EDA). The programs handle Schematic Capture, and PCB Layout with Gerber output. The suite runs on Windows, Linux and macOS and is licensed under GNU GPL v3.

16.2. Netlist Tools¶

16.2.1. SKIDL¶

SKiDL is a module that allows you to compactly describe the interconnection of electronic circuits and components using Python. The resulting Python program performs electrical rules checking for common mistakes and outputs a netlist that serves as input to a PCB layout tool (e.g. Kicad).

SKiDL can generate a circuit using the PySpice API, see this full example https://github.com/xesscorp/skidl/blob/master/examples/spice-sim-intro/spice-sim-intro.ipynb

16.3. Circuit Simulator¶

16.3.1. Ahkab¶

Ahkab is a SPICE-like electronic circuit simulator written in Python.

16.3.2. Lcapy¶

Lcapy is a Python package for linear circuit analysis. Lcapy uses SymPy for symbolic analysis. Lcapy can semi-automate the drawing of schematics from a netlist using Circuitikz. Lcapy sources are available at https://github.com/mph-/lcapy

16.3.3. Other Projects¶

  • eispice

  • SPICE OPUS and PyOPUS

  • A Python interface for SPICE-based simulations

16.4. CPU Simulator¶

16.4.1. PyCpuSimulator¶

PyCpuSimulator is CPU simulator written in Python featuring:

  • Micro-Code Language to describe instruction

  • Opcode Decoder using Decision Tree

  • Read HEX firmware format

  • AVR Core CPU simulation (not completed)

Next Previous

© Copyright 2021, Fabrice Salvaire.

Built with Sphinx using a theme provided by Read the Docs.