FPGA Engineering is an active and quickly expanding sector of the technology industry focused on the design, development, manufacture, and application of Field-Programmable Gate Arrays (FPGAs).
The short answer is that FPGAs are a revolutionary class of integrated circuits (ICs) containing configurable logic blocks and interconnects that can be programmed to provide custom functionality. While some FPGAs are one-time programmable (OTP), the majority of FPGAs can be reprogrammed unlimited times to fit specific tasks or changing circumstances.
FPGA digital circuits offer many advantages for enabling devices with specific capabilities and services while avoiding the power restrictions or pre-defined use limitations of general-purpose computing devices like CPUs (Central Processing Units) and GPUs (Graphics Processing Unit), or special-purpose devices like ASSPs (Application-Specific Standard Part) and ASICs (Application-Specific Integrated Circuits). Even in the midst of a complex mission far from traditional technological resources, the configurable logic block (or gates) of well-designed FPGAs allow users to customize or change their ability to carry out one, a few, or many important functions, yet they take up a very small footprint on the board.
FPGA programmers use Hardware Description Languages (HDL) to configure the interconnects – how the gates connect to each other for compute intensive tasks – as well as the gates themselves. Once several gates are linked together into gate arrays – as the name suggests –numerous advanced logic operations become possible. The hardware architecture also allows for hardware acceleration, digital signal processing, neural networks, video and image processing, and other high performance applications. And, of course, this all stands in direct contrast to lower-performing general-purpose devices.
The primary advantages of using Field-Programmable Gate Array hardware to program an electronic device or system instead of CPU, GPU, ASSP, or ASIC solutions boil down to:
- Application Flexibility: FPGAs can be used in any circumstance or system that uses computing to perform a function, including but not limited to anywhere an off-the-shelf microchip, module, or processor could be used.
- Unlimited Re-programmability: Unlike standard microchips, FPGAs are not limited by what is programmed into them before they are manufactured. This ability to configure (and reconfigure) their operational parameters not only means they can be more effective in the field where and when they are needed, it also means they can have a longer useful life because, unlike standard chips, their purpose need never become outdated by changing circumstances.
- Parallel Processing: There are several different forms of parallel computing, but FPGAs are inherently parallel due to their all-hardware construction. FPGAs can use their processing elements, logic resources, and on-chip RAM to accelerate performance by computing many calculations or processes simultaneously.
- Comparatively Low Development Costs: When a new product is in the early prototyping development stage or if a new product is created for a very limited purpose that is never expected to reach high production volume, the initial engineering development costs for an FPGA are significantly lower than they would be for an ASIC, another general computing component, or software solution.
- Fast Time-to-Market: When a new product’s market introduction and deliverables are “make or break,” using a FPGA hardware solution instead of ASSPs, ASICs, GPUs, or CPUs can save the day. Whether it absolutely needs to be ready to fight off a competitor’s new consumer product or definitely needs to be deployed in a fighter jet to fight off an adversarial aircraft, upfront programming of Field Programmable Gate Arrays is faster, easier, more flexible, and less costly than software or other computing solutions, while still providing comparable (and sometimes superior) speed and power.
The exceptional versatility, easy adaptability, and minimal SWaP-C (size, weight, power and cost) requirements of FPGAs have made them critical to development of today’s advanced electronic devices and systems, including many next-generation navigation, imaging, communication, control, and identification technologies for the aerospace, automotive, defense, medical device, security, space exploration, and other sectors. That includes recent high-performance FPGA designs that deliver higher performance data processing more efficiently than ever, accelerating Deep Neural Networks (DNN) that underpin Artificial Intelligence (AI) systems to continue accelerating decision-making and expanding capabilities for heightened performance across a range of advanced military, commercial, and consumer applications.
But the benefits of FPGAs also include how they enhance product designs and manufacturing options by allowing design teams to build exactly the hardware module required, instead of needing to use commonly available ASSP (Application-Specific Standard Product) chips that may not be as small, simple, or energy efficient. FPGAs also avoid the complexity and time investment of using an ASIC design – both of which would add to costs – while still providing the desired reconfiguration flexibility for digital circuits.
On an organizational level, FPGA solutions are developed by numerous technology companies, research labs, and other major manufacturers for use in a wide range of devices and systems for commercial, consumer, research, military, government, and many other purposes. However, FPGAs control and enhance complex tasks in operating everything from toys and smartphones to industrial systems, autonomous “self-driving” cars, fighter jets, and more. Typically, more complex and mission-critical devices and systems require more sophisticated functions and more advanced FPGA development companies.
In terms of personnel, every Field Programmable Gate Array is specified, designed, built, tested, validated, and manufactured by FPGA Design Services Teams that include one or more:
- FPGA Design Engineers
- FPGA Design Verification Engineers
- Hardware Design Engineers
- Systems and Software Engineers
These teams work together to develop all technical requirements and architecture, overseeing and executing every step from initial design vision through manufacturing, testing, and implementation. While these positions can be defined slightly differently by various technology companies, BAE Systems – one of the largest developers in the world of mission-critical FPGA module designs – defines them in the following ways.
FPGA design engineers develop complex designs with advanced algorithms in HDL that will be deployed in unique, complex systems for our customers. These engineers perform requirements development and definition, design architecture and implementation, design simulation, and hardware test and validation.
At BAE Systems, an FPGA design engineer is responsible for the implementation of complex logic digital design solutions used in cutting-edge electronic systems. These systems employ highly-integrated System-on-a-Chip (SoC) solutions with embedded processing, logic gates, high-speed interfaces, and complex Intellectual Property (IP) components. FPGA Engineers work closely within an FPGA Design Services Team (see above) in the development of new hardware requirements, architecture, performing HDL design, design simulation, testing, and final design validation. Responsibilities of our FPGA design engineers include:
- Support the definition of FPGA architecture, requirements, and documentation
- Translate high-level system requirements into FPGA requirements
- Develop FPGA designs while targeting major FPGA vendors and device families
- Design and code in VHDL for reliability and maintainability
- Implement and integrate FPGA designs at the hardware board level
- Develop strategies to test and verify FPGA functions
- Collect FPGA metrics to inform and improve upon development processes and results
- Create reusable FPGA IP to be shared across the organization
- Build knowledge of electronic warfare while working with subject-matter experts
Preferred basic skills required
- Working knowledge of VHDL or Verilog
- Experience with standard vendor toolsets (Intel Quartus, Xilinx Vivado) in Windows and/or Linux environments
- Test bench and simulation with Siemens’ QuestaSim
- Experience with source control, configuration management, and bug tracking tools (Git/GitLab/SVG/Jira/BitBucket)
- FPGA design experience including digital architecture, clock domain analysis and crossing techniques, memory interfaces, data conversion (ADC/DAC), high-speed interfaces, bus architectures, pipeline techniques, and digital signal processing
Intermediate skills necessary
- Experience with the latest FPGA device IP technologies including PCIe, Zynq-ARM, high-speed interconnects, memory interfaces, and Ethernet
- Familiarity with software languages C/C++/Python and/or PERL
- VHDL proficiency for design entry
- Familiarity with test equipment, lab verification, debugging skills, and system partitioning
- Experience creating reusable verification IP
Advanced and leadership skills expected
- Experience with Radio Frequency (RF) environments and wireless communications in electronic warfare domains
- Digital signal processing techniques in FPGA
- Experience in digital communications protocols and signal conversion techniques
- MATLAB/Simulink toolsets and/or verification using test vectors generated from reference models
- Experience leading small to medium size teams with accountability for cost, schedule, and quality
- Experience driving process and process improvements
- Demonstrated mentoring skills
- Experienced in metrology and continuous improvement methodologies
Education, skills, and experience requirements include:
- Bachelor’s Degree or Master’s Degree in Electrical Engineering, Computer Science, or a related field
- Motivated individual with strong problem-solving abilities
- Desire to learn new engineering skills
- Enjoys working with cross-functional teams on complex engineering challenges
An FPGA verification engineer at BAE Systems simulates new and updated FPGA designs, resources, and system architectures, using Universal Verification Methodology (UVM) and other advanced functional verification methodologies. These engineers understand the design and implementation, define the verification scope, contribute to the development of the verification infrastructure, and verify the correctness of the design.
An FPGA verification engineer understands the design and implementation, defines the verification scope, contributes to the development of the verification infrastructure, and verifies the correctness of the design. As part of their day-to-day activities, FPGA verification engineers will:
- Plan, architect, develop, and use configurable, self-checking test benches implemented in SystemVerilog/UVM
- Translate FPGA and system-level requirements into FPGA design verification requirements
- Develop constrained-random, metric-driven test plans and strategies to verify FPGAs performing signal processing and control functions
- Collect and analyze coverage metrics, then use that information to improve the effectiveness of test cases
- Enhance your leadership skills while leading small to medium-sized DV teams
- Create reusable verification intellectual property (VIP) to be shared across the organization
- Collect FPGA metrics to inform and improve upon development processes, range, and results
- Drive changes to processes and methodologies
- Enhance your DV skills and knowledge of electronic warfare while working with subject-matter experts
Preferred education and experience include:
- Hardware Verification Languages (e.g., Verilog, SystemVerilog)
- Verification Methodologies (e.g., UVM, OVM)
- Scripting Languages (e.g., Perl/Python)
- Familiarity with Intel Quartus, Xilinx Vivado
- Object Oriented Software Programming / Languages (e.g., C++/Java)
- Git/Jira/BitBucket
- Digital Signal Processing
- Matlab/Simulink
- Working knowledge of VHDL
- FPGA Design knowledge
- Experience creating reusable Verification IP.
- Experience leading small to medium teams with accountability for cost, schedule, and quality
- Experience driving process and range
- Demonstrated mentoring skills
FPGA design verification education, skills, and experience requirements include:
- Experience planning, architecting, developing, and using constrained random, self-checking test benches in SystemVerilog/UVM, OVM, and/or VHDL
- Experience with FPGA/ASIC design, circuit board, and verification tools (Siemens QuestaSim, Cadence Xcelium, or Synopsys VCS)
- Proven track record of managing and executing schedules, and driving tasks to closure
- Ability to multitask to support multiple projects
- Strong communication and documentation skills
- Experience developing and implementing test plans
- Ability to work effectively in a multi-site or borderless environment
The FPGA market is expected to grow tremendously over the next several years, especially as demand for autonomous vehicles, 5G wireless communications, and smart technologies grow worldwide. This is true for many consumer products but will be driven even more by growth in commercial automation, cyber security, renewable energy systems, space exploration, next-generation aircraft development, and defense modernization. This expanding market is already driving an increased need for highly-qualified FPGA engineers. Successful engineers are always learning and improving their skills and knowledge, particularly as technology and the industry advance.
As a category, the FPGA was first developed in 1983 by the Altera Corporation of San Jose, California which was later acquired by Intel Corporation. The first commercially-viable Field Programmable Gate Array was developed by Xilinx, Incorporated, also of San Jose, California, in 1984. That company was acquired by Advanced Micro Devices of Santa Clara, California, in 2022.
Uses of FPGAs were comparatively limited early on because although this new type of circuit would give all design teams more access and flexibility in creating custom configurable logic blocks, it also required a lot of detailed, hands-on programming by FPGA Designers just to code even modest functionality. For that reason, most circuit designers avoided including Field-Programmable Gate Arrays in their digital circuits at the time, which assured slower development and growth of the category overall. Today, however, that is no longer the case. In fact, FPGAs today are considered one of the most powerful, adaptable, and innovative forms of standard IC resources available to developers of complex systems.
Given the significant capabilities inherently possible using today’s high-performance FPGAs – across a wide spectrum of industries – more and more engineering teams are evaluating how FPGA devices can benefit any new technologies. This is especially true of their ability to accelerate time-critical functions that improve decision-making, increase situational awareness, and can even make some previously impossible resources not only available, but common. Over the decades, the FPGA has evolved from a modestly useful interface device into a system-level IC powerful and enough to warrant its own microprocessors, memory blocks, interfaces, and more. The options and opportunities are significant.
The earliest commercially-available Field-Programmable Gate Arrays were released offering 64 configurable logic blocks. Today, among the most powerful FPGAs from major manufacturers are ones that provide almost 9,000,000 connected system logic cells, thousands of Digital Signal Processing (DSP) elements, significant ram blocks, and embedded processor subsystems, high performance interfaces and more. In the decades since their introduction, more and more capability has been integrated into the FPGA and will continue to be added as the need to access more and faster computing power will only continue to increase. FPGAs play a significant role in emerging and future technologies including:
- Artificial Intelligence / Machine Learning
- Autonomous Navigation Systems
- Cloud Computing
- Cyber Resilience / Cyber Defense
- Data Processing & Analytics
- Electronic Warfare (EW)
- GIS Mapping
- Image Processing
- Precision Controls
- Robotic Systems
- Sensor Fusion
- Space Exploration
- Smart Automation Systems
- Threat Detection & Response
- Unmanned Aerial Vehicles (UAVs)
- Unmanned Underwater Vehicles (UUVs)
Advanced FPGAs are a very powerful, effective, and flexible tool for any product developer to have in their toolbox, but as with most tools, it’s a matter of which one is right for the job at hand more than which tool is subjectively “better.” BAE Systems uses custom design FPGAs in many of the more advanced electronic components, devices, and systems that we design and build, including for some of the world’s most advanced aircraft, weapons systems, maritime vessels, communications systems, space vehicles, navigation instruments, and more. The reconfigurability, SWaP-C benefits, and software integration capabilities of a commercial FPGA can often make them a better choice for a particular application or objective, and FPGAs can be the lower cost choice when a device or system is going to be produced in comparatively low quantities.
Of course, many of the devices and systems that we custom design FPGAs for also use ASICs and/or software-driven microprocessors to perform various tasks. That’s because often it is more cost-effective to first use custom FPGAs to execute very specialized purposes, then use existing specific-use ASICs and/or microprocessors to handle more standardized functions that they were mass-produced to carry out. So, again, it’s a matter of using the right tool to make sure the job gets done right.
In contrast, there are many products and circumstances for which a microprocessor or ASIC may be a better choice than a FPGA. For example, while upfront ASIC development costs can be significantly higher than initial FPGA development costs, ASICs can be preferable for high-volume production run items because typically higher volume results in lower long-term costs, including making back the development company’s Non-Recurring Engineering (NRE) investment costs. So, for a popular consumer device, for example, the mass production process will bring down the unit cost enough to make up for high upfront NRE costs. Likewise, ASICs also generally offer better, more efficient performance than FPGAs because they are built for one specific purpose and cannot go beyond their initial pre-production configuration.
Typically, FPGAs have a slower clock speed than CPUs and GPUs, but the more important criteria for a designer or technology company to go by is how fast a particular algorithm or task can be performed. This is particularly true in relation to other measurements, like power efficiency and network access.
Over the years, a lot of tasks that were previously CPU-bound were moved to GPUs because graphical programming language is outstanding at performing the same operation repeatedly on a large data set, such as processing images. Likewise, many algorithms would be executed much faster when performed in hardware (ASIC), but the upfront costs of producing an ASIC can be prohibitive, whereas one can buy off-the-shelf FPGAs – or build them – with the appropriate peripherals, then program them relatively easily and not have to be concerned about investing millions of dollars into an ASIC mask, encountering metal-layer or other bugs, or getting stuck with thousands of unsold chips.
These are just a few of the reasons why FPGAs can be found practically everywhere these days. For custom hardware devices that typically demand a lot of power for tasks like image processing, for example, using an FPGA for that makes a lot of sense because you can implement the most efficient processing algorithm without having to deal with the limitations of a GPU or be concerned about some parts of the hardware going unused despite still using up large amounts of power.
Similarly, when companies do a cost/benefit analysis to compare using an efficient, custom-built FPGA in a new device design versus using an off-the-shelf general computing option like a CPU, GPU, or ASIC, the FPGA comes out on top most of the time.
Developers are always searching for better, faster, and easier ways to program FPGAs, but they do all need some kind of Hardware Description Language (HDL) to function. The HDLs most in use today are Verilog and VHDL, with Verilog being the most popular, but several alternative languages have been introduced over the years. Most of these alternatives have been proprietary variations on existing HDLs that were introduced by various designers and manufacturers, including many Domain Specific Language (DSL) versions that have been created expressly to work within a manufacturer’s particular product, but would not necessarily work anywhere else. Most of these have been for digital circuit design, but a few are also used for analog circuit design and printed circuit board design. Open source versions, like OpenCL (Open Computing Language), have also become available but can introduce problematic design ownership issues into already complex design and production considerations.
In regard to Verilog and VHDL, nearly every development suite will support access to both languages, so which one a designer chooses to use comes down to individual preference, unless that choice is made for them by their own corporate requirements. Once that decision is made and the code entered, these languages then undergo logic synthesis, compiling HDL source files that tell the FPGA how to connect its logic elements to create the effect described by the designer’s code. Remembering throughout the process that that code is being translated into hardware and not CPU instructions is important, as the outcomes would be very different.
Beyond the use of HDL, programming of FPGAs has also changed more recently because several circuit design companies have introduced predefined circuits commonly called intellectual property (IP) cores that a developer can use as “building blocks” to simplify and/or speed up the design process by not needing to write all new code for certain common tasks. With these IP cores, HDL is still used, but much of it is built in prior to them being added to the FPGA design.
FPGAs can appear to be expensive in comparison to other computing devices, like ASSPs, CPUs, GPUs, and ASICs, in large part because of the custom “only build exactly the device you need” benefit that is inherent in a Field-Programmable Gate Array. After all, virtually any product that is custom-built from scratch will cost more than one purchased “off the shelf.” However, such calculations often do not take into account the immense amount of overall project development time that can be saved by creating an FPGA instead of going through the much lengthier times needed to design and produce, for example, an ASIC or a CPU with comparable specs and capabilities.
More important to consider, though, is that today manufacturers produce more and more “standardized” FPGA components that a developer can incorporate into their product architectures, reducing the overall amount of customization required in the design process which, in turn, reduces costs to levels that approach those of using ASSPs, CPUs, GPUs, ASICs, and other less custom computing devices. FPGAs may still cost a bit more, but their faster development times, processing power, and more exact specifications – especially for smaller applications – can deliver lower price points and, at the very least, offset past views of them as “expensive.”
One of the key benefits of Field-Programmable Gate Array solutions is that they offer design flexibility – the ability to make changes to a design without having to go through a lengthy and expensive redesign process. This means that if you need to make a change to your system, you can simply reprogram the FPGA rather than starting from scratch. This can save a lot of time and money, especially when compared to ASICs, which are not nearly as flexible. FPGAs are consistently very good at interfacing with diverse components within a system and are often used to implement "glue logic," which gives them a vital role in development of embedded systems today. For example, attaching a diverse set of single chip devices to a processor would involve interfacing with the processor's memory bus, and directing parts of its memory space to a set of different interfaces, including the possibility of translating between buses of different bit widths and significantly varied data rates.
Modern FPGAs also include sophisticated clocking primitives that allow them to inexpensively generate the variety of programmable clocks needed by diverse components in an embedded system. A typical modern FPGA implements a huge set of programmable interconnect input/output (I/O) blocks – interfaces and controls – usually at every pin, allowing the device to interface to just about anything from 3.3 volt slow single-ended signals to high-speed differential low-voltage lines. Some even include high-performance primitives for phase alignment and even analog board interfaces. The abundant on-chip wiring and state of an FPGA's custom hardware make them excellent devices for moving data, instead of worrying about routing or routing channels, which over the years has resulted in their widespread use for high-end complex systems in high-bandwidth network equipment, as well as encryption, wireless communications, and more. And their reconfiguration ability assures development adaptability to meet changing requirements.
Contemporary resources also include a great variety of fixed-function components on-chip, such as sophisticated clocking circuitry, high-speed serial interfaces, memory interfaces, programmable interconnects, PCIe solutions, etc. Custom application-specific logic blocks are also common with this technology, with many design starts choosing field programmable logic instead of taping out chips. Although these devices are not quite replacements for ASICs (Application Specific Integrated Circuits) yet, their cost structures differ significantly from custom silicon, potentially saving millions of dollars per application (total cost) on low-volume items. Customized FPGAs offer low cost at low volume, reprogrammable design, a much faster design cycle (with lower risk), and low cost high-bandwidth interfaces.
This information page is provided as a service to our readers by BAE Systems, Inc., a U.S.-based world leader in aerospace, defense, power, and intelligence solutions. Learn more about us here.