FPGA design: Exploring pros, cons and uses
FPGA design is being used more frequently in sectors from radio communications to space tech. Written from the knowledge of Jason Jibrail, Senior Software Engineer, from Ignys design consultancy, we explore the current status of FPGA design usage, and key points for project consideration when choosing whether to include an FPGA in your design.
What is an FPGA?
An FPGA is a piece of hardware, but it's configurable by software which acts as a set of build instructions.
FPGAs (Field Programmable Gate Arrays) are highly useful for electronic product development. Whether FPGA makes sense for your project very much depends on the use case and product requirements.
FPGA design explained using Lego
Lego involves building something manually which then results in a fixed physical design. This has close similarities with hardware design.
If I used a programmable robot arm, then theoretically through software I could set it instructions to build the final Lego product over and over for me. This process is then repeatable and shareable whilst allowing you to go back to the basic building blocks if this is needed later.
In this analogy the Lego is logic gates, the basic building blocks of computation. FPGA programming allows you to wire up millions of little gates to form large complex logical operations.
Complications with FPGA
FPGA compilation can take many hours to even days for large projects. You need to take care with FPGA design to ensure the code is right before you start a build. Which is why the FPGA process is often compared to hardware design.
FPGAs are also expensive; they are bigger than most components and use a lot of silicon. This means they also use a lot of power compared to a conventional processor.
As that technology gets smaller however; the devices get faster, use lower power and are much smaller in physical size with reduced thermal demands.
Advantages of using an FPGA
The freedom to make mistakes. FPGA design offers a great way to deviate from the standard. You can essentially ‘get out of jail’ in more hardware design scenarios.
It reduces the chance of a product recall as FPGAs allow more fixable solutions through software updates. If there is a lack of good specification, at the design stage, FPGAs can help account for this.
Great scenarios for FPGAs
- Unconventional use cases
- Optimisation
- Customisation
- De-risking
To FPGA or not to FPGA
There is a trade-off between flexibility and the implementation cost. For standard projects FPGAs may not be worth it but for more customisable projects then configurable logic is often the way to go.
If you only want to replicate an identical product, FPGA costs may outweigh the benefit. However, if you want to re-spin a regular ASIC chip this could cost $1 million just to look at re-spinning it. However with an FPGA your engineer can recompile the software code for you.
What sectors use FPGA technology?
There are many real-world applications for FPGA design including:
- Space Tech
- Radio Communications
- Visual Displays
- Satellites
- Defence
- Encryption devices
- FPGA in space tech
In space FPGA is useful for image sensors and navigation. It allows you to be more flexible in weight critical environments by using processing power wisely.
With a FPGA-based platform you could tear down your flight computer and replace it with something minimal which is suited to voyaging around in deep space. The resource you free up can then be deployed to improve your image processing or even the communications you send Earthward.
Space tech is always a design challenge. Configurability is very useful but the environment is harsh and uncompromising.
This type of application favours reliable older technology as this has been more extensively tested. The BoM (Bill of Materials) is nailed down very early on in space tech. Older chips are often used because they’re built on an older silicon process. This means the physical logic gates are bigger and the SRAM (Static random-access memory)cells storemore energy, so they’re less likely to get disrupted by a single-event upset (SEU).
Radio communications
For telecommunications FPGA devices are useful when implementing codecs used to encode and decode data. For 5G telecoms a Low-Density Parity-Check (LDPC) code is used, this is a piece of maths that's been around for many years, however regular computing power wasn't enough to make it efficient.
Over the last couple of decades, it has seen adoption in 5G networks and other applications as the technology has caught up.
FPGAs are also deployed as software defined radio repeaters in satellites. When a bulk radio signal is transmitted to them from a ground station, it can be sliced up and routed to lots of different endpoints on Earth – this slicing operation is done with a large reconfigurable FPGA.
FPGAs are for hobbyists too
FPGAs are becoming cheaper and more accessible over time. It’s become more reasonable on later devices for the vendors to make smaller devices made of fewer logic gates.
The vendors’ tools have got a lot friendlier for the hobbyist market too.
FPGA design and engineering
The toolset and knowledge required to do FPGA programming and development is very different to embedded and python programming. In general, the tools are a lot better now and not as expensive as they used to be. But if you’re planning to use FPGA programming for an embedded software design, always consult someone seasoned in the field – your final product will be of a much higher quality (and no doubt cheaper) as a result.
The Ultimate Guide to FPGA Design
This is a shortened version of The Ultimate Guide to FPGA Design which goes into a lot more detail including pipelining, GPUs and CPLDs.