In the beginning, there were processors…
Welcome to our series of posts on FPGA’s! Electronics right now is one of the most fascinating and also most divergent subjects around. You can get engineers specialised in RF (Radio Frequency), precision analogue, power, embedded systems and more.
There is one big trend however that runs straight through the middle of every skill set: digital processing and software.
RF has SDR’s (Software Defined Radio’s), precision analogue has ever more complex control processed digitally in some way, power has SDPSU’s (Software Defined Power Supplies) and embedded systems, well, that speaks for itself… The reason for all of this? The price and performance of computing power nowadays is like nothing ever seen before.
Although clock rates don’t tell the whole story and peripheral sets are different, in the late 90’s you could buy a 200MHz Pentium II processor for your home PC at around $600. Now, in 2018, you can buy a 200MHz PIC32MZ microcontroller for around $8. That’s roughly two orders of magnitude difference in price over two decades!
This is great news for anyone looking to implement microcontrollers and they’re now taking over more of the old tasks in traditional veins of electronics design for that exact reason.
There are some things that they still can’t do too well though. Microcontrollers are rigid in hardware terms, and price soon blossoms if you start to look for microcontrollers with a lot of fancy peripherals (bit bashing can get you around so much, but not everything).
They’re also not the best at doing things in parallel because, well, they’re processors after all; they take one instruction at a time. They’re also much more non-deterministic most of the time and they can’t handle tight timing control.
There is a type of device however that solves all the problems that the microcontroller has: the FPGA (Field Programmable Gate Array).
Let there be FPGA’s…
FPGA’s feature in a high percentage of products currently without anybody noticing them. Whether it’s the newest VR headset on the market or the racks full of cards at telephone exchanges; they are a crucial element in modern day electronics.
FPGA’s are essentially a fabric full of logic and memory ready to be defined how to be connected together to perform whatever function is needed.
They’re different from microcontrollers in the sense that they aren’t a piece of silicon hardwired into the form of a processor that executes instructions dictated by the software you write, they become the HDL (hardware description language) that you describe. I know, it’s weird, but trust me when I say that they are an essential part of the engineering toolbox when it comes to solving complex problems in electronics.
Stage 1: Define the hardware needs
In this series of posts we’re going to implement an FPGA onto a board so that we can experiment with different ways of using the device. To do so we need to select an FPGA to use and all the circuitry needed in order to get one up and running.
Selecting an FPGA
There are so many different types of FPGA on the market today that for anyone new to FPGA’s it can be a daunting prospect to pick the right one. The four main manufacturers of FPGA’s are Xilinx, Intel (previously Altera, which I’ll still refer to them as), Lattice and Microsemi, all of which have their own spin on things just to add to the confusion.
Microsemi and Lattice have their market space much better defined than Xilinx and Altera who battle it out as the biggest manufacturers in the industry. A typical Microsemi FPGA sales representative will always highlight robustness and security as the main focus, whereas Lattice market the to the small/low cost end of things a lot more.
Altera and Xilinx try to cover the whole range with smaller CPLD (Complex Programmable Logic Device)/FPGA inexpensive devices with low pin counts and less features, all the way up to large expensive and feature rich FPGA’s.
For this design I’m going to be using a Xilinx part, and not because of any of the above (sorry for the red herring), but because of a new interesting way of sourcing previously exclusive components from China.