The field of digital electronics made the computer revolution possible. Before software can do anything, it needs electronic hardware to run on. Dedicated electronic hardware is also capable of doing the kinds of things that can be done in software. The most accessible kind of dedicated electronic hardware for the average person is the Field Programmable Gate Array (FPGA), accessible because modern versions of these devices can be programmed using a USB port on a host computer. FPGAs are fun and easy to work with, and we will explore what they are and how they can be used later.
There are a lot of FPGA development platforms available. The one I primarily use now is the Programmable Logic IC Development Tools Cyclone V GX Starter Kit. It has some nice features, such as relatively low cost and a fairly large device (Cyclone V GX 5CGXFC5C6F27C7N) with 77k logic elements in its array, 300 18×18-bit multipliers, 6 PLLs, and 4884 kbits of embedded memory. That’s a lot of capability. In addition, the Starter Kit board has a ton of memory external to the FPGA available, including 4 Mb SRAM and 4 Gb DDR2 DRAM. There is definitely enough available to run a soft core processor from, but in the near term, that won’t be my focus.