Un procesador de núcleo blando es un procesador implementado utilizando el tejido de la FPGA.
Un procesador de núcleo duro es un procesador que realmente está implementado físicamente como una estructura en el silicio.
Básicamente, se puede añadir un procesador de núcleo blando a un sistema basado en FPGA una vez que ya está diseñado. Sin embargo, para añadir un procesador de núcleo duro se necesita una FPGA diferente o un chip adicional en la placa.
Siempre que sea posible, se prefieren los procesadores de núcleo duro, ya que la relación precio/potencia de una CPU de hardware es mucho mejor. La implementación de una CPU en el tejido de la FPGA requiere muchos recursos, sobre todo si se desea una gran potencia de cálculo. La CPU de hardware equivalente es probablemente mucho más barata.
El hardware de la CPU no sólo es mucho más barato, sino que también es probable que sea mucho más eficiente energéticamente. En las plataformas que funcionan con baterías, la eficiencia es crucial para que éstas duren mucho tiempo. Las puertas que no se utilizan en una FPGA a veces pueden apagarse, pero normalmente hay muchos más circuitos activos en un procesador de núcleo blando que en una CPU de hardware diseñada a propósito. Todo ese silicio potencial de la FPGA consume energía.