There are various ways to classify processors, but one classification that embedded product developers should be familiar with is that of hardcore processors and softcore processors.
We will explain the differences and features of each processor.
Hardcore processor
A hardcore processor is a typical processor (CPU) found in PCs and other devices.
However, since it is made of hardware, the instructions it contains cannot be changed, added, or deleted.
Because hardcore processors essentially execute software instructions sequentially, their processing efficiency may be lower compared to FPGA circuits configured specifically for particular tasks.
Furthermore, general-purpose hardcore processors are affected by interrupts and the operating system, which limits their effectiveness compared to dedicated hardware in systems requiring strict processing time guarantees.
◆Benefits
Because it is optimized from the transistor level, each instruction is fast, low power consumption, and small in size (low cost).
• Complex instructions can be implemented by repeating basic instructions, making it widely usable in various applications (highly versatile).
Disadvantages
Compared to FPGA circuits configured specifically for particular processing, processing efficiency and throughput may be inferior.
Compared to FPGA circuits optimized for specific applications, it may be at a disadvantage in terms of power efficiency per unit of processing.
Since the processor is pre-designed by the semiconductor vendor (manufacturer), it is not possible to increase or decrease the number of instructions or cores later on.
Executing interrupt handling temporarily suspends the current process, which can be a limitation in real-time processing where strict response times are required.
◆Applications
• Suitable for a wide range of applications
Soft-core processor
A soft-core processor is also a processor that is actually implemented as hardware circuitry.
However, a major difference from hardcore processors is that the hardware portion is implemented and configured on an FPGA by the user, rather than by a semiconductor vendor. (Softcore processors, which are software-based and used only for prototyping or research-based functional verification, are excluded.)
While soft-core processors can be implemented using ASICs (Application-Specific Integrated Circuits) as well as FPGAs, the term "soft-core processor" is generally used to refer to processors made with FPGAs for the following reasons.
・FPGA's flexibility, which allows you to change functions and instructions later, is similar to software.
To distinguish them from FPGAs with built-in hardcore processors (SoC FPGAs), processors embedded in ASICs are generally not called soft-core processors, but rather custom processors or embedded CPUs.
◆Benefits
- You can add high-speed, low-power custom instructions created in hardware.
- Using custom instructions reduces program size and memory usage.
- Unused instructions can be omitted to create a more compact processor.
- Because the logic can be maintained in-house, it becomes less susceptible to the impact of the end-of-life (EOL) of specific processor products.
・Its integration with dedicated hardware makes it suitable for real-time processing where precise timing control is required.
You can freely customize the number of cores, peripheral circuits, I/O configuration, and more.
Because it can work closely with FPGA circuits, it can perform its own processing on the FPGA in parallel with the processor's operation.
Disadvantages
• It requires the effort of developing a processor.
- Custom instructions require FPGA resources.
- If the instruction set were completely original, it would be impossible to use general software development environments.
To overcome the disadvantages of soft-core processors
To overcome the disadvantages of soft-core processors, for example, FPGA vendor Altera® Therefore, we provide instruction sets and development tools "free of charge".
◆ Free provision of instruction set (ISA)
Because designing an instruction set from scratch requires a great deal of effort, Altera® provides three types of RISC-V-based instruction sets (Nios® V) free of charge.
-Nios® V/g: Standard ISA that can incorporate custom instructions (RV32IMAZicsr_Zicbom)
・ Nios® V/m: Medium size ISA (with/without Pipeline: RV32IAZicsr/RV32IZicsr)
・ Nios® V/c: The smallest ISA (RV32I)
◆ Provision of development environment
Altera® It provides tools for hardware development and software development.
・ Hardware development
- Existing development tool for Altera FPGAs: Quartus ® You can use Prime (free version/paid version).
- Using the GUI to use Nios ® V can be easily integrated into the FPGA. Platform Designer We offer this.
Software development
-Nios® V is RISC-V based,
You can use development environments for RISC-V provided by third-party vendors.
- "Ashling* RiscFree* IDE for Altera® FPGA" It is provided "free of charge".