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 Intel® Stratix® 10 SoC FPGA, Intel® Arria® 10 SoC FPGA, Arria® V SoC FPGA, and Cyclone® V SoC FPGA 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.