Recently, there has been a growing interest in so-called FPGA devices, as an alternative to microprocessor electronics. It is a type of electronic device formed by functional blocks united through an array of programmable connections. FPGAs are slower than an ASIC, specific processors developed to carry out a certain task. However, the great flexibility of being able to change its configuration makes its cost lower both for small manufacturing batches and for prototyping. Arria 10 SOMFPGA is used in the industry dedicated to the development of digital integrated circuits and research centers to create digital circuits for the development of prototypes and small series of ASICs.
What is a FPGA module?
Although at first it seems that a processor and an FPGA are similar devices, because both are capable of performing certain tasks. The truth is that when digging deeper it is almost easier to find differences than similarities. To get into the subject, let’s recall in a much summarized way the way a FPGA works. When programming an FPGA what we are doing is modifying a matrix of connections. The individual blocks are made up of elements that allow them to adopt different transfer functions. The different blocks together united by the connections that we program, making an electronic circuit physically constituted, in a similar way to how we would do in a training board or when manufacturing our own chip. Connections to the FPGA translate into a specific FPGA-specific communication frame, which is transmitted to the FPGA during programming.
What is a processor?
A processor contains a series of instructions that perform operations on binary operators. Some processors have more instructions than others and this is one of the factors that determine their performance. It contains a series of registers, which contain the input and output data of the processor operations. Besides, we have memory to store information. Finally, a processor contains a stack of instructions, which contain the program to be executed in machine code, and a clock.
At each clock cycle, the processor reads the required values from the instruction stack, calls the appropriate instruction and executes the calculation. When we program the processor we use one of the many languages available, in an understandable and user-friendly format. In the process of linking and compiling, the code is translated into machine code. The code is written to the processor’s memory. From there, the processor executes the instructions, and therefore our program.
As we see, the substantial difference
A processor has a fixed structure and we modify its behavior through the program we make, translated into machine code, and executed sequentially.However, in an FPGA we vary the internal structure, synthesizing one or more electronic circuits inside. By “programming” the FPGA we define the electronic circuits that we want to be configured inside it.
With the evolution in the development of FPGAs, tools have also appeared focused on the graphical programming of FPGAs. Obviously there is a large price range but, they are not cheap devices. Speaking of the domestic sector is in the range of approximately $ 20 to $ 80.