Clone this wiki locally
pycircuit is an electric circuit analysis package written in Python. In addition to the circuit analysis part it provides post-processing functionality and interfaces to other simulators.
The project is still in very early development phase and there is still no release.
As there is still no release the code can be downloaded from the git repository. See wiki page SourceCode for detailed instructions.
The documentation can be found at docs.pycircuit.org.
pycircuit consists of 3 subpackages which can be used together or individually.
pycircuit.circuit is a circuit simulator written in 100% Python. One feature that distinguishes it from other simulators is that it can do symbolic analysis. Currently it uses [http://sympy.org Sympy] as the symbolic engine.
For the moment there is no netlist interface. You define your circuit through Python commands.
So far the simulator supports the following analyses:
- DC, finds operating point of the circuit
- AC, symbolic or numeric
- Noise, symbolic or numeric
- Stability analysis, both device and loop-based
- Two-port, this analysis extracts 2-port parameters and optionally 2-port noise parameters
- PSS, finds periodic steady state using shooting Newton
- PAC, small-signal analysis of a periodic steady state
There is also initial support for a high level hardware description language (HDL).
pycircuit.sim is a unified interface for other circuit simulators (both free and commercial). This package is the most unstable one and is probably not very useful yet.
pycircuit.post is a post processing library that can read simulation data, handle and do operations on waveforms. For those who are familiar with [http://cadence.com Cadence] it similair to their Ocean library.
Currently it has:
- a waveform class that can handle multi-dimensional data
- a growing library of functions for post-processing circuit simulation data
- a unified interface to simulation results
- an interface to Cadence PSF waveform-format
- a pexpect interface to Cadence skill parser.
- an interface to native Eldo waveform format. (this is just a python extension to [http://mentor.com Mentor Graphic]’s simulation result API)
Projects we depend on
- Numpy+Scipy, almost all modules of pycircuit use these for array processing and number crunching
- Sympy, all symbolic operations in pycircuit is done with Sympy
- Matplotlib, matplotlib is used for waveform plotting in pycircuit.post
See the RoadMap on the wiki.