What is an FPGA?
FPGA stands for Field Programmable Gate Array. It can be considered as being analogous to a very sizeable chunk of digital plasticine. It can be configured into a vast array of digital functionalities. These include (in the digital realm)
- Filters (for signals)
- Interfaces (for communication or connection between circuit groups)
- Connector configuration (change the routing of a hard wired physical connector)
- Power up sequencing of parts
- Decision trees
- Entire processor(s) (to replace processor chips)
If the FPGA is compared with a processor device, there are some interesting outcomes. However, this is not the sole capability of the FPGA. This means that there are realms of operation for the FPGA which have no equivalent in the processor environment. The table below is a generalised presentation for understanding – there are exceptions to some of the comparisons.
|Pin-out - location of inputs & outputs||Fixed||Flexible definition|
|Operation internally||Sequential||Parallel &/or sequential (at any stage)|
|Resource allocation||Fixed by chip design||Controlled by designer|
|Design environment||Specific to a limited array of one manufacturer's parts||Basically open to all devices of all manufacturers|
|Re-use of code/design input||Limited to “same type” parts within single manufacturer range||Highly transportable with only occasional changes|
With all the possibilities offered by FPGA it is a very good question to ask why they are not more widely used. The first answer offered by many is that of cost. However, there is no easy like-for-like comparison between a particular processor and FPGA device.
This is not intended to suggest that the whole electronic world should dispense with processors and adopt FPGA technology instead. There are occasions when the price and functionality of a processor serves very well and should be retained. The aim of this document is to highlight Flexibly Resourced Electronic Design. In this context there are very strong arguments for the inclusion of FPGA.
The price challenge against FPGA is also to be taken carefully. When the project success is dependent upon being able to manage change (described previously), the case for the FPGA is far less about component cost and its inclusion becomes close to mandatory.
The insurance value offered by sensible FPGA inclusion is well worth the premium. The uninsured loss with no FPGA risks the entire circuit board (after assembly and some test) at a multiple of the FPGA cost. Alternatively the loss actually extends to the entire project based on the time taken to re-run the board design, assembly and test.
The cost of FPGA is also supported by considering the true cost of the real alternative. There are many project types that would require a processor of considerable power and speed to achieve the objectives. A simple example makes the point with fewer words.
Let us assume that we need to monitor and act upon 8 channels of something 50,000 times per second (this is a “normal” rather than extreme realm) with 100 processor steps to carry out the function.
- 8 x 50,000 x 100 = 40,000,000 steps per second to achieve the goal
- 8 channels handled in parallel so is one code element used 8 times over
- 50,000 times per second is very slow in this context
- No steps as such for FPGA, so it has no speed constraint in the same way
The FPGA excels in this type of application and could be doing much more at the same time. The processor would need to be operating at a multiple of the speed depicted above in order to manage anything else.
Having touched upon the cost challenge there are two remaining issues relating to the use of FPGA. The first of these comes back to design management. If the project is perceived as “known” at the outset, then there is no apparent need for the flexibility offered by the FPGA. Since there is a cost attributable to the inclusion of FPGA there is a very quick and cheap argument to not having one.
The lack of initial knowledge and ability to manage change are covered in the resources section above. In essence, a lack of foresight may negate the FPGA inclusion but the perils of its absence become fairly evident.
The second issue for FPGA is familiarity and expertise. FPGA technology has evolved over the last 20 years from an emergent and specialist technology to being accessible to the masses (of design engineers at least). In spite of this there are generations of designers who did not encounter the technology in their college/university phase.
The FPGA world is a completely different paradigm to that of the processor. Whilst the FPGA engineer could convert to writing processor code with only a moderate learning curve, the reverse is not true. It is fair to say that the majority of software engineers would struggle with the hardware and “language” concepts of FPGA.
Contact us today to talk more about FPGA design and how it can help you.