What is a FPGA?
Is that a new social group! The best question ever, ”FPGA, is that a new religion!” FPGA is not known as other semiconductor devices. So, I decided to write about it.
Let’s get started, sit tight. FPGA stands for field-programmable gate array. FPGAs are nothing but semiconductor devices that are based on arrays of configurable logic blocks (CLBs) connected via programmable gates. FPGAs are integrated circuits that contain logic gates (AND, OR, NAND, XOR), switch matrix, and I/O cells. The I/O circuitry takes in data from a source and spits out data at the other end into a system or subsystem.
In other words, FPGA is a chip that has an array of logic gates such AND, OR, XOR and wires etched into an integrated circuit that allows the FPGA engineer to configure them as needed.
So FPGA in a nutshell, an FPGA, in its simplest form, is a big array of colorful rectangles placed on a rectangular table that can be arranged in the manner desired by its owner (or in the case of FPGA engineer). After synthesizing (unlike compile, FPGA synthesize) your FPGA HDL(Hardware Description Language), you can open the implementation manager to see the number of blocks and memory have utilized with your project.
What is Configurable Logic Blocks (CLBs)?
Well, if FPGA is the turkey sandwich, then CLBs would be the meat of the sandwith. The CLBs contain the logic for the FPGA such as flip-flops (not flip-flops you wear), Look Up Table, and Multiplexers.
After you write the HDL design, the next step is to synthesize the HDL design. In FPGA parallel programming, a synthesis tool takes the HDL design as input and converts it into a network of gates, registers, and wires configured to implement the functions the HDL describes. Then additional processes select which particular gates, registers, and wires to use in the FPGA and create a programming file that will configure the FPGA when it powers up.
The fundamentals of FPGA?
Before I tell you anything, I must tell you the fundamentals of FPGA. Trust this will come handy. You can build anything digital from three simple pieces: a wire, a logic gate, and a register. A register remembers a piece of information until it is told to remember something else. A logic gate performs simple logic operations on signals, and a wire connects these other pieces. Three components are wire, logic gate and register (memory).
Md, Could you give me an analogy?
Sure, If I may introduce the beads and string analogy, Imagine you are a beadworker. You designed, implemented and developed beadwork with right bead colors and string. Finally, you are happy about such beautiful beadwork and impressed your boss.
Imagine, the beadwork pattern created from many colors in different pattern and connected by a thread. Using these simple components you can create complex beadwork patterns, depending on the number of beads you use.
Now, the beads represent both registers and logic gates; and imagine the string as wire. You can think of the color of the beads representing the different types of logic gates such as AND, OR, XOR. NOR etc. The beads itself are the registers that hold information until it is told to remember something else. Just like the beads and string, these elements produce a system — a system that can perform simple to complex computations.
You created beautiful beadwork and realized you made a mistake and would like to change a bead pattern. It is not so convenient, or is it? You have to unstring the beads and then change the pattern. Not being able to change the beads, is an example of ASIC, after printing the hardware in ASIC, you can’t change the hardware. But don’t worry FPGA is forgiving, and if you decide to change the hardware you can easily change it. In FPGA you can change even after printing the hardware. One key thing about FPGA you should remember from this blog post, if not all, FPGA is re-programable, unlike ASIC (Application-specific integrated circuit) FPGA is field programmable, which means you can program the hardware again and again. That is why the FPGA synthesizer takes some time because it finds the best possible implementation for your digital design.
Again, this is a brief overview of FPGA. I will elaborate more in future blog posts.
What’s next on the blog?
Sign up to get my blog post regularly. Next, I will write about the benefits of FPGA. Meanwhile, check out the book “FPGA For Dummies”.
References
Moore, Andrew. FPGA for Dummies. John Wiley & Sons, Inc, 2017.