Running Out of Excuses
Can you do FPGA design or teach yourself the skills required to do that with a $0 budget? Electrical engineers (and hobbyists and students and young - or old for that matter - people interested in electronics) are running out of excuses for not trying to learn FPGA design.
In the past we heard that the FPGA software tools are expensive, they cost thousands of dollars, FPGA evaluation boards were an arm and a leg and you needed very expensive lab equipment like oscilloscopes and logic analyzers to test and debug FPGA designs - you had to choose between buying a proper oscilloscope or a car because they both cost about the same. But most of all everybody knew that FPGA design is hard, it's called hardware design for a reason. Well, hardware design is still hard and like any other serious skill, and I am including software design here too so no need to start a flame war, it requires investing a lot of time and effort to master but all the other excuses are really no longer valid.
The software tool required to design with Xilinx FPGAs, Vivado, is free in the form of Vivado HL WebPack Edition. This is not a crippled, limited functionality version of the still relatively cheap but non-free Vivado HLx tools - no 1000 lines of HDL code limit or anything like that. It includes everything the real tools do with only two exceptions:
- Vivado HL WebPACK Edition only supports the following devices: Zynq UltraScale+ MPSoC (XCZU2CG/EG, XCZU3CG/EG), Zynq®-7000 All Programmable SoC (XC7Z007S – XC7Z7030), Spartan-7 (XC7S50), Artix®-7 (XC7A15T, XC7A35T, XC7A50T, XC7A75T, XC7A100T, XC7A200T), Kintex®-7 (XC7K70T, XC7K160T) , Kintex UltraScale™ (XCKU025 – XCKU035) and Kintex UltraScale+ (XCKU3P, XCKU5P)
- WebPACK does not include System Generator for DSP and Model Composer, both would require Mathworks Matlab® anyway so they would not enter in the category of free tools even if they were included in WebPACK
Yes, the list of WebPACK supported FPGAs contains only smaller devices but small is a relative thing these days. XCZU3EG for example has 141K FFs, 71K 6-input LUTs, 9.4Mb internal RAM, 360 DSP48 multiply and accumulate blocks able to run at over 800MHz, a Quad-core ARM Cortex-A53, a Dual-core ARM Cortex-R5, an ARM Mali™-400 MP2 GPU, DDR4, USB3.0, SATA 3.1, DisplayPort, Gigabit Ethernet interfaces and many other features. XCKU5P has 434K FFs, 217K 6-input LUTs, 51Mb internal RAM, 1824 800MHz DSP48s and 16 32Gbps transceivers - these are "small" FPGAs and you can design with them today using free tools!
With Vivado WebPACK you get all the tools required to do FPGA design for free, including Vivado Synthesis and Implementation, Vivado HDL Simulator, Vivado HLS for C/C++ to gates design, Vivado SDK for programming the MicroBlaze 32-bit soft embedded RISC processor (which is also free) or the ARM cores of Zynq devices, Vivado Debug Logic Analyzer and Vivado IP Integrator for creating IP and integrating complex designs. If the FPGA you are targeting is on the list mentioned above you can start doing FPGA design today with zero initial cost. Even if your device is a larger one not on that list, you can still create and test your design on one of the smaller devices and then use a 30-day free evaluation of Vivado HLx to generate a bitstream for your actual target FPGA. The high cost of the FPGA software design tools is definitely not a valid excuse anymore.
Full disclosure: Vivado has a WebTalk feature that Xilinx uses to collect anonymous statistics about the FPGA designs it creates. You can find out more about WebTalk if you are interested or worried here:
In Vivado HLx you have the option of turning this feature on or off. In Vivado WebPACK you cannot turn it off - if you are worried that Xilinx will steal your amazing FPGA design idea you are working on in your basement you can still disable this feature by installing WebPACK on a computer without Internet connectivity. So not even paranoia, healthy or otherwise is an excuse.
You can download Vivado HL WebPACK from here:
You will need to create a Xilinx account but that's free too. You will download a 50MB web installer, which in turn will download and install Vivado WebPACK. You can chose to let the installer do everything, or you can save the 16GB or so install file locally and install WebPACK later yourself. You can also choose between Windows and Linux versions of Vivado WebPACK at this stage, so even the "but it does not run on Linux - I do not want to have to buy a Windows license to run your FPGA tool so this is not truly free" excuse is addressed. We are really running out of possible excuses not to try FPGA design at this point.
Free hardware evaluation boards I was not able to find but I am still looking. Here is a list of cheap(er) FPGA boards that Xilinx maintains, some of them under $200, some really entry level ones even under $100:
Joel Williams maintains a page with cheap FPGA development boards here:
Virtually all Xilinx Zynq and Artix-7 boards on that list can be programmed using free WebPACK.
For more serious projects Avnet has a new evaluation board with the ZU3EG FPGA just mentioned above in the WebPACK list of supported devices - at $895 it is not cheap and probably out of range for most individuals but for a small start-up for example you get a lot of FPGA with the associated hardware and free tools to program it so I think it is worth mentioning here:
In the end you get what you pay for but if you are looking for some entry level board you should probably choose a Zynq, Artix-7 or Spartan-7 based FPGA board and avoid obsolete FPGA families like Spartan-3 and Spartan-6, which are not even supported by Vivado.
But if the goal is learning FPGA design as a new skill, you do not really need an evaluation board for that, you can create IP and simulate your designs and doing that does not require any hardware at all. The entry price point for learning FPGA hardware design truly is zero. No more excuses.