FPGA is a hardware circuit that a user can program to carry out one or more logical operations. Taken a step further, FPGAs are integrated circuits, or ICs, which are sets of circuits on a chip – that’s the “
FPGA is a hardware circuit that a user can program to carry out one or more logical operations. Taken a step further, FPGAs are integrated circuits, or ICs, which are sets of circuits on a chip – that’s the “array” part. Those circuits, or arrays, are groups of programmable logic gates, memory, or other elements. With a standard chip, such as CPU in your laptop, the chip is fully baked, it can’t be programmed. With FPGA, a user can write software that loads onto a chip and executes functions. That software can later be replaced or deleted, but the hardware chip remains unchanged. With an FPGA, there is no chip. The user programs the hardware circuit or circuits. The programming can be a single, simple logic gate (an AND or OR function), or it can involve one or more complex functions, including functions that, together, act as a comprehensive multi-core processor. You may use an FPGA when you need to optimize a chip for a particular algorithm, or when you are likely to need to make changes at the chip level later on. Uses for FPGAs cover a wide range of areas—from equipment for video and
The first commercial modern-era FPGA was introduced by Xilinx in 1984. It contained arrays of configurable logic blocks and inputs/outputs (I/Os). Modern high-end FPGA generations feature hundreds of thousands of configurable logic-blocks, and they include an abundance of hardened functional units that enable fast and efficient implementations of common functions. Programmable logic blocks in FPGA are used to provide the basic computation and storage elements used in digital systems. Connections between logic blocks and I/O blocks are provided through programmable routing in FPGA. Logic blocks and routing architectures are interfaced with external components of an FPGA through Input/output pads or programmable I/O. FPGA architecture has been developed over the course of time through adding more specialized programmable functional blocks such as embedded memory (Block RAMs), arithmetic logic (
FPGAs versus General-Purpose Processors, the advantage of FPGA-based systems over traditional processing units-based systems such as desktop computers, smartphones, and GPUs, is the availability of freely programmable general-purpose logic blocks. FPGAs can be arranged into high performance specialized accelerators for very specific tasks, resulting in improved processing speed, higher throughput. Compared to GPUs, FPGAs are considered to be a much power-efficient device. Controlling inputs and outputs (I/O) at the hardware level provides faster response time and specialized functionality to closely match application requirements. FPGAs usually do not use operating systems that actually minimize reliability concerns with true parallel execution and deterministic hardware that is dedicated to every task.
FPGAs versus ASICs – Application-Specific Integrated Circuits (ASICs) are custom-tailored semiconductor devices. Unlike FPGAs, ASICs do not have any area or timing overhead that could be caused by configuration logic and generic interconnects, thus resulting in the fastest, most energy-efficient, and smallest systems. However, the sophisticated fabrication processes f