Hacker News new | ask | show | jobs
Ask HN: Exists Open Source FPGA Tool Chain?
7 points by live_to_code 6165 days ago
Is there any FPGA (slightly expensive is okay) that has an completely open source tool chain? I'm not a big GPL/BSD fanatic per say, but when things break / things need to be optimized / tweaked, I like having the source code around (rather than banging my head wondering what's happening in the black box).

Thanks!

6 comments

I actually don't have an answer for you, but perhaps you could ask around on the forum at OpenCores:

http://www.opencores.org/

(It's kind of like SourceForge, but for hardware designs.)

Great thanks, this is even better (a community rather than just a yes/no answer). :-)
I do have an answer for you: basically, no. A huge part of the development work done in the FPGA field is in the software - the hardware is comparatively easy.

If you're complaining about the quality of the official software (especially for Xilinx or Altera) - you're far from alone. Unfortunately, the open-source alternatives are nowhere near the official tools in terms of functionality.

Writing a synthesis tool is like writing a high-level language compiler, fairly difficult. On top of that, synthesis (by definition) targets a specific technology. This is like targeting different CPU architectures and platforms with said compiler except that the targets are not publicly documented.

Even with so many OSS developers in this world, we only have one decent compiler that targets multiple platforms - GCC, and even that has lots of issues. The number of FPGA developers is far smaller and most of us would rather focus on the hardware design, than write software tools.

So, if you want to see a good FPGA tool chain, you would need to convince enough FPGA developers with software skills and enough software developers with hardware skills, to put an effort behind actually making it work.

There's some useful code for reading and modifying Xilinx bitstream files up here: http://www.ulogic.org/trac

if you want to learn more bout the Xilinx chip internals you can learn the XDL format: with the command line ISE tools you can use the flag -ncd2xdl to convert a compiled NCD design to XDL.

icarus verilog can get you as far as synthesis. But, like duskwuff mentioned, the open-source alternatives are nowhere near the official tools in terms of functionality.
I wish. FPGA tools, without exception, suck. No C programmer would put up with compilers and linkers that work the way FPGA synthesis tools do. Open-source efforts could only improve things.

FPGA vendors don't document the details needed to configure their chips at the nuts-and-bolts level, so any FOSS toolchain would have to rely on a sustained reverse engineering effort.

What's preventing the reverse engineering effort? Legality issues? Difficulty? Time? (I've heard stories about samba, and it seems like if MS protocols can be reverse engineered, then things that have to obey the laws of physics couldn't be that much worse).
I'm not sure. Probably the relatively obscure nature of the task and the manufacturers' relatively short design-life cycles discourage any sort of heroics.