FPGA
An FPGA, or field programmable gate array, is a way to implement a digital circuit on a chip without fabricating it from scratch. This allows the designer to get a result more quickly, which can be useful for prototyping, and is much cheaper if only a small number of the chips need to be produced. If millions of devices need to be made, then an ASIC is probably going to be much cheaper than using FPGAs for the same function, and will have higher performance.
An FPGA is quite like an ASIC, but has some major differences.
- Available to buy blank chips cheaply, off-the-shelf
- Can program your digital design onto them, over and over again
- Have a very limited set of standard cells - at the least lookup tables, flip-flops, memories. Could include multipliers, memory controllers or other high speed interfaces.
- No analog capability
- Slower than an ASIC
They have a reasonable overlap of the tools required to design for them. FPGAs need synthesis, place and route, simulation and verification tools. Additionally you need a tool that can take the finished bitstream and send that to the FPGA for programming.
An FPGA consists of a huge amount of repeated logic elements/blocks/slices. These pictures are of the Lattice iCE40 FPGA.

These usually contain a lookup table, a flip-flop and some carry-logic (speeds up addition). The lookup table can be programmed to model any type of gate - for example an inverter or a 4 input NAND.

FPGA boards
An FPGA board can help you test your digital design at speed. For example I can simulate my vga clock, and even simulate the screen. But with an FPGA I can actually plug it into a real screen and see it works.
If you want to buy an FPGA board to play with and help you learn digital design, I recommend going for one with an active, supportive community:
Learn more
If you’re interested in learning how the Open Source FPGA tool flow works from end to end, check this video series I did for Symbiotic EDA.
Course feedback
The Zero To ASIC course took me on a fantastic journey from drawing and simulating a MOSFET, formal verification leading up to implementing a custom design with an open PDK and completely open source tools. The course is crammed full of interesting material with great pacing and support from Matt, and it's been a fantastic opportunity to meet other folks with shared interests and different backgrounds. The course has left me excited with opportunities for new projects and optimism for some working silicon!
Jamie Iles (digital course)