31

I want to pick up FPGA programming. I've heard all types of horror stories of proprietary tools. Is there any entirely open-source tool chain available?

If not, how should I learn this? My background: familiar with Scheme, C++, assembly, and MIPS architecture.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
anon
  • 41,035
  • 53
  • 197
  • 293
  • Related question in Electronics SE [here](http://electronics.stackexchange.com/questions/3107/looking-for-open-source-fpga-hardware-and-dev-tools). – hhh Jan 12 '12 at 20:03
  • There is now an open source toolchain for the Lattice Semiconductor iCE40 FPGAs, see: github.com/cseed/arachne-pnr – Cotton Seed Jul 22 '15 at 00:50
  • See [here](http://www.clifford.at/icestorm/) as well. :) – paulotorrens Aug 31 '15 at 03:11

6 Answers6

27

There will likely never be a complete open source tool chain for FPGAs unless we manage to develop an open source FPGA architecture. The FPGA companies control the bitstream formats used to program their parts and they have onerous legal language in their user agreements that make it a rather dangerous proposition to try to develop open source tools by reverse engineering (nobody wants to lose their house).

The good news, though, is that many of the patents that protect FPGA architectures are expiring over the next few years. That could make it possible to develop an open source FPGA architecture. Of course, you'd need a few semiconductor companies to get on board and actually manufacture it...

As has been pointed out, there are free HDL simulation tools like Icarus Verilog and GHDL (a VHDL frontend for gcc). But all you can do with them is simulate your design to ensure that it's functionally correct. You then need some sort of synthesis tool to take your HDL to gates and eventually to the bitstream. Xilinx and Altera have free web editions of such tools, but they are definitely not open source.

aneccodeal
  • 8,531
  • 7
  • 45
  • 74
  • 8
    Good answer. I would love to see some kind of conglomerate of companies develop an open FPGA standard. It wouldn't have to be the best or biggest, just open. I expressed an opinion on this here: http://www.sigasi.com/content/most-needed-eda-innovation#comment-519 – Prof. Falken Nov 26 '10 at 16:22
  • 1
    The [OpenCores](http://opencores.org/) project just made a move to gain crowdfunding for developing the first OpenRISC processor! Certainly exciting [news](http://www.sigasi.com/content/opencores-raises-community-funding-open-source-processor-chip)! – TrinitronX May 09 '11 at 18:55
  • 3
    News! We have the first complete toolchain as free software! The [IceStorm project](http://www.clifford.at/icestorm/), made by Clifford Wolf and others, is able to synthesize and upload Verilog projects to Lattice's iCE40 FPGAs. :) – paulotorrens Aug 31 '15 at 03:09
  • IceStorm project looks pretty cool. Any idea how Lattice feels about it? – aneccodeal Sep 01 '15 at 20:13
13

Icarus is an open source Verilog implementation. You will still need the tool chain from your FPGA vendor to get the code on the FPGA itself.

Ali
  • 18,665
  • 21
  • 103
  • 138
Jonas Heylen
  • 534
  • 2
  • 11
  • I'm a newb; can you explain what I'll actually need the proprietary tool chain for? Thanks! – anon Jan 13 '10 at 12:43
  • To actually get the bit pattern that will be loaded into the proprietary FPGA hardware. – Richard Pennington Jan 13 '10 at 12:46
  • Icarus can create a netlist from your Verilog code. You need the tool chain to do placement and routing and to configure the FPGA with your design. – Jonas Heylen Jan 13 '10 at 12:49
  • 2
    -1 because it still needs P&R tools which are closed and p&R tools ARE a part of the discussion – Quonux Mar 16 '14 at 21:41
  • Open source synthesis tools such as [Yosys Open SYnthesis Suite](https://github.com/cliffordwolf/yosys) are advancing, with some success (2014) compiling HDL to vendor netlist formats. – shuckc Jun 16 '14 at 11:39
2

The gEDA project has some free EDA tools that you may want to check out. The above mentioned Icarus is part of gEDA.

Also check out Fedora Electronic Lab. This is something new to me so I can't provide more info.

grigy
  • 6,696
  • 12
  • 49
  • 76
1

I don't think there are any open source complete toolchains available. You might want to look at the Altera Web edition. A free trial download. You can use the MIPS-like Nios2 processor and program it in C and C++ (GNU toolset). There is a Linux port available also.

Richard Pennington
  • 19,673
  • 4
  • 43
  • 72
1

While proprietary, there hasn't been an open-source toolchain since the late 90's for Altera/Intel or Xilinx. However both Altera and Xilinx have had their free limited version for long enough you would be safe using them.

If you wish to just learn the language, one of the tools above would work. But I would still use a real vendor's toolchain. Since you would be just writing standard Verilog or VHDL, you could take your source to another vendor, just like C.

Brian Carlton
  • 7,545
  • 5
  • 38
  • 47
0

It looks like the other posts have directly answered the question here. Just thought I'd also mention taking a look at opencores.com... This site has open source HDL (Verilog and VHDL) implementations of working hardware...

You still require the vendor's tool to actually program the FPGA device (as mentioned by others), but companies like Altera provide free web edition tools (Quartus II web-edition) which is free to download. The free versions don't have all the bells and whistles, but it will be enough to get you going for some of their lower-mid range devices (Cyclone II, III, Stratix II)... Pretty cheap chips sometimes (US$80 or so for the Cyclone III 40k gate FPGA).

-So putting it all together, go to the FPGA vendor's website, check out Cyclone series FPGAs and make a purchase for what you need. -Set up your environment with the free web-edition (Altera.. I am not sure about Xilinx) -Grab a complete simple project from opencores.com -Program the FPGA and test it (simulation is separate software tool from current Quartus II tool version)

Note, you may need to buy a vendor-specific programmer (JTAG pins)... A good place to check out some basic projects may be at sparkfun.com.

Happy developing!

Check out a list of ready-to-use boards at http://www.fpga-faq.com/FPGA_Boards.shtml.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
doddy
  • 605
  • 2
  • 6
  • 11