How to select an FPGA – the hobbyist`s dilemma
This blog is all about how to choose the right FPGA. Well FPGA is costly compared to microcontrollers and hence its very important to wisely select which FPGA is required for our job. There are several factors that are considered while selecting any FPGA and we will be discussing all those factors in detail so that the reader has no doubt in differentiating between FPGAs while purchasing.
Specifications of a variation of Spartan-6 family
Following are the points to be kept in mind while purchasing any FPGA :-
- IO count
IO is used for providing input and taking output from any system and hence the term IO stands for Input Output. While doing any project we give inputs to the system and get the desired output from the system. These inputs are taken from the outside world and after processing the inputs FPGA give the output. So it becomes very important to select a FPGA which has sufficient number of IO pins that can meet our project easily.
- Number of Gates
In the market there are many variations in FPGAs in terms of Gate Count. More number of gates means that more bigger modules can be implemented. But as we go for higher gate count the cost also increases, so it’s a good practice to go for a smallest FPGA that can easily fit the project requirements.
RAM is an important memory module. More RAM means more bits can be handled at a time but if we go for bigger RAM units then it will cost a lot so it’s better to calculate a rough amount of memory that our project needs and then go for it accordingly.
- Operating Frequency
Frequency here refers to the clock frequency which is on the FPGA. Several applications require high speed computation and hence the speed of the processing can be increased by increasing clock frequency. All FPGAs vendors have a speed grading for their FPGAs and hence our aim is to go for the cheapest FPGA which meets our speed requirements. Speed grading of FPGA is the maximum frequency at which a flip-flop can run. Like Altera Apex - 1 runs faster than Altera Apex - 2 and Altera Apex - 3 Speed grade influences various timing parameters like LUT, IO, etc.
- Operating temperature
For most of the cases this factor does not matter much. It matters a lot when we work in some extreme temperature conditions. For example, it matters a lot in defense projects, etc. For this there are FPGAs that work on extreme conditions but then the cost increases. For general household projects it’s not important to consider this factor.
Well money is crucial and we want to save as much money as we can so we try to find cheaper products. Hence, it’s better to go for the cheaper FPGA that requires all the project requirements as per the points mentioned above.
There are mainly four vendors for FPGA. Two of them are quite large : Xilinx and Altera (Intel) and the other two are medium sized vendors : Lattice Semiconductor and Microsemi. Whatever they offer are almost the same but there are few small differences. Some vendors offer more than one clock source or some special blocks that may give an edge to our project functioning while some provide FPGAs that are more geared for high speed interface. Some vendors also have a local representative and support company that can help us with our designs.
A Digilent Basys III board showing peripherals like an RS-232, USB-A, micro-USB-B and PMOD connectors
Maybe, this is a debatable topic but selecting microcontrollers often necessitates a careful analysis of the peripherals like SPI, I2C, UART and other physical connectors like USB, PMOD, Qwiic, Grove, mikroBus etc. ; after all we are going to use these for real world projects where we need to hook up sensors and actuators to our processing systems. The same goes for FPGAs as well. It is desirable to have industry standard protocol hardware and software stacks available for ease of use in real-life scenarios.
Other bells and whistles like segmented displays, buttons and LEDs are also desirable for beginners for quick prototyping or educational needs.
Finally concluding, it’s tricky to select a proper FPGA but if you follow the above steps properly then it will be easy to select a proper FPGA. It’s always good to make a table and then compare on the basis of that table.
This is a table comparing two FPGAs. Similarly you can also make one and compare.
That's all for this blog. We will see how to program FPGA next time and then will make some interesting projects.
This blog has been submitted by KRSSG, IIT-Kharagpur under the Robocraze Club Outreach Program.
Author: Anubhav Prasad