Q. What kinds of processors are available in FPGAs?
A. FPGA processors can be “hard” or “soft." Hard processors are implemented within the fixed silicon design of the FPGA similar to serial transceivers. On FPGAs, however, the CPU is surrounded by programmable logic that you can use for custom or application-specific functions. Hard processors offer higher CPU performance than soft processors, depending on factors such as processor architecture, clock rate, and process technology. As the name implies, hard processor feature sets are fixed and typically offered only as a variation of a particular FPGA. The number and type of hard processors within an FPGA are also fixed as a function of that particular FPGA. Altera offers hard processors in Arria® V SoC and Cyclone® V SoC FPGA families.
Soft processors are implemented in programmable logic, use on-chip resources such as logic elements, multipliers, and memory, and can be instantiated in almost any FPGA family. The performance and cost of a soft processor depend mainly on the FPGA in which the processor is instantiated, but performance and cost are typically lower than in hard processors. The number of soft processors that can be instantiated in a single device is limited only by the device’s resources (that is, its logic and memory). High-density FPGAs, for example, can contain hundreds of soft processors. Likewise, different types of soft processors can be implemented: 16- or 32-bit, performance optimized, logic-area optimized, and so on. You can choose to migrate your soft processor designs to hard processor implementations when moving to gate arrays or cell-based designs. One or more soft processors can also be used in the FPGA portion of a hard processor.
- Soft processor frequently asked questions
- Hard processor frequently asked questions
- Using FPGAs in embedded systems
Q. How can I use an FPGA in my embedded design?
A. There are many ways to use FPGAs in an embedded system. Typical uses include:
- I/O and peripheral expansion—Add peripherals missing from your current processor such as LCD or memory controllers, or increase the number of I/O channels in your system by adding Ethernet, general-purpose I/O (GPIO), or UART ports.
- Coprocessing—Boost system performance by moving compute-intensive algorithms from software running on a processor to hardware in the FPGA. Signal processing, image processing, and packet processing applications achieve orders of magnitude performance improvement running in hardware rather than software.
- Custom embedded controller—You decide which (and how many) processors, peripherals, interfaces, direct memory access (DMA) channels, and memories to include in your custom embedded controller.
- Multiprocessor—Accelerate your software development, improve code reliability, and increase maintainability by distributing tasks across several CPUs. You can design a multiprocessor system as a custom system inside a single FPGA or to augment an external CPU or digital signal processor.
Q. How can designing with FPGAs reduce risk in my embedded design?
A. FPGA developers enjoy several benefits not available to traditional embedded solutions:
- Protect your software investment from processor obsolescence—Because you own the hardware design for an FPGA-based embedded processor, your software investment is protected from processor obsolescence. In a worst case scenario, you can migrate your embedded design to a new FPGA family, requiring a board redesign. Your software investment, however, remains intact because the processor subsystem does not change. Learn more about protecting your software from processor obsolescence.
- Reduce time to market—By adding an FPGA to your design you can release new products earlier, with modest feature sets, and then upgrade the hardware over time. Altera provides an easy path to remotely update FPGA hardware designs over the Internet. In some cases, entire product lines can be based on a single board design; the variable content is contained within the FPGA. Learn more about reducing time to market and increasing productivity.
- Adapt to changing requirements—FPGAs let you adapt to last-minute changes or evolving standards by adding or changing hardware features even after the PCB is complete. Learn more about flexibility.
- Increase system performance without board redesign—Sometimes you discover late in the design process that the system doesn’t meet performance. By including an FPGA in the system, you can add more performance without having to redesign the board, purchase a faster speed-grade device, or rewrite code in assembly. You can add multiple processors, custom instructions, and hardware accelerators to the FPGA to boost system performance without requiring a board redesign. Learn more about increasing performance.