In the comments to an excellent Kevin Morris blog on FPGA tools, one writer calls for open-source tools. We (at Impulse Accelerated Technologies) kind of like the idea. A new technology is accepted much quicker when it has more users, particularly when they have skin in the game -- they're helping to support the infrastructure. If anyone has ideas on open-sourcing elements of the FPGA tool flow, or all of it, please contact me.
Now for the hurdles. Visual Studio costs $100 (maybe $600 if anyone out there still pays retail). It's a great tool. It lets you compile all the way to a CPU, author the next Angry Birds, and then go buy your Maserati. Alternatively, you can avail yourself of Eclipse, Intel, or other tool flows that are equally good and range from free to about the same pricing.
Open-source tools would be good for the FPGA industry.
Turning to the programmable device domain, the good news is that FPGA companies let students and small users get started for free with competent WebPack editions. Continuing the good news, the full-up versions of these tools range from free (for smooth talkers with plenty of potential sockets) to $2,995 a year. This is not as cheap as the CPU tools, but it's also not an order of magnitude worse.
Now let's talk about the ugly side of things: device independence, ease of use, and full-up cycle-accurate simulation. I'd argue that, in addition to the basic design tools, most users need all three features, and they need them for darned near free.
Device independence -- not being locked in to one brand -- typically means learning a high-level language (HLL) layer that lives above the hardware description. Open-source efforts at this include Streams C, which was the grandfather of our Impulse C. Streams C, which was developed in a national research laboratory, had more than 1,000 downloads and was paid for by your tax dollars. It was not a true product of the bazaar, but it was a darned good open-source tool. The commercial tools that arose at the same time cost anywhere from $10,000 to $120,000 per seat (that's not a typo).
Ease of use is another story. Many teams using an FPGA to offload their CPU hire some type of help in their first design. The good news is that it is generally not needed for designs beyond the first one. Still, I've sat through the tutorial on how to partition between an on-chip processor core and the chip hardware, and there are a heck of a lot of steps. Complex tools are the bane of the iPhone generation. They won't tolerate extended training courses to learn a new processor type.
Personally, I would welcome an open-source solution that enabled the number of device independent designs to explode. More designs equal more fun for engineers and quicker evolution for products. I'd love this to happen via open-source work, and I welcome a dialogue on how this could happen.
One last point: We think this may require the sponsorship of brands A and X in a common tool layer. What do you think?