Recently searched
      • Published 12 Jun 2023
      • Last Modified 29 Aug 2023
    • 6 min

    What is an FPGA?

    An FPGA is a cost-effective hardware solution to allow remote modification of software after manufacture and installation, and to keep up with technological advancements.

    FPGA Banner

    FPGAs have been developed to assist hardware by making the chips remotely programmable. In this RS guide, we will explain what an FPGA is, how they work and how to choose an FPGA that’s right for you.

    FPGA Meaning

    FPGA stands for Field Programmable Gate Array. They are used to amend or customise hardware that has already been manufactured, in order to make it more effective and functional for a specific purpose and to allow performance or security upgrades once the device has been shipped. FGPAs are customisable and versatile and are present in many modern electronic devices, as well as a wide range of markets and industries.

    Why FPGA is Used

    FPGAs were first developed in the 1980s from programmable read-only memory, but in the 1990s, their uses and application across many devices would widen due to their versatility and the rapid growth in technology and the development of the internet.

    Today FPGAs are used in simulation settings to test products before manufacturing, and they are also used to update hardware once it has been manufactured. FGPAs are used in digital televisions, wireless communications, electrical medical equipment, game consoles, computers, smartphones and a host of other domestic and industrial devices.

    FPGAs are a common solution because they are customisable, making them extremely versatile. They are a cost-effective way to allow already established hardware to grow with the progression of technology, as opposed to installing new hardware.

    Finally, because FPGAs are so customisable, they also present a lot more design freedom and in turn a simpler design pathway. There are no pre-programmed functions to overcome before using them to fit a specific purpose.

    How FPGAs Work

    FPGA

    FPGAs primarily work by reconfiguring the hardware of an electrical device to adjust or update its function. In broad terms, they contain programmable silicon chips with logic blocks, which communicate with the rest of the hardware via a series of input and output blocks. Once they have received the signal and have been reprogrammed, they start performing their new functions, unlike a normal chip which has a set function, and will need to be replaced if an upgrade occurs.

    FPGA Architecture

    The architecture of an FPGA refers to its structural build. FPGAs can contain over 300,000 logic blocks and over 1000 inputs and outputs.

    There are three main parts to an FPGA - programmable logic ICs, interconnecting routing and programmable I/O blocks. The logic blocks are where the logic gates are contained, which are programmed to determine outcomes and amend the hardware already inside. The routing runs between the logic blocks and connects them all together, it is also connected to outputs and inputs, to make all the blocks one cohesive unit. Finally, the I/O blocks are what connect the FPGA to the outside circuit and device, allowing it to communicate its logic rules and amend hardware function.

    When shown in a diagram, the logic blocks are stacked next to each other in rows and columns, in between those runs the routing, and then finally around the outside are the I/O blocks, which frame the routing and logic blocks.

    Which FPGA to Choose

    FPGA

    The FPGA you choose to work with is ultimately determined by what your design needs, as well as cost and budgeting factors. Firstly the cost of the FPGA will be your first deciding factor, as your FPGA will need to be within your design budget. Also, the options available will also streamline the decision-making process.

    The next deciding factor will be your purpose. If you have an FPGA that needs to make a more complex amendment to hardware, an FPGA with more gates may be a wiser choice. Alternatively, if you have an FPGA design that needs to communicate to a lot of devices within the hardware, then a better FPGA choice may be one with more I/O blocks. In the end, it will be your design that will help you make the best decision.

    FPGA Programming: What You Need to Know

    When programming an FPGA, there are a few things you need to know in order for the FPGA to function correctly. Firstly, the programming that is used, once written out, needs to be converted into a binary code folder and then put onto the FPGA before it is installed. This is because the programming forms the instruction part of the instruction for the logic gates, and as logic gates operate in a binary 0 and 1 or ‘true’ or ‘false’ decision process, the programming needs to be in a language that the logic gates can read and utilise. This will of course be done by your development software. There is a range of software platform solutions that you can buy to assist in this part of the FPGA installation process.

    What is FPGA Programming?

    FPGA programming is different to software programming, in that it is primarily hardware-based. The language used to aid an FPGA is called Hardware Description Language or HDL. This FPGA coding language is used to design and modify the behaviour of an FPGA. Where coding and HDL programming differ is in their application. Whilst coding comprises and amends software, HDL will make a physical change to the hardware.

    FPGA Programming Language

    Whilst there are several language options when programming an FPGA, the most common are Verilog and VHDL. For a simple explanation, Verilog is structured around cause and effect or verification and logic. This language is great for simpler circuits that need to amend a simple hardware function. This differs from VHDL, which is a language designed to work best with high-speed integrated circuits, and therefore is more effective in complex FPGA uses.

    How to Program FPGA

    The first step to programming an FPGA is to choose your HDL language. There are many to choose from as the market for FPGA has increased substantially, though if you are using a software platform to help you with your programming, this may dictate what language you need to use.

    The second step is to break down the commands into bite-sized pieces, so every part of the FPGA has its own function that works toward one goal, rather than the entire FPGA being one big, complicated circuit.

    From there, it is a process of writing the function of each module in the code, making sure you declare an input and an output so that the circuit is completed and the command can reach the device. Once this is written, the process is still the same in all cases – the language needs to be converted to binary code in order for your FPGA to process it. FPGA is so versatile that the code you have written can be amended or reverted if the outcome wasn’t the one you were hoping for.

    Further Reading

    Related links