Thursday, July 23, 2009

Demand for EDA SaaS

It's been a while, I promise I'll post more when I'm finished with my job.

The blogs have been buzzing about EDA SaaS ("Electronic Design Automation Software as a Service"). In one of my previous posts on the subject, I argued that the complexity of system design is growing faster than the ability of a reasonable desktop computer and that this will create demand for hosted EDA tools. I also argued that the ease of rolling out new features and upgrading users to the latest version is a major selling point for EDA SaaS. My experience this past week produced anecdotal evidence of both these points.

I'm coming to the final stages of a PDP-11/70 emulator design where I have it running test software in simulation. I was running Xilinx ISE 10.1 and about an hour and a half into the synthesis, I got an out of memory error from XST:
ERROR:Portability:3 - This Xilinx application has run out of memory or has encountered a memory conflict. Current memory usage is 2090436 kb. You can try increasing your system's physical or virtual memory. For technical support on this issue, please open a WebCase with this project attached at http://www.xilinx.com/support.

Process "Synthesis" failed
I searched for help on this error and I discovered from the Xilinx forums that you can add the /3GB option to your 32-bit Windows machine's boot.ini. A reboot and a couple hours later, I get the same message only with a larger number for the current memory usage at the time it failed. Before I start partitioning my design (something I'll have to do eventually anyway to increase my iteration rate during timing closure), I decide to give it a try on a 64-bit Vista machine. It compiles using some ungodly amount of memory after several hours.

I decided that I should install Xilinx ISE 11.1 on the 32-bit machine and give it a try. After an hour-long installation I have 11.1 running, and after another hour downloading an automatic update to 11.2 I'm ready to go. Running 11.2, the 32-bit machine compiles my design within the 3 GB memory limit.

These problems don't exist in a future world where EDA tools are provided as a service. If synthesis tools were hosted on some humongous supercomputer then I don't have to run out of memory and I don't have to install any software updates. Since you can run the synthesis optimizations and place-and-route parallelized across a thousand cores, I can even get my results in less than a couple hours.

Anyone want to do this?

---------
Edit 7/24

Another benefit of hosted EDA tools is that errors can be reported directly to the software vendor. This means that your hosted software won't have dozens of users experiencing the same error and not telling anyone.

I started partitioning my design today, and got a wonderfully meaningless error:

INTERNAL_ERROR:Xst:cmain.c:3446:1.47.6.1 - To resolve this error, please consult the Answers Database and other online resources at http://support.xilinx.com

Obviously Xilinx doesn't provide cmain.c as open source so I can't really figure out what I'm upsetting in the source code. Googling reveals that the Xilinx Forums have nothing useful to say about this bug, but I discovered that I am not alone with this error on the blog of another Israeli with similar gripes with ISE.

There are thousands of business opportunities that can be created by appending "...that doesn't suck" to the description of an existing product.

9 comments:

Charles said...

I like the idea. Of course, just because the tools move to "the cloud" doesn't mean Xilinx et al will be any more responsive to problems. But implementing the tools that way has the potential for a lot of positives.

However, I wonder about the issue of archiving designs with the tools. When I last worked on FPGA/CPLDs professionally (a while ago, alas), we would often have a requirement to archive a finished design with the tools used to implement the design. This was an attempt to insure against obsoleted/unsupported tools should a critical bug be found in the too distant future. This actually did save our bacon a couple of times. I wonder what the equivalent of that would be for EDA SaaS.

RPG said...

Coonsidering how broken Xilinx's current tools are, I wouldn't count on the move the cloud being much of an improvement.

Amir said...

Tool archival is an interesting problem and we'll definitely have to do that for our current design. Ideally a SaaS vendor could just freeze a virtual machine for you that can run the whole process.

Charles said...

Ah! Yes, of course! That would probably work well.

William Gibb said...

Have you considered running the native Linux versions of the xilinx tools instead of the windows tools under cygwin?

Amir said...

I have run it under ubunutu. I'm arguing that the software distribution model is broken.

The infrastructure cost for a machine that can run the tools is already high. It is worth it for some tool vendor to sell hardware optimally tuned to run their simulation/synthesis/PAR.

If it's worth buying the infrastructure, it's also worth sharing it in a data-center with a bunch of other small design shops.

The issue is that a lot of companies are afraid about storing their designs and simulation data on a tool vendors hardware so they instinctively prefer to run their own hardware. I think the cost of this paranoia is too high. It rarely make sense to buy a $10M machine that can run synthesis and PAR in a few seconds unless you can share it with a thousands of other developers. If a large number of developers could have access to this kind of latency, it would change the entire design process.

James said...

Archiving designs, tools, scripts, and libraries for future reference, etc. is a key feature of the Xuropa SaaS platform and is already built into our Online Lab products.

To check out how Cadence is using their Xuropa Labs:

www.xuropa.com/cadence

- James

Peter O said...

I can imagine that companies would be concerned about privacy. Having nicely maintained tools available is nice, but what if the site gets compromised and somebody else steals my IP?

Harry Gries said...

Amir,

How would you like to host your PDP-11/70 emulator design, running the Xilinx ISE, on the Xuropa platform, which is cloud based? Xuropa is one of my clients and I can probably make that happen.

Let me know. You can contact me at harry at xuropa dot com.

Harry