Hard vs. Soft Processors
Q. What kinds of processors are available in FPGAs?
A. Processors in SoC FPGAs can be “hard” or “soft." Hard processors are implemented in the fixed silicon logic of the SoC FPGA similar to serial transceivers. On SoC FPGAs, however, the processor 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 SoC FPGA. The number and type of hard processors within an SoC FPGA are also fixed as a function of that particular SoC FPGA. Altera offers hard processors in Stratix® 10 SoCs, Arria® 10 SoCs, Arria® V SoC and Cyclone® V SoC families.
Soft processors, such as the Nios® II processor, 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 likewise be used in the FPGA portion of an SoC FPGA.
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.
- 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.
- 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.
- 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.
Q. Can I use a model-based design flow for developing with Altera’s SoCs?
A. The Simulink, Embedded Coder and HDL Coder tools from MathWorks provide a hardware/software workflow spanning simulation, prototyping, verification and implementation on Altera SoCs. For more information, see https://www.mathworks.com/hardware-support/altera-soc-ecoder.html.