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.
In particular, the toolchain for building several Lattice FPGAs is now entirely open source. In addition to this, large, coordinated projects such as symbiflow are helping to accelerate the development of these tools. Let's look at some of the most popular open-source tools which we can use to build FPGA bitstreams.
Internal Architecture of FPGA It consists of three main parts: Configurable Logic Blocks — which implement logic functions. Programmable Interconnects — which implement routing. Programmable I/O Blocks — which connect with external components.
FPGAs enable manufacturers to implement systems that can be updated when necessary. A good example of FPGA use is high-speed search: Microsoft is using FPGAs in its data centers to run Bing search algorithms. The FPGA can change to support new algorithms as they are created.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With