Python EDA Initiative: Why?

There are several different levels to this question:

Why create a set of open source EDA tools?

To bring innovation back.

The current state of the EDA industry stifles innovation in both tools and products. For EDA tools, the barrier is fitting into the already installed CAD environment. This requires allocating a large chunk of engineers simply to handle the brittle interface issues. Even the big EDA companies have troubles interfacing tools from companies which they buy, and they have all of their internal specifications. By creating a set of open source EDA tools, a known baseline forms the foundation of further integration. Instead of wasting time on interface infrastructure, programmers can concentrate on developing tools, features and algorithms.

For hardware products, the situation is even worse. Licensing fees from the major EDA companies are a major expense for small companies and may even exceed salaries in the beginning. The ability to build a prototype (or at least reach the final stages prior to tapeout) before having to commit large chunks of money or equity completely changes the risk/reward dynamics. Instead of requiring low risk to offset the high initial outlay, investors can commit to higher risks or longer payoff times. Simply having tool licenses no longer burns money.

Innovation is not the only reason for embarking upon this effort. Pedagogy, control, risk-management--there are a vast number of other good reasons to create open source EDA tools. However, bringing innovation back to the industry goes a long way.

Why give these tools away?

To prove their value.

The biggest problem facing any new EDA tool is getting the initial customer. Companies want proof that the tool works before allocating people, time and money to it. However, the only way to prove that the tool works is get companies to use it. The easiest way to break this cycle is to give the tool away. Companies who are particularly sensitive to cost will use the tool even if it has some issues.

However, the Python EDA Initiative tools are not necessarily free due to altruism; the folks here simply derive value in different areas. The engineers find value in having a portable tool chain not beholden to another company. The programmers see value in having an open, stable API which allows them to build other tools--some of which may even be commercialized. The managers see a way to gain better support and reduce risk. All of these tools require a basic open source tool chain.

Why use Python?

Because it works.

The folks working on the Python EDA Initiative have a great deal of experience with various programming languages. Python currently seems to be the most productive language for large-scale programming. When combined with Gtk and Pygtk, it is also one of the most portable. The tools have been tested to run on Linux, FreeBSD, Solaris, and Windows with almost no modification. Quite a few other choices were considered, but all of them had various language shortcomings which made Python a better choice.

Why the BSD License and assignment?

To ensure the widest possible distribution.

The BSD license is one of the least restrictive software licenses. This allows people the widest possible latitude in using the software. This is important for two reasons. First, EDA software has unusually long lifetimes. Spice is almost 30 years old; Spice 3 is almost 20 years old; Magic is almost 10 years old. People sometimes need to do "software archeology" and resurrect a tool which may long have been abandoned. Having a BSD license allows this to proceed without interference.

Second, EDA software has high commercial value associated with both the software and the end product. Having a license which permits commercialization benefits all of the users of this software. Users can offer support and customization without obstacle. Companies can develop products without fear about their internal intellectual property.

The copyright assignment to Python EDA Initiative, Inc. presents a single legal entity with which to communicate about these tools. License adjustments, corporate contributions, and non-disclosure agreements sometimes require the presence of a legal entity to sign documents or enter into contracts. Without this entity, certain uses of these tools will not be possible. This was deemed to be an unacceptable restriction, and the copyright assignment is the easiest solution to the dilemma.