A.1. FPGA Embedded Processor Overview
As you've learned in the early chapters of this book, the Field-Programmable Gate Array (FPGA) is a general-purpose device filled with digital logic building blocks. The two market leaders in the FPGA industry, Altera and Xilinx, are the focus of this discussion, although other programmable logic companies do exist, including Actel, Quicklogic, and Lattice Semiconductor.
The most primitive FPGA building block is called either a logic cell (LC) by Xilinx or a logic element (LE) by Altera. In either case, this building block consists of a lookup table (LUT) for logical functions and a flip-flop for storage. In addition to the LC/LE block, FPGAs also contain memory, clock management, input/output (I/O), and multiplication blocks. For the purposes of estimation and comparison, LC/LE consumption is most often used in determining system cost.
Soft Versus Hard Processor
Both Xilinx and Altera produce FPGA families that embed a physical processor core into the FPGA silicon. A processor built from dedicated silicon is referred to as a "hard" processor. Such is the case for the ARM922T in the Altera Excalibur family and the PowerPC 405 in the Xilinx Virtex-II Pro and Virtex-4 families.
A "soft" processor, on the other hand, is built using the FPGA's general-purpose logic. The soft processor is typically described in a Hardware Description Language (HDL) or in a lower-level netlist. Unlike the hard processor, a soft processor must be synthesized and fit into the FPGA fabric.
In both soft and hard processor systems, the local memory, processor buses, internal peripherals, peripheral controllers, and memory controllers must be built from the FPGA's general-purpose logic.
Advantages of an FPGA Embedded Processor
An FPGA embedded processor system offers many exceptional advantages compared to typical microprocessors:
The designer of an FPGA embedded processor system has complete flexibility to select any combination of peripherals and controllers. In fact, the designer can invent new, unique peripherals that can be connected directly to the processor's bus. If a designer has a nonstandard requirement for a peripheral set, this can be met easily with an FPGA embedded processor system. For example, a designer would not easily find an off-the-shelf processor with 10 UARTs. However, in an FPGA, this configuration is very easily accomplished.
Some companies, in particular those supporting military contracts, have a design requirement to ensure a product lifespan that is much longer than the lifespan of a standard electronics product. Component obsolescence mitigation is a difficult issue. FPGA soft processors are an excellent solution in this case since the source HDL for the soft processor can be purchased. Ownership of the processor's HDL code may fulfill the requirement for product lifespan guarantee.
Component and Cost Reduction
With the versatility of the FPGA, previous systems that required multiple components can be replaced with a single FPGA. Certainly this is the case when an auxiliary I/O chip or coprocessor is required next to an off-the-shelf processor. By reducing the component count in a design, a company can reduce board size and inventory management, both of which save design time and cost.
Perhaps the most compelling reason to choose an FPGA embedded processor is the ability to make trade-offs between hardware and software to maximize efficiency and performance. If an algorithm is identified as a software bottleneck, a custom coprocessing engine can be designed in the FPGA specifically for that algorithm. This coprocessor can be attached to the FPGA embedded processor through special, low-latency channels, and custom instructions can be defined to exercise the coprocessor. With modern FPGA hardware design tools, transitioning software bottlenecks from software to hardware is much easier since the software C code can be readily adapted into hardware with only minor changes to the C code.
The FPGA embedded processor system is not without disadvantages. Unlike an off-the-shelf processor, the hardware platform for the FPGA embedded processor must be designed. The embedded designer becomes the hardware processor system designer when an FPGA solution is selected.
Because of the integration of the hardware and software platform design, the design tools are more complex. The increased tool complexity and design methodology requires more attention from the embedded designer.
Since FPGA embedded processor software design is relatively new compared to software design for standard processors, the software design tools are likewise relatively immature, although workable. Significant progress in this area has been made by both Altera and Xilinx. Within the next year, this disadvantage should be further diminished, if not eliminated.
Device cost is another aspect to consider. If a standard, off-the-shelf processor can do the job, that processor will be less expensive in a head-to-head comparison with the FPGA capable of an equivalent processor design. However, if a large FPGA is already in the system, consuming unused gates or a hard processor in the FPGA essentially makes the embedded processor system cost inconsequential.