22
\$\begingroup\$

I am doing a study on FPGA interfacing with microprocessors such as ARM9.

I found the concept of soft core processors and hard core processors in my study. May I know what is the comparison between these two types, the similarities and differences in the implementation?

\$\endgroup\$
0

3 Answers 3

25
\$\begingroup\$

Soft core is implemented in FPGA fabric while Hard is implemented the same as any integrated circuit while still connected to the FPGA fabric. The comparison generally boils down to:

Hard Core Processors - 100's of MHz up to 1GHz+ of speed

  • Can achieve much faster processing speeds since they are optimized and not limited by fabric speed
  • Fixed and cannot be modified (though it can take advantage of custom logic in FPGA fabric for processing

Soft Core Processors - 250MHz and less (usually less than 200MHz)

  • Can be easily modified and tuned to specific requirements, more features, custom instructions, etc.
  • Multiple cores can be used (at the cost of resources)
  • Limited by the speed of the fabric.

In recent years, there's been a large move towards hard processor primarily due to the need for faster processing that the soft cores can't provide. When you put a hard core processor with the FPGA fabric, you can typically enable processing of a lot of data, which is needed for communication infrastructure applications (lots of GBs of data going by), for example.

\$\endgroup\$
13
\$\begingroup\$

A soft-core processor is a processor implemented using the FPGA fabric.

A hard-core processor is a processor that's actually physically implemented as a structure in the silicon.

Basically, you can add a soft-core processor to a FPGA-based system after it's already designed. However, adding a hard-core processor requires either a different FPGA, or an additional chip on the board.


Hard-core processors are preferred when possible because the price/computing-power ratio for a hardware CPU is much better. Implementing a CPU in FPGA fabric is very resource intensive, particularly if you want a lot of computing power. The equivalent hardware CPU is likely much cheaper.


Not only is the hardware CPU much cheaper, but it is also likely to be much more energy efficient. In battery-operated platforms, efficiency is crucial for long battery life. Unused gates in an FPGA can sometimes be turned off, but usually there are far more active circuits in a soft core processor than in a purpose-design hardware CPU. All of that potential FPGA silicon consumes power.

\$\endgroup\$
3
  • \$\begingroup\$ "Hard" and "soft" can also refer to the hardware description used and not just to whether the core is implemented in the fabric (see ARM's "Hard Macro Processors") This Western Design Center, Inc., page provides an example of this use: "ASIC (Manuallly Optimized GDSII Hard Core and Verilog RTL Soft Core), and FPGA (Verilog RTL Soft Core)". The FPGA context might exclude this use of the terms (though binary blob/LUT-initialization-values vs. RTL seems analogous). \$\endgroup\$
    – user15426
    Oct 10, 2014 at 12:30
  • \$\begingroup\$ So basically, soft-core = FPGA, hard-core = ASIC? \$\endgroup\$
    – nalzok
    Jul 11, 2019 at 5:49
  • \$\begingroup\$ @nalzok - Yep. I could see an argument for calling emulating one CPU on another CPU a "soft" core, but people just call that emulation in my experience. \$\endgroup\$ Jul 11, 2019 at 20:02
0
\$\begingroup\$

Implementing soft processor to achieve a certain functionality might be cheaper in terms of purchasing the hardware in comparison to purchasing equivalent hard processor.

\$\endgroup\$
1
  • \$\begingroup\$ This contradicts the answer given by Connor Wolf. From my experience equivalent FPGAs are more expensive than ASICs. Maybe you could add some more details to your answer. \$\endgroup\$
    – Velvet
    May 11, 2022 at 6:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.