22

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?

TonyM
  • 21,742
  • 4
  • 39
  • 62
How Xing Quan
  • 321
  • 1
  • 2
  • 3

3 Answers3

25

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.

Gustavo Litovsky
  • 7,619
  • 3
  • 25
  • 44
13

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.

Connor Wolf
  • 31,938
  • 6
  • 77
  • 137
  • "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"](http://www.arm.com/products/processors/hard-macro-processors.php)) [This Western Design Center, Inc., page](http://www.westerndesigncenter.com/wdc/tools.cfm) 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). –  Oct 10 '14 at 12:30
  • So basically, soft-core = FPGA, hard-core = ASIC? – nalzok Jul 11 '19 at 05:49
  • @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. – Connor Wolf Jul 11 '19 at 20:02
0

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

  • This contradicts the [answer](https://electronics.stackexchange.com/q/55378) given by Connor Wolf. From my experience equivalent FPGAs are more expensive than ASICs. Maybe you could add some more details to your answer. – Velvel May 11 '22 at 06:27