[Baypiggies] Summary of Python in Electronic Design Automation (EDA)

Rick Kwan kenobi at gmail.com
Thu Apr 27 22:37:34 CEST 2006

Hmmm.... interesting.

On 4/26/06, Stephen McInerney <spmcinerney at hotmail.com> wrote:
> Here is a summary for anyone who is interested in Python in Electronic
> Design Automation (EDA):


> EDA is unfortunately historically dominated by legacy proprietary languages
> (Cadence SKILL (a LISP derivative), Synopsys dc-shell, etc.).
> Tcl has emerged within the last 8 years to an extent as the de facto
> scripting and automation
> standard, as endorsed by many EDA vendors. (Believe it or not, that's a huge
> advance on what went before).

That's logical.  Tcl was invented by John Ousterhout, who was famous
for VLSI design tools at Berkeley, upon which a lot of industry tools
were based.  Fabulous extensibility compared to anything else around
at the time.  (And then later came Python. :-)

> Essentially, EDA scripting as written by EE's (as opposed to the EDA
> software itself, which is written by CS guys) lags best practices in
> software (revision control, testing, object-orienting, reuse) by about 25
> years typically. This is a pet topic of mine and believe me I can show you
> plenty metrics to prove that (see also ISQED conference).
> There is no single area of application for Python in EDA but there are
> several open areas which are not dominated by any legacy. Python also goes
> head-to-head with PERL since PERL is an EE's de facto scripting language of
> choice, historically anyway. So writing an imperative style with heavy use
> of regexes and eschewing OO is kind of an unfortunate straitjacket
> requirement, in order that your colleagues can understand and maintain your
> code.
> These are the main current areas where Python is used in EDA:
> - Python for small tasks, netlist transformations, buffer insertion,
> transistor compaction
> - Python in testing, builds, automation, job control, webserver logging of
> results
> - interfacing to the emergent OpenAccess standard for a silicon design
> database with an open API (in C++): (http://www.si2.org/?page=69)
> - interfacing to or wrapperising C++ APIs or revision control
> - small GUIs (usually Tkinter)
> - mod_python, mod_perl, Ruby and PHP for internal websites (e.g. regression
> results)
> - Jan Decaluwe even proposed PyHDL: Python as a design language (HDL):
> (http://www.eet.com/news/design/technology/showArticle.jhtml?articleID=177101584)
> although that is very uncommon - Verilog(& SystemVerilog) dominate, followed
> by VHDL.
> Here is a list of former or current BayPIGgies with an interest in Python in
> EDA,
> based on my personal interactions. Apologies if I get anyone wrong or
> omitted:
> Stephen McInerney (Sun Microsystems, Magma, Transmeta)
> Dennis Reinhardt (DAIR Computer Systems, former chair of HotChips conference
> and IEEE chapter head)
> Peter Simanyi (Cadence)
> Jan Decaluwe (Mephisto Design Automation (MDA), PyHDL, eAsics)
> Tim Burks
> John Ivie
> Andrew Lentvorski

I did CAD support overseas for Acer Labs' ASIC Division when they
first started in 1987.
Also did a small amount of Perl hacking for cell layout for a shop
that has now disappeared into legend.

> And here is a list of EDA companies known to at least partially use Python:
> Synopsys  www.synopsys.com (mainly for testing only)
> Magma Design Automation www.magma-da.com (only for some testing and
> automation)
> Pyxis http://www.pyxistech.com/
> Tabula Software
> various other OpenAccess partners (mostly small startups)
> (A couple of folks had suggested it might be neat to add links pages from
> baypiggies.net to
> Pythonic companies broken out by sector. That is a good idea for the
> future.)
> Hope this is useful for people who are interested,
> Stephen

Although I haven't done much in EDA in many years, I will attend a
"Python in EDA" evening.  It seems like the right way for that
industry to go.

And speaking of industry segments, I'd be interested in hearing from
people using Python in aerospace.  I use Python for other things (web
hackery, database interface, etc.), but I talk regularly with lots of
aerospace folks, and am plugged into one technical committee.  The
major languages I see in use are:  C/C++, Java, Matlab, and a bunch of
legacy Fortran.  It seems to be there is immense unexploited
opportunity for Python there, but the people need some education.

--Rick Kwan (kenobi at gmail.com)
  Associate Fellow, American Institute of Aeronautics and Astronautics (AIAA)
  chair (until end of May), AIAA San Francisco Section
  member, AIAA Computer Systems Technical Committee

More information about the Baypiggies mailing list