datasheets.com EBN.com EDN.com EETimes.com Embedded.com PlanetAnalog.com TechOnline.com  
Events
UBM Tech
UBM Tech

EDA DesignLine Blog

Comment


gtx

9/20/2012 10:53 AM EDT

A good alternative to Eclipse is Netbeans, at least for software development. ...

More...



nosnhojn

9/17/2012 3:37 PM EDT

Oops... the link was right but my editing was wrong (there's an extra '.' at the ...

More...

Opinion: Why IDEs for hardware design fail

Philippe Faes, CEO Sigasi

9/11/2012 6:40 PM EDT

Hardware designers hate integrated development environments (IDEs), and they have good reasons to do so. Most EDA vendors build IDEs that lock the user in. They force a workflow on the user, limit the number EDA tools that work with their IDE, and provide half-baked usability. The only way to fix this is to stop using IDEs that are built by EDA (electronic design automation) companies. Electronic design engineers should start learning and copying from their colleagues in software engineering.

What are IDEs?
IDEs are graphical front ends that tie together all of the tools you need for developing software (or for designing hardware). The general look is pretty much the same for all IDEs. You have one or more windows with several views: an explorer that shows a list of files, a big editor view, navigation views, error views, and dozens more depending on the tools you are using. The idea is that you will never have to leave this IDE. It serves as a cockpit from where you can control every aspect of your work.

Why do EDA vendors build IDEs?
I can’t speak for any of the large EDA companies, of course, but here are some possible considerations:
They want their users to pick up new tools faster, with an easier learning curve: If you can learn my tool and be productive in a week while it takes two months to master the other guy’s tool, I have competitive advantage.
A lot of things in hardware design are really two-dimensional: chip layout, design hierarchy, etc. It’s a lot easier to click in a picture than to type coordinates on a command line. Instead of having a small graphical tool for each phase of the design, EDA companies create a bigger, bundled tool that covers several steps of the design flow. You can perform all the graphical tasks in my synthesis flow with my graphical tool, which ties all of my command-line tools together.

Why this doesn’t work
Having an integrated cockpit sounds great, but there are three big problems with the way EDA companies build their IDEs:
  1. Usability sucks.
  2. Users are locked in.
  3. You cannot customize the design flow.

Usability sucks and there is no economic incentive to improve it. Extra functionality can create business value and convince managers to spend an extra 100k on a tool. Extra usability can save the user some time—perhaps ten seconds or perhaps half a day—but you are just counting man hours here (yeah, yeah, person hours).

An IDE for software engineers can easily have millions of users. An EDA tool with ten thousand users is doing pretty well. At $60 per hour, a one-minute usability issue is worth a million in the software world, but just $10k in the hardware world. No EDA company is going to free up resources to fix small usability issues if they can work on new advanced features instead. And that’s what you can see when you use most EDA tools—very powerful complex functionality, but a user interface that is not all that intuitive.

Users are locked in, not just to their IDE but also to the whole set of tools that the IDE integrates. You want to be able to switch from one synthesis tool to another because the price is better or because the performance is better. You want to combine different tools in your tool flow, and you want to try out a new code linter tool or a post synthesis optimization. If those tools are provided by a vendor other than your IDE vendor, chances are you’re on your own.

You cannot easily customize your design flow. Command line tools can be glued together much more easily using Tcl or other scripting languages. In the world of hardware design, IDEs don’t allow for user-created additions or customizations.

Why IDEs work in the world of software
In the software world, IDEs have not failed for two reasons: large corporate support and individual grassroots support.

It takes a lot of resources and a lot of focus to create a good IDE. Only a few companies in the world can put this much effort into creating a great IDE. IBM, Sun (now Oracle), and Microsoft have done a pretty decent job in creating Visual Studio, Netbeans, and Eclipse. Jetbrains are playing along in the “Champions League” because of their tremendous focus on creating a great IDE. None of the major EDA vendors and none of the major FPGA vendors gets close to playing in the same league as IBM and Microsoft. And none of them gets as close to focusing on their IDE as Jetbrains does.

In the software world, new innovations often start as command-line tools created by individuals or small teams of developers. These command-line tools often get integrated into the mainstream IDEs. Since IDEs have open interfaces, software developers can create new plug-ins that support their favorite new tool. Even if there is no easy way to monetize the value of a plug-in or usability improvement, there are plenty of software engineers who have the skills and the incentive to implement them. They get so annoyed or excited that they’ll work on an improvement on Saturday afternoon just so that they can use it on Monday morning.

How to fix this for hardware designers
As Pablo Picasso (and Steve Jobs) famously said, “Good artists copy, great artists steal.”
There is no reason why EDA companies have to build their IDEs from scratch. They could just as easily reuse the best IDEs from the world of software engineering. Many high quality IDEs are available as free open-source software, with a community of thousands of developers and millions of users and backed by companies such as Oracle, SAP, and IBM. Hundreds of smaller companies contribute enhancements and plug-ins to these IDEs, making it a robust and feature-rich platform.

FPGA and EDA companies have already created some solutions based on Eclipse, one of the leading IDE platforms. Unfortunately, they have done so only hesitantly and have mainly focused on embedded software tools rather than HDL design. There is no reason why VHDL and Verilog development, and integration with simulators, and synthesis tools could not be built on Eclipse. Several companies, including Sigasi, are providing EDA solutions for the Eclipse platform today.

The future for digital design in is adopting the IDEs from the software world, and when that future arrives, hardware designers will get all the benefits that software designers have experienced for over a decade now. Tool quality will go up, productivity will go up, and the quality of digital designs will go up.

About the author
Philippe Faes is co-founder of Sigasi. He has a Ph.D. in computer science engineering and has done research on hardware-software co-design before founding Sigasi. Today, Philippe and his team are working to build the very best software for writing VHDL code, inspired by software development tools like Eclipse. Philippe is proud to be a geek and a lava lamp owner.



If you found this article to be of interest, visit EDA Designline where you will find the latest and greatest design, technology, product, and news articles with regard to all aspects of Electronic Design Automation (EDA).

Also, you can obtain a highlights update delivered directly to your inbox by signing up for the EDA Designline weekly newsletter – just Click Here to request this newsletter using the Manage Newsletters tab (if you aren't already a member you'll be asked to register, but it's free and painless so don't let that stop you).




cdhmanning

9/11/2012 11:14 PM EDT

Pretty much the same reasons why many software developers hate IDEs too.

Sign in to Reply



nosnhojn

9/12/2012 1:58 AM EDT

Philippe, Nice article. I don't think many hardware developers have seen a decent IDE. Until we do, we won't know what we're missing... nor ask for what we're missing... and carry on our merry way.

fwiw... I found the eclipse/java for total beginners tutorial to be a great crash course in what an IDE can do for a person: http://eclipsetutorial.sourceforge.net/totalbeginner.html. Not the right language but it's eye-opening nonetheless and easy to get through. From there people can see the power of an IDE and start looking for better than what they're using currently. maybe :).

-neil

Sign in to Reply



Brian1

9/14/2012 12:12 PM EDT

Your link does not appear to work.

Sign in to Reply



nosnhojn

9/17/2012 3:37 PM EDT

Oops... the link was right but my editing was wrong (there's an extra '.' at the end of the link that shouldn't be there). Here it is again...

http://eclipsetutorial.sourceforge.net/totalbeginner.html

-neil

Sign in to Reply



rfindley

9/13/2012 3:54 AM EDT

My gold-standard for IDEs is 'SlickEdit'. It is purely dedicated toward streamlining everything about programming. It easily boosted my productivity by 2x (no kidding!), mostly via the code navigation, preview windows, and intelligent tagging. You can also integrate any command-line tools from your hardware tool vendor, e.g. to build your FPGA/EDA project for you. And that's only scratching the surface.

VHDL, Verilog, and System Verilog support aren't yet perfect, but they are pretty good, and getting better all the time. I would love to see the hardware vendors take advantage of SlickEdit's OEM integration program to make use of the SlickEdit engine. Then they could add their implementation-specific icing to the cake.

Oh... and they have an Eclipse version if you so desire.

Sign in to Reply



llemieng

9/13/2012 7:36 AM EDT

'SlickEdit' offers some superficial language support, similar to what Emacs and Vim have.
Real IDEs have in-depth knowledge of the design, show errors instantaneous & offer resolutions for them. They offer multiple views to analyze the design and make it possible to make big changes quickly and accurately.
Try developing some C++ in visual studio or java in intellij and you'll quickly notice how big the difference is.

Sign in to Reply



Gordon McGregor

9/13/2012 4:34 PM EDT

I think there is also the issue of incentives and eating your own dog food as far as the IDE developers are concerned. For most software IDEs I suspect the IDE developers are using the IDEs on a daily basis, often for the purposes of developing the IDE itself or other software products. They are invested in the IDE being useable and have the means to improve their own experience.

I'm doubtful about how many EDA IDE developers are actually using their tools in anger, on a frequent basis, to actually do chip design work. Many of the most crazy usability issues would probably be resolved quickly then (e.g., IDE/ waveform viewers that default to binary - most non-toy examples aren't 8bit any more and binary as a default for busses doesn't make much sense)

It's frustrating because there are large performance gains that can be made using a decent IDE (real time syntax checking alone can save you hours a week in not waiting for compiles to fail, with an editor that can flag verilog typos as you make them). But most of the IDEs seem tuned to helping users get through a training class and then mostly getting in the way after the first few weeks.

Sign in to Reply



MindTech

9/13/2012 5:18 PM EDT

IDEs, at their best, are a competent framework that the user's can add to (often via plug-ins) to enhance their capability. At their worst they are bad editors that you must use to preform certain actions. Even in the software world there are lots of bad IDEs.

Eclipse is probably a good place to start for an open hardware IDE, as it provides essentially a bare platform for building your IDE. It's a text editor that understands two major concepts: a project has multiple files in it and there are different activities that have different views. Everything else is sauce. Lots of software sauce has been written (so many plugins!) and that is often packaged up into a final "IDE".

The only problem I have with Eclipse is that it never quite feels cohesive, like all the plugins are just about to fly apart...

Sign in to Reply



gtx

9/20/2012 10:53 AM EDT

A good alternative to Eclipse is Netbeans, at least for software development. Its plugins are user developed, but the platform is backed by Oracle.

Sign in to Reply



Please sign in to post comment

Navigate to related information

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)