Soft Core ProcessorsSOPC technology, or soft core processors, was first proposed by Altera. It is a design technology for System on Chip (SoC) based on FPGA. It is a soft core CPU system built using the logic and resources of an FPGA. Since it uses general logic to construct the CPU, it offers a certain degree of flexibility, allowing users to customize the CPU according to their needs by adding specific functions, such as division or floating-point units, to enhance performance in certain specialized computations, or by removing unused features to save logic resources.Additionally, various standard or custom peripherals can be added to the CPU based on user requirements, such as UART, SPI, IIC, etc. Users can also utilize FPGA logic resources to create various dedicated peripherals and connect them to the CPU bus for control, enabling hardware-software collaboration while ensuring system performance and increasing system flexibility.If a single soft core CPU does not meet user needs, multiple soft core CPUs can be added to build a multi-core system, allowing for more flexible and convenient control capabilities through the collaboration of multi-core CPUs.Since it is implemented using FPGA resources, it offers great flexibility, enabling the realization of various processors as needed, such as 8051, RISC-V, Xilinx’s MicroBlaze, Altera’s Nios-II, etc.Hard Core ProcessorsSince soft core CPUs are built using general logic resources of FPGAs, compared to hard core processors that are optimized through layout and routing, the maximum real-time clock frequency that soft core processors can achieve is lower, and they also consume more FPGA logic resources and on-chip memory resources. Therefore, SOPC solutions are only suitable for applications that do not require high overall performance from the processors, such as system initialization configuration, human-machine interaction, and coordination control among multiple functional modules.As a result, major FPGA manufacturers have introduced SoC FPGA technology, which integrates hard core processors into the internal hardware circuits from the beginning of chip design. This is a purely hardware implementation that does not consume FPGA logic resources. The hard core processor and FPGA logic are somewhat independent of each other. In simple terms, SoC FPGA combines an ARM processor and an FPGA chip into a single chip.For example, the well-known Xilinx ZYNQ/PYNQ series integrates an ARM Cortex-A9 processor, providing both programmability of ARM software and hardware programmability of FPGA. It not only enables significant analysis and hardware acceleration but also highly integrates CPU, DSP, ASSP, and mixed-signal functions on a single device.
ZYNQ Development BoardIntel’s Cyclone V series, which integrates a dual-core Cortex-A9, was released in 2013. It is a new type of SoC chip that integrates a dual-core ARM Cortex-A9 processor and FPGA logic resources on a single chip. Compared to traditional single ARM processors or FPGA chips, it possesses the flexible and efficient data computation and transaction processing capabilities of ARM processors while also integrating the high-speed parallel processing advantages of FPGA. Furthermore, based on the unique on-chip interconnect structure, it can configure the general logic resources on the FPGA to map to one or more peripherals with specific functions for the ARM processor, communicating via a high-speed AXI bus up to 128 bits wide to complete data and control command exchanges. Since the on-chip ARM processor is implemented with hardwired logic, it can operate at a higher clock frequency, allowing for more instructions to be executed in a given time frame.Differences and ConnectionsFrom an architectural perspective, SOPC and SoC FPGA are unified, both consisting of an FPGA part and a processor part. In SoC FPGA, a pure hardware-based hard core processor, referred to as HPS (Hardware Processor System), is embedded, while SOPC technology embeds a soft core processor implemented using FPGA logic resources. The instruction sets and processor performances differ between the two.Generally, hard core processors significantly outperform soft core processors. Additionally, hard core processors integrate various high-performance peripherals, such as MMU, DDR3 controllers, NAND FLASH controllers, etc., capable of running mature Linux operating systems and applications, providing a unified system API and reducing software development difficulty for developers. Although soft core CPUs can be configured to build corresponding controllers using logic resources to support relevant functions, in terms of performance and development difficulty, designing and developing based on the SoC FPGA architecture is a better choice.
ZYNQ Block DiagramMoreover, although SoC FPGA chips contain both ARM and FPGA, they are somewhat independent of each other. The ARM processor core on the SoC chip is not contained within the FPGA logic units. The FPGA and ARM (HPS) processors are simply packaged on the same chip, with JTAG interfaces, power pins, and peripheral interface pins being independent. Therefore, when designing with SoC FPGA chips, even if the on-chip ARM processor is not utilized, the resources occupied by the ARM processor cannot be released for use as general FPGA resources.In contrast, SOPC uses general logic and memory resources of FPGA to build the CPU, and when the CPU is not in use, the resources occupied by the CPU can be released and reused as general FPGA resources.