FPGA Architecture: Logic Gate Arrays and IC Design
Gate arrays used in the 1990s are considered costly and clunky, given the resources needed to design a complex integrated circuit.
FPGAs were introduced as a modern, flexible solution to older, more traditional logic gates.
FPGAs allow designers to amplify performance and effectiveness while conserving power.
After graduating from high school, I applied to work at a local hardware store. To my surprise, working in the store was excellent preparation for my future career in electronics. Most of the store’s sales were to hardworking farmers, looking to build solid gates. By the end of my years working at the store, I was armed with the curiosity and adaptability required of engineers, and an appreciation of how important a quality gate is.
Gate Arrays in the 1990s
Whether designed by a farmer or an engineer, gates perform the same function by simply changing the status of something. Logic gates form the basic foundation of any digital system. In the simplest form, a logic gate has one or more inputs and one output. While operations depend on the logical relationship between the input and the output, a logic gate processes signals that represent a true or false state.
During the 1990s, gate arrays were the rage—at least in electronic design. Based on a custom-designed Application Specific Integrated Circuit (ASIC), a gate array features rows of unconnected transistors and resistors contained within cells. Given the use of unconnected components within the ASIC, designers use these building blocks to control the logic used to perform operations. As a result, gate arrays bridge the gap between software and hardware design.
Cell libraries provide the gate, flip-flop, latch, and register information, while macro libraries show complex functional information. To obtain the proper design characteristics, software generates interconnection masks. The masks use the top metal layers to build the interconnected pathways to form different types of logic gates.
The Appeal of Field Programmable Gate Arrays
Gate arrays have limited appeal because of the time and resources needed to design a complex integrated circuit. Because of the need for a more flexible approach to using internal hardware building blocks, design teams introduced Field Programmable Gate Arrays (FPGA). Like gate arrays, an FPGA features configurable logic cells arranged in a two-dimensional array. Rather than relying on the fabrication masks to program a gate array, FPGAs utilize user-programmable links to define logic states and signal routing. All this leads to a very on-demand approach to producing logic that matches specific applications such as image processing, networking, Internet of Things interfaces, and smart transportation systems.
If we could look under the hood of an FPGA, we would see thousands of configurable logic cells. The programmable interconnects form a fabric that routes signals between the logic blocks. Other blocks form the input/output interface for the FPGA and allow the device to interface with other devices. The use of a fabric approach standardizes the metal layers within an FPGA and lowers production costs.
Each configurable logic cell or block consists of several smaller logic blocks. Those blocks include lookup table information and logic functions. Lookup tables include a predefined list of possible logic outputs or any possible combination of inputs.
Once configured, the logic cells perform application-specific operations. Design teams define the type of tasks within development tools and compile the tasks into a configuration file. This hardware description language found in a configuration file describes how to connect the logic cells, and mirrors techniques that software design teams use when writing instructions. Given the complexity of hardware description languages, vendors offer proprietary Software Development Kits that assist designers with development.
Fine-Grained vs. Coarse-Grained FPGAs
FPGA resources must match with the resources identified in a configuration file. If a mismatch exists, the compiler cannot create the routes between the logic cells. FPGAs categorize according to the granularity of the configurable logic. In terms of FPGAs, granularity speaks to the placement of logic relationships.
Fine-grained FPGAs have a simple configurable cell arrangement, and can only implement a few logic gates. In contrast, coarse-grained FPGAs can implement combinational functions and have greater storage capabilities. While coarse-grained FPGAs offer lower area overhead, the number of rows and columns decreases the capability to handle defects. Fine-grained FPGAs have a fixed area overhead and can handle an increased number of defects.
The growing use of sophisticated FPGA-driven applications has changed circuit design. As an example, FPGAs used for telecommunications networks require the addition of intelligent power management controllers that monitor and control current. FPGA design kits allow designers to establish and optimize design parameters. Those parameters allow designers to maximize performance and functionality while conserving power.
To learn more about FPGAs or search for a component for your latest project, visit the Cadence PCB Design and Analysis overview page. The reliable Allegro PCB Designer solutions from Cadence will make any electronics project easy.
If you’re looking to learn more about how Cadence has the solution for you, talk to us and our team of experts.