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

Stephen McInerney spmcinerney at hotmail.com
Thu Apr 27 08:20:41 CEST 2006


Here is a summary for anyone who is interested in Python in Electronic 
Design Automation (EDA):

As it happens three separate people today independently asked me about the 
exact same topic.
So I am writing this because I know for a fact there has been a small 
cluster of EDA people who
periodically attend BayPIGgies for at least 2 years, but it seems to ebb and 
flow without ever
acquiring critical mass. I have been trying to round up enough heads for a 
"Python in EDA" evening for a few years now.

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).
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

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




More information about the Baypiggies mailing list