gnucap-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnucap-devel] Python plugin for Gnucap


From: henrik johansson
Subject: [Gnucap-devel] Python plugin for Gnucap
Date: Tue, 12 May 2009 11:27:35 +0200

Hi all,

My name is Henrik Johansson and I have been lurking on this list for
quite a long time. I am an analog/RF IC designer by trade
and I normally work with commercial simulators like Spectre and Eldo.

I think Gnucap is really the best open-source simulator out there but
unfortunately the open-source EDA world lacks a post-processing
framework like the Ocean library in Cadence and a nice
waveform-viewer. According to me this should be written in Python.

I have seen that there have been some fruitless attempts to write a
python module for gnucap but I don't know how far they came.  Anyway,
I gave it a shot myself and wrote a plugin for gnucap which registers
a new "python" command that starts a Python interpreter and
runs a python script where the filename is given as an argument. I
have already talked to Al about it and he urged me to write to the
list instead so here it comes!

In order to do something interesting in the embedded Python
interpreter I also wrote a Swig wrapper for some of the gnucap
classes. Currently this allows you to extend the CMD class in python
and register new commands written in Python. As an example I wrote a
new plot function that plots a stored waveform using matplotlib.

I also tried a different approach, to compile gnucap as a shared
library and write a gnucap extension for Python that calls that
basically replaces the gnucap command main function. This way could be
useful if gnucap is called from a high level simulation environment.
The modifiaction is only in the autoconf/automake files so no code is
changed. Along with the shared library, the header files are also
installed in $PREFIX/include/gnucap which makes it possible to compile
plugins freely without relying on the gnucap source tree. The gnucap
command now contains only the main function and is dependent on the
share library libgnucap.so.

The modified gnucap source tree can be found at
http://github.com/henjo/gnucap.

The python plugin is here:
http://github.com/henjo/gnucap-python. You can download tar-balls of
all github repos directly.

I think this can also be used to implement new analyses like periodic
steady state which can run as a Python defined command and run
transients from gnucap. The performance penalty should be minimal.

Best regards,

Henrik Johansson




reply via email to

[Prev in Thread] Current Thread [Next in Thread]