Discover How FPGAs Work
Hardware

Discover How FPGAs Work

The average person has a GPU or DSP or CPU inside of their PC or phone and even their car. Although most have these, they are delightfully unaware of it. Some people who are familiar with these products ponder the question of a whether or not everyone in the near future will also have an FPGA. Currently, this technology only represents a very small percentage of the sales of semiconductors worldwide.

To determine whether or not this technology stands a reasonable chance of becoming as popular and mainstay as the others mentioned above, we will take a look at exactly what FPGAs are and what might make them popular in the future. Although many see this technology as having limited popularity, it is short-sighted. There are some good reasons why it is likely to soar in popularity to the point where it significantly outperforms the other technology mentioned above.

How Do FPGAs Work?

One of the reasons that this technology has great promise is the fact that it's a perfect choice whenever prototyping and for use in low-volume products where it's not practical or affordable to make your own chips. It is a misconception, however, to see this as a limitation because although there are some situations where making your own chip would allow the performance to improve there are many more situations where this is not what you would want.

So this technology is very handy when you're needing to have a platform that is programmable. That puts it in the same classification as a GPU or DSP. But because of these factors when fully understood it eliminates the concern that it's going to reduce efficiency. For this reason, FPGAs are set to be highly competitive for a variety of purposes.

What Are FPGAs?

They are field programmable gate arrays. Because of the name, it's often seen as being inefficient when compared to multipliers but it's a bit of a misnomer. Of course, a multiplier is a bunch of gates that are connected by a bunch of wires and that's generally what is used for multiplying. A gate array that is programmable is used when those gates are generic. These are used to index something called a LUT. You might have a two or three input LUT as an example.

Wires are used to go to a programmable switch box or set of boxes and the wires are made to receive programmable bits. The switch boxes are used to direct which wires are connected with others. Regardless of the topology, these are required to be bigger and slower than the wires that go straight to the correct gates.

Although traditional FPGA couldn't necessarily compete with a DSP, the new ones have DSP slices placed among specialized blocks and it runs to the gates and routers. This means that in some ways this improved technology is no longer exactly what was once thought of as an FPGA. This allows them to then be able to work as a multiplier. In fact, this new technology now has complete ARM cores that are implemented with hard gates that are non-programmable.

FPGA Architecture

1. Eliminates The Need For Full Blown ALUs When Doing Simple Operations

There are a number of operations that simply don't need to be mapped out to a larger-capacity system. A hard DSP slice can easily accommodate a small piece of logic. The average system today is made to use a full-blown ALU even when they are doing a very simple task. This is a very inefficient use of such a system.

2. When Running A Simple Operation You Don't Need A Full Cycle

Using this system rather than its alternative you're able to run a simple operation without sacrificing of a full cycle. As an example, an OR is much shorter than a full-blown cycle. This means that you can feed its output instantly to the next operation. It means that you can chain quit some of these whenever those delays are less than a full-cycle. The way most systems are set up currently, it causes them to use a full cycle on all of those operations even though they're not needed.

3. Distributed Routing

The way the majority of systems are set up now the ALUs are made to communicate through register files. Because the ALUs are connected to all of the registers it creates a bottleneck. This creates a situation where this interconnection grows, and this produces too many ALUs and too many registers. The alternative is to make everything run through a bottleneck which then makes the system run at low frequency. Dsp's and CPUs run on high frequency because the registers and ALUs are limited to make that possible. But with FPGAs, you are able to have high frequencies and a lot of resources that can be run in parallel.

4. Command Dispatching

It is very difficult with the way these machines are set up now to run 100 issue processors. The problem you run into is when trying to do something beyond six-issue processing is command dispatch. All of those commands would have to be taken from memory and it creates a bottleneck. FPGAs, however, are set up so that this can easily be done, and you could run 100 parallel instructions.

It is highly likely that this technology will in many ways take over what is currently being used. One of the biggest reasons for this is its overall flexibility. Whereas the current technology is seen as more efficient it will not take long before FPGAs are understood correctly and are therefore then understood for their ability to be considerably more flexible and efficient. Using this you'll be able to give a number of instructions to different ALUs and you can route that to different places.

From the beginning, FPGAs from Direct Components Inc., were considered to be great for small-scale delivery platforms. But they are now equally capable for large-scale platforms. They are well suited for executing programs efficiently. This technology is most certainly poised to overtake its predecessors.