Pyanalog: A pythonic analog computer demonstrator interface

pyanalog is a Python3 package and demonstrator/research code for a software stack for analog computers. It empowers users to

  • manipulate ordinary differential equations in a way suitable for procession with the exemplary Analog Paradigm Model-1 analog computer or similar high-level architectures in terms of OpAmp-Level circuit description (not SPICE-level circuit description).

  • simulate abstract computing circuits made of elements such as summers, integrators, differentiator and multipliers. The heart of the code is a custom ODE solver (based on C++ codegeneration), but also interfaces to SciPy and SymPy solvers exist. Notably, the C++ solver can also solve integro-differential equations.

  • generate and manipulate netlists and VHDL-like circuit descriptions

  • compile against machine architectures on a macrocell-level, set digital potentiometer arrays, cross bar switches, digital switches, etc.

  • interface a Model-1 hybrid controller in order to run a program, steer the operation, gain and visualize/postprocess output data.

The codes are supposed to work well in the Scientific Python ecosystem. The target audience are clearly software engineers and scientists. The user interface is either command line (bash or python shell) or scripting (Python or C/YAML-like domain specific languages). This code can interface with remote analog computers (AAAS – analog computing as a service).

The pyanalog code is open-source and a research code which is worked actively on, ie. it is “work in progress”. It is authored Anabrid GmbH. The code is currently dual-licensed by GPL-3 and a proprietary/commercial use license. See for further details.

About this documentation

This documentation is written in ReStructured text (RST) and rendered using the Sphinx. documentation system. Possible output formats are not only web pages (HTML), but also PDF, amongst others. If you have sphinx installed (pip install sphinx), you can just go to the doc directory and type make html or make pdf to generate the docs locally. If you have a mixed Python2/Python3 system, call make html SPHINXBUILD="python3 -msphinx" to ensure using Python3.

This documentation is built by our Gitlab Continous Integration tool and uploaded as static files to our Anabrid Dev Server (formally ReadTheDocs). you can find the docs at:

Indices and tables