[Baypiggies] Summary of Python in Electronic Design Automation (EDA)
andywiggin at gmail.com
Fri Apr 28 21:15:34 CEST 2006
You can add me to the EDA interest list (Andy Wiggin, Synopsys). I
would attend an EDA oriented evening.
On 4/26/06, Stephen McInerney <spmcinerney at hotmail.com> wrote:
> 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).
I've been chuckling about the above for the past two days. I have
plenty of anecdotal evidence to confirm it. However, I'm wondering if
your theory is that EE software skills are constantly advancing, just
delayed by 25 years, or if EEs stuck in 1980? I'd lean towards the
FYI, I'm aware of another, though obscure, use of Python in EDA. In
2000 (maybe 2001?) I evaluated an MCM design product from Zuken/Redac.
It used primarily a GUI interface, but it also had a scripting
interface, and the language was Python.
And one general thought about Python as a TUI for an EDA tool: There's
a long tradition (from the logic synthesis tools of the late 80's,
perhaps?) of EDA point tools being implemented as command shells. This
allows for a single interface (often Tcl, as noted) to be the
interactive command shell as well as the scripting/automation
interface. I think it's hard to make a case for Python as an
interactive shell. User's like the command/option paradigm, such as in
Tcl, and would probably resist a function call based TUI for
interactive use. I've always thought that some kind of command shell
built in Python that allowed both a command/option syntax and standard
Python syntax (or perhaps a way to push/pop into one or the other)
might expand Python's horizons. I looked at the built in cmd module
years ago, but it didn't quite seem to fit the bill. Is anyone aware
of other similar projects?
More information about the Baypiggies